要想更好的保护网络不受黑客的攻击,就必须对黑客的攻击方法、攻击原理、攻击过程有深入的、详细的了解,只有这样才能更有效、更具有针对性的进行主动防护。下面通过对黑客攻击方法的特征分析,来研究如何对黑客攻击行为进行检测与防御。

  一、反攻击技术的核心问题

  反攻击技术(入侵检测技术)的核心问题是如何截获所有的网络信息。目前主要是通过两种途径来获取信息,一种是通过网络侦听的途径(如Sniffer,Vpacket等程序)来获取所有的网络信息(数据包信息,网络流量信息、网络状态信息、网络管理信息等),这既是黑客进行攻击的必然途径,也是进行反攻击的必要途径;另一种是通过对操作系统和应用程序的系统日志进行分析,来发现入侵行为和系统潜在的安全漏洞。

  二、黑客攻击的主要方式

  黑客对网络的攻击方式是多种多样的,一般来讲,攻击总是利用“系统配置的缺陷”,“操作系统的安全漏洞”或“通信协议的安全漏洞”来进行的。到目前为止,已经发现的攻击方式超过2000种,其中对绝大部分黑客攻击手段已经有相应的解决方法,这些攻击大概可以划分为以下六类:

  1.拒绝服务攻击:一般情况下,拒绝服务攻击是通过使被攻击对象(通常是工作站或重要服务器)的系统关键资源过载,从而使被攻击对象停止部分或全部服务。目前已知的拒绝服务攻击就有几百种,它是最基本的入侵攻击手段,也是最难对付的入侵攻击之一,典型示例有SYN Flood攻击、Ping Flood攻击、Land攻击、WinNuke攻击等。

  2.非授权访问尝试:是攻击者对被保护文件进行读、写或执行的尝试,也包括为获得被保护访问权限所做的尝试。

  3.预探测攻击:在连续的非授权访问尝试过程中,攻击者为了获得网络内部的信息及网络周围的信息,通常使用这种攻击尝试,典型示例包括SATAN扫描、端口扫描和IP半途扫描等。

  4.可疑活动:是通常定义的“标准”网络通信范畴之外的活动,也可以指网络上不希望有的活动,如IP Unknown Protocol和Duplicate IP Address事件等。

  5.协议解码:协议解码可用于以上任何一种非期望的方法中,网络或安全管理员需要进行解码工作,并获得相应的结果,解码后的协议信息可能表明期望的活动,如FTU User和Portmapper Proxy等解码方式。

  6.系统代理攻击:这种攻击通常是针对单个主机发起的,而并非整个网络,通过RealSecure系统代理可以对它们进行监视。

  三、黑客攻击行为的特征分析与反攻击技术

  入侵检测的最基本手段是采用模式匹配的方法来发现入侵攻击行为,要有效的进反攻击首先必须了解入侵的原理和工作机理,只有这样才能做到知己知彼,从而有效的防止入侵攻击行为的发生。下面我们针对几种典型的入侵攻击进行分析,并提出相应的对策。

  1.Land攻击

  攻击类型:Land攻击是一种拒绝服务攻击。

  攻击特征:用于Land攻击的数据包中的源地址和目标地址是相同的,因为当操作系统接收到这类数据包时,不知道该如何处理堆栈中通信源地址和目的地址相同的这种情况,或者循环发送和接收该数据包,消耗大量的系统资源,从而有可能造成系统崩溃或死机等现象。

  检测方法:判断网络数据包的源地址和目标地址是否相同。

  反攻击方法:适当配置防火墙设备或过滤路由器的过滤规则就可以防止这种攻击行为(一般是丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC地址和IP地址)。

  2.TCP SYN攻击

  攻击类型:TCP SYN攻击是一种拒绝服务攻击。

  攻击特征:它是利用TCP客户机与服务器之间三次握手过程的缺陷来进行的。攻击者通过伪造源IP地址向被攻击者发送大量的SYN数据包,当被攻击主机接收到大量的SYN数据包时,需要使用大量的缓存来处理这些连接,并将SYN ACK数据包发送回错误的IP地址,并一直等待ACK数据包的回应,最终导致缓存用完,不能再处理其它合法的SYN连接,即不能对外提供正常服务。

  检测方法:检查单位时间内收到的SYN连接否收超过系统设定的值。

  反攻击方法:当接收到大量的SYN数据包时,通知防火墙阻断连接请求或丢弃这些数据包,并进行系统审计。

  3.Ping Of Death攻击

  攻击类型:Ping Of Death攻击是一种拒绝服务攻击。

  攻击特征:该攻击数据包大于65535个字节。由于部分操作系统接收到长度大于65535字节的数据包时,就会造成内存溢出、系统崩溃、重启、内核失败等后果,从而达到攻击的目的。

  检测方法:判断数据包的大小是否大于65535个字节。

  反攻击方法:使用新的补丁程序,当收到大于65535个字节的数据包时,丢弃该数据包,并进行系统审计。

  4.WinNuke攻击

  攻击类型:WinNuke攻击是一种拒绝服务攻击。

  攻击特征:WinNuke攻击又称带外传输攻击,它的特征是攻击目标端口,被攻击的目标端口通常是139、138、137、113、53,而且URG位设为“1”,即紧急模式。

  检测方法:判断数据包目标端口是否为139、138、137等,并判断URG位是否为“1”。

  反攻击方法:适当配置防火墙设备或过滤路由器就可以防止这种攻击手段(丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC地址和IP地址MAC)。

  5.Teardrop攻击

  攻击类型:Teardrop攻击是一种拒绝服务攻击。

  攻击特征:Teardrop是基于UDP的病态分片数据包的攻击方法,其工作原理是向被攻击者发送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包以及在数据包中的位置等信息),某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。

  检测方法:对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset)是否有误。

  反攻击方法:添加系统补丁程序,丢弃收到的病态分片数据包并对这种攻击进行审计。

  6.TCP/UDP端口扫描

  攻击类型:TCP/UDP端口扫描是一种预探测攻击。

  攻击特征:对被攻击主机的不同端口发送TCP或UDP连接请求,探测被攻击对象运行的服务类型。

  检测方法:统计外界对系统端口的连接请求,特别是对21、23、25、53、80、8000、8080等以外的非常用端口的连接请求。 

  反攻击方法:当收到多个TCP/UDP数据包对异常端口的连接请求时,通知防火墙阻断连接请求,并对攻击者的IP地址和MAC地址进行审计。

  对于某些较复杂的入侵攻击行为(如分布式攻击、组合攻击)不但需要采用模式匹配的方法,还需要利用状态转移、网络拓扑结构等方法来进行入侵检测。

  四、入侵检测系统的几点思考

  从性能上讲,入侵检测系统面临的一个矛盾就是系统性能与功能的折衷,即对数据进行全面复杂的检验构成了对系统实时性要求很大的挑战。

  从技术上讲,入侵检测系统存在一些亟待解决的问题,主要表现在以下几个方面:

  1.如何识别“大规模的组合式、分布式的入侵攻击”目前还没有较好的方法和成熟的解决方案。从Yahoo等著名ICP的攻击事件中,我们了解到安全问题日渐突出,攻击者的水平在不断地提高,加上日趋成熟多样的攻击工具,以及越来越复杂的攻击手法,使入侵检测系统必须不断跟踪最新的安全技术。

  2.网络入侵检测系统通过匹配网络数据包发现攻击行为,入侵检测系统往往假设攻击信息是明文传输的,因此对信息的改变或重新编码就可能骗过入侵检测系统的检测,因此字符串匹配的方法对于加密过的数据包就显得无能为力。

  3.网络设备越来越复杂、越来越多样化就要求入侵检测系统能有所定制,以适应更多的环境的要求。

  4.对入侵检测系统的评价还没有客观的标准,标准的不统一使得入侵检测系统之间不易互联。入侵检测系统是一项新兴技术,随着技术的发展和对新攻击识别的增加,入侵检测系统需要不断的升级才能保证网络的安全性。

  5.采用不恰当的自动反应同样会给入侵检测系统造成风险。入侵检测系统通常可以与防火墙结合在一起工作,当入侵检测系统发现攻击行为时,过滤掉所有来自攻击者的IP数据包,当一个攻击者假冒大量不同的IP进行模拟攻击时,入侵检测系统自动配置防火墙将这些实际上并没有进行任何攻击的地址都过滤掉,于是造成新的拒绝服务访问。

  6.对IDS自身的攻击。与其他系统一样,IDS本身也存在安全漏洞,若对IDS攻击成功,则导致报警失灵,入侵者在其后的行为将无法被记录,因此要求系统应该采取多种安全防护手段。

  7.随着网络的带宽的不断增加,如何开发基于高速网络的检测器(事件分析器)仍然存在很多技术上的困难。

  入侵检测系统作为网络安全关键性测防系统,具有很多值得进一步深入研究的方面,有待于我们进一步完善,为今后的网络发展提供有效的安全手段。