摘要:采用确定的有限状态自动机理论对复杂的网络攻击行为进行形式化描述,建立了syn-flooding等典型攻击的自动机识别模型。通过这些模型的组合可以表示更为复杂的网络攻击行为,从而为研究网络入侵过程提供了一种更为直观的形式化手段。
关键词:计算机网络;有限状态自动机;网络攻击
0引言
随着计算机网络的普及应用,网络安全技术显得越来越重要。入侵检测是继防火墙技术之后用来解决网络安全问题的一门重要技术。该技术用来确定是否存在试图破坏系统网络资源的完整性、保密性和可用性的行为。这些行为被称之为入侵。随着入侵行为的不断演变,入侵正朝着大规模、协同化方向发展。面对这些日趋复杂的网络入侵行为,采用什么方法对入侵过程进行描述以便更为直观地研究入侵过程所体现出的行为特征已成为入侵检测技术所要研究的重要内容。显然,可以采用自然语言来描述入侵过程。该方法虽然直观,但存在语义不确切、不便于计算机处理等缺点。tidwell提出利用攻击树来对大规模入侵建模,但攻击树及其描述语言均以攻击事件为主体元素,对系统状态变化描述能力有限[1,2]。随着系统的运行,系统从一个状态转换为另一个状态;不同的系统状态代表不同的含义,这些状态可能为正常状态,也可能为异常状态。但某一时刻,均存在某种确定的状态与系统相对应。而系统无论如何运行最终均将处于一种终止状态(正常结束或出现故障等),即系统的状态是有限的。系统状态的转换过程可以用确定的有限状态自动机(deterministic finite automation,dfa)进行描述。wWW.lw881.com这种自动机的图形描述(即状态转换图)使得入侵过程更为直观,能更为方便地研究入侵过程所体现出的行为特征。下面就采用自动机理论来研究入侵过程的形式化描述方法。
1有限状态自动机理论
有限状态自动机m是一种自动识别装置,它可以表示为一个五元组:
2入侵过程的形式化描述
入侵过程异常复杂导致入侵种类的多种多样,入侵过程所体现出的特征各不相同,采用统一的形式化模型进行描述显然存在一定的困难。下面采用有限状态自动机对一些典型的入侵过程进行描述,尝试找出它们的特征,以寻求对各种入侵过程进行形式化描述的方法。
下面采用有限状态自动机理论对syn-flooding攻击等一些典型的入侵过程进行形式化描述。
2.1syn-flooding攻击
internet中tcp协议是一个面向连接的协议。当两个网络节点进行通信时,它们首先需要通过三次握手信号建立连接。设主机a欲访问服务器b的资源,则主机a首先要与服务器b建立连接,具体过程如图1所示。首先主机a先向服务器b发送带有syn标志的连接请求。该数据包内含有主机a的初始序列号x;服务器b收到syn包后,状态变为syn.rcvd,并为该连接分配所需要的数据结构。然后服务器b向主机a发送带有syn/ack标志的确认包。其中含有服务器b的连接初始序列号y,显然确认序列号ack为x+1,此时即处于所谓的半连接状态。主机a接收到syn/ack数据包后再向服务器b发送ack数据包,此时ack确认号为y+1;服务器b接收到该确认数据包后状态转为established,至此,连接建立完毕。这样主机a建立了与服务器b的连接,然后它们就可以通过该条链路进行通信[4]。
上面为tcp协议正常建立连接的情况。但是,如果服务器b向主机a发送syn/ack数据包后长时间内得不到主机a的响应,则服务器b就要等待相当长一段时间;如果这样的半连接过多,则很可能消耗完服务器b用于建立连接的资源(如缓冲区)。一旦系统资源消耗尽,对服务器b的正常连接请求也将得不到响应,即发生了所谓的拒绝服务攻击(denial of service,dos)。这就是syn-flooding攻击的基本原理。
syn-flooding攻击的具体过程如下:攻击者intruder伪造一个或多个不存在的主机c,然后向服务器b发送大量的连接请求。由于伪造的主机并不存在,对于每个连接请求服务器b因接收不到连接的确认信息而要等待一段时间,这样短时间内出现了大量处于半连接状态的连接请求,很快就耗尽了服务器b的相关系统资源,使得正常的连接请求得不到响应,导致发生拒绝服务攻击。下面采用有限状态自动机描述syn-floo-ding攻击过程。
2.2ip-spoofing入侵过程
攻击者想要隐藏自己的真实身份或者试图利用信任主机的特权以实现对其他主机的攻击,此时攻击者往往要伪装成其他主机的ip地址。假设主机a为服务器b的信任主机,攻击者intruder若想冒充主机a与服务器b进行通信,它需要盗用a的ip地址。具体过程[5]如下:
(1)攻击者通过dos等攻击形式使主机a瘫痪,以免对攻击造成干扰。
(2)攻击者将源地址伪装成主机a,发送syn请求包给服务器b要求建立连接。
(3)服务器b发送syn-ack数据包给主机a,此时主机a因处于瘫痪状态已不能接收服务器b的syn-ack数据包。
(4)攻击者根据服务器b的回应消息包对后续的tcp包序列号y进行预测。
(5)攻击者再次伪装成主机a用猜测的序列号向服务器b发送ack数据包,以完成三次握手信号并建立连接。
分别表示land攻击、syn-flooding攻击和ddos攻击。通信函数表示为communication(res-host, des-host, syn-no, ack-no)。其中res-host、des-host分别为源节点和目的节点地址,syn-no、ack-no分别为同步和应答序列号。通信及其他函数集具体定义如下:
2.3ip分片攻击
数据包在不同的网络上传输时,由于各种网络运行的协议可能有所差异,不同物理网络的最大传输单元mtu(即最大包长度)可能不同;这样当数据包从一个物理网络传输到另一个物理网络时,如果该网络的mtu不足以容纳完整的数据包,那么就需要利用数据包分解的方法来解决。这样大的数据包往往分解成许多小的数据包分别进行传输。攻击者常常利用这一技术将其攻击数据分散在各个数据包中,从而达到隐蔽其探测或攻击行为的目的[6]。
对于teardrop等典型的ip分片攻击,其特征是ip包中的ip_off域为ip_mf,而且ip包经过计算,其长度域ip_len声明的长度与收到包的实际长度不同。这样被攻击者在组装ip包时,可能把几个分片的部分重叠起来,某些有害的参数可能被加了进去,从而引起系统状态的异常。
3结束语
攻击过程的形式化描述对于直观地理解各种复杂的攻击过程是相当重要的。实际上无论对于哪一种类型的网络攻击行为,入侵检测系统对其进行检测的过程也就是启动相应的自动机模型对其攻击特征进行识别的过程。鉴于攻击行为的复杂性,很难采用统一的自动机模型识别各种网络入侵行为,目前只能对各个入侵过程构造相应的自动机模型。但各个模型间并不是孤立的,它们之间存在一定的联系,某个模型可能对应另一个模型的某一个状态,或者对应一个状态转移函数,那么,通过构造各种入侵过程的自动机检测模型并灵活地组合它们,就可以检测各种复杂的网络攻击行为。由此可见,自动机理论为网络入侵过程提供了一种有效、直观的形式化描述手段。
参考文献:
[1] tidwell t,larson r,fitch k,et al. modeling internet attacks:proceedings of the 2001 ieee workshop on information assurance and security[c].[s.l.]:[s.n.],2001:54-59.
[2]苏一丹,李桂.基于dfa的大规模入侵建模方法研究[j].计算机工程与应用,2003,39(28):197-199.
[3]蒋总礼,姜守旭.形式语言与自动机理论[m].北京:清华大学出版社,2003.
[4]刘湘辉,殷建平,张玲,等.利用有限状态机分析tcp协议握手过程的安全问题[j].计算机工程与科学,2002,24(4):21-23.
[5]陈晓苏,李永辉,肖道举.基于ip欺骗攻击的状态分析法研究[j].华中科技大学学报:自然科学版,2003,31(5):3-5.
[6]张普兵,郭广猛,廖成君.internet中的电子欺骗攻击及其防范[j].计算机应用,2001,21(1):32-34.