首页 > 文章中心 > 正文

网络安全扫描探讨

网络安全扫描探讨

摘要:网络安全扫描技术是一种有效的主动防御技术,目前已经成为网络安全研究中的热点之一,针对发现漏洞的网络安全扫描技术进行分析和研究具有重要的现实意义。

关键词:安全扫描;漏洞;网络安全

1引言

安全扫描也称为脆弱性评估,它是检测远程或本地系统安全脆弱性的一种安全技术。其基本原理是采用模拟黑客攻击的方式对目标可能存在的已知安全漏洞进行逐项检测,以便对工作站、服务器、交换机、数据库等各种对象进行安全漏洞检测。借助于扫描技术,人们可以发现网络和主机存在的对外开放的端口、提供的服务、某些系统信息、错误的配置、已知的安全漏洞等。故安全扫描技术是一种极为有效的主动防御技术,能发现隐患于未然,如果结合入侵检测系统和防火墙等其他安全技术,能为网络提供全方位的保护。安全扫描技术目前应用非常广泛。

2端口扫描技术

TCP协议和UDP协议是TCPIIP协议传输层中两个用于控制数据传输的协议。

TCP和UDP用端口号来唯一地标识一种网络应用。TCP和UDP端口号用16位二进制数表示,理论上,每一个协议可以拥有65535个端口。因此,端口扫描无论是对网络管理员还是对网络攻击者来说,都是一个必不可少的利器。

TCP/IP协议上的端口有TCP端口和UDP端口两类。由于TCP协议是面向连接的协议,针对TCP扫描方法比较多,扫描方法从最初的一般探测发展到后来的躲避IDS和防火墙的高级扫描技术。针对TCP端口的扫描,最早出现的是全连接扫描,随着安全技术的发展,出现了以躲避防火墙为目的的TCPSYN扫描以及其他一些秘密扫描技术,比如TCPFIN扫描、TCPACK扫描、NULL扫描、XMAS扫描、SYN/ACK扫描和Dumb扫描等。UDP端口的扫描方法相对比较少,只有UDPICMP端口不可达扫描和利用socket函数xecvfrom和write来判断的扫描。目前,端口扫描技术已经发展得非常丰富和完善。端口扫描主要可分为开放扫描、半开放扫描、秘密扫描等。

1)TCPconnect扫描

这是最基本的TCP扫描方法。使用操作系统提供的connect()系统调用来与目标主机的TCP端口进行连接。如果connect()连接成功,说明目标端口处于监听状态。若连接失败,则说明该端口没有开放。TCPconnect()方法的最大的优点是,不需要任何特殊权限。系统中任何用户都可以调用connect()函数。另一个优点就是速度快。但TCPconnectU方法的缺点是它很容易被发觉,并且容易被防火墙过滤掉。同时目标主机的日志文件会记录一系列的有关该服务的连接建立并马上断开的错误信息。

2)TCPSYN扫描

该技术通常称为“半开放”的扫描,这是因为扫描程序不需要建立一个完全的TCP连接。扫描程序发送的是一个SYN数据包,就像准备建立一个实际的连接并等待回应一样(TCP通过“三次握手”来建立一个TCP连接)。若返回SYN}ACK数据包则表示目标端口处于监听状态,而若返回RST数据包则表示该端口没有开放。如果收到SYN}ACK数据包,则扫描程序再发送一个RST数据包来终止该连接过程。SYN扫描技术的优点是一般不会在目标主机上留下记录。而该方法的缺点是,必须要有管理员权限自己构造SYN数据包才能使用这种扫描方式。

3)TCPFIN扫描

有时很可能SYN扫描都不够隐蔽。有些防火墙和包过滤系统能监视并限制可以接收SYN的端口,并能检查到这些扫描。相反,FIN数据包可能会没有任何麻烦的通过。这种扫描方法的思想是不开放的端口会用RST来应答FIN数据包。而开放的端口会忽略对FIN数据包的应答。不过,该方法和系统的实现相关。有的系统不管端口是否开放,都回复RST,这样,该扫描方法就不适用了。当然,大多数情况下该方法是有效的。

4)TCP反向ident扫描

ident协议(RFC1413)可以获取任何使用TCP连接进程的运行用户名,即使该进程没有发起连接。因此可以,比如说连接到HTTP端口,然后用identd来获取HTTP服务程序是否以管理员用户运行。该方法需要和目标端口建立了一个完整的TCP连接。

5)FTP返回攻击扫描

FTP协议(RFC959)的一个特性是它支持“”FTP连接。可以从本地计算机连接到目标主机FTP协议解释器,以建立控制连接。这样,向目标主机的协议解释器发送建立数据传输进程的请求,就可以请求FTP服务器向Internet上任何地方发送文件。该扫描方法就是使用PORT命令来声明本地的客户数据传输进程正在被动的在扫描目标主机的某个端口监听。然后再试图用LIST命令请求列出当前目录,服务器将结果通过数据传输进程发送到指定扫描目标主机的端口。如果目标主机正在该端口监听,传输就会成功(产生一个150或226的应答)。否则,会出现连接被拒绝错误(426应答)。这样就探测到目标主机端口是否开放的信息。这种方法的优点很明显,它不容易被追踪,并可能穿过防火墙。主要缺点是速度很慢,而且有的FTP服务器能发现这种扫描而关闭功能。因此该方法只能适用于部分FTP服务器。

3操作系统检测技术

1应用层探测技术

通过向目标主机发送应用服务连接或访问目标主机开放的有关记录就可能探测出目标主机的操作系统(包括相应的版本号)。

2TCP/IP堆栈特征探测技术

目前流行的TCP/IP堆栈特征探测技术有:

(1)FIN探测

通过发送一个FIN数据包到一个打开的端口,并等待回应。RFC793定义的标准行为是“不”响应,但诸如Windows,BSD,CISCO等操作系统会回应一个RESET包。大多数的探测器都使用了这项技术。

(2)BOGUS标记位探测

通过发送一个SYN包,它含有没有定义TCP标记的TCP头。那么在Linux系统的回应中仍旧会包含这个没有定义的标记,而在一些别的系统则会在收到该包之后关闭连接。利用这个特性,可以区分一些操作系统。

(3)TCPISN取样

这是利用寻找初始化序列规定长度与特定的操作系统相匹配的方法。利用它可以对许多系统分类,如较早的UNIX系统是64K长度。一些新的UNIX系统则是随机增长的长度,而Windows平台则使用“基于时间”方式产生的ISN会随着时间的变化而有着相对固定的增长。

4漏洞检测技术

漏洞检测就是通过采用一定的技术主动地去发现系统中的安全漏洞。漏洞检测可以分为对未知漏洞的检测和对已知漏洞的检测。未知漏洞检测的目的在于发现软件系统中可能存在但尚未发现的漏洞。已知漏洞的检测主要是通过采用模拟黑客攻击的方式对目标可能存在的己知安全漏洞进行逐项检测,可以对工作站、服务器、交换机、数据库等各种对象进行安全漏洞检测安全扫描技术,检测系统是否存在已公布的安全漏洞。

漏洞扫描技术是建立在端口扫描技术和远程操作系统识别技术的基础之上的,漏洞扫描主要通过以下两种方法来检查目标主机是否存在漏洞:

1、特征匹配方法

基于网络系统漏洞库的漏洞扫描的关键部分就是它所使用的漏洞特征库。通过采用基于规则的模式特征匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后再在此基础之上构成相应的匹配规则,由扫描程序自动进行漏洞扫描。若没有被匹配的规则,系统的网络连接是禁止的。

2、插件技术

插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。

端口扫描和操作系统检测只是最基本的信息探测,攻击者感兴趣的往往是在这些信息的基础上找到其存在的薄弱环节,找到错误的配置或者找出存在的危害性较大的系统漏洞。这些漏洞包括错误配置、简单口令、网络协议漏洞以及其他已知漏洞。

参考文献

[1]刘健,曹耀钦,网络隐蔽扫描技术的研究,计算机工程与设计,2004

[2]张玉清、戴祖锋、谢崇斌,安全扫描技术,清华大学出版社,2004

[3]张平、蒋凡,一种改进的网络安全扫描工具,计算机工程,2001