杨迎
(北京信息职业技术学院,北京 100018)
由于网络传输层具有较强的脆弱性,网络传输层UDP协议在使用过程中常常会遭受到攻击性行为,危害网络传输层安全。因此,以网络传输层UDP协议脆弱性利用层面作为切入点,研究网络传输层UDP协议攻击性行为,是目前较为有效的分析手段。在我国,针对网络传输层UDP协议攻击性行为本身就并不多见,且主要集中在分析攻击性行为特征层面,缺乏对攻击性行为的全方位掌握,导致分析存在很大程度的局限性。为研究网络传输层UDP协议攻击性行为,必须掌握相关编程语言,从编程角度入手,精准分析网络传输层UDP协议攻击性行为。Python语言作为一种编程语言,具备互动性、解释性以及编译性多种功能,能够提高脚本的可阅读性[1]。为此,有理由将Python语言引进到网络传输层UDP协议攻击性行为研究中,通过Python语言独具的特点,实现对网络传输层UDP协议攻击性行为的包嗅探,精准判断网络传输层UDP协议攻击性行为,为确保网络传输层UDP协议安全提供支持。
Python语言最大的特点在于其自身的高敏捷性,由于Python语言功能强大,且操作简单,上手容易,成为很多黑客的攻击性行为编程软件[2-3]。基于Python语言能够编写出大量的黑客攻击性行为脚本,为攻击性行为的生成提供了APl,大大提高了攻击性行为的隐蔽度。Python语言虽然在某些特定性能不及R语言,但其操作起来的简易度远高于R语言,成为当今黑客的攻击性行为脚本编写主要应用软件。因此,本文以此为依据,基于Python语言研究网络传输层UDP协议攻击性行为,具体内容如下文所述。
在研究网络传输层UDP协议攻击性行为过程中,首先可以通过Python语言中的socket模块,扫描网络传输层UDP协议端口[4]。以IP作为网络传输层UDP协议传输中的逻辑地址,在网络传输层UDP协议中选取最具代表性的端口,并且设置安全权限为对外开放,使选取的端口成为攻击性行为最容易产生的端口节点。基于Python语言的网络传输层UDP协议攻击性行为端口扫描过程,如图1所示。
结合图1所示,本文选取的代表性端口为80、443以及65535,并采用TCP开放式扫描的方式,扫描网络传输层UDP协议攻击性行为端口,在扫描结束后,关闭TCP扫描。
在完成网络传输层UDP协议攻击性行为端口扫描的基础上,基于Python语言进行UDP协议攻击性行为的包嗅探[5-6]。设定一台PC正在基于网络传输层UDP协议向另一台PC传递数据,通过同一以太网,将数据广播到所有PC中,利用包嗅探技术,创建包嗅探程序,感知UDP协议中是否存在攻击性行为,在发现UDP协议攻击性行为后,基于Python语言将模式更改为Promiscuous,使UDP协议攻击性行为的脚本具有可阅读性,实现对UDP协议攻击性行为包嗅探。
图1 网络传输层UDP协议攻击性行为端口扫描过程图Fig.1 Network transport layer UDP protocol aggressive behavior port scanning process diagram
表1 网络传输层UDP协议攻击性行为威胁权值Tab.1 Threat weights of offensive behaviors in the network transport layer UDP
在基于包嗅探阅读网络传输层UDP协议攻击性行为脚本后,构建网络传输层UDP协议攻击性行为模型。在受到攻击性行为时,网络传输层UDP协议具有不完全限制,此时可将其视为不完全信息供方博弈。在博弈的过程中,很难对攻击者的选择偏好以及攻击环境条件进行完全掌握。并且,随机博弈会受到双方攻击和防护策略以及网络信息的运行环境等众多影响因素干扰,因此将攻击性行为看作网络脆弱性利用攻击依然会存在一定的随机性。基于此,本文建立网络传输层UDP协议攻击性行为模型,将攻击性行为设定为随机过程,将多阶段演化过程与随机博弈结合,得到攻击性行为模型。同时,将这一过程看作是多重状态,并且状态会随着时间的推移不断发生改变的过程。
假设产生网络传输层UDP协议攻击性行为时,攻击性行为中包含设备的数量表示为n,每一个可识别的主机设备n中均包括m个脆弱攻击点。此过程中,假定主机设备最多可与n-1个设备实现互联,此时可利用主机设备总台数与脆弱攻击点个数,进行脆弱性计算。公式如下。
公式(1)中,T表示为每台主机设备需要处理的脆弱点个数;T总表示为整个安全网络环境中共需要处理的脆弱性个数。再根据上述公式进一步推导出攻击性行为的最多连接弧数为:
公式(2)中,Hmax表示为攻击性行为最多连接弧数;k表示为每台主机设备的操作权限种类总数;n×k表示为在不考虑输入数据的空间大小的情况下,状态阶段的个数。利用上述公式,可以充分满足攻击性行为的复杂度,进一步满足攻防双方推演的需求。利用网络攻击图分解计算可解决攻击性行为循环攻击路径问题以及超长攻击路径问题。在实际安全网络攻击过程中,攻击性行为不需要重新获取攻击能力,即可完成对全新的安全网络环境攻击,因此循环攻击路径实际意义并不大。根据以往安全网络攻击事件表明,在实际攻击环境当中,并不会存在超长的攻击路径。因此通过上述算法可在只执行以此网络攻击图转换的前提下,一次性地完成对安全网络中各脆弱性用例威胁所对应的攻击路径。
在基于包嗅探阅读网络传输层UDP协议攻击性行为脚本后,计算网络传输层UDP协议攻击性行为威胁权值,进而判断其对网络的保密性威胁及完整性威胁。设网络传输层UDP协议攻击性行为威胁权值为Fi,可得公式(3)。
公式(3)中,m指的是网络传输层UDP协议攻击性行为威胁指标赋值;j指的是攻击性行为攻击次数,为实数;aij指的是网络传输层UDP协议攻击完整性威胁度量值;l指的是攻击性行为特征参数;b指的是网络传输层UDP协议攻击保密性威胁权值。通过公式(3),得出网络传输层UDP协议攻击性行为威胁权值。在此基础上,根据选取的代表性端口为80、443以及65535,制作网络传输层UDP协议攻击性行为威胁权值基本信息表,如表1所示。
结合表1所示,网络传输层UDP协议攻击性行为威胁权值越大,意味着网络传输层UDP协议遭受到的攻击面威胁越大。与此同时,本文结合证据不确定性推理方法,分析其威胁程度。由于在分析时,存在特殊的不确定性推理规则,因此还需要针对特殊情况进行具体分析。假设不确定性的推理规则为F,则F={b1,b2,b3,…,bn}。再假设E表示为支持F成立的假设集合,CF表示为可信度因子,则CF={c1,c2,c3,…,cn},CF主要用于对E成立的条件下,表示F的可信度。当网络安全脆弱性与证据推理具备一定评价关系时,可给定脆性点对于网络的威胁性。此时可从安全网络攻击性层面分析,利用攻击图到攻击原子i的取值范围进行映射,对攻击者达到脆弱性目标的成功率进行综合评价。最终得出的成功率越高,则说明安全网络脆弱性利用的威胁程度越大,反之,成功率越低,则说明安全网络脆弱性利用的威胁程度越小。
通过上文计算得出的网络传输层UDP协议攻击性行为威胁权值,判断网络传输层UDP协议攻击性行为类型。将网络传输层UDP协议攻击性行为看作网络传输层UDP协议脆弱性利用攻击,攻击过程中影响因素可划分为:攻击者权限要素、攻击者可行性要素、攻击者活跃性要素以及网络环境漏洞存在性要素。根据网络传输层UDP协议攻击性的一般情况,得出网络传输层UDP协议攻击性行为类型,主要包括:会话劫持、欺骗攻击以及DoS攻击。当网络传输层UDP协议攻击性行为的保密性威胁大于完整性威胁时,网络传输层UDP协议攻击性行为主要为会话劫持。
会话劫持是通过基于在网络传输层UDP协议传输数据过程中,黑客基于Python语言更改数据目标接收端的IP地址,从中拦截数据,在完成操作后,再将IP地址改回为目标接收端的IP地址[7]。通过此种方式,产生网络传输层UDP协议攻击性行为,盗用信息。
当网络传输层UDP协议攻击性行为的保密性威胁小于完整性威胁时,网络传输层UDP协议攻击性行为主要为欺骗攻击。欺骗攻击是利用ARP协议的缺陷,恶意篡改局域网内的所有报文信息,进而破坏数据完整性。
当网络传输层UDP协议攻击性行为的保密性威胁与完整性威胁大致相同时,网络传输层UDP协议攻击性行为主要为DoS攻击。DoS攻击主要是通过Python语言在网络传输层UDP协议中植入病毒,导致网络瘫痪,将网络上的大量PC并将其变为僵尸PC,实现对网络传输层UDP协议的攻击。以上3种网络传输层UDP协议攻击性行为类型,为基于Python语言的网络传输层UDP协议攻击性行为研究结果。
通过基于Python语言的网络传输层UDP协议攻击性行为研究,能够取得一定的研究成果,解决传统网络传输层UDP协议攻击性行为研究中存在的问题。由此可见,基于Python语言的网络传输层UDP协议攻击性行为研究是具有现实意义的。在后期的发展中,应加大Python语言在网络传输层UDP协议攻击性行为研究中的应用力度,为提高网络传输层UDP协议安全性提供参考。