1.端口扫描技术
一个端口就是一个潜在的通信通道,也就是一个入侵通道。通过对目标计算机的TCP/IP服务端口发送探测数据包,并记录分析目标主机的响应,推知端口提供的服务或信息,同时将反馈情况与漏洞特征库进行比较,或通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,进而发现系统的安全漏洞。
2.全连接扫描
全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect扫描和TCP反向ident扫描等。
其中,TCP connect扫描的实现原理是:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接成功;若返回则表示端口关闭。若连接成功,响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。
3.半连接(SYN)扫描
若端口扫描没有完成一个完整的TCP连接,建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描等。
4.漏洞库的匹配方法
基于网络系统漏洞库的漏洞扫描关键部分就是它所使用的漏洞库。通过采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后再在此基础之上构成相应的匹配规则,由扫描程序自动进行漏洞扫描工作。
5.插件技术
插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。插件编写规范后,甚至用户自己都可以用perl、c或自行设计的脚本语言编写的插件来扩充漏洞扫描软件的功能。这种技术使漏洞扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的编程工作,使漏洞扫描软件具有较强的扩展性。
6.漏洞扫描技术
漏洞扫描主要通过以下两种方法来检查目标主机是否存在漏洞:一是在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在;二是通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等。若模拟攻击成功,则表明目标主机系统存在安全漏洞。
漏洞库信息是基于网络系统漏洞扫描的主要判断依据。如果漏洞库信息不全面或得不到及时更新,不但不能发挥漏洞扫描的作用,还会误导系统管理员,从而对系统的安全隐患不能采取有效措施并及时消除。
完善漏洞库信息不但应具备完整性和有效性,也应具有简易性,这样即使是用户自己也易于对漏洞库进行添加配置,从而实现对漏洞库的及时更新。比如漏洞库在设计时可以基于某种标准(如CVE标准),这样便于扫描者的理解和信息交互,使漏洞库具有比较强的扩充性,更有利于以后对漏洞库的更新升级。