金宪珊 季永炜 董冬伟
摘 要: 设计了一种恶意程序发布检测平台,其中的检测方法为:从HTTP请求消息中提取摘要信息;将摘要信息与恶意、安全网站识别库中的识别信息进行匹配;如果匹配不成功,则使用决策分类器对摘要信息进行分类处理;如果确定为可疑恶意网站,则生成可疑恶意资源的下载连接信息;将多个可疑恶意资源的下载连接信息进行关联,确定可疑恶意资源的网络发布信息。该方法通过网络节点图可以更好地描述恶意程序发布网络的活动,关注恶意程序分发网络的机理和网络基础架构的属性,提高恶意程序的检出率,加强网络安全。
关键词: 恶意程序; HTTP; 安全; 检测
中图分类号:TP393 文献标识码:A 文章编号:1006-8228(2021)12-37-04
Abstract: A malware publishing detection platform is designed, in which the detection methods are: extracting summary information from HTTP request messages; Matching the summary information with the identification information in the identification library of malicious and secure websites; If the matching is not successful, the decision classifier is used to classify the summary information; If it is determined to be a suspicious malicious website, generate download connection information of suspicious malicious resources; Associate the download connection information of multiple suspicious malicious resources to determine the network publishing information of suspicious malicious resources. Through the network node graph, the method can better describe the activities of the malware publishing network, pay attention to the mechanism of the malware distribution network and the attributes of the network infrastructure, so as to increase the detection rate of malware and improve the network security.
Key words: malware; HTTP; security; detection
0 引言
目前,一般的恶意程序下载攻击过程可以分为三个阶段,在第一阶段,即漏洞利用阶段,攻击者的目标是在受害者的主机上运行一小段代码,为此,攻击者首先准备一个带有下载漏洞利用驱动代码的网站[1]。当受害者访问恶意页面时,浏览器将获取并执行驱动代码。当攻击成功时,它强制浏览器执行注入的壳代码(shellcode)。在随后的第二阶段,即安装阶段,壳代码(shellcode)下载实际的恶意软件二进制文件并启动它。一旦恶意软件程序运行,在第三阶段,即控制阶段,它展现其恶意活动,通常,恶意软件连接回远程命令和控制(C&C)服务器。攻击者使用此连接发出命令,将新的可执行文件“丢弃”到受感染的主机上,以增强恶意软件的功能,并收到被盗的数据。
目前,大多数保护用户免受恶意软件攻击的技术集中在第一和第三阶段[2]。大量工作针对初始漏洞利用阶段,尝试检测包含驱动器下载漏洞的页面,并防止浏览器首先访问恶意页面[3]。例如,蜜罐客户端(honeyclient)抓取网页以快速查找具有漏洞利用代码的页面,并將这些发现转化为域和URL黑名单。攻击者通过恶意域名快速改变,使黑名单永久失效。此外,攻击者已经开始大力识别蜜罐客户端(honeyclient)的指纹(由操作系统、设备类型和主机名等识别客户端的特征),并混淆其代码以规避检测[4]。由于在安装阶段,壳代码(shellcode)通常会发出从远程服务器获取程序的HTTP请求,然后在本地安装并执行恶意软件,这可以通过简单地调用用户浏览器中的可用功能来完成此请求。从网络的角度来看,这种连接几乎不可疑,和不同的下载良性程序的合法请求基本一致。因此,急需一种新的恶意程序发布检测技术。
1 检测平台架构(图1)
恶意程序发布检测平台包括:数据采集模块、预处理模块、特征匹配模块、训练学习模块、分类处理模块和发布信息确定模块。数据采集模块采集用于发起文件下载的HTTP请求消息。预处理模块从HTTP请求消息中提取摘要信息。特征匹配模块将摘要信息与恶意\安全网站识别库中的识别信息进行匹配。
如果信息匹配成功,则确定为恶意网站或是可信网站,训练学习模块将一定数量的摘要信息按照一定比例分别作为训练样本和测试样本,对所述决策分类器进行训练。如果匹配不成功,则分类处理模块使用训练学习模块,通过已经训练好的决策分类器,对摘要信息进行分类处理,确定为可疑恶意网站或可信网站。如果确定为可疑恶意网站,则发布信息确定模块基于此摘要信息对应的HTTP请求消息,生成可疑恶意资源的下载连接信息。发布信息确定模块将多个可疑恶意资源的下载连接信息进行关联处理,确定可疑恶意资源的网络发布信息。
通过对大量的HTTP请求消息进行采集,并进行HTTP短摘要的提取,利用机器学习算法进行恶意程序分发特征分析、获得可疑恶意下载候选连接,生成可疑恶意资源的下载连接网络节点图,通过对包含恶意主机的网络节点图的不断叠加,达到预期规模的恶意程序的分发网络图,利用网络节点图并综合恶意程序下载活动的聚类,获得恶意程序下载网络的基础架构。
2 平台处理流程(图2)
数据采集预处理模块从数据采集点获得HTTP请求数据,HTTP请求数据可以是在线数据或之前采集、记录的抓包文件,例如.pacp文件等。數据采集预处理模块从采集到的在线数据或抓包文件中的HTTP消息提取HTTP短摘要,HTTP短摘要包括源IP地址和目的IP地址、端口号、URI、用户代理(UA)HTTP头字段和前K个字节内容的哈希值等,K为是可配置参数。
已知恶意/良性域记录模块是已知的良性域和恶意域的列表,该列表来源于可信的数据源头,良性域集从Alexa一些提供详细服务器数据所获取的信息组成[5]。
HTTP特征匹配模块从数据采集和预处理模块获得HTTP短摘要,根据不同特征要求,为每一条HTTP短摘要记录进行处理,形成特征匹配后的数据。特征匹配后,如果数据中的IP地址或URI与已知恶意/良性域记录模块中的记录匹配,则输出到有标签数据,否则为无标签数据,多个无标签数据形成无标签数据集。有标签数据集合可以按照预设比例分别作为训练集和测试集,由学习模块训练分类器时使用,例如,预设比例可以为20%为测试集、80%为测试集等。获得学习后的分类器模型对无标签的数据进行分类,确定每个HTTP数据代表的是可疑恶意下载的候选连接还是良性连接。
如果当前的HTTP数据被分类器判定为良性预连接,则完成对当前数据的处理;如果当前的HTTP数据被分类器判定为可疑恶意下载的候选连接,则根据HTTP数据的原始HTTP短摘要生成可疑恶意下载的候选连接网络节点图。
识别可疑的连接的方法是根据恶意下载程序的行为特征进行的,这些行为特征通常与恶意活动相关联,包括文件名的突变检测、分布式托管和域名变更检测、恶意软件专用主机检测和漏洞利用程序下载主机检测等。
每一个HTTP短摘要分别被提取恶意程序发布网络特征相关的数据。对于文件变异特征,特征提取模块从HTTP短摘要中查找与单个URI相关联的下载记录,并且下载超过n个不同文件(由文件的哈希值确定是否为不同文件),n为不同文件个数的阈值,通常在10到50之间。
对于分布主机和域名变换特征,特征提取模块从HTTP短摘要中查找HTTP请求的同一服务器(IP地址)上是否托管不同的域名、该服务器唯一顶级域名数量、匹配URI路径的数量和匹配文件名的数量、每个域名URI数量、服务文件类型类型和域名变化等数据。首先,利用聚类的方法发现内容发布网络,即如果两个域同时托管了哈希值相同的文件,那么认为这两个域属于统一聚类;如果在两个聚类中分别有至少一个域托管了相同哈希值的文件,则将这两个聚类联系起来;内容分布网络包括两个或两个以上的域的聚类。
然后,统计与此下载记录相对应的可疑内容发布网络的特征信息,其中,所述关于可疑内容发布网络的特征信息包括:顶级域名数量、URI路径数量、文件数量、文件类型。
查询历史下载记录,如果确定摘要信息中的域名、IP地址和下载文件仅与一个URI相对应,则确定与此摘要信息对应的可疑恶意资源通过专用主机下载的特征信息。对于恶意程序专用主机的特征,特征提取模块从HTTP短摘要中查找域名和IP地址,如果该域名和IP地址包括了一个可执行文件的下载并最多托管了一个HTML网页的URI,则需要提取相关的记录。
对于漏洞利用程序下载主机的特征,特征提取模块从HTTP短摘要中获取与摘要信息中的目的IP地址和用户代理(User-Agent),寻找与同一IP地址联系了一次以上且使用不同的User-Agent记录,并统计User-Agent的数量;将此文件下载记录以及User-Agent的数量作为关于漏洞利用的特征信息。
特征提取模块可以根据需要添加新的与恶意程序发布相关的其他特征,从HTTP短摘要中提取与新添加的特征相关的数据为进一步的处理分析做准备。
3 恶意资源识别
基于摘要信息对应的HTTP请求消息生成可疑恶意资源的下载连接网络节点图,下载连接网络节点图中的节点包括:IP地址、域名、URL路径、文件名和下载文件等。将多个可疑恶意资源的下载连接网络节点图进行叠加处理,并将多个可疑恶意资源的下载连接网络节点图中的相同节点进行关联处理,形成可疑资源的分发网络图;其中,多个可疑恶意资源的下载连接网络节点图中的相同节点为重叠状态;基于可疑资源的分发网络图获取链接到相同的可疑恶意资源的网络路径信息以及可疑恶意资源的发布主机,用以确定发布可疑恶意资源的网络架构。
恶意程序发布网络图经初始化后执行一系列迭代,生成可疑候选主机相关的恶意活动网络图,每次获得一个可疑恶意下载的候选连接网络节点图,就将其添加在恶意程序发布网络图中,直至图形达到其预设大小的限制。最终,链接到相同文件的不同URI关联在一起的主机、路径和行为形成恶意程序发布网络的机理和网络基础架构。
如图3所示,当目标网络是ISP网络时,数据的采集点为ISP网络的出现点(POP),能够获得广泛和充分的发起了文件下载的HTTP请求数据,有利于恶意主机的发现。如图4所示,当目标网络是大型企业网络时,数据的采集点为企业网的出口交换机,在企业网的出口可以获得所有企业网对互联网发出的发起了文件下载的HTTP请求数据。
当分类器确定了一个HTTP记录为可疑恶意候选连接后,生成可疑恶意下载网络节点图。图5是单个可疑恶意资源的下载连接网络节点图,在图的左下角是图例,可以看到对于单个可疑恶意资源的下载连接网络节点图包括与连接相关的URL、全程域名、域名、客户端、服务器、URL文件名、URL路径、压缩的有效载荷和解压后的有效载荷,基本上反映了单独一次内容下载的主要特征。
但是,单个可疑恶意资源的下载连接网络节点图不能全面反映恶意下载网络的全貌,它只能反映出一系列恶意下载的步骤之一,并且观察单次下载时,恶意下载和良性下载表现的情况区别不大。因此需要将被判断为可疑恶意资源的下载连接叠加在一起,綜合判断恶意程序下载的网络基础架构。如图6所示,多个可疑恶意资源的下载连接网络节点图叠加后形成的可疑资源的分发网络图。图6中叠加了5个可疑恶意下载的网络节点图,可以看到尽管5个可疑恶意下载请求的URL并不相同,但是它们最终都指向了两个恶意程序Malware1.exe和Malware2.exe,根据这个线索,可以跟踪下载这两个恶意程序的客户端和服务器之前的行为,最终了解与Malware1.exe和Malware2.exe相关的恶意软件发布网络的原理和基础架构。
4 结束语
本文的恶意程序发布检测平台,从发起了文件下载的HTTP请求消息中提取摘要信息,将摘要信息与恶意\安全网站识别库中的信息进行匹配,匹配成功的记录将按照一定的比例分别作为训练集和测试集训练分类器,匹配不成功的,则使用已经训练好的决策分类器对摘要信息分类处理,若确定为可疑恶意网站,则生成可疑恶意资源的下载连接信息,将多个可疑恶意资源的下载连接信息进行关联处理,确定可疑恶意资源的网络发布信息;利用机器学习的方法,基于已知恶意程序下载特征的提取和已知数据集,对分类器进行训练和学习,对新的网络流量数据检测出可疑恶意资源,并生成其网络节点图并进行关联,得到恶意程序发布网络的信息和网络基础架构,可以消除误报。网络节点图可以更好的描述恶意程序发布网络的活动,忽略攻击者可以轻易改变的特征,而关注恶意程序分发网络的机理和网络基础架构的属性,能够检测到以前没检测出的恶意网络活动,进而增加恶意程序的检出率,提高网络安全。
参考文献(References):
[1] 陆涛.恶意程序检测算法的研究与实现[J].现代电子技术,2017.40(3):85-88
[2] 王乐乐,汪斌强,刘建港等.基于递归神经网络的恶意程序检测研究[J].计算机科学,2019.46(7):86-90
[3] 刘佳,张平,刘培玉等.新型入侵增量识别入侵检测模型[J].计算机应用与软件,2019.36(3):320-326
[4] 王丽娜,王斐,刘维杰.面向SDN的安全威胁及其对抗技术研究[J].武汉大学学报(理学版),2019.2:153-164
[5] 任益辰,肖达.基于程序双维度特征的恶意程序相似性分析[J].计算机工程与应用,2021.57(1):118-124