APP下载

互补协议资产扫描系统的设计与实现

2010-03-26丁岳伟

上海理工大学学报 2010年2期
关键词:局域网程序条件

丁岳伟, 高 强, 何 璐

(1.上海理工大学光电信息与计算机工程学院,上海 200093;2.上海市信息安全综合管理技术研究重点实验室,上海 200030)

随着信息技术的快速发展,计算机网络已经渗入到社会经济的各个角落.网络的日趋扩大、设备的日趋复杂使得网络的管理难度越来越大.网络管理员就需要尽可能全面地获得网络的各种信息,管理整个网络.

本文采用多种协议互补多线程扫描的方式来设计并实现了一个局域网环境下的资产扫描软件,用于获取整个局域网的软硬件信息.资产包括硬件和软件资源.本文主要采用Arp协议、Netbios协议、Snmp协议、Wmi和IPC$空连接的方法,并通过对上述几种协议的分析,获得在一般情况下所能得到局域网信息的最大集和最小集.最后通过实验测试得出,采用多线程方式能够明显提高扫描的速度,而多协议互补的方式也能够提升信息获取的成功率.

1 相关协议介绍

为了设计多协议互补资产扫描系统,先介绍相关协议的原理.

1.1 Arp协议[1]

地址转换协议Arp是个链路层协议.在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址.这个目标MAC地址就是通过地址解析协议获得的.地址解析就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程.Arp协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行.

1.2 Netbios协议[2]

Netbios(网络基本输入/输出系统)协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,几乎所有的局域网都是在Netbios协议的基础上工作的.

1.3 Snmp协议[3]

Snmp(简单网络管理协议)是由互联网工程任务组(IETF))定义的一套网络管理协议.该协议基于简单网关监视协议(SGMP).利用Snmp,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置及接收网络事件警告等.

1.4 Wmi[4]

Wmi(Windows管理规范)是 Microsoft基于Web的企业管理(WBEM)的实现,同时也是一种基于标准的系统管理接口.Wmi是一种轻松获取系统信息的强大工具.在Wmi中有一种查询语言,类似于SQL语言,这种语言叫WQL(wmi query language).通过这个查询语言可以获取大量的管理信息.

1.5 其他方法

1.5.1 Ping方法

Ping方法目的是为了测试另一台主机是否可达.该方法发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答.Ping程序还能测出到这台主机的往返时间,以表明该主机与本机的“距离”.

1.5.2 IPC$空连接方法

IPC$(internet process connection)是共享命名管道的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用.利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码,而且利用这个空的连接,连接者还可以得到目标主机上的用户列表等信息.

2 多协议下的限制条件及信息集分析

2.1 各协议限制条件

各种不同的协议都有自己的使用环境,该多协议资产扫描方法所涉及的多个协议也有其各自的限制条件.只有满足其自身的限制条件,该协议才能够正常运行.具体分析结果如表1所示.其中,√表示需要满足该条件才能运行,×表示不需要满足该条件.

表1 相关协议限制条件Tab.1 Chart1 restriction conditions of protocols

如表1所示,所有相关协议的共同限制条件为目标开机并且非旁路,这一条件是研究该多协议互补方法的前提条件.

排除该前提条件限制,分析表1可以得出:当且仅当限制条件3和4同时不满足的时候,才完全获取不到任何信息;否则,必然能够获取到一定的信息.

2.2 信息集分析

假设在满足所有协议、方法的限制条件下,这些方法可以获得各种信息.

通过Arp协议,主要可以获得的信息 InfoArp为:a.给定的IP段中存活的机器;b.目标设备上与扫描的IP地址对应的这块网卡的MAC地址;c.目标设备的主机名.

通过Netbios协议,主要可以获得的信息InfoNetbios为:a.操作系统信息;b.共享列表信息;c.用户列表信息;d.本地组列表信息;e.组列表信息;f.特定组内的用户信息;g.传输协议信息;h.会话列表信息.

通过Snmp协议,主要可以获得的信息InfoSnmp主要是Mib库中所包含的信息,包括系统信息、用户信息、网络信息及硬件信息等几乎所有的管理所需要的信息.

通过Wmi,主要获得的信息InfoWmi为:a.操作系统信息,包括时区、驱动程序、磁盘分区、逻辑磁盘、系统服务及共享等信息;b.硬件信息,包括CPU、物理内存、键盘、硬盘、主板、串口、并口及网络适配器等信息.Wmi也提供了管理员需要的几乎所有的信息.

通过Ping方法,主要获得的信息InfoPing为:a.给定的IP段中存活的机器;b.目标主机的网络“距离”.

通过IPC$空连接方法,主要获得的信息InfoIPC为:a.操作系统信息;b.用户信息.

图1用集合的方式显示了各协议可获取的信息集.

图1 各协议获取信息集Fig.1 Information set of protocols

分析各个协议方法可获得的信息集,可以得出如下几点:

a.InfoIpc∪InfoNetbios∪InfoWmi=InfoArp,即Arp所能获得的信息,Ipc、Netbios和Wmi均能获得.

b.InfoIpc∪InfoNetbios∪InfoWmi∪InfoArp∈InfoSnmp,即Ipc、Netbios、Wmi和Arp所能获得的信息集属于Snmp所能获得的信息集.

c.InfoPing∪InfoSnmp=Ø,Ping所能获得的信息(主机间延时)是其他所有协议都不能获得的.

根据上述的讨论分析可以进行更深入的研究,即多协议互补信息扫描在一般情况、最差情况和最好情况下所能获得的信息.

首先讨论一般情况,局域网中Wmi服务开启, IPC$提供,Snmp协议未安装,防火墙开放端口,此时,Infou=InfoPing∪InfoArp∪InfoIPC∪InfoNetbios∪Infowmi;

然后讨论最差的情况,局域网中Wmi服务开启,IPC$提供,Snmp协议未安装,防火墙关闭所有端口,此时,Infomin=InfoArp;

最后讨论最好的情况,局域网中Wmi服务开启, IPC$提供,Snmp协议安装并开启,防火墙开放所有端口,此时,Infomax=InfoPing∪InfoArp∪InfoIPC∪InfoNetbios∪InfoWmi∪InfoSnmp=InfoSnmp∪InfoPing.

在实际的应用中,可以通过上述的分析来设计应用流程,可明显提高程序的运行效率.

3 案例及测试

根据上述原理实现了一个基于多协议的局域网资产扫描系统.该系统通过Arp协议、Netbios协议、Snmp协议、Wmi、Ping方法和IPC$空连接方法来获取局域网(包括同网段和非同网段)资产的信息,这里获取的信息主要列举了网络管理的一些信息,如操作系统信息、MAC地址、IP地址、主机名、设备类型和操作系统版本.系统获取到信息后通过XM L的格式显示出来.在整个程序中,将主要的获取信息功能做成动态链接库文件,然后可以用程序语言VC、Java等方法调用.

通过分析各个协议、方法,可以得出其所能获得的信息,如图2所示.

图2 信息列表Fig.2 Information list

在本程序中,由于Infomax=InfoSnmp,所以,一旦满足Snmp协议的限制条件,立即使用Snmp方法来获取信息;而InfoWmi=InfoIPC,所以,一旦他们其中一个成功获取信息,另外一种方法将不执行;而InfoPing∈InfoArp∈InfoNetbios,所以,Netbios在这三者中具有最高的优先度,只有当Arp和Netbios都获取不到信息时,才用到Ping方法.而只有当Netbios获取不到信息时,才用到Arp协议.具体功能流程如图3所示.

图3 程序流程图Fig.3 Program flow chart

本系统还采用多线程的方式,关键代码如下:

通过采用多线程机制可以明显改善程序的效率,如表1测试所得.为了测试多线程对程序效率的提高,在测试中为方便比较,其中多线程统一采用64为测试值,在实际应用中可以根据局域网情况调整线程数.采用多协议的资产扫描模型可以最大限度地获取资产信息.如表1所示,互补率表示在一个IP上采用多协议获取信息的使用率.

如图4所示,采用多线程机制可以明显提升程序的运行效率.n这IP个数,t为扫描时间.在图5中,互补率η表示在一个IP上采用多协议获取信息的使用率,实现结果很明显地表明,在一次扫描中,运用到多个协议来获取信息的可能性非常高,而且随着设备个数的增多,运用到多协议互补的可能性更高.

图4 多线程和单线程测试比较Fig.4 Comparison between multi-thread and single-thread

图5 协议互补率测试Fig.5 Protocols complement test

在测试时,程序处于由交换机、路由器、计算机主机及网络打印机等构成的3层架构网络环境.并通过编写VC程序来调用这个动态链接库文件,效果图如图6(见下页)所示.

最终可以获得如下的XML文件来显示单个IP的信息,包括通过多种协议获得所有信息、扫描起止时间和扫描用到的协议或方法名.

图6 程序运行效果图Fig.6 Program running result

4 结束语

随着网络规模的日趋扩大,设备越来越复杂,网络管理的难度越来越大.本文通过分析多种协议和方法的限制条件以及可获得信息的集合,设计并实现了多线程多协议互补方式的资产扫描程序.根据各种方法所能获得的信息集,设计程序流程,使得该程序尽可能多地获得网络管理所需要的信息.经过实验测试,采用多线程多协议方式能够明显提升系统的运行效率和信息获取量.

致谢:感谢上海市信息安全综合管理技术研究重点实验室开放课题资助.

[1] PLUMMER D C.RFC826-Ethernet Address Resolution Protocol[S].Network Working Group,1982.

[2] 王荣华,王永强.局域网监控管理技术[J].信息网络安全.2004(1):37-40.

[3] CASE J.RFC1157-Simple Network M anagement Protocol[S].Network Working Group,1990.

[4] 任建基,胡延平,陈俊峰,等.基于WMI技术的局域网计算机设备的监测[J].计算机工程与应用,2006(25): 134-136.

[5] 何鹏,邱建林,顾翔.基于SNM P的远程主机检测系统设计与实现[J].计算机工程与设计,2008,29(13):3 303-3 306.

猜你喜欢

局域网程序条件
排除多余的条件
选择合适的条件
轨道交通车-地通信无线局域网技术应用
基于VPN的机房局域网远程控制系统
试论我国未决羁押程序的立法完善
基于802.1Q协议的虚拟局域网技术研究与实现
“程序猿”的生活什么样
局域网性能的优化
英国与欧盟正式启动“离婚”程序程序
为什么夏天的雨最多