面向数字货币特征的细粒度代码注入攻击检测

孙 聪1 李占魁1,2 陈 亮1 马建峰1 乔新博1

1(西安电子科技大学网络与信息安全学院 西安 710071) 2(华为技术有限公司 西安 710075)

数字货币的迅速发展使其被越来越多的恶意软件利用.现有勒索软件通常使用数字货币作为支付手段,而现有代码注入攻击检测手段缺乏对相关恶意特征的考虑,使得其难以有效检测勒索软件的恶意行为.针对此问题,提出了一种细粒度的代码注入攻击检测内存特征方案,利用勒索软件在引导被攻击者支付过程中表现的数字货币内存特征,结合多种通用的细粒度内存特征,实现了一种细粒度的代码注入攻击检测系统.实验结果表明:新的内存特征方案能够在多个指标上有效提升现有检测系统内存特征方案的检测性能,同时使得基于主机的代码注入攻击检测系统能够准确检测勒索软件行为,系统还具有较好的内存特征提取性能及对未知恶意软件家族的检测能力.

关键词 代码注入攻击;机器学习;内存取证;勒索软件;数字货币

数字货币在近年来长足发展的同时,已被广泛用于勒索软件等恶意程序[1].此类恶意程序的传播和注入过程常依赖于系统漏洞和通用恶意行为,如代码注入攻击[2].此外,勒索软件通常为被攻击者生成唯一的勒索地址,或要求被攻击者发送支付交易哈希值,以便于数字货币兑换[3],此类恶意特征在勒索软件有效载荷及其进程内存地址空间中具有特定特征,因而,面向数字货币相关的内存特征进行代码注入攻击检测是发现勒索软件攻击的有效手段.

代码注入攻击指注入者实体复制代码到受害者实体,并在受害者上下文中执行恶意代码的行为.基于主机的代码注入攻击[4](host-based code injection attack, HBCIA)相比远程代码注入攻击[5]隐蔽性更高:注入者与受害者均为驻留在同一操作系统上的进程,注入者进程利用系统调用接口对受害者进程地址空间实施代码注入,从而访问受害者进程空间中所有信息并实施恶意行为.目前HBCIA检测方案可分为动态和静态2类.动态检测通过监控实时的系统调用序列和进程、线程环境变化发现HBCIA[6-8];静态检测则通过静态分析代码[9-10]或内存取证(即检测恶意软件执行一段时间后的系统内存转储文件)[11-13]识别HBCIA行为.静态检测相比动态检测开销较小,准确性和安全性较高.

现有主流HBCIA静态检测系统通过在内存转储文件中提取包括进程钩子、系统调用序列、网络字符串、内存页特征、shell code等细粒度内存特征来检测注入攻击行为[12-13],但所考虑的特征不包括数字货币相关的特征,无法区分勒索软件和一般恶意程序.而现有针对勒索软件的内存取证检测方案,只针对勒索软件相关的内存特征[2-3]或仅考虑比特币客户端软件的内存特征[14]及与内核对象数量有关的粗粒度特征[15],没有充分结合当前细粒度HBCIA检测方法的分析能力,也难以检测出勒索软件对较新的代码注入攻击的利用.

针对这些问题,本文提出一种面向数字货币特征的细粒度HBCIA检测方法(digital currency oriented fine-graind HBCIA detection, Dicof). Dicof在现有检测方案的38种内存特征基础上,首先提出全局类、内存类和木马类共13种细粒度的通用内存特征,对现有检测方案进行扩展;然后,针对勒索软件利用数字货币进行赎金支付的特点,提出了2种与数字货币支付有关的勒索行为内存特征.基于新特征方案,本文实现了一个细粒度HBCIA静态检测系统,分别使用基于树的分类模型和多层感知器神经网络模型对所提出内存特征方案进行性能评价,在Windows 10系统应用程序样本集上的实验评估结果表明,新特征方案的15种特征有效提升了现有检测系统Quincy对HBCIA的检测性能,恶意软件家族检测度提升了1.1个家族,恶意软件家族检测完整度提升了1.2个家族,查准率提升了5.7%,查全率提升了3.4%;对于典型勒索软件的查准率和查全率分别提升了38.7%和37.3%. Dicof系统还具有较好的内存特征提取性能及对未知恶意软件家族的检测能力.

本文的主要贡献包括3个方面:

1) 提出了一种细粒度基于主机的代码注入攻击内存取证特征方案,其中包含13种能有效提升现有系统恶意软件家族检测度的通用内存特征;

2) 针对勒索软件的支付行为,提出了2种面向数字货币的内存特征,使得基于主机的代码注入攻击检测系统能够准确检测勒索软件行为;

3) 实现了内存特征提取算法和相应检测系统,评估结果显示相比现有细粒度检测系统具有更高的恶意软件检测度和性能,并显著提升了对勒索软件的检测能力.

1 相关工作

内存取证分析旨在从不同操作系统和硬件平台的易失存储器出发获取有效的语义信息,从而获得恶意行为执行的证据.从一个正在运行的系统的内存转储文件出发,发现恶意行为的运行时特征,已在内核层面[16-17]和应用程序层面[11-13,18-19]均被证明可行.在内核层面,结合静态分析和内存遍历可识别内核代码和数据的完整性,用于检测rootkit恶意行为[16];通过从内存转储构造内存图,可将内核对象识别问题转化为内存图特征的深度学习问题,从而避免内存遍历和签名扫描的局限性,并用于检测直接内核对象操作(direct kernel object manipulation, DKOM)攻击[17].在应用程序层面,内存取证已用于推断即时消息应用的关键信息和操作[18]、检测内存代码的完整性[19]、检测恶意软件的代码加载行为[11]、基于主机的代码注入攻击[12]及注入代码执行页隐藏[13].在发现应用程序的恶意行为时,此类方法通常依赖于内存结构列表遍历和基于签名的扫描来发现恶意特征.与依据动态监测结果构建内存转储的检测[8]不同,Quincy系统[12]在内存转储上通过签名扫描方法发现细粒度内存特征并构建特征向量,其特征粒度比Membrane[11]更细,且利用监督学习检测注入攻击行为,获得了更高的检测精度.

2 Dicof内存特征方案

本节提出一种包含数字货币特征的细粒度HBCIA内存特征方案,用于对内存转储中的关键恶意特征及勒索软件特征进行识别.分通用内存特征和数字货币内存特征进行介绍.

2.1 通用细粒度内存特征

针对现有细粒度HBCIA内存特征方案[12]在识别全局特征、隐蔽通信和木马行为方面的不足,本文提出13种新内存特征,用以识别相关的恶意进程行为,提高HBCIA检测的准确度.具体特征类型及描述如表1所示.全局特征类从进程或线程属性侧面区分HBCIA攻击者进程和被攻击者进程,其中的特征能够快速划分大量良、恶性内存区域;内存类特征包含HBCIA攻击者或被攻击者进程利用隐蔽通信机制相关的内存特征;木马类特征包含了与反取证临时文件删除、网页重定向、自动传播、剪切操作相关的木马类恶意内存特征.

Table 1 The Type, Description and Usage of General Memory Features of Dicof
表1 Dicof内存特征方案的通用内存特征类型、描述及用途

特征类别特征名称特征描述特征用途全局特征glb_proc_protectionEPROCESS内核结构的Protection属性阻止恶意代码向进程空间写入代码识别良性进程glb_proc_promote进程内存转储中是否含有对内存页提权相关API(如adjustTokenPrivileges)的调用识别被攻击者进程glb_thrd_delay内存转储中ETHREAD创建时间与所属进程的主线程ETHREAD创建时间的差异是否明显,判定线程是否为延迟线程识别被攻击者进程glb_thrd_promote内存转储中每个线程的_KTHREAD是否为基础优先级,判断线程所属进程是否被攻击识别被攻击者进程内存类特征mem_DGA内存转储中是否存在与域名生成算法(domain generation algorithms, DGA)匹配的汇编指令循环∕随机运算调用模式.DGA算法基于随机函数Pk和辅助值Sk(k=0,1,…,n),经公式YDGA=Pn(…(Pk(…(P1(P0(S0),S1),…),Sk),…),Sn)的n次迭代,产生包含大量符合特定规则的域名集合YDGA,(其中初始种子S0由立即数、系统时间、BIOS版本信息等相关的整数值构成),被注入恶意程序会调用系统函数向DGA算法产生的域名集合发起DNS解析请求识别被攻击者进程mem_DGA_blklist内存转储中是否存在由反病毒公司、病毒库和hack域名组成的敏感域名列表识别被攻击者进程mem_country_blklist内存转储中是否含有大量不同国家域名信息,被注入恶意代码在传播时对特定国家域名及IP信息有严格过滤识别被攻击者进程mem_VNC内存转储中是否存在与虚拟网络终端(virtual network console, VNC)相关的各类协议字符(如SSH协议,RPC协议等),被注入恶意代码通过VNC穿透防火墙,绕过网络地址转换(network address translation, NAT)与远端木马服务器建立链路识别攻击者进程木马类特征troj_counter_forensics内存转储中是否存在与临时文件清理操作模式相关的API调用序列(该序列通常与被注入恶意代码规避取证有关)识别被攻击者进程troj_redirect内存转储中是否存在用于页面跳转的JavaScript代码和相关恶意页面链接识别被攻击者进程troj_propagation内存转储中是否含有与无线通信协议(如Wi-Fi protected access, WPA)相关的字符串及枚举系统无线端口的系统调用(如WlanEnumInterfaces,WlanGetAvailableNetworkList等),被注入恶意程序常通过特定端口和协议类型上的攻击会话传播识别被攻击者进程troj_clipboard内存转储中是否存在病毒访问剪贴板的执行模式(加载USER32.dll的SetClipboardData和OpenClipboard系统函数来读写剪贴板)识别被攻击者进程troj_ransom内存转储中特定进程内存页中是否同时包含公钥加密、对称加密和文件类型扫描相关的系统调用模式.攻击者综合利用公钥加密的强度(加密对称密钥)及对称加密的性能(加密目标文件)对特定类型文件(经文件扫描获得)实施勒索注入识别被攻击者进程

特别地,在木马类特征中引入了对勒索软件加密行为内存特征的判定.当前常见勒索软件行为包括用户机加锁和目标文件加密2类.加密勒索相比用户机加锁,要求的系统权限更少因而更灵活.加密勒索的注入过程一般会搜索有价值的用户文件类型,如WannaCry[20]一般加密预定的178种文件扩展名[2],动态生成对称密钥加密用户文件,并利用预置的强公钥加密对称密钥,要求被攻击者支付赎金以获得攻击者控制的远程服务器上的解密私钥.典型的例子包括CTB-Locker[21].因识别密钥本身较困难,针对已介绍的勒索注入行为,在特定进程内存页中查找是否同时存在文件类型(扩展名)扫描、对称加密和公钥加密相关的系统调用和字符串,从而有效判定加密勒索恶意行为.

2.2 数字货币内存特征

表1中的勒索行为特征,虽然具有一定区分度,但一些安全通信应用仍具有类似的代码特征,因而本节进一步结合勒索软件的支付行为,提出相关的数字货币内存特征,便于实现更准确的勒索软件恶意行为检测.

为获得勒索赎金,攻击者通常要求使用满足2个条件的支付系统:1)被攻击者支付便利;2)攻击者接收赎金时能保持匿名性.满足这2个条件的支付系统包括2类:1)数字货币.基于数字货币匿名交易机制的溯源困难性,勒索软件(如CryptoLocker[22])要求使用比特币进行交易支付赎金.2)支付券.勒索软件(如TeslaCrypt[23])要求购买支付券并发送支付码给攻击者.此外,为被攻击者支付方便,勒索软件一般提供直接URL链接指向支付和私钥获取页面,并将其实现为一个TOR(the onion router)网络服务,勒索软件实例包括CTB-Locker,TeslaCrypt,CryptoWall[24],KeRanger[25],Cerber[26]等,由于TOR网络的匿名通信特性,保证了很难识别出提供恶意服务的物理主机.提出内存特征:

1) dcurrency_static.在内存转储的每个内存区域中查找是否含有与数字货币交易相关的字符或常量,包括发送地址、接收地址、交易ID、本地备份wallet文件的路径名.查找内存转储中是否存在与支付券有关的字符串常量或购买链接(典型的支付券包括Paysafecard,MoneyPak,CashU等),从而识别本特征.

2) dcurrency_TOR.在内存转储的每个内存区域中查找是否含有形如http://id1.hostname/id2的域名及包含“onion”字符串的域名,或是否含有TOR浏览器安装链接信息.以上域名中id1为多个勒索攻击共用的隐藏服务ID,id2为一个针对被攻击者的唯一比特币勒索地址.被攻击者通过URL访问为其定制的TOR页面从而获得id2和勒索金额.

2.3 内存特征提取算法

针对面向数字货币特征的细粒度HBCIA检测内存特征方案,设计Dicof的内存特征提取算法,如算法1所示.输入特征集合F=FAPIFblkListFseqFothers.其中,API匹配类特征集FAPI={glb_proc_promote,mem_VNC,troj_propagation,troj_clipboard,troj_ransom};黑名单匹配类特征集FblkList={mem_DGA_blklist,mem_country_blklist,dcurrency_static,dcurrency_TOR};序列行为类特征集Fseq={mem_DGA,troj_counter_forensics};需单独处理的其他特征集合Fothers={glb_proc_protection,glb_thrd_delay,glb_thrd_promote,troj_redirect}.输入PatternPool为预先设定的与内存特征相关的具体常量模式,包括字符串、API签名、URL、控制流相关的汇编指令序列(由调用、跳转、基本块起始指令组成)等模式.输出映射F:f|→V将特征映射到对应的向量存储位置.ProcAnalysis()将内存转储中的每个进程内核结构与该进程包含的所有线程内核结构关联.IsSet()判断属性字段在内存页中是否置位.ΔT为预设的用于判定线程比其所属进程延时创建的时间阈值.PatternMatch(m,pattern_list)返回pattern_list中能够在内存区域m中找到匹配字符串的所有模式组成的子集.bPMatched(m,pattern_list)含义为:若PatternMatch(m,pattern_list)返回空集,则返回0;否则返回1.PatternContained(s,pattern_list)含义为:若在系统函数调用序列s中能够匹配pattern_list中的某个子调用序列,则返回1;否则返回为预设的黑名单匹配类特征f对应已匹配模式数量的阈值.backCFA(cfg,func(),N)含义为:对(局部)控制流图cfg,从一条对函数func()的调用语句开始,进行N步后向控制流分析,返回得到的所有控制流路径的集合.

算法1. Dicof内存特征提取算法.

输入:特征集合F,内存区域集合M={m1,m2,…,mn},特征模式PatternPool=F|→pattern_listfF

输出:特征向量映射F:f|→V.

V0;

(addr,sz)EPROCESS,(addr′,sz′)ETHREAD[1..s]ProcAnalysis(M);

③ for each mkM s.t. (addr+offProtection)∈mkdo

F(glb_proc_protection)←

IsSet(mk[addr+offProtection]);

⑤ for each thrdETHREAD[1..s]∧

F(glb_thrd_delay)←∨thrd(mk2

mk[addr+offcreate_time]>ΔT);

F(glb_thrd_promote)←∨thrd(mk2

⑧ end for

⑨ end for

⑩ for each fFAPI do

F(f)←∨mMbPMatched(m,

PatternPool(f));

end for

for each fFblkList do

end for

F(troj_redirect)←∨mMbPMatched(m,

(m,domainsbank)|>0);

for each fFseq do

F(f)←PatternContained(tr,

PatternPool(f)), s.t. trbackCFA

(CFG(mk),random()/DeleteFile(),

N);

end for

3 Dicof系统实现

Dicof系统结构如图1所示:

Fig. 1 Dicof system architecture
图1 Dicof系统结构

首先,使用Antivmdetection[27]对VirtualBox虚拟机进行硬化,并使用VirtualBox内存转储功能,输出获取运行过良性或恶意二进制样本的内存转储文件(即算法1中的内存区域集合M).虚拟机硬化能防止如CryptoWall等勒索软件的反仿真模块实施沙箱规避隐藏.其次,Dicof系统的内存分析模块解析内存转储文件,一方面获取转储时刻每个进程和线程对应的2个重要的内存数据结构(EPROCESS和ETHREAD)的属性信息,另一方面,所有与代码调用模式相关的特征捕获均基于对内存转储中二进制的静态反汇编,获得可能的控制流集合,用于后续特征识别.其中基本内存区域分析和内核对象分析使用Volatility,二进制分析使用IDA Pro.第三,Dicof系统的特征提取模块执行算法1,分别实现对Dicof内存特征方案所述15个关键特征的复杂模式匹配、阈值比较和特征向量生成.根据分析粒度需要,在执行算法1的具体步骤时,需要以具体操作的内存区域为粒度构建特征向量.最后,这15个新HBCIA特征与Quincy系统特征提取模块输出的38个HBCIA特征一起,提交给分类与评估模块,执行对不同机器学习分类模型的性能评估.

4 性能分析与评价

4.1 样本集

本文实验采用Windows 10系统平台上的应用程序样本集,该样本集由977个良性二进制样本、87个恶意二进制样本及对应的恶意二进制样本签名3部分组成.其中,良性二进制样本一部分是对Windows 10系统目录中的标准可执行文件的执行转储,另一部分是对第三方软件库[28]的各类标准可执行文件的执行转储,第三方软件的类型覆盖了压缩工具、进程查看工具、CPU状态查看工具等.恶意二进制样本中,73个取自Quincy系统公开的HBCIA恶意样本集[12],其中的每个HBCIA恶意二进制样本都代表一个恶意软件家族,良性及恶意样本的签名见文献[29].另外14个是对从github和VirusTotal[30]下载的勒索软件进行虚拟机执行转储得到的,使用的勒索软件包括HiddenTear,Cerber,WannaCry,CryptoWall,TeslaCrypt的开源版本和VirusTotal版本.针对每个恶意二进制样本,人工编写恶意二进制样本签名.

应用程序样本经内存转储后,单个内存转储文件可划分为大量内存区域.内存区域数量与用于内存转储的虚拟机客户机内存大小相关,本文设置虚拟机客户机内存为1.1 GB.表2为对内存区域的去重前/后结果.

Table 2 Distribution of Memory Regions Before/After Deduplication

表2 去重前/去重后的内存区域分布

阶段良性内存区域个数恶意内存区域个数总计∕个数去重前86115559528612507去重后7874192479665

Fig. 3 Ranking of the importance of features for random forest
图3 基于随机森林模型的特征重要性

为去重后的每个内存区域获取一个53维的HBCIA特征数据条目,维度与总特征数量一致.每个数据条目均以所属进程名,内存区域虚拟地址组成的ID作为索引.根据内存区域是否匹配恶意二进制样本签名,为每个数据条目打上良或恶性分类标签.获取到的所有具有良或恶性标签的数据条目构成机器学习初始数据,完成特征提取过程.

4.2 内存特征提取时间评价

图2为在本文样本集中的单个应用程序内存样本上提取每个内存特征的平均时间.由图2可见,相对于内存转储文件规模而言,特征提取时间开销在合理范围内.对于Fseq中与序列行为有关的特征,计入使用IDA Pro对指定内存区域进行二进制静态反汇编及生成控制流路径集合的时间,因而消耗时间更长.此外,良性二进制样本和恶意二进制样本对应的特征提取时间开销无明显差异.

Fig. 2 Average extraction time cost of the 15 memory features
图2 15个内存特征的平均提取时间

4.3 内存特征重要性评价

本节讨论本文提出的15种内存特征与Quincy系统38种内存特征之间的相对重要性.针对本文15种内存特征与Quincy的38种内存特征组成的特征集合,基于随机森林模型执行结合5折交叉验证过程的递归特征擦除过程(recursive features elimination with cross validation, RFECV),以选择最佳的特征子集.在此过程中获取本文内存特征方案中的每个特征的相对重要性.

图3展示了重要性排在前35的特征,其中包含13种本文提出的内存特征.仅6种特征的重要性对模型的平均贡献超过了3.5%,其中包含本文提出的特征glb_thrd_delay.可见,本文提出的多数内存特征对现有细粒度HBCIA检测性能的提升有明显贡献.特别地,与数字货币和勒索软件相关的特征troj_ransom,dcurrency_static,dcurrency_TOR贡献度相对有限,原因是本文用于训练的恶意二进制样本中,由勒索软件产生的转储区域较少(14个勒索软件,87个恶意二进制样本),导致相关内存特征的贡献度较低.

4.4 Dicof系统分类模型性能评价

本节采用4种基于树的分类模型(Adaboost,extremely randomized trees,gradient boosting,random forest)以及多层感知器(multi-layer perception, MLP)神经网络模型,评估对比Dicof系统与现有Quincy系统的检测性能差异.MLP神经网络的输入层(第0层)接受一个n维特征向量(f1,f2,…,fn)作为输入,其中fk对应每个内存区域的第k个HBCIA内存特征,每个fk均以浮点数表示.隐藏层(第1层)由m个神经元构成的全连接层组成.根据神经元权重、神经元偏差及第0层输出,采用ReLU函数作为激活函数计算神经元输出.输出层(第2层)为由单个神经元构成的全连接层.采用Sigmoid函数作为激活函数计算分类模型输出.超参数空间如表3所示:

Table 3 The Hyperparameters of MLP
表3 多层感知神经网络方法参数

参数取值范围隐藏层中的元素个数4~51L2规范化指数10-7~10-1批尺寸min(200,样本个数)训练集上的迭代次数1~200

本文采用的性能度量指标主要包括:

1) 恶意软件家族检测度(D).检测到的恶意软件家族总数.其中,某恶意软件家族被检测到当且仅当该恶意软件家族对应的所有恶意数据条目中至少有一个被检测到.

2) 恶意软件家族检测完整度(C).完整检测到的恶意软件家族总数.其中,某恶意软件家族被完整检测到当且仅当该恶意软件家族对应的所有恶意数据条目都被检测到.

3) 查准率Precision=TP/(TP+FP).

4) 查全率Recall=TP/(TP+FN).

5) AUC值.ROC曲线下的面积,用于度量分类模型的正确率.

其中,TP(true positive)为预测为恶意的实际恶意样本数;FP(false positive)为预测为恶意的实际良性样本数;FN(false negative)为预测为良性的实际恶意样本数.

对于所有特征数据条目按照6∶4比例随机划分训练集和测试集.其中,对于恶意数据条目,以恶意软件家族为单位划分训练集和测试集,勒索软件作为其中1个恶意软件家族.为减小训练集和测试集划分的偶然性,选择对训练集和测试集随机划分10次,分别训练不同分类模型,对各分类模型在对应测试集上进行预测,求得各个性能指标均值,作为该分类模型评估的最终结果.Quincy系统和Dicof系统10次随机划分下的各指标均值,在不同分类模型上的性能比较结果分别如表4所示.进一步横向对比MLP神经网络模型和基于树的分类模型,我们发现MLP分类模型整体性能并未体现优势.一方面说明本文HBCIA的局部特征间缺乏特有的关联性,难以发挥深度学习模型的优势,另一方面本文场景的数据规模也制约了深度学习分类模型的性能.根据分析,以基于树的分类模型的性能均值作为最终指标值,得出Dicof系统相比Quincy系统,恶意软件家族检测度提升了1.1个家族,恶意软件家族检测完整度提升了1.2个家族,查准率提升了5.7百分点,查全率提升了3.4百分点.

Table 4 Performance Comparison of Dicof and Quincy Under Different Classification Models
表4 Dicof系统与Quincy系统在不同分类模型下的性能对比

度量指标基于树的分类模型的度量值Adaboostextremelyrandomized treesgradientboostingrandomforestQuincyDicofQuincyDicofQuincyDicofQuincyDicof基于树的分类模型的度量均值MLP模型的度量值QuincyDicofQuincyDicofD28.928.929.029.029.029.024.629.027.929.027.628.2C28.127.828.027.328.428.422.528.426.828.025.224.0Precision∕%84.580.078.681.573.683.571.686.377.182.869.074.0Recall∕%97.897.697.996.498.198.082.598.094.197.589.687.9AUC0.990.990.990.990.990.990.910.990.970.990.990.99

进一步比较Dicof系统与Quincy系统在典型勒索软件检测方面的性能.将14个勒索软件转储得到的二进制样本和相应的161个恶意内存区域单独生成的恶意特征数据条目,与所有良性特征数据条目一起,进行训练集和测试集6∶4随机划分10次,记录查准率、查全率和AUC指标均值,在Quincy系统表现较好的Adaboost分类模型下的度量结果及度量指标均值结果如表5所示.对于本文所选的勒索软件样本,Dicof的查准率和查全率分别提升了38.7百分点和37.3百分点.另一方面亦可见,虽然Quincy系统的内存特征并未考虑勒索软件,但仍能达到一定的检测精度,说明现有勒索软件在实施攻击时仍在一定程度上蕴含着主流的HBCIA行为.

Table 5 Performance Comparison of Dicof and Quincy Towards Classifying Ransomware

表5 Dicof系统与Quincy系统针对勒索软件的分类性能对比

度量指标基于Adaboost分类模型的度量值基于树的分类模型的度量均值QuincyDicofQuincyDicofPrecision∕%58.890.253.592.2Recall∕%65.196.161.298.5AUC0.990.990.980.99

4.5 对未知恶意软件家族的检测能力评价

为评估Dicof系统对未知的HBCIA恶意软件的检测能力,首先根据本文样本集中所有恶意软件在VirusTotal上的公开时间,对样本集中恶意软件家族按照公开时间先后进行排序.然后,依据该次序以6∶4比例产生一个较早期训练集和一个较新测试集,在测试集中将已经出现在训练集中的恶意软件家族的恶意样本删除,仅保留在训练集中未出现的恶意软件家族对应的恶意样本,最终训练集和测试集分别保留554和175个恶意内存区域.训练集和测试集中的良性内存区域按照6∶4随机划分.选择MLP神经网络,在较早期训练集上生成一个MLP神经网络分类模型,在较新测试集上评估模型的分类性能.图4以ROC曲线的形式展示了Dicof系统和Quincy系统对未知恶意软件家族的分类性能.由图可见在MLP分类模型上,Dicof系统和Quincy系统均表现出良好的分类性能,AUC值均在0.99以上,说明本文内存特征方案具备检测未知HBCIA恶意软件家族的能力.

Fig. 4 Detection ability on unknown malware families
图4 对未知恶意软件家族的检测能力评估结果

5 总 结

本文提出了一种细粒度的HBCIA内存特征方案,在引入多种细粒度通用内存特征的基础上,提出与勒索软件行为检测相关的数字货币内存特征,并实现了兼容勒索软件内存取证的HBCIA检测系统Dicof.从特征提取开销、特征重要性、分类性能、未知恶意软件家族检测能力等方面对系统进行评价,实验结果表明,新内存特征方案具有较显著的HBCIA特征描述能力,特征提取开销较小;Dicof系统比现有Quincy系统具有更强的恶意软件家族检测能力和勒索软件检测能力,并具备较好的未知恶意软件家族检测能力.未来工作将通过研究HBCIA行为之间的深度关联性,定义和识别更为复杂的时态关系特征,进一步提升HBCIA分类检测的精确性.

参考文献

[1]Conti M, Gangwal A, Ruj S. On the economic significance of ransomware campaigns: A Bitcoin transactions perspective[J]. Computers & Security, 2018, 79: 162-189

[2]Joseph D P, Norman J. Areview and analysis of ransomware using memory forensics and its tools[G] //Smart Innovation, Systems and Technologies 159: Smart Intelligent Computing and Applications. Berlin: Springer, 2020: 505-514

[3]Huang D Y, Aliapoulios M M, Li V G, et al. Tracking ransomware end-to-end[C] //Proc of 2018 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2018: 618-631

[4]Barabosch T, Gerhards-Padilla E. Host-based code injection attacks:A popular technique used by malware[C] //Proc of the 9th Int Conf on Malicious and Unwanted Software (MALWARE). Piscataway, NJ: IEEE, 2014: 8-17

[5]Choi H, Kim Y. Large-scale analysis of remote code injection attacks in android apps[J]. Security and Communication Networks, 2018, Article ID 2489214

[6]Srivastava A, Giffin J. Automatic discovery of parasitic malware[G] //LNCS 6307: Proc of Int Workshop on Recent Advances in Intrusion Detection (RAID). Berlin: Springer, 2010: 97-117

[7]Snow K Z, Krishnan S, Monrose F, et al. SHELLOS: Enablingfast detection and forensic analysis of code injection attacks[C] //Proc of USENIX Security Symp. Berkeley, CA: USENIX Association, 2011: 183-200

[8]Barabosch T, Eschweiler S, Gerhards-Padilla E. Bee master: Detecting host-based code injection attacks[G] //LNCS 8550: Proc of Int Conf on Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin: Springer, 2014: 235-254

[9]Wang Yi, Li Zhoujun, Guo Tao. Literal tainting method for preventing code injection attack in Web application[J]. Journal of Computer Research and Development, 2012, 49(11): 2414-2423 (in Chinese)(王溢, 李舟军, 郭涛. 防御代码注入式攻击的字面值污染方法[J]. 计算机研究与发展, 2012, 49(11): 2414-2423)

[10]Zhang Bingqi, Sun Wei. A PHP source-code SQL injection attack detection algorithm based on taint tracking[J]. Journal of Information Security Research, 2015, 1(2): 140-148 (in Chinese)(张冰琦, 孙伟. 一种基于污染源追踪的PHP源代码SQL注入漏洞检测算法[J]. 信息安全研究, 2015, 1(2): 140-148)

[11]Pék G, Lázár Z, Várnagy Z, et al. Membrane: A posteriori detection of malicious code loading by memory paging analysis[G] //LNCS 9878: Proc of European Symp on Research in Computer Security. Berlin: Springer, 2016: 199-216

[12]Barabosch T, Bergmann N, Dombeck A, et al. Quincy: Detecting host-based code injection attacks in memory dumps[G] //LNCS 10327: Proc of Int Conf on Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin: Springer, 2017: 209-229

[13]Block F, Dewald A. Windows memory forensics: Detecting (un)intentionally hidden injected code by examining page table entries[J]. Digital Investigation, 2019, 29(Supplement): S3-S12

[14]Van Der Horst L, Choo K K R, Le-Khac N A. Process memory investigation of the bitcoin clients electrum and bitcoin core[J]. IEEE Access, 2017, 5: 22385-22398

[15]Cohen A, Nissim N. Trusted detection of ransomware in a private cloud using machine learning methods leveraging meta-features from volatile memory[J]. Expert Systems with Applications, 2018, 102: 158-178

[16]Cui Weidong, Peinado M, Xu Zhilei, et al. Tracking rootkit footprints with a practical memory analysis system[C] //Proc of the 21st USENIX Security Symp. Berkeley, CA: USENIX Association, 2012: 601-615

[17]Song Wei, Yin Heng, Liu Chang, et al. DeepMem: Learning graph neural network models for fast and robust memory forensic analysis[C] //Proc of the 2018 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2018: 606-618

[18]Anglano C. Forensic analysis of WhatsAppmessenger on Android smartphones[J]. Digital Investigation, 2014, 11(3): 201-213

[19]White A, Schatz B, Foo E. Integrity verification of user space code[J]. Digital Investigation, 2013, 10(Supplement): S59-S68

[20]SecureWorks Counter Threat Unit. WCry ransomware analysis[EB/OL]. (2017-05-18) [2020-08-10]. https://www.secureworks.com/research/wcry-ransomware-analysis

[21]Admire Software Solutions. CTB Locker ransomware: Restore encrypted files[EB/OL]. (2016-07-31) [2020-08-10]. https://admiresoft.com/ransomware/ctb-locker.html

[22]Liao K, Zhao Ziming, Doupé A, et al. Behind closed doors: Measurement and analysis of CryptoLocker ransoms in Bitcoin[C] //Proc of 2016 APWG Symp on Electronic Crime Research (eCrime). Piscataway, NJ: IEEE, 2016: 1-13

[23]Kaspersky Lab. TeslaCrypt ransomware attacks[EB/OL].[2020-08-10]. https://www.kaspersky.com/resource-center/threats/teslacrypt

[24]SecureWorks Counter Threat Unit. CryptoWall ransomware threat analysis[EB/OL]. (2014-08-27) [2020-08-10]. https://www.secureworks.com/research/cryptowall-ransomware

[25]Palo Alto Networks. New OS X ransomware KeRanger infected transmission BitTorrent client installer[EB/OL]. (2016-03-06) [2020-08-10]. https://www.paloaltonetworks.com/resources/research/keranger

[26]Malwarebytes Lab. Cerber ransomware: New, but mature[EB/OL]. (2016-03-11) [2020-08-10]. https://blog.malwarebytes.com/threat-analysis/2016/03/cerber-ransomware-new-but-mature

[27]Keri M. Antivmdetection[EB/OL]. (2016-02-12) [2020-08-10]. https://github.com/nsmfoo/antivmdetection

[28]Portableapps. Portableapp directory[EB/OL].[2020-12-06]. https://portableapps.com/apps

[29]Barabosch T. Quincy complementary material[EB/OL]. (2017-04-21) [2020-12-16]. https://github.com/tbarabosch/quincy-complementary-material/blob/master/hashes/hashes_win10.txt

[30]Virustotal. VirusTotal[EB/OL].[2020-08-10]. https://www.virustotal.com/gui/

Digital Currency Features Oriented Fine-Grained Code Injection Attack Detection

Sun Cong1, Li Zhankui1,2, Chen Liang1, Ma Jianfeng1, and Qiao Xinbo1

1(School of Cyber Engineering, Xidian University, Xian 710071) 2(HUAWEI Technologies Co., Ltd, Xian 710075)

Abstract Digital currencies have developed rapidly and emerged as a critical form of our payment system. Consequently, the applications and platforms of digital currencies and their payment services are extensively exposed to various exploits by malware. In a typical scenario, modern ransomware usually leverages digital currencies as the medium of payment. The state-of-the-art code injection attack detections have rarely considered such digital currency-related memory features, thus can hardly identify the malicious behaviors of ransomware. To mitigate this issue, we propose a fine-grained scheme of memory forensics to facilitate the detection of host-based code injection attacks with the ability to identify ransomware. We capture the digital currency-related memory features exhibited in the procedure of inducing the victims’ payment. We incorporate such memory features into a set of general memory features and implement a fine-grained detection system on code injection attacks. According to the experimental results, the new scheme of memory forensics effectively improves the performance of the state-of-the-art detection system on different metrics. Meanwhile, our approach enables the detection systems of host-based code injection attacks to capture the behaviors of ransomware precisely. Moreover, the extraction of the newly proposed memory features is efficient, and our detection system is capable of detecting unknown malware families.

Key words code injection attack; machine learning; memory forensics; ransomware; digital currency

收稿日期2020-11-09;修回日期:2021-02-04

基金项目国家自然科学基金项目(61872279);陕西省重点研发计划项目(2020GY-004,2019ZDLGY12-06)

This work was supported by the National Natural Science Foundation of China (61872279) and the Key Research and Development Program of Shaanxi Province (2020GY-004, 2019ZDLGY12-06).

(suncong@xidian.edu.cn)

中图法分类号 TP309.5

作者简介

Sun Cong, born in 1982. PhD, associate professor. Member of CCF. His main research interests include software security, information flow security, and software verification.

,1982年生.博士,副教授,CCF会员.主要研究方向为软件安全、信息流安全、软件验证.

Li Zhankui, bron in 1990. Master. Network security engineer. His main research interests include machine learning and memory forensics.

李占魁,1990年生.硕士,网络安全工程师.主要研究方向为机器学习、内存取证.

Chen Liang, born in 1998. Master candidate. His main research interests include software security and memory forensics.

,1998年生.硕士研究生.主要研究方向为软件安全、内存取证.

Ma Jianfeng, born in 1963. PhD, professor, PhD supervisor. Senior member of CCF. His main research interests include information security, cryptography, and network security.

马建峰,1963年生.博士,教授,博士生导师,CCF高级会员.主要研究方向为信息安全、密码学、网络安全.

Qiao Xinbo, born in 1996. Master candidate. His main research interests include malware analysis, memory forensics, and Web security.

乔新博,1996年生.硕士研究生.主要研究方向为恶意程序分析、内存取证、Web安全.