针对隐匿高危勒索病毒攻击的检测 - 副本_第1页
针对隐匿高危勒索病毒攻击的检测 - 副本_第2页
针对隐匿高危勒索病毒攻击的检测 - 副本_第3页
针对隐匿高危勒索病毒攻击的检测 - 副本_第4页
针对隐匿高危勒索病毒攻击的检测 - 副本_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

近年来,随着勒索病毒的部分技术细节的公开,以及在暗网中代码交易的出现,勒索病毒的制作和利用勒索病毒进行犯罪的成本不断降低,勒索病毒攻击方式也更加简单,但其赎金收益依然非常可观。随着网络犯罪的组织化、规模化,隐匿行为攻击的复杂化和商业化,目前,隐匿高危勒索病毒呈蔓延之势。已知的勒索病毒家族利用多态、代码混淆等手段,可以快速产生大量新版本,使得勒索病毒数量激增。随着网络规模的扩大和信息化水平的提高,电力企业对网络的依赖程度不断增强,也在不知不觉中受到隐匿高危行为的威胁。电力企业的敏感数据也容易受到勒索病毒的关注,这些风险影响着电力企业网络安全和稳定。为了保证计算机网络和计算机应用系统的正常运行,电力企业需要对隐匿高危勒索病毒的攻击作出应对。在过去几年中,已经有许多针对勒索病毒的防御策略,每种策略都实施了几种保护和检测策略,例如,基于欺骗的保护方法(deception-basedprotection)、控制安全随机数发生器(controllingsecurerandomnumbergenerator)、应用程序的行为分析(behavioralanalysisofapplications)、密钥托管、网络级防御,以及利用机器学习算法的勒索软件程序检测。按照是否运行软件样本,勒索病毒的检测可以分为静态检测与动态检测两种。其中静态恶意软件特征包括字节序列N-grams、操作码和PE报头字段等。随着开发技术的发展,恶意软件的作者往往使用压缩、加密、加壳等方法阻止静态特征的提取,但许多反病毒技术和工具已经可以有效实现程序的解包。Wang等人针对恶意软件通过加壳逃脱检测的问题,提出了一种加壳检测框架以检测可执行文件是否加壳,以提升恶意代码检测效果。在动态检测中,程序运行时调用的API的序列经常被视作为主要特征,这是因为恶意软件为了减小代码的体积,往往通过调用API函数来实现文件、注册表、网络、进程等操作行为。现有的勒索病毒防御方法中,传统的分类算法难以及时响应零日漏洞勒索病毒,而人工逆向分析的方法使得成本显著提高,但是效果提升不明显。随着机器学习等算法的发展,一些启发式检测工具不断出现,但是这些工具普遍存在局限性和滞后性,并且不利于迭代。与此同时,勒索病毒的开发也在不断发展,加壳、代码混淆、反沙盒、内存动态映射等策略的使用也为勒索病毒的防御带来了很大难题。本文从VirusTotal等开源网站上收集了勒索病毒等恶意软件样本,利用动态分析方法提取软件的应用程序编程接口(ApplicationProgrammingInterface,API)函数调用特征,在此基础上训练了勒索病毒检测器和勒索病毒家族分类器。1

背景介绍1.1隐匿高危勒索病毒勒索病毒,或称勒索软件,是一种特殊的恶意软件,其主要通过锁定受害者主机的操作系统或者使用密码学加密受害者主机上的某些文件的方式,使得受害者无法获得对其主机或主机上的文件的访问控制权限,并威胁受害者向指定的账户支付赎金以解锁文件。为了防止在感染受害者机器的初期就被察觉,隐匿勒索病毒往往在进行加密等核心操作前先模仿正常软件活动一段时间。随着各种新型网络攻击的出现,企业信息安全形势变得不容乐观,特别是银行、电力、大型国企等机构,正在成为受攻击的主要对象。当前,隐匿高危行为是企业面临的最严重的威胁之一,其中,高级持续性威胁(AdvancedPersistentThreat,APT)是最主要的表现手段之一。所谓APT攻击就是针对特定的目标,进行长期持续性的网络攻击的攻击方式,其对企业造成了非常严重的困扰,而结合了APT的勒索病毒攻击则更是为企业的数据安全带来了极大的威胁。对抗隐匿高危勒索病毒攻击,保护用户数据的关键措施在于预防,即在勒索软件攻入受害者主机但尚未造成实质性破坏前及时检测并拦截攻击。目前,针对勒索病毒的防护主要采用分层次防护措施,即提倡同时部署多种独立、领域互相重叠的安全措施以创建稳固的安全防护架构,并且各安全层被设计为和其他安全层互补,使得威胁不易穿透重重防护。勒索病毒的家族分类指的是根据勒索病毒产生的变种来源对勒索病毒进行分类。同属一个家族的勒索病毒往往会共享一些通用模块,因此会有相似的勒索行为。近年来,家族内的勒索病毒的技术不断更新迭代,可以更好地逃避现有工具的检测。此外,可以对勒索病毒的结构进行转换,从而迅速产生大量变种。此外,近年来勒索软件即服务(RansomwareasaService,RaaS)的商业模型的规模化发展使得勒索病毒家族中的病毒变种出现得更加频繁,Cerber家族的出现和发展就是其中的典型。据报道,恶意代码工厂软件生成使用代码混淆技术且拥有独特Hash的恶意代码变种所需时间仅仅只有15s,而这些恶意软件的变种可以绕过传统的静态签名匹配的恶意软件检测技术的检测。1.2Cuckoo沙盒Cuckoo沙盒是一个开源的恶意软件分析工具,用户可以提交待分析样本或待检测统一资源定位符(UniformResourceLocator,URL),快速获得它的行为分析报告。Cuckoo沙盒的主要组件可以分为主机和客户机两部分。其中主机是沙盒的核心控制部分,负责样本的传入、分析报告的生成、客户机的启动和恢复等,而客户机可以有一个或多个,可以是在VirtualBox等软件上配置的虚拟机,也可以是真实的物理机器。Cuckoo沙盒记录的待检测样本的行为信息主要有软件执行期间调用的所有进程,创建、删除、修改的文件及其信息,网络连接与流量信息,客户机运行期间的屏幕截图,软件运行期间的内存转储记录。这些信息由客户机内的监控脚本(agent.py)获取,并将所有信息发回主机,样本运行完成后,再由主机生成名为report.json的行为分析日志。1.3机器学习算法决策树算法的雏形最早由Hunt等人

在1966年提出。该算法对整个决策空间进行划分,认为位于同一块空间内的样本就属于同一类别。决策树的结构是一种树形的有向图结构,分为决策结点与叶子结点。在决策结点,决策树会根据样本特征做出决策;当到达叶子结点时,根据叶子结点被划分的空间就完成了对样本的分类。随机森林

是一种集成的、基本单元是决策树的机器学习算法,使用了bagging方法集成学习。随机森林将训练集分为多个子集,每个子集独立训练一个决策树模型。在模型预测时,随机森林会收集每个决策树的模型结果,依据算法进行整合,得到最终的预测结果。卷积神经网络(ConvolutionalNeuralNetwork,CNN)

是用卷积核代替参数的多层感知器(MultilayerPerceptron,MLP)的一种变体,属于一种前馈神经网络,其利用卷积核构建学习模型。卷积神经网络的模型构成通常有多个卷积层、池化层和全连接层。在自然语言处理方面,Kim提出使用卷积神经网络对句子的情感进行分类,如图1所示,其模型由卷积层、池化层和全连接层构成。图1API序列分类模型架构用k表示API序列中第i个API函数的k维特征向量,API序列的长度为n,则整个API序列特征表示就可以用n个API函数的特征向量拼接得到,即:同样的,可以用表示从到的特征向量的拼接。对拼接后得到的进行矩阵卷积操作,卷积核设置为,即1次对API函数调用序列中的h个连续API函数进行特征提取。如对卷积得到一个新特征该过程可以表示为:式中:b为偏移参数;f为非线性函数。对1个长度为n的API函数调用序列中间每一个大小为h的子序列进行卷积操作,就可以得到整个序列的特征映射为:对进行一次池化操作(max-overtimepooling),即选择特征映射中最大值作为卷积核w卷积后的对应特征。进行池化操作的原因一方面是减少特征数量,保留最典型的特征;另一方面是API函数调用序列长度各不相同,池化后避免了由于长度差异导致的缺失特征值对模型的影响。整个模型的卷积层有多个卷积核,每个卷积核经过卷积、池化后都可以得到一个特征。将这些特征一起传入全连接层,就可以输出一个类别的概率分布,其中概率最大的类别就作为输入API函数序列的类别。2

动态分析与行为特征提取在本节中,将介绍本文勒索病毒数据集的构建与软件特征提取的过程和结果。2.1实验数据本文研究的软件样本类别是Windows平台上的可执行软件样本(exe),其可以分为恶意软件样本和良性样本两大类。在恶意软件样本的选择上结合了电力系统的实际情况,包含了隐匿高危勒索病毒样本。课题使用的恶意软件样本主要来自VirusTotal等恶意样本开源网站。课题使用的良性软件样本来自360应用商店,样本均经过360恶意软件检测确认。本课题总共收集到1000个恶意软件样本(不包括勒索病毒家族样本)、100个良性软件样本。由于目前尚没有根据勒索病毒家族分类的公开的数据集,因此勒索病毒样本及其所属家族只能通过其在VirusTotal、VirusShare等开源网站上的分析信息判断,将反病毒厂商检测引擎给出的占比最大的家族定为该病毒样本的所属家族。最终获得的勒索病毒家族名称与样本数量分布如表1所示。表1数据集勒索病毒家族构成2.2Cuckoo动态行为分析本文搭建的CuckooSandbox环境中主机使用的是Ubuntu18.04.1LTS操作系统,在主机上安装了CuckooSandbox2.0.7、VirtualBox5.2等软件。客户机使用的操作系统是Windows7专业版并以虚拟机的形式通过VirtualBox5.2安装在主机上。为了便于主机对客户机的控制和软件样本的运行,客户机关闭了防火墙、系统自动更新、用户账户控制,并安装了Python、pip、pillow等软件用于运行agent.py脚本。2.3行为特征提取软件在与操作系统进行交互时通常使用API函数。为了使文件大小更小、更加隐蔽、传播更迅速,勒索病毒往往利用系统API函数实现文件管理、网络连接、注册表访问等行为。本小节在CuckooSandbox提供的分析报告的基础上,提取了勒索病毒等软件样本的API调用信息,并在提取的行为信息中分析了勒索病毒的部分典型行为。从软件行为分析报告中提取API函数调用行为信息的流程如图2所示。提取的行为报告位置是[“behavior”][“process”]字段,该字段记录软件运行期间每个进程的API函数调用情况。图2API函数调用信息提取流程3

勒索病毒检测器训练本节在2.3节特征提取的基础上,训练了勒索病毒检测器与家族分类器。3.1API函数特征选择本节中,训练勒索病毒家族分类器使用的特征是软件样本调用的API函数名称及相应的频率。如果将全部出现过的API函数名称作为特征直接进行分类器的训练,不仅会增加模型训练的时间消耗,还会因为无效或者干扰特征的保留使模型的分类效果下降。利用2.3节获得的软件API函数调用频率信息,并利用R语言的Boruta算法包对API函数进行特征选择。由于分类任务分为勒索病毒检测的二分类和勒索病毒家族分类的多分类,两种分类数据集不同、数据标签不同,因此需要分别进行特征筛选,保留与各自分类任务相关的API函数特征。3.2API函数特征向量预训练第2节获得的API函数的调用序列可以看作软件的“句子”的文本分析和分类,但是序列长度基本在3万以上,这给后续的分析带来了极大的数据读取和存储压力,也会影响卷积神经网络分类勒索病毒的效果,因此需要对API序列进行去重处理。对软件样本的API函数调用序列进行去重的算法结合软件的API函数调用的现实情况,设置重复序列的长度范围为,遍历一遍序列后删去所有重复子序列。利用全部样本的API函数调用序列构成了一个文档输入Word2vec模型,获得API函数的特征表示。特征向量预训练使用了Skip-gram模型结构,设置API函数的特征向量的维数为50维,迭代次数为10轮,模型训练结束后将特征向量保存为“APIvec.bin”文件,用于后续的分类器训练。3.3分类器测试效果在本节中,分别使用传统的机器学习算法决策树、随机森林模型和卷积神经网络的方法训练勒索病毒的检测器与家族分类器。3.3.1决策树模型决策树模型设定勒索病毒检测与分类的训练集与测试集的划分比例为9∶1。使用决策树算法训练勒索病毒检测器与勒索病毒分类器,其中勒索病毒检测器的模型测试混淆矩阵如图3所示,勒索病毒检测器的准确率为94.56%,分类精度为97.05%,召回率为89.18%。勒索病毒家族分类器的模型测试混淆矩阵如图4所示,勒索病毒检测器的准确率为82.35%。图3决策树算法检测器测试混淆矩阵图4决策树算法家族分类器测试混淆矩阵3.3.2随机森林算法随机森林算法设定勒索病毒检测与分类的训练集与测试集的划分比例为9∶1,设置随机森林中的决策树数量为150,训练勒索病毒检测器与勒索病毒分类器。其中勒索病毒检测器的模型测试混淆矩阵如图5所示,勒索病毒检测器的准确率为96.73%,分类精度为94.72%,召回率为97.29%。勒索病毒家族分类器的模型测试混淆矩阵如图6所示,勒索病毒检测器的准确率为90.19%。图5随机森林算法检测器测试混淆矩阵图6随机森林算法家族分类器测试混淆矩阵3.3.3卷积神经网络模型设置卷积神经网络模型训练集与测试集的比例划分为8∶2。模型训练时设定平均序列长度为5000,batchsize为10,丢弃概率为0.5,学习率为0.001。设置序列的最大长度为5000。预训练得到的API函数名称特征向量维度为50维,结合软件的API函数调用的现实情况设置卷积核大小为2×50,3×50,4×50,5×50。勒索病毒检测器的模型测试混淆矩阵如图7所示,勒索病毒检测器的准确率为97%,分类精度为95.62%,召回率为95.09%,F1-score为96.03%。勒索病毒家族分类器的模型测试混淆矩阵如图8所示,勒索病毒检测器的准确率为94%,分类精度为89.1%,召回率为82.04%,F1-score为76.42%。图7卷积神经网络检测器测试混淆矩阵图8卷积神经网络家族分类器测试混淆矩阵综上,无论是使用决策树算法还是随机森林算法,都可以有效实现对勒索病毒的检测与家族分类。其中,随机森林模型的勒索病毒检测和家族分类测试效果都明显优于决策树算法。使用卷积神经网络的方法对勒索病毒的检测和家族分类效果都有提升,其中检测准确率高达97%。在家族分类方面,卷积神经网络的提升更加明显,模型测试准确率为94%。此外,可以发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论