网络攻击与防御方法的研究

本文作者:admin       点击: 2006-08-10 00:00
前言:
网络安全问题的分析

计算机网络安全包括计算机安全、通信安全、操作安全、访问控制、实体安全、系统安全、网络站点安全,以及安全管理和法律制裁等诸多内容。尤其涉及计算机网络上信息的保密性、完整性、可用性、真实性和可控性几个方面。
网络安全保护的核心是如何在网络环境下保证数据本身的秘密性、完整性与操作的正确性、合法性与不可否认性。而网络攻击的目的正相反,其立足于以各种方式通过网络破坏数据的秘密性和完整性或进行某些非法操作。因此可将网络安全划分为网络攻击和网络安全防护两大类。下面就对网络攻击和网络安全防护作进一步的分析研究。

网络攻击手段可以从两个层面来区分,一是理论攻击,即密码学意义上的攻击,只专注于其攻击概念或攻击过程、算法,而不考虑具体的技术实现;二是技术攻击,即与特定网络协议、操作系统及应用程序相关,存在明确可操作的攻击步骤,攻击者可借助一定的分析手段与攻击工具来达到特定的攻击目的。密码学意义上的理论攻击可分为对加密算法的攻击,对签名算法的攻击、对密钥交换和认证协议的攻击等。技术攻击有多种分类方式,如根据使用的攻击工具可分为扫描工具攻击、破解工具攻击、炸弹工具攻击、窃听工具攻击、网络监听、分析工具攻击等方式;按照网络边界的概念(网络边界是指采用不同安全策略的两个网络连接处,即单一网络与外部网络发生信息交换的部分),可分为远程攻击和内部用户未授权的攻击,例如IP Spoofing攻击、放置特洛伊木马程序的攻击等;内部攻击主要是本地用户获取系统管理员的高级权限的攻击,如缓冲区溢出攻击等。

实施网络安全技术的最终目的不外乎是:访问控制、认证、保密、确保数据完整性及不可否认性。访问控制通过限制用户的访问权限,来保证网络资源的合法使用;认证多指身份认证,确认身份主要通过口令鉴别、双因素鉴别、CHAP鉴别协议、Kerberos系统等方式实现;保密即保护信息不暴露给未授权掌握该信息的实体;确保数据完整性指对违反安全策略,改变数据价值和存在的防护;确保不可否认性指提供证据解决通信交换中一方事后否认曾发生过交换而产生的纠纷。所有网络安全保护可以说都是围绕以上5点展开的。同样,与我们对攻击手段的划分相对应,安全保护技术也可分为理论防护与技术防护两层,两者的关系与理论攻击和技术攻击的关系类似。

常见的网络攻击

这里我们将对现存的大多数网络攻击手段归纳分析,对理论攻击将着重于介绍对加密算法攻击的技术性实现。而技术攻击则对网络监听、拒绝服务攻击、基于网络边界而言的远程攻击和内部未授权用户对系统的攻击进行分析。

● 对加密算法的攻击
对加密算法的攻击主要集中于破译某段密文或分析加密密钥。通常破译者可对密码进行惟密文攻击、已知明文攻击、选择密文攻击和选择明文攻击及穷举攻击,对特定算法还有特定攻击方法,如对DES这类迭代分组密码可选择差分密码分析法、能量攻击法,对公钥算法RSA可采用公用模攻击、低加密指数攻击、定时攻击等方法。

● 网络监听
网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理信道上传输的所有信息,而不管信息的发送方和接受方是谁。所以进行通信的信息必须进行加密,否则只要使用一些网络监听工具就可以截获包括口令和账号在内的信息资料。大部分的传输介质如Ethernet、FDDI、Token-ring、模拟电话线、无线接入网上都可实施网络监听,其中尤以Ethernet与无线接入网最为容易,因为这两者都是典型的广播型网络。

● 拒绝服务攻击(DoS)
一般来说,拒绝服务攻击有些是用来消耗带宽,有些是消耗网络设备的CPU和内存。例如对UDP的攻击,原理就是使用大量的伪造的报文攻击网络端口,造成服务器的资源耗尽,使系统停止响应甚至崩溃。也可以使用大量的IP地址向网络发出大量真实的连接,来抢占带宽,造成网络服务的终止。
拒绝服务一般分两种:一是试图破坏资源,使目标无人可以使用此资源。如破坏或摧毁信息:删除文件、格式化磁盘、切断电源等。 二是过载一些系统服务或者消耗一些资源,通过这样的方式可以造成其它用户不能使用这个服务。这两种情况大半是因用户错误或程序错误造成的,并非针对性的攻击。针对网络的拒绝服务攻击主要包括服务过载攻击、消息流攻击、Paste式攻击、SYN Flooding攻击、过载攻击、Mailbomb攻击。

SYN Flooding 攻击主要是在一个主机接收到大量不完全连接请求而超出其所能处理的范围时,就会发生SYN flooding攻击。在通常情况下,希望通过TCP连接来交换数据的主机必须使用3次握手进行任务初始化。SYN Flooding攻击就是基于阻止3次握手的完成来实现的。SYN Flooding的攻击原理是:首先,攻击者向目标主机发送大量的SYN请求,用被挂起的连接占满连接请求队列。一旦目标主机接收到这种请求,就会向它所认为的SYN报文的源主机发送SYN/ACK报文作出应答。一旦存储队列满了,接下来的请求就会被TCP端忽略,直至最初的请求超时并被重置(通常为75s),每次超时过后,服务器端就向未达的客户端发送一个RST报文,此时攻击者必须重复以上步骤来维持拒绝服务的攻击。

SYN Flooding攻击的重点就在于不断发送大量的SYN报文,其攻击在空间性上表现得极为明显。如图1,从源到汇,攻击者可从不同路径向被攻击主机持续发送连接请求,也可将数据包拆分为几个传输再在目的地会合,以隐藏被攻击主机。检测这种攻击的困难就在于目标主机接收到的数据好像来自整个Internet。

分布式拒绝服务(DDoS)攻击通过探测扫描大量主机,从而找到可以入侵的目标主机,通过一些远程溢出漏洞攻击程序,入侵有安全漏洞的目标主机并获取系统的控制权,在被入侵的主机上安装并运行DDoS分布端的攻击守护进程,然后利用多台已被攻击者控制的机器对另一台单机进行扫描和攻击,在大小悬殊的带宽之比下被攻击的主机很快失去反应能力。整个过程都是自动化的,攻击者可以在几秒钟内入侵一台主机并安装攻击工具,这样,在一个小时之内就可以入侵数千台主机。

● 远程攻击
远程攻击指在目标主机上没有帐户的攻击者获得该机器的当地访问权限,从机器中过滤出数据、修改数据等的攻击方式。远程攻击的一般过程:①收集被攻击方的有关信息,分析被攻击方可能存在的漏洞;②建立模拟环境,进行模拟攻击,测试对方可能的反应;③利用适当的工具进行扫描;④实施攻击。
IP Spoofing是一种典型的远程攻击,它通过向主机发送IP包来实现攻击,主要目的是掩盖攻击者的真实身份,使攻击者看起来像正常的用户或者嫁祸于其他用户。

IP Spoofing攻击过程见图2,具体描述如下:①假设I企图攻击A,而A信任B。②假设I已经知道了被信任的B,使B的网络功能暂时瘫痪,以免对攻击造成干扰。因此,在实施IP Spoofing攻击之前常常对B进行 SYN Flooding攻击。③必须确定A当前的ISN。④I向A发送带有SYN标志的数据段请求连接,只是信源IP改成了B。A向B回送SYN+ACK数据段,B已经无法响应,B的TCP层只是简单地丢弃A的回送数据段。⑤I暂停,让A有足够时间发送SYN+ACK,然后I再次伪装成B向A发送ACK,此时发送的数据段带有I预测的A的ISN+1。如果预测准确,连接建立,数据传送开始。如果预测不准确,A将发送一个带有RST标志的数据段异常终止连接,I重新开始。
IP Spoofing攻击利用了RPC服务器仅仅依赖于信源IP地址进行安全校验的特性,攻击最困难的地方在于预测A的ISN。

● 系统攻击
系统攻击指一台机器上的本地用户获取Unix高级用户权限或Windows NT管理员权限的攻击方法。缓冲区溢出就是典型系统攻击。它通过向程序的缓冲区写超出其长度的内容,造成缓冲区溢出,从而破坏程序的堆栈,使程序转去执行其它的指令,如果这些指令是放在有Root权限的内存里,那么,一旦这些指令得到了运行,入侵者就以Root的权限控制了系统。造成缓冲区溢出的原因大多是程序没有仔细检查用户输入的参数。缓冲区溢出攻击占所有系统攻击的80%以上。

入侵者要达到目的通常要完成两个任务:一是在程序的地址空间里安排适当的代码;二是通过适当的初始化寄存器和存储器,让程序跳转到安排好的地址空间执行。可以根据这两个任务对缓冲区溢出攻击进行分类:
1)在程序的地址空间里安排适当的代码的方法。
2)将控制程序转移到攻击代码的方法。
3)植入综合代码和流程控制技术。

通常可以采用下列方法防止缓冲区溢出:①正确地编写代码;②设定非执行的缓冲区;③检查数组边界,使之不溢出;④检查程序指针的完整性。
除了上述5种攻击外,其它还有对系统配置弱点的攻击,对软件设计弱点的攻击,恶意程序(特洛伊木马、病毒)攻击,物理(偷窃加密机、盗取用户身份标识、抢劫数据中心或公钥存储中心)攻击等。

保护网络安全的技术

安全保护技术分为理论防护和技术防护,其中密码学技术属于理论防护,但其算法的实现和使用依赖于技术防护,访问控制技术、安全通信协议、入侵检测和防火墙则更多地属于技术防护。

● 密码学技术
Internet安全技术的核心无疑是现代密码学,密码学主要研究各类密码原语,包括加解密算法,认证理论与技术以及理论性的密码协议,属于面向单一网络的安全技术。现在,在分组密码(单钥体制)方面已有TRIPLE-DES、IDEA,而且密钥长至少为128比特的AES也已出台,公钥密码(双钥体制)方面,RSA体制、椭圆曲线密码体制等基于大数分解和离散对数的加密方案已经较为成熟,密码学意义上的密码协议也有很多,如密钥交换协议、秘密共享协议、比特承诺协议、数字货币协议等。

● 访问控制技术
访问控制的实现可分为自主访问控制(DAC)和强制访问控制(MAC),最近又出现了基于角色的访问控制(RBAC),也称为非自主访问控制,大大简化了权限管理工作。最常见的Internet访问控制应用无疑是防火墙,它属于面向网络边界的一种安全技术,是设置在专用网和Internet之间的安全系统,干预两网间的任何消息传递。防火墙在体系结构上有不同的类型:双重宿主主机体系结构、主机过滤体系结构、子网过滤体系结构。不同的体系结构防火墙有不同的组成部分,如双网口,非军事区域,参数网络、堡垒主机等等。当前访问控制的另一类趋势是在网络更低层实现,如屏蔽路由技术,在第三层的路由器上而非防火墙上决定各数据包的流向。

● 安全通信协议
用于Internet的安全通信协议目前已发展了很多种,有的是新协议,如ATM论坛的Security Specification 1.0、SSL,有的是在原有协议基础上拓展安全性,如IPsee、s/MIME。下面分层介绍各类安全协议:
1)Internet层以下有PPTP协议,其可以完成数据安全封装,利用隧道协议有可能构造起较为安全的虚拟专用网VPN。

2)Internet层的主要安全协议有IPsec v2、Oakley(Oakley Key Determination Protocol)、SKIP(Simple Key Management Protocol)及ISAKMP(Internet Security Association and Key Management  Protocol)。此外,基于IPv6的更安全的邻机发现协议将淘汰ARP协议,具有认证功能且与算法无关的 RIPv2、OSPFv2,IDRP(Inter-Domain Routing Protocol)会取代现有的RIP、OSPF、BGP路由协议。

3)传输层主要有SSL v3和TLS(Transport Layer Security)协议。SSL协议已能支持DES、IDEA、RC-4、MD5算法、TLS协议在大多数特性上是和SSL相似的。
4)应用层安全协议数量最多,有Kerberos v5、PEM、S-HTTP等。

● 入侵检测
入侵检测属于面向网络边界的一种安全技术,其目的在于监控资源的使用,检测系统配置的正确性和安全漏洞,检测系统程序和数据的完整性,并提供报警。以检测时机分为实时检测和事后追踪;以入侵检测的信息来源分为基于主机、基于网络和混合性的入侵检测。入侵检测工具通常和审计工具及日志工具相配合,共同完成攻击前的告知、攻击后的分析任务,它还可结合蜜罐策略,引诱攻击者攻击一假目标,与此同时记录下详尽的审计信息以判定攻击者身份。入侵检测可以采取数据挖掘技术,指纹技术、分布式计算技术、移动代理技术等提高检测率。

网络防御体系

作用不同的网络,他们的防御系统体系是不同的,本文提出了一种一般性的防御系统,其表示可见图3。该图列出了各种防御应用到任何网络时的分层情况。
(1)正在保护的网络  这一层的网络安全性能最为重要,在设计网络时,要做好安全措施。
(2)网络周围的防御系统  该层会保护“正在保护的网络”与外部网络的每个连接,是对已知攻击做出反应的防御系统。它是内部网络的城墙。
(3)人为的防御  该层介入了人的干涉。在防御中,人可以对攻击者采取行动。
(4)被动的监视  被动监视系统属于基础设施部分,它会记录下已经发生的事件,接收日志信息,并对它进行解释,根据记录的信息来判断网络是否受到攻击。
(5)主动的监视  主动监视本质上是你迫使防御系统回答一系列难题。例如,你可以询问防御系统,某种保护是否仍在工作,通过请求观察防御系统是否记录了适当的信息。
基于上述的网络防御体系,网络防御技术主要分为以下几类:(1)物理隔离(2)逻辑隔离——防火墙(3)防御来自网络的攻击——抗攻击网关(4)防止来自网络上的病毒——防病毒网关(5)身份认证——网络的鉴别、授权和管理系统(6)加密通信和虚拟专用网——VPN(7)入侵检测和主动防卫(IDS)——IDS(8)网管、审计和取证——集中网管

结语

本文对各种常见的网络攻击和防御方法进行了具体的分析,并提出了“网络防御体系”模型,它们都还需要进一步的研究提高。同时,随着网络及其应用的广泛发展,安全威胁呈现出攻击的种类、方法和总体数量越来越多、破坏性和系统恢复难度也越来越大。这就要求我们对攻击方法有更进一步的研究;对安全策略有更完善的发展,建立起一个全面的、可靠的、高效的安全体系。