APP下载

基于Hilbert曲线-残差网络的勒索病毒分类方法

2023-06-15孙超远蒋秋华徐东平

计算机技术与发展 2023年6期
关键词:勒索可视化卷积

孙超远,蒋秋华,徐东平,李 琪

(1.中国铁道科学研究院 研究生部,北京 100081;2.中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)

0 引 言

2022年2月,中国互联网络信息中心发布了第49次《中国互联网络发展状况统计报告》[1]。数据表明,截至2021年12月,国内网民规模和互联网普及率均创新高。互联网的快速普及与快速发展产生若干漏洞,这些漏洞被黑客所利用并进行攻击,给互联网安全造成了巨大的威胁。恶意软件便是持续攻击互联网网络空间安全其中一个严重威胁。恶意软件被黑客通过各种形式安装在用户主机中,窃取用户敏感信息,对计算机操作系统造成破坏。勒索软件作为恶意软件的一种特殊形式,自1989年第一个勒索软件“AIDS”诞生以来,便给网络空间安全带来了严峻的挑战。

勒索病毒主要分为四大类型:第一种是文件加密类勒索病毒,此类病毒进入用户系统以后,通常会搜索系统中的数据文件,使用多种加密算法对文件进行加密,以此索要赎金,破解存在很大的难度;第二类是数据窃取类勒索病毒,此类与文件加密类病毒类似,通常采用混合加密算法对用户数据进行加密,但攻击者通过甄别和窃取用户重要数据,通过公开重要数据,胁迫用户支付勒索赎金,如Conti勒索病毒已经攻击并感染政府、重点企业等300多家,窃取并公开大量数据;第三类是系统加密类勒索病毒,此类病毒同样通过各类加密算法对系统磁盘主引导记录、卷引导记录等进行加密,阻止用户进行磁盘访问,影响用户设备的正常启动和使用;第四类是掩盖真相类勒索病毒,此类勒索病毒对用户设备屏幕进行锁定,通常伪装成系统蓝屏错误或以全屏形式呈现勒索信息的图像,导致用户无法正常登录和使用设备,进而进行赎金勒索。

据CNCERT《2020年中国互联网网络安全报告》[2],仅2020年就捕获78.1万余个勒索病毒,数量较2019年上升6.8%。同时,勒索病毒的攻击方式和技术手段也在不断升级,近年来,勒索病毒逐渐从“广撒网”转向定向攻击,主要目标是一些大型高价值机构,更具有针对性,技术手段从利用漏洞入侵过程以及随后的内网横向移动过程的自动化、集成化、模块化、组织化特点愈发明显。勒索团伙将加密文件窃密回传,在网站或暗网数据泄露站点上公布部分或全部文件,以威胁受害者缴纳赎金。RaaS(Ransomware-as-a-Service,勒索即服务)商业模式的出现,也使得攻击者进行勒索病毒攻击成本大大降低,勒索病毒变种数量急剧增加。

在检测勒索病毒的基础上,对勒索病毒进行分类,不仅能够加快应急响应速度,也使得安全工程师能够更快速有效地进行针对性缓解,同时能够快速检测勒索病毒的新变种。目前国内对勒索病毒的研究大多数是对勒索病毒进行二分类,即检测是否是勒索病毒,而对勒索病毒更进一步的分类工作较少,同时其分类方法各有不足,目前大多勒索病毒自带环境检测,因此动态分析无法完全获得勒索病毒动态特征,且成本较高。静态分析往往需要人工通过工具提取静态特征如签名、操作码等,遇到大规模的分类时,具有极大的局限性。

自可视化方法提出以来,人们得以通过视觉图片来感受二进制文件的整体结构及特征,得到了广泛使用。同时,二进制文件的图像可视化使得安全分析人员可以通过卷积神经网络的图像识别及分类来达到二进制文件的识别及分类,实现自动化,大大减少工作量。在可视化勒索软件分类方法的基础上,该文利用Hilbert[3]曲线对勒索病毒进行可视化,得到对应的图像,利用基于ResNet[4]改进的三种残差神经网络模型提取特征进行图像分类,使用集成学习投票生成最终结果,从而达到勒索软件的分类。

1 背景知识及相关工作

自勒索病毒首次出现于1989年以来[5],随着勒索病毒的技术升级,不断迭代,RaaS商业模式的出现,使得勒索病毒及其变种数量屡创新高。在实践中,攻击者往往对现有勒索病毒利用工具进行改造或转换,生成新的变种,因此这些病毒往往在行为或代码上存在一定的相似性,也即同一家族的勒索病毒,这种特征使得对根据勒索病毒产生的变种来源进行分类,也即勒索病毒家族分类,在理论上变得可行。

目前对勒索病毒分析的方法主要分为两种:动态和静态。动态分析通过在虚拟机或沙箱中运行,获取勒索病毒的进程行为、API调用序列、注册表访问、通信行为等,提取勒索病毒的行为特征,进行进一步的分析。Hampton[6]通过API调用检测特定活动来识别勒索软件,Takeuchi等人[7]通过提取API调用行为,以2-grams表示,结合SVM检测勒索病毒。Scaife[8]设计了勒索软件预警系统。Usharani[9]通过分析网络流量,对勒索病毒通信行为溯源从而识别勒索病毒。Cabaj[10]设计开发了SDN检测系统。Zavarsky[11]通过监视文件系统、注册表行为检测勒索病毒。Cohen[12]对勒索病毒运行时转储内存镜像分析,使用Volatility框架提取特征,进行训练。Moussaileb[13]采用诱饵文件,遍历文件系统,对勒索病毒进行检测。郭春生[14]通过API调用对勒索软件实现了家族分类。龚琪[15]对API序列进行对比,进行了勒索病毒同源性分析。此类方法需要专家提供专门的运行环境进行分析,手动筛选特征,缺乏自动化,此外,越来越多的勒索病毒代码中自带指纹识别以逃避检测,在检测到疑似沙箱虚拟环境时,勒索病毒只会运行一些正常的功能,并不会触发恶意代码的执行。这给安全分析师带来了困难。静态分析往往通过PEiD、IDA Pro、OllyDbg等工具从代码上进行分析,一般不会受到加壳、混淆等技术的影响。Zhang H等人[16]将N-gram、操作码、TD-IDF结合,对勒索软件进行家族分类,Xiao[17]在操作码中引入了自注意力,使用DBN进行训练。但此类方法同样需要人工工具分析处理,逆向思路难度大,效率低下,不适合大规模样本分类。

自Conti等人[18]在2008年首次提出恶意软件可视化的想法后,很多人在此领域做出了大量的贡献。2010年Kinable等[19]提取API调用,通过图形表示,使用聚类算法进行图匹配,实现恶意代码分类。2011年Nataraj[20]进行了恶意软件分类的实验,取得了98%的准确率。2020年郭春[21]进一步将可视化用于勒索软件分类,取得了96.7%的分类准确率,展示了勒索软件可视化分类的前景。与之前可视化方法不同的是,该文采用了保留数据特征更好的Hilbert曲线化图像,使用更深层次的不同迁移模型进行验证,最终结果使用集成学习进行投票,从而增加分类结果的鲁棒性。结果表明,该方法在实验中取得了更高的准确率。

2 基于Hilbert曲线化图像的勒索病毒分类方法

勒索病毒分类方法的流程主要包括三部分:Hilbert可视化、深度模型训练、集成学习投票,如图1所示。

图1 分类流程

第一部分,利用binvis[22]工具使用Hilbert[22]曲线将勒索软件可视化成Magnitude图;第二部分,使用基于ResNet-50的迁移学习模型ResNeSt-50[23]、ResNeXt-50[24]和DenseNet-161[25]对Magnitude图进行特征提取并训练,得出各自模型的分类结果;第三部分,使用集成学习模块对三种模型结果进行投票,得到最终测试结果。

2.1 Hilbert曲线与可视化

在日常分析工作中,分析人员遇到未知的二进制文件时,使用常规的查看文件方法难以掌握文件的整体结构。因此,通过将代码转换为图像定义一系列的规则实现二进制文件的可视化,可以使得分析人员快速了解文件代码结构以辅助分析。此方法同样适用于勒索病毒文件,而对于同一家族的勒索病毒,因其具有相似结构块的代码,所以其可视化图像应保持局部结构相似性或者纹理特征一致性。同一家族图像相似,不同家族图像结构不同,从而通过可视化图像实现勒索病毒家族分类。在前人所做的可视化工作中,往往都是将勒索病毒PE文件反编译得到二进制文件,然后将文件中的二进制比特串分割为若干长度为8比特的字串,从左到右逐行遍历,使用取值范围为[0,255]的像素点表示文件中的元素,转换为对应的灰度图。但这种“之”字形的遍历即Zigzag曲线往往不是很令人满意——小比例元素(即只占几条线的元素)信息往往会丢失,在一维空间中一些彼此靠近的数据点映射到二维空间时会跨越不同的位置同样导致局部信息可能丢失。

在计算机科学中,常常采用空间填充曲线进行降维或升维,将n维空间数据与1维连续空间数据互相映射,Hilbert曲线便是一种常用的空间填充曲线方法。

Hilbert曲线的构造方式可递归生成。在阶数为1的情况下,将一个平面划分成四个相等的小正方形,然后以顺时针方向从左下象限小正方形的中心点开始到右下象限的小正方形结束,用线段将四个正方形的中心点连接起来。增加阶数时,分别将每个小正方形进一步分割成四个相等的更小的正方形,依据前述步骤将其中心连接起来,然后翻转部分正方形以将相邻图形衔接起来,如此反复,无限分割连接,如图2,得到最终填满整个平面的Hilbert曲线。结果表明,在将一维样本序列映射到二维图像上的同时保持一维上相邻元素在二维上尽可能彼此接近,从而最大程度地保留了局部性信息,而卷积神经网络中提取特征的一个重要特性便是局部不变性,两者相互吻合,意味着能够提取到更多的特征,并且得到的图像大小不会因文件大小不同而尺寸不同。由图2(c)、(d)中黑点可看出,随着阶数的增加,一维样本序列中的某个元素点在二维图像中,趋于一个固定的位置,使得即使改变阶数,也不用重新训练卷积神经网络,大大减少了训练成本。因此,该文采用的空间填充曲线按照Hilbert曲线[24]规则对一个勒索病毒的二进制文件中的代码进行采样,同时增加更多的颜色映射的粒度来获得更多的细节,并将相应的像素写入图像,转换为Magnitude图,实现可视化。

图2 Hilbert曲线的构造

由图3中可看到,勒索病毒文件十六进制中资源节在Magnitude图中一一对应,代码中的内部结构信息在Magnitude图中得到了很好的保留,连续的数据块都保存在一个可视块中。图4为两个不同家族勒索病毒Magnitude图的比较。可以直观地看出两个勒索病毒家族Conti和Stop之间的差异。

图3 PE文件的简要结构及对应Magnitude图的资源节表示

图4 两个不同家族勒索病毒Magnitude图的比较

2.2 深度模型训练

残差神经网络在图像分类领域具有很强的学习能力和迁移能力,可以选择从上游预训练好的模型迁移到下游分类任务中,自动提取图像的特征,进行分类,大大减少了重新架构网络模型的复杂度,降低了对数据集的要求。因此,该文采用三种均基于ResNet-50的深度迁移模型:ResNeSt-50、ResNeXt-50和DenseNet-161。ResNet出现于2015年,在此之前的卷积神经网络模型加入更深的卷积层数后,模型准确率存在瓶颈,精确度上升到一定上限后甚至会出现退化问题,ResNet网络使用残差连接,在神经网络的侧面添加了恒等变换,同时取消各个卷积层之间的池化层,解决了深度CNN模型训练困难的问题,其网络结构图如图5所示。

图5 ResNet核心卷积结构

图5是ResNet网络中的核心卷积结构—残差块,中间是一个堆积层结构(由几层堆积而成),当输入为x时,其学习到的特征记为H(x),在引入右边的残差连接进行学习时,令其堆积层学习到残差F(x)=H(x)-x,这样原始的学习特征是F(x)+x,从而确保深层网络模型的精确度。而ResNet-50网络结构包含5个卷积模块和1个全连接模块,前5个模块有50个卷积层,用于计算提取特征,全连接模块包含1个平均池、1个全连接层和1个softmax,用于结果分类。

在CNN中,通过卷积模块对输入图像提取特征,文中输入图像为Magnitude,在模型中输入为RGB三维图像,因此为三维卷积。

假设一个图像的输入格式x为[hin,win,c],其中hin、win、c分别代表图像的长、宽、维度(通道数),卷积核kernel的格式为[fk,fk,c],步长为stride,输入图像与卷积核进行卷积后的结果会损失图像边界处的信息,因此卷积操作前需要对原矩阵边界进行填充。ResNet对图像像素采用same方式填充,这种填充方式能够最大程度地保留图像的原始特征,卷积时对图像填充数为padding。每次卷积计算后得到的特征映射y为[hout,wout,c],其中特征映射尺寸大小的计算公式及填充圈数分别为:

经过多轮卷积得到最终的图像特征图。

该文分别使用三种迁移模型进行特征提取和训练,分别使用各自的Softmax层得出分类结果。

ResNeSt-50在ResNet-50的基础上添加了分散注意力机制,可以跨越不同的特征图组实现特征图注意力,能够更好地提取到全局特征。

ResNeXt-50对ResNet-50进行了改进,将单个卷积结构替换成了组卷积,采用了多分支的策略,添加了一个新的维度-基数以表示组卷积中卷积单元的数量,此结构可以在模型参数量不变的情况下提升精度。

DenseNet-161将ResNet-50的残差连接加到极致,计算公式由xl=Hl(xl-1)+xl-1变为xl=Hl([x0,x1,…,xl-1]),将每一层的输出都直连到后面所有的层的输入,使得后面的层融合了前面多层特征的特性,同时这种向后跳跃的结构能够缓解一定程度的过拟合。

三种迁移模型在提取到特征之后,均使用average Pooling层替代全连接层传递给Softmax进行分类,该文在原有三种迁移模型的基础上修改最后Softmax层,使其适合本实验结果分类,每种模型输出各自的预测结果标签。

2.3 集成学习投票

在2.2节中,分别得到三种模型预测结果后,因三种迁移模型均基于ResNet-50模型,相互之间具有较小的同质性,因此使用集成学习进行投票,将三个模型预测结果中出现次数最多的类别作为最终类别标签,降低方差,从而提高模型的鲁棒性。

3 实验设计与分析

3.1 实验数据集

目前勒索病毒没有公开的数据集,因此实验的数据集主要来自VirusShare,另用VirutTotal进行补充,一共收集了18个家族的勒索病毒。因采用转换为Magnitude图像进行识别分类,需要对数据集样本进行加壳识别,同时为了确保样本的勒索家族标签,对样本通过VirutTotal报告分析进行筛选。实验还在360平台下载可信(Benign)样本,以区分模型对正常样本和勒索病毒样本的二分类结果。在对数据集样本进行筛选后,确定最终的数据集包含17个家族的勒索病毒样本2 409个以及可信样本192个,其中QNACRYPT为Linux平台的ELF勒索病毒,其余均为Windows平台的PE文件。实验数据集构成如表1所示。

表1 勒索病毒家族实验数据集

3.2 评估指标

该文采用分类精度accuracy、准确率precision、召回率recall和F1-score四个性能指标[26]来评估模型的性能。四个指标的计算公式分别如下:

3.3 实验设置与结果

在预训练阶段,由于转换的Magnitude图尺寸大小为255×1 020,而模型输入图像大小为224×224,因此使用ReSize函数将图像统一调整为224×224,对图片处理节点采用了数据增强,随机裁剪图像,缩放,随机更改亮度、对比度和饱和度,添加随机噪声等手段增强图像质量,特别是在预测阶段对Test样本进行了TTA(Test Time Augmentation)来提高预测精度。优化器使用AdamW,其效果与Adam+L2正则化相同,但是计算效率更高。学习率采用cosine,计算公式为:

其中,ηmin表示最小学习率,ηmax表示初始学习率,也是最大学习率,Tcur表示当前的epoch,Tmax表示cos周期的1/2。

由于实验数据集各家族样本中个别家族样本数量不均衡,因此采样使用改良的K折交叉验证即StratifiedKFold,StratifiedKFold使用分层采样,能够保证训练集与测试集中各家族类别样本比例与原始数据集相同。

使用3.1节的数据集对分类模型进行测试验证,样本按8∶2的比例划分为训练集与测试集,得到训练集2 082个样本,测试集519个样本。训练集中使用StratifiedKFold进行十折交叉验证,设置epoch为30,分别对三个模型进行训练最后进行集成投票。同时设置Hilbert曲线和Zigzag曲线的对比实验,每种方法与模型分别运行三次实验,结果取平均值,结果如表2所示。

表2 不同曲线的实验结果对比 %

实验结果表明,Hilbert曲线在性能上优于Zigzag曲线,并且具有更强的鲁棒性,基于Hilbert曲线对勒索病毒文件可视化得到的Magnitude图能很更好地提取到特征,模型能够对Magnitude图进行识别和分类从而达到对勒索病毒的检测和分类。且因该文采用了更深的神经网络,在采用更大规模数据和进行更深层次的训练时,模型的分类准确度还能得到更进一步的提高。因样本涉及Windows、Linux两大平台,其中Windows样本结果分类率达到98.62%,Linux样本数量虽然较少,分类率也达到了90%,实验结果表明该模型同样适用于Linux平台,更具有普适性。

4 结束语

勒索病毒近年来呈爆发式增长,对用户文件进行加密勒索,令用户难以防范,造成巨大损失。此时对勒索病毒进行检测和分类对于防范和应急响应都具有重要的意义。在基于空间填充曲线可视化的Magnitude图,通过三种模型进行集成学习投票,无需通过动态执行和静态逆向分析即可很好地进行勒索病毒家族分类以及良性软件的识别。

在实验中发现,模型对于Magnitude图没有更好地提取到特征,从而导致个别家族分类率较低,因此下一步将研究更多的特征提取方式,同时将结合勒索病毒文件的asm文件和bytes文件转换为香农熵和字节类图以探索更多的可视化方式,并且将勒索病毒家族更多地扩大到Linux平台以适应企业实际生产环境。

猜你喜欢

勒索可视化卷积
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于3D-Winograd的快速卷积算法设计及FPGA实现
情绪勒索:警惕以爱之名的伤害
遭遇勒索
基于CGAL和OpenGL的海底地形三维可视化
勒索
获奖产品介绍:对勒索病毒说不
——美创科技“诺亚”防勒索系统向勒索病毒“宣战”
“融评”:党媒评论的可视化创新
从滤波器理解卷积