基于恶意代码的网络行为分析与识别研究
2019-10-31彭子俊
彭子俊
摘要:为了在恶意代码行为中对各种变异的病毒、恶意插件、僵尸网络、攻击性代码进行识别和分析,提出了基于恶意代码的网络行为分析与识别方法。根据恶意代码凭借自身的攻击性强的优势严重地制约着网络的良性发展,直接威胁着互联网用户的信息安全的特点,设计恶意代码流量采集实验部署,给出了如何将Tor流量与正常加密數据流量区分开来,从而达到可疑数据的准确筛选。最后通过实例对这些恶意代码和网络攻击行为分析透彻,讨论了利用无监督机器学习算法对Tor流量进行分类。
关键词:恶意代码;tor网络;流量分类
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)22-0055-04
开放科学(资源服务)标识码(OSID):
Analysis and Recognition of Network Behavior Based on Malicious Code
PENG Zi-jun
(Guangdong University of Technology,Guangzhou 510006, China)
Abstract:In order to identify and analyze various variant viruses, malicious plug-ins, botnets and offensive codes in malicious code behavior, a malicious code-based network behavior analysis and identification method is proposed. According to the characteristics of malicious code, which seriously restricts the healthy development of the network and directly threatens the information security of Internet users, this paper designs an experimental deployment of malicious code traffic collection, and gives how to distinguish Tor traffic from normal encrypted data traffic, so as to achieve the accurate screening of suspicious data. Finally, the malicious code and network attacks are thoroughly analyzed by examples, and the classification of Tor traffic using unsupervised machine learning algorithm is discussed.
Key words:Malicious code; tor network; traffic classification
网络是一把双刃剑,为人们的生活和工作带来极大的便捷的同时,我们还要尽量地避免由于网络安全防范不当带来的一些损失和问题。网络安全是各个单位部门、家庭企业、个人团体都必须面对的问题,不可避免地需要去正视、去面临,如果这些网络安全问题日益突出,则会在很大程度上导致计算机病毒的泛滥和网络攻击行为的大面积发生。目前造成网络安全问题的原因和因素包括很多种,但是从产生的原因为主要已经可以大致分为两个方面。一方面是技术问题,目前市面上使用的一些主流计算机操作系统大多数都存在一定的BUG和漏洞,包括一些应用软件,这些系统或者软件虽然已经具备了强大的功能,安全加密措施也比较完善,但是“金无足赤”,仍然在某些方面存在着一定的安全漏洞,而别有用心的攻击者恰恰是发现和利用了这些客观存在的漏洞,进行恶意代码的入侵和数据破坏。由于在通常情况下,计算机的病毒预防和治理技术一般要落后于各种新病毒或者恶意代码的攻击,具有一定的滞后性。因此,就会在某种程度上造成计算机病毒或攻击代码在一定范围内大量的存在和蔓延;另一方面是管理,由于不同单位或者部门的重视程度和网络管理人员的计算机专业技术水平参差不齐,使网络安全防范体系弱化或者根本就是纸上谈兵。在现实生活中,由于网络管理不善和管理人员专业水准低下所造成的网络安全问题层出不穷,给各个企业和部门带来了极大的无形损失。有时候系统漏洞没有及时被发现,相关的修复措施相对比较滞后,这些由于管理疏忽所导致的安全防护措施的不到位,给恶意人员和攻击者提供了极大的攻击机会。
1 恶意代码行为分析研究
任何事物的发展都具有两面性,互联网也不例外,它在方便和简化人们的生活的同时,也具有一定的安全隐患性,如果无限地放大网络优势性,而疏于防范网络的潜在安全隐患,将会给人们带来无法弥补的遗憾和一系列的数据安全、个人隐私、恶意攻击等网络常见的问题。通过总结以往的网络安全和恶意代码攻击案例,可以将目前比较猖獗的、破坏力比较大、影响比较恶劣的恶意代码攻击行为进行梳理如下:
(1)僵尸网络(Botnet)进行恶意攻击所采用的手段不是唯一的,有时候会综合运用多种代码恶意攻击和病毒传播手段,其主要目的和病毒感染机理是将大量的受害者主机被动地感染bot程序(僵尸程序)病毒,以便达到控制被感染主机的目的,使整个网络受控于恶意攻击者。僵尸网络从某种方法上分析是恶意地利用了被攻击计算机中的硬件设施服务漏洞和各种软件配置的安全隐患端口,并且将具有攻击性的恶意代码进行一定的伪装。随着功能各异、形式不同的服务型应用软件的层出不穷,很多表面看似绿色、友好、无毒的娱乐型软件被不同群体的用户大量安装或者下载使用,特别是一些具有公共服务或者社交功能的网络服务程序,不可避免地存在某些方面的“非技术”性安全漏洞,从而导致了安全隐患突出的、可供恶意攻击者利用的、人为因素存在的安全漏洞的种类不断增多,并且在数量上呈现突发增长的趋势。虽然目前僵尸网络的呈现形式趋向于多样化,但是大多数的讲师网络控制端与被控制端之间的控制命令传递和交互主要是通过Tor进行数据信息通信,因此,在进行而已代码行为分析时,对Tor网络研究和Tor流量识别具有很强的实用性和显著的效果。目前为止,对Tor流量识别主要侧重于匿名通信关系研究,而用于匿名通信流量的识别和阻塞的分析探索则显得相对匮乏。
(2)DDoS攻击虽然并不是最新的、破坏力最强的攻击手段,但是仍然不可小觑,基于DDoS攻击的行为和案例更是不胜枚举,让广大网络用户额外头疼、屡防不止,这种恶意攻击在很多情况下很难及时发现,往往是等到受害主机被攻击或者数据被盗取之后,才被发现和知晓,因此,如何快速地、預先地检测到或者预测到攻击行为,成为目前网络安全进一步完善和提升的瓶颈。通过定期地分析和统计被感染的僵尸主机的DDos攻击行为流量特点,可以在一定程度上查找出攻击来源,避免恶意代码的进一步破坏行为的发生。
虽然恶意代码攻击性强,攻击行为恶劣,对广大互联网用户的数据安全破坏严重,但是这种恶意代码的预防和抵御方法还是比较有效果的,对恶意代码的分析方法研究,可以归纳为三个基本环节:
(1)恶意行为描述。根据攻击案例中的恶意攻击行为特点分析获取的、已知的恶意代码,将恶意攻击行为按照攻击目标和攻击范围进行划分,例如针对文件访问攻击、网络传输过程攻击等,在这些不同攻击对象功能构件中,动态地分析代码恶意攻击行为的关键步骤和彼此之间存在的必然因果联系和时序关系,同时使用有穷状态机的方式描述这些代码的恶意攻击行为。
(2)全局状态模型建立。对于计算机中存在的或者外界访问中出现的可疑程序,首先采用相关方法对其进行反汇编和反编译操作,然后成功地将其转换为对应的中间语言,最后根据转换完毕的中间语言,相应地生成程序下推自动机,从而达到准确描述全局状态空间的目的。
(3)恶意行为存在性验证。使用恶意代码行为分析模型检验方法,如果可疑的程序中确实存在相应的恶意攻击行为,则动态地输出疑似的恶意攻击行为路径,并且依据恶意行为分析模型,从关键环节对其进行详细的恶意代码网络行为分析。
本文的恶意代码网络行为分析模型主要是在Christodorescu等人提出的恶意代码分析模型的基础上,进行适当引用和扩展分析。该模型应用的主要原理和过程是使用有穷状态机(Finite States Automata, FSA)描述网络恶意代码的攻击行为,下推自动机(Pushdown Automata, PDA)用于动态地描述可疑程序的全局状态空间(这里主要是指可疑程序的执行路径空间),最后,使用模型检验方法,全面地、动态地检查可疑的程序中是否存在某些恶意代码的网络攻击行为。
恶意代码的网络攻击行为的FSA使用六元组的方式,即[A=(V,Σ,S,δ,S0,F)],其中对这些字母符号进行说明如下:
[V={v1,...,vk}]代表的是自由变量集合;
[∑={Γ1,...,Γn}]是以自由变量为参数的抽象语法树(函数调用或控制结构等)集合;
[S]是状态的有穷集合;
[δ?S×∑→2S]为转换函数;
[S0?S]是初始状态的非空集合;
[F?S]是结束状态的非空集合,所有恶意行为序列使得[A]到达结束状态。
对于[V={v1,...,vk}]的一个绑定[Β],使用[Β(vi)]替换[A]中所有的[vi]([1≤i≤k])得到有穷状态机称作[Β(A)]。每个自由变量在程序中的所有出现存在一致的取值。
为了表示程序的全局状态空间,即包含函数调用的程序执行路径集合,需要一个栈来记录函数调用的返回地址,由栈产生的语言是上下文无关语言,则存在一个下推自动机[Ρ]接受[T]。令[Ρ=(P,Γ,Δ)],其中[P]为程序的控制点的有穷集合;[Γ]为程序的栈符号集合,即栈指针的值域;[Δ?(P×Γ)×(P×Γ*)]是一个有穷的转换集合,表示[P]接收一个输入符号,从一个配置到达另一个配置。
分析器以程序的PDA[P]和恶意行为FSA[A=(V,Σ,S,δ,S0,F)]作为输入,并判定[L(P)?(B∈AllL(B(A))]语言是否为空。[L(P)]是[P]对应的语言,[ΒAll]是所有对[V]中变量绑定的集合。即检测器决定是否存在一个绑定[Β]使得语言[P]和[B(A)]的交集非空。根据自动机理论,有算法能够计算一个PDA和FSA交集生成的PDA接受的语言是否为空。若算法返回了一个非空集合,则在[P]中存在恶意行为,检测器报告恶意行为对应的执行路径。
2 恶意代码流量采集实验部署
在恶意代码攻击与防范的博弈中,很多设计精良的通信和网络技术被恶意攻击者所利用,例如比较突出的Tor匿名通信技术,该技术的初衷是通过匿名网络进行通信传输,然而却被别用用心的不法分子利用,反而成了恶意代码攻击行为的温床,一定程度上阻碍了网络正常通信的正常实施,威胁网络用户的数据信息安全。因此,加强防范匿名网络造成的恶意代码攻击和僵尸网络的形成刻不容缓。
针对以上情况,本文在进行恶意代码流量分析的实验部署中,主要通过基于报文长度分布的Tor匿名通信流量识别方法,进行匿名通信流量识别,为恶意代码的攻击行为分析检测提供新的、可行性的研究方法。为了使分析结果更加清晰,在进行实验部署的过程中尽量做到步骤简洁,实验环境的搭建主要是集中在一台配置相对较高的物理计算机上实现,宿主主机的网卡配置为普通以太网卡,并且在网卡上虚拟绑定多个IP地址,网络流量采集拓扑图如图3.1所示。实际配置中将IP地址192.168.0.2(攻击机IP)和192.168.1.2(控制机IP)均绑定到宿主主机网卡上。宿主主机同时也作为监控服务器,通过VMware软件安网关虚拟机(Roo)和虚拟操作系统(windows 7)。网关上有三个网络接口。其中eth0 连接外网,eth1连接内网。网关的另一网络接口eth2连接内部管理监控网络,使之能够远程对网关进行控制,并能够对网关捕获的攻击数据进行进一步分析。网关是与外部网络的唯一连接,所有流入流出网络流量都将通过它,所以在网关上能够实现对网络数据流的控制和捕获。
为了可以捕获攻击者更详细的信息,需要在Win7终端上安装Sebek客户端,将Sebek-Win32-3.0.4.zip通过网络共享拷贝到虚拟机中,解压后执行Setup.exe进行安装。
在流量采集中,宿主主机、网关、虚拟终端的IP地址按照表1进行分配。
3 实验数据及结果分析
在实验过程中,由于Tor网络的数据流量和通信规模随着时间的推移不断增长,大量的用户访问会直接导致网络拥塞现象的发生,从而很难分清楚所使用的检测模式。当考虑通过流量分析对互联网通信数据进行分类时,需要用到3种技术:精确匹配技术,启发式匹配技术和机器学习技术。因为Tor采用了强加密策略且支持任意端口通信,因此通过简单的配置选项即可实现精确匹配。
为了确定能否将Tor流量与正常加密数据流量区分开来,我们通过仿真实验生成一组数据用于比较。为了降低混杂变量的影响,所有阶段在相同的隔离测试网络环境下完成,在仿真实验时还用到周期性回到洁净且已知状态的虚拟机快照。仿真实验获得3组结果,如表2所示。
采集来的数据以1MB大小的文件存储,然后与mergecap相融合并经过NetAI处理,最终生成可由Weka使用的ARFF格式的文件。NetAI可识别出采集文件中的数据流,并生成可作为分类属性使用的一组统计量。
选择的所有算法均可成功分类Tor上的HTTPS和HTTP数据,分类精度在90%以上,但Adaboost无法对Tor上的HTTPS数据进行有效分类。性能最优的随机森林算法对Tor上HTTPS数据的分类精度达到93.7%,虚警率只有3.7%。Tor上HTTPS的分类难度较低,分类精度达到97.7%,虚警率只有0.3%。这些机器学习算法的实验结果如表3所示。
利用无监督机器学习算法对Tor流量分类也取得了一定成功后,然后我们利用启发式分类算法进行实验。生成报文尺寸直方图后,不同样本集间的显著差异如图3所示。
使用Tor作為通信代理会导致一些额外开销,在受控条件下产生的额外开销足以将其与正常加密流量区分开来。在实际网络中利用产生的上述开销及当前侦听技术,便可将Tor结点检测出来。
将Tor层通信封装起来的加密层似乎并没有实现Tor结点间通信规模的加密。这个现象在构成各个会话的报文结构中尤其明显;Tor会话所占比例很大,足以匹配Tor协议中的512字节单元。
本文实验中的仿真数据还很有限,无法覆盖真实世界中的所有情况。真实Tor网络的变化特点和噪声可能使本文分类方法失效。
4 结束语
网络安全虽然老生常谈,但是目前仍然是各个单位部门、企业、团体都必须面对的问题,不可避免地需要去正视、去面临,如果这些网络安全问题日益突出,则会在很大程度上导致计算机病毒的泛滥和网络攻击行为的大面积发生。本文在基于恶意代码的基础上进行网络行为分析研究,通过恶意代码流量采集实验部署,尝试如何将Tor流量与正常加密数据流量区分开来,以期达到可疑数据的准确筛选。由于本文研究内容有限,在下一步的研究中应当开发相关的软件来实现Tor用户的自动检测并将其与网络隔离,并且利用Tor网络真实用户的实时报文数据展开研究。
参考文献:
[1] 赵明涛.抗DDos攻击的Tor匿名通信安全性增强研究[D].兰州理工大学,2017.
[2] 陈美玲.基于流量分析的Tor内容分类研究[D].北京交通大学,2017.
[3] BalykA,IatsykovskaU,KarpinskiM,et al. A survey of modern IP traceback methodologies[C]. IEEE,International Conference on Intelligent Data Acquisition and Advanced Computing Systems:Technology and Applications,2015.
[4] Aghaei-ForoushaniV,Zincir-Heywood A N.Autonomous system based flow marking scheme for IP-Traceback[C] . Network Operations and Management Symposium ,2016.
[5] HakemBeitollahi,GeertDeconinck. Analyzing well-known countermeasures against distributed denial of service attacks[J] . Computer Communications ,2012 (11).
【通联编辑:代影】