当前位置:文档之家› 网络安全扫描技术概述

网络安全扫描技术概述

网络安全扫描技术概述在经济全球化的今天,信息技术已成为促进经济发展、社会进步的巨大推动力:当今社会高度的计算机化信息资源对任何人无论在任何时候、任何地方都变得极有价值。

不管是存储在工作站中、服务器里还是流通于互联网上的信息都已转变成为一个关系事业成败关键的策略点,这就使得保证信息的安全变得格外重要。

然而,随着互联网络的飞速发展,网络入侵行为日益严重,因此,网络安全成为人们关注的焦点。

安全扫描技术是一类重要的网络安全技术。

安全扫描技术与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。

通过对网络的扫描,网络管理员可以了解网络的安全配置和运行的应用服务,及时发现安全漏洞,客观评估网络风险等级。

网络管理员可以根据扫描的结果更正网络安全漏洞和系统中的错误配置,在黑客攻击前进行防范。

如果说防火墙和网络监控系统是被动的防御手段,那么安全扫描就是一种主动的防范措施,可以有效避免黑客攻击行为,做到防患于未然。

网络安全扫描技术是计算机安全扫描技术的主要分类之一。

网络安全扫描技术主要针对系统中不合适的设置脆弱的口令,以及针对其它同安全规则抵触的对象进行检查等。

网络安全扫描技术是一种基于Internet远程检测目标网络或本地主机安全性脆弱点的技术。

通过网络安全扫描,系统管理员能够发现所维护的Web服务器的各种TCP/IP端口的分配、开放的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞。

网络安全扫描技术也是采用积极的、非破坏性的办法来检验系统是否有可能被攻击崩溃。

它利用了一系列的脚本模拟对系统进行攻击的行为,并对结果进行分析。

这种技术通常被用来进行模拟攻击实验和安全审计。

网络安全扫描技术与防火墙、安全监控系统互相配合就能够为网络提供很高的安全性。

一次完整的网络安全扫描分为三个阶段:第一阶段:发现目标主机或网络。

第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等。

如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息。

第三阶段:根据搜集到的信息判断或者进一步测试系统是否存在安全漏洞。

网络安全扫描技术包括有PING扫射(Ping sweeP)、操作系统探测(Operating system identification)、如何探测访问控制规则(firewalking)、端口扫描(Port scan)以及漏洞扫描(vulnerability scan)等。

这些技术在网络安全扫描的三个阶段中各有体现。

PING扫射用于网络安全扫描的第一阶段,可以帮助我们识别系统是否处于活动状态。

操作系统探测、如何探测访问控制规则和端口扫描用于网络安全扫描的第二阶段,其中操作系统探测顾名思义就是对目标主机运行的操作系统进行识别;如何探测访问控制规则用于获取被防火墙保护的远端网络的资料;而端口扫描是通过与目标系统的TCP/IP端口连接,并查看该系统处于监听或运行状态的服务。

网络安全扫描第三阶段采用的漏洞扫描通常是在端口扫描的基础上,对得到的信息进行相关处理,进而检测出目标系统存在的安全漏洞。

网络安全扫描技术的两大核心技术就是端口扫描技术与漏洞扫描技术,这两种技术广泛运用于当前较成熟的网络扫描器中,如著名的Nmap和Nessus就是利用了这两种技术。

下面将分别介绍这两种技术的原理。

端口扫描技术原理:一个端口就是一个潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息,从而发现系统的安全漏洞。

它使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种手段。

端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应。

通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。

端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它仅能对接收到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统的详细步骤。

端口扫描主要有经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。

此外还有间接扫描和秘密扫描等。

要想理解它们的工作原理,你首先应该对TCP/IP数据包的内容以及TCP的秘密握手机制有所了解。

除了携带发送和接受方的IP地址和端口号外,TCP的报头还包含一个序列号和一些起着特殊作用的标记位,如:SYN,ACK和FIN。

当系统间彼此说“HELLO”或道“GOODBYE”时,就会用到所谓的握手机制。

让我们先看看如何利用TCP/IP的握手机制来建立一个连接。

当你想网上冲浪,或者想TELNET到远程主机时三次握手机制就会为你生成一个这样的连接。

它的工作原理大致如下:握手的第一步,一台计算机首先请求和另外一台计算机建立连接,他通过发送SYN请求来完成,也即将前面提到的SYN标记位置位。

消息的内容就像是说:“HI,听着,我想和你的机子端口X说话,咱们先同步一下,我用序列号Y来开始连接。

”端口X表示了连接的服务类型。

两台计算机间的每条信息都有一个由发送方产生的序列号,序列号的使用使得双方知道他们之间是同步的,而且还可以起到丢失信息时或接收顺序错误时发送警告信息的作用。

握手的第二步,接收到SYN请求的计算机响应发送来的序列号,它会将ACK标记位置位,同时它也提供自己的序列号,这个做法类似于说:“OH,亲爱的,我已经收到了你的号码,这是我的号码。

”到现在为止,发起连接建立请求的计算机认为连接已经建立起来,然而对方却并不这样认为,对方还要等到它自己的序列号有了应答后才能确认连接已经建立起来。

因此现在的状态可以称为“半连接”。

如果发起连接请求的计算机不对收到的序列号作出应答,那么这个连接就永远也建立不起来,而正因为没有建立连接,所以系统也不会对这次连接做任何记录。

握手的第三步,发起连接请求的计算机对收到的序列号作出应答,这样,两台计算机之间的连接才算建立起来。

两台计算机说:“GOODYBYE”时的握手情况与此类似:当一台计算机没有更多的数据需要发送了,它发送一个FIN信号(将FIN标记位置位)通知另一端,接受到FIN的另一端计算机可能发送完了数据,也可能没发送完,但它会对此作出应答,而当它真正完成所有需要发送的数据后,它会再发送一个自己的FIN信号,等对方对此作出应答后,连接才彻底解除。

全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect()扫描和TCP反向ident 扫描等。

其中TCP connect()扫描的实现原理如下所述:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。

连接由系统调用connect开始。

如果端口开放,则连接将建立成功;否则,若返回-1则表示端口关闭。

建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。

如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。

半连接(SYN)扫描是端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。

现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描等。

SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。

缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。

FIN秘密扫描就是向它的目的地一个根本不存在的连接发送FIN信息,如果这项服务没有开,那么目的地会响应一条错误信息,但如果是有这项服务,那么它将忽略这条信息。

这样,扫描者的问题“你运行X吗”就有了答案,而且还不会在系统中有所记录。

漏洞扫描技术原理:漏洞扫描技术主要是检查目标主机是否存在漏洞。

它主要通过以下两种方法来检查目标主机是否存在漏洞:在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在;通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等。

若模拟攻击成功,则表明目标主机系统存在安全漏洞。

基于网络系统漏洞库,漏洞扫描大体包括CGI漏洞扫描、POP3漏洞扫描、FTP漏洞扫描、SSH 漏洞扫描、HTTP漏洞扫描等。

这些漏洞扫描是基于漏洞库,将扫描结果与漏洞库相关数据匹配比较得到漏洞信息;漏洞扫描还包括没有相应漏洞库的各种扫描,比如Unicode遍历目录漏洞探测、FTP 弱势密码探测、OPENRelay邮件转发漏洞探测等,这些扫描通过使用插件(功能模块技术)进行模拟攻击,测试出目标主机的漏洞信息。

下面就这两种扫描的实现方法进行讨论:(1)漏洞库的匹配方法:基于网络系统漏洞库的漏洞扫描的关键部分就是它所使用的漏洞库。

通过采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后再在此基础之上构成相应的匹配规则,由扫描程序自动的进行漏洞扫描的工作。

这样,漏洞库信息的完整性和有效性决定了漏洞扫描系统的性能,漏洞库的修订和更新的性能也会影响漏洞扫描系统运行的时间。

因此,漏洞库的编制不仅要对每个存在安全隐患的网络服务建立对应的漏洞库文件,而且应当能满足前面所提出的性能要求。

(2)插件(功能模块技术)技术:插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。

添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。

插件编写规范化后,甚至用户自己都可以用perl、c或自行设计的脚本语言编写的插件来扩充漏洞扫描软件的功能。

这种技术使漏洞扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的编程工作,使漏洞扫描软件具有强的扩展性。

现有的安全隐患扫描系统基本上是采用上述的两种方法来完成对漏洞的扫描,但是这两种方法在不同程度上也各有不足之处。

下面将说明这两种方法中存在的问题,并针对这些问题给出相应的完善建议:(1)系统配置规则库问题:网络系统漏洞库是基于漏洞库的漏洞扫描的灵魂所在,而系统漏洞的确认是以系统配置规则库为基础的。

但是,这样的系统配置规则库存在其局限性:①如果规则库设计的不准确,预报的准确度就无从谈起;②它是根据已知的安全漏洞进行安排和策划的,而对网络系统的很多危险的威胁却是来自未知的漏洞,这样,如果规则库更新不及时,预报准确度也会逐渐降低;③受漏洞库覆盖范围的限制,部分系统漏洞也可能不会触发任何一个规则,从而不被检测到。

相关主题