APP下载

计算机网络安全扫描技术研究

2012-03-19李秋锐

网络安全技术与应用 2012年1期
关键词:安全漏洞插件报文

李秋锐

中国人民公安大学 北京 100038

0 引言

计算机网络技术在给人们生产生活带来巨大便利的同时,也存在着一系列的安全问题,给个人信息及财产造成了重大损失。网络安全扫描技术,同防火墙技术,入侵检测工具及防病毒工具一起构成了保护网络安全的重要手段。与其他被动防护手段不同的是,网络安全扫描是一种主动的防护手段,通过网络安全扫描,能及时发现网络中各种设备的安全漏洞,从而提早采取防护手段,避免网络被恶意攻击者攻击。

1 主机探测

主机探测是网络管理员维护网络安全的第一步,通过主机探测能够发现网络中的在线主机,了解网络中IP地址分配以及网络拓扑结构等一系列情况,为维护网络安全提供的资料。主机探测利用ICMP协议,向目标主机发送ICMP回声请求数据包,然后等待响应(也就是ping操作)。如果能收到目标主机的应答数据包,则说明主机在线,否则,目标主机不在线。当然,有些防火墙能够阻止这样的ICMP包通过。通过不断的完善,主机探测发送的探测数据包还包括 ICMP时间戳数据包和ICMP地址掩码请求数据包。

2 端口扫描

在TCP/IP通信中,相互通信的主机通过对方的IP地址识别目标主机。然而,由于一台主机上往往运行了多个应用程序,仅仅只靠IP地址并不能区别不同程序的信息流。端口的引入就很好的解决了这个问题。在网络通信中,首先把端口号和相应的应用程序绑定在一起,然后在数据包中表明具体的IP地址和端口号,目标主机就知道该把收到的数据包上传给哪个应用程序进行处理了。在主机上,端口的开放说明了主机提供了相应的服务,服务的存在也表明了漏洞的存在。因此,端口扫描常常是攻击者和管理者活动的重要手段。

2.1 TCP全连接扫描

TCP通信是一种面前连接的可靠通信方式,相互通信的主机通过“三次握手”建立连接之后进行数据的传输。首先,客户端主机向服务器发送 SYN数据包,数据包中给出了端口号,表明了所要请求的服务;接下来,服务器向客户端主机发送SYN/ACK数据包,表示接受客户端的请求;最后,客户端主机向服务器发送 ACK数据包确认连接。至此,连接建立成功,客户端和服务器可以进行正常通信。

TCP全连接是最典型最基本的一种端口扫描方式。扫描主机调用connect()连接,和目标主机的相应端口通过三次握手建立正常的 TCP连接。若被扫描主机的相应端口是打开的,则返回一个ACK数据包,否则,返回RST数据包。这种方法简单快速,而且不需要具有管理员权限。但是,三次握手的建立过程容易被入侵检测系统和防火墙发现,扫描过程不具有隐蔽性。

2.2 TCP SYN扫描

在TCP SYN扫描中,扫描主机向目标主机相应的端口发送SYN数据包。若目标端口是打开的,则返回ACK数据包,否则,返回RST数据包。与TCP全连接扫描不同的是,扫描主机在收到目标主机返回的SYN/ACK数据包后,并没有继续发送ACK数据包建立一个完整的TCP连接,而是发送一个RST数据包终止了连接。由于正常的TCP连接并没有被建立起来,因此TCP SYN扫描又被称为半连接扫描。TCP STN的扫描速度更快,同时更不容易被入侵检测系统发现。但这种方式的缺点是需要扫描主机构造用于扫描的数据包。

2.3 秘密扫描

根据发送探测数据包的不同,秘密扫描又被分为 TCP FIN扫描,TCP Null扫描,TCP Xmas扫描,TCP ACK扫描,TCP SYN/ACK扫描等。在TCP FIN扫描中,扫描主机发送的数据包中的FIN位被置位,若目标端口是打开的,则探测数据包被丢掉(因为此数据包不是建立正常 TCP连接的三次握手所使用的数据包,对于端口而言没有意义),否则,探测数据包被丢掉,同时返回RST数据包。其他几种秘密扫描技术的原理基本相似。

2.4 UDP ICMP不可达扫描

事实上,互联网上运行在UDP端口上的服务也有很多。UDP ICMP扫描向UDP端口发送UDP探测包,若目标端口是关闭的,则返回ICMP端口不可达数据包。若经过多次重发,扫描主机仍然没有收到目标端口响应数据包,则说明目标端口很可能是开放的(通常,开放的UDP端口对UDP探测数据包不做任何响应)。但是,由于UDP协议是非连接的,数据传输的不可靠性更大,经常需要重传数据包,影响了扫描的速度和准确性。

3 操作系统探测

目前,操作系统识别的方式很多,但其原理都是将目的主机对某些探测数据包的响应和已知的操作系统指纹库进行匹配识别来进行的。首先,通过采样不同操作系统对各种探测数据包的反应建立操作系统的指纹识别库。扫描时,向目标主机发送探测数据包,将其响应数据包和指纹数据库进行匹配,从而识别操作系统的类型。

目前,根据探测数据包的构造方式不同,比较流行操作系统探测有以下几种。

3.1 TCP/IP协议栈的指纹探测技术

由于操作系统系统架构及不同版本之间的差异,不同的操作系统在实现 TCP/IP协议时是不一样的,可以利用这种差异来区别不同的操作系统类型。此种方法主要用到以下技术手段:FIN探测,BOGUS标记探测,TCP SYN取样,TCP时间戳,TCP初始化窗口,ACK值等。

这种方法实现简单,可供选择的探测技术较多,易扩充。不过探测数据包易受实际网路情况的影响,稳定性不高,常常需要综合运用多种方式。

3.2 基于RTO采样的指纹识别

TCP协议通过对传输数据进行确认来实现可靠的数据传输。然而在实际网络环境中,传输的数据和确认都可能发生丢失。TCP在传输数据时会设置一个重发定时器,当定时器溢出之后,还没有收到确认,就进行数据的重传。该重发定时器的时间间隔就被称为RTO(Retransmission Timeout)。

不同操作系统在计算RTO时使用的方法是不同的。因此,可以利用这一点来实现对远程主机操作系统的探测。首先向目标主机选定的开放端口发送TCP SYN包,然后使用堵塞模块阻止目标端口响应的SYN/ACK包到达扫描主机,迫使目标主机不断超时重发SYN/ACK包。得到每次的超时重传时间,再和数据库中的特征进行匹配计算识别出操作系统类型。

这种方法的优点是只需要得到目标主机的一个开放的端口就可以进行对操作系统进行准确的识别。同时,不会在网络中产生很多畸形的数据包,不会对目标主机产生很多不良影响。但是,由于需要等待目标主机的大量超时重传,会花费更多的扫描时间。

3.3 基于ICMP响应的指纹辨识

ICMP是TCP/IP协议族的一个子协议,用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

ICMP报文总体上分为两种:ICMP查询报文和ICMP差错报文。利用ICMP进行操作系统探测的方式有两种。一种是可以向目标主机发送多种类型的查询报文捕获响应数据包进行分析;另一种是 TCP/IP数据包使目标主机触发差错报文,从响应的差别中对操作系统进行辨识。

由于只发送ICMP数据包,基于ICMP响应的指纹识别算法速度很快,并且不会对目标主机产生不良影响。另外,由于匹配算法得以改进,操作系统签名数据库容易建立和更新。这种方法的缺点是探测技术单一,只依赖一种类型的数据包,稳定性不足,更难进行技术上的更新。

4 漏洞扫描

对于网络管理员而言,保护网络安全的关键是要及时发现目标网络/主机上存在的各种安全漏洞,并采取有效的修补措施,使得系统免受恶意攻击。安全漏洞往往是针对某一特定操作系统的某一具体服务的,也就是说,是针对某一具体端口存在的,因此,在网络安全扫描中,漏洞扫描常常是建立在端口扫描和操作系统探测基础上的。从实现原理上讲,漏洞扫描又分为基于漏洞库的匹配技术和插件技术。

4.1 基于漏洞库的匹配技术

在这种漏洞扫描方式中,网络扫描系统首先根据已知的各种安全漏洞建立一个漏洞特征信息库。然后,向目标主机发送各种数据包,根据对响应数据包的分析,基于规则匹配原则与漏洞库中的特征值进行匹配,从而确定主机的安全漏洞。因此,漏洞特征信息库中特征信息的完整性和可信性就决定了扫描的效率和准确性,同时信息库信息的更新和修订也会影响扫描系统的时间。

4.2 插件技术

这种方法就是模拟黑客的各种攻击行为,将每一种攻击方法都用脚本语言进行编写得到插件。当进行扫描时,扫描工具自动调用插件对系统或主机进行攻击。若攻击成功,则表明存在相应的漏洞。插件程序独立于主程序,编写方便易行,因此,扫描系统的功能扩展更加的方便,只需要在系统中增加新出现的安全漏洞的插件模块即可。

5 结论

随着互联网技术的发展,网络安全扫描技术也在不断的成熟更新中。但是,新的问题和新的挑战总会不断的涌现出来,给网络安全扫描技术带来了不少的难题,需要不断的努力研究。

[1] 洪宏,张玉清,胡予濮,戴祖峰.网络安全扫描技术研究[J].计算机工程.2004.

[2] 周峰.一种网络漏洞探测系统的设计与实现[D].武汉科技大学.2006.

[3] 赵妙军.浅析网络安全扫描技术[J].信息技术.2010.

猜你喜欢

安全漏洞插件报文
基于J1939 协议多包报文的时序研究及应用
基于大数据技术的软件安全漏洞自动挖掘方法研究
CTCS-2级报文数据管理需求分析和实现
基于模糊测试技术的软件安全漏洞挖掘方法研究
自编插件完善App Inventor与乐高机器人通信
浅析反驳类报文要点
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
安全漏洞检测技术在计算机软件中的应用
基于jQUerY的自定义插件开发
ATS与列车通信报文分析