一种基于文件损坏度的勒索软件检测方法

2018-04-19 05:09
信息安全研究 2018年4期
关键词:勒索特征提取加密

雷 春 李 娜

(四川大学计算机学院 成都 610065)

(lcamry@163.com)

2016年至今,勒索软件家族及其数量剧增,同时据Carbon Black发布的2017年勒索软件经济报告显示其造成的经济损失高达百亿美元[1-2].同时RaaS(勒索软件即服务)的兴起,在巨大利益冲击下加剧了勒索软件的迅猛增长.根据Nomoreransom国际反勒索软件组织定义,勒索软件是一种能将您的电脑和移动设备上锁或能加密您的电子文件的恶意软件[3].

在恶意代码动态分析技术中,针对自动化检测勒索软件方面[4-5],现在较为常用的方法有以下3种:

1)利用文件指纹技术.在特定目录下生成勒索软件关注类型的文件,将其设置为陷阱文件,记录初始状态散列值.在样本执行过程中,检测陷阱文件散列值是否发生改变.当发生改变时确定执行样本为勒索软件[6].

2)利用API HOOK技术.设置陷阱文件,并对陷阱文件操作行为进行监控.在特定目录下生成陷阱文件,通过对ReadDirectoryChangeW应用层API进行文件系统监控,当陷阱文件修改或删除或其他修改状态等操作时,确定为勒索软件行为[7].

3)动态检测过程中对进程行为进行监控.根据美国ESET安全公司Michael van der Vaart发布的《ESET Anti-Ransomware》[8],对 wscript.exe,cscript.exe等进行监控,当创建该进程后对其行为进行控制,从而判断是否为勒索软件.

以上文件指纹技术和API HOOK技术在当前实际应用场景中较为常见,这2种方法都比较直观地体现陷阱文件是否在样本运行过程中被改变[6].同时方法易懂,且易操作,应用程度较广.但是以上2种方法过于粗粒度,通过一个陷阱文件的状态变化或操作行为,不能武断地作为勒索软件的一般化行为特征值.其他类型的恶意代码(TrojanDownloader:Win32/Vibrio.A等)同样对陷阱文件进行操作,从而对检测结果造成很大的误报率.同时因API HOOK绕过技术也会造成一定的漏报率.而ESET提到的方法主要是针对JS型恶意代码,尽管其对于JS型勒索软件等有一定的检测和防御效果,但是对于其他类型的恶意样本无法作出判断.为有效检测文件加密型勒索软件,本文提出了基于文件损坏度的勒索软件检测方法.

1 勒索软件特征分析

本文主要针对文件加密型勒索软件,在Brewer的“ransomware attacks:detection,prevention and cure”[9]中提到的文件加密型勒索软件大致分为漏洞攻击→勒索软件执行→清除备份→文件加密→通知勒索信息.在勒索软件执行过程中,对文件进行加密是勒索软件的核心过程.根据Scaife等人的“Stopping ransomware attacks on user data”[9]中提到勒索软件主要关注文件对象为用户存储信息类,其类型一般为PDF,DOCX,XLS,JPG等.

通过对大量文件加密型勒索软件样本进行理论和实验分析,勒索软件在对文件加密过程中会对文件内容、文件头有较大程度的修改,同时文件名在部分勒索软件中也会有较大程度的修改[10].本文利用3个指标分别对文件内容、文件头、文件名是否发生修改进行细粒度化检测,通过3个指标定量计算该文件损坏度,从而准确判断样本执行过程中对文件修改程度.

特征1.完整性校验.通过对文件进行完整性校验来检测样本为勒索软件的可能性,当前在陷阱文件中常被采用.当文件内容发生改变时其完整性遭到破坏.而文件加密型勒索软件正是读取文件并通过加密算法对其进行加密,加密过程中对文件的修改正是破坏了文件的完整性.本文采用HASH方法对文件进行MD5计算,计算其初始散列值.在样本执行后,再次对文件进行散列值计算,并与初始散列值进行比较.结果相同时说明样本肯定不是文件加密型勒索软件.当结果不同时可能为勒索软件.

特征2.文件类型改变.文件加密型勒索软件根据读写操作顺序分为3类:第1类为读取文件,加密数据直接覆盖在原文件位置上,一般在该过程中会对文件进行重命名;第2类则将文件移动到临时目录后读取临时文件并加密,将加密后的文件写回到原始路径下,同样地在这个过程中一般会进行重命名操作;第3类读取原文件,将加密后的文件写入到一个新的文件,删除原文件.以上3类勒索软件对文件名和类型一般有修改.

在对文件名或者文件类型进行修改时,勒索软件一般存在2种形式:第1种形式采用原文件的名字作为文件名,将后缀修改为自定义的格式;第2种形式则与原文件的文件名没有任何关系,直接命名为自定义的文件名.对文件名和文件类型进行检测,如果文件名发生了以上2种形式的改变,说明较大概率地发生了文件勒索行为.

特征3.相似度检测.利用文件相似度检测勒索软件,该方法在Nolen Scaife的CrytoLock[11]中作为一个指标.本文将文件相似度计算对象分为2个部分:文件内容相似度和文件头相似度.

文件内容相似度:勒索软件一般采用AES,DES等强加密手段对文件进行加密,文件在加密前后会发生较大的变化,其相似度将变得较低.采用模糊哈希方法,对样本执行前后的散列值进行比较,可得到2个文件的相似度.如果是文件加密型勒索软件,样本执行前后文件的相似度值较低.

文件头相似度:在PDF,DOCX,XLS,JPG等文件中,文件头一般表示该类型文件结构的数据,内容较为固定.当文件正常修改时,文件头只有固定的部分字节修改,例如表示长度的字节等.而文件加密型勒索软件在加密过程中会以二进制方式读取文件,并利用强加密算法对数据进行加密,文件头会有较大程度的修改.

2 勒索软件的检测方法

在动态检测中,我们的检测模型为:恶意样本上传到沙箱平台后,经沙箱平台进行检测,然后将样本下发到虚拟机中进行动态检测.虚拟机将动态执行的结果回传到沙箱平台,沙箱平台进行数据处理后得出结论.为增强该模式对勒索软件的识别,在样本执行过程中,从虚拟机中选取勒索软件关注的格式类型文件,称之为标记文件,记为sign,对标记文件进行多维度变化信息采集,根据算法计算该标记文件损坏度,记为dmge(sign).根据多个标记文件损坏度计算当前系统损坏度,记为FILEdmge.最后根据系统损坏度判断该样本是否为勒索软件.

该方法主要分为2部分,第1部分是在虚拟机中选定多个标记文件,并提取样本执行前后每个标记文件变化特征.第2部分根据每个标记文件变化特征计算文件损坏度,构建标记文件结果集,计算当前系统损坏度,根据阈值判断是否为勒索软件.

2.1 标记文件变化特征提取

标记文件特征提取分别在样本执行前后执行,下面介绍标记文件变化特征提取过程.表1为本文中所有的变量.

表1 本文变量解释

2.1.1 样本执行前标记文件特征提取

获取用户自定义的标记文件个数N,随机N次选取目录,并在该目录下获取或生成标记文件sign,提取每一个标记文件特征,包括FM(sign),FS(sign),FW(sign).再将提取的特征回传至沙箱平台.具体方法如算法1所示.

算法1.样本执行前标记文件特征提取方法.

2.1.2 样本执行后标记文件特征提取

样本执行时间,即沙箱平台下虚拟机执行时间,该参数在沙箱平台中由用户进行定义.读取该时间t,在虚拟机开机后的(t-5)s时再次启动标记文件特征提取程序.样本执行后获取执行前的标记文件集Set(sign),并对文件集中的每个标记文件再次进行特征提取.最后将提取特征回传至沙箱平台.具体方法如算法2所示.

算法2.样本执行后标记文件特征提取方法.

2.2 标记文件损坏度及系统损坏度计算

2.2.1 单个标记文件损坏度计算

经过样本执行前后标记文件特征提取,得到样本对应数据.通过样本执行前后数据FM(sign),FS(sign),FW(sign)比对,得出文件内容是否发生损坏以及损坏度,根据FC(sign)得出文件类型是否损坏以及损坏度.结合文件类型和文件内容的损坏度计算单个标记文件损坏度.

1)计算文件内容损坏度,记为Self(sign).以下为文件内容损坏度计算方法:

采用Smith-Waterman算法,对样本执行前后的标记文件头的FW(sign)进行相似度计算,结果记为Wi,且Wi∈[0,1];

采用SSDEEP算法,对样本执行前后的标记文件的FS(sign)进行相似度计算,记为Si,且Si∈[0,1];这里对结果进行调整,当结果因相似度过低,无法计算结果时,为适应该方法,将其结果记为0;

对样本执行前后标记文件的FM(sign)进行结果比较,结果记为Mi,当二者比对结果相等时,结果为1,反之结果为0,则Mi∈{0,1};

文件内容损坏度结合Mi,Wi,Si进行计算,则Self(i)计算方法为

其中a为M i和Si的权重值.为准确衡量文件内容损坏度,本文在不同情况下,a的取值有所不同.

2)结合FC(sign)和Self(sign),计算标记文件sign损坏度,将其记为dmge(sign).以下为dmge(sign)的计算方法:

2.2.2 系统损坏度计算

根据标记文件集Set(sign)的文件损坏度dmge(sign),计算系统损坏度,记作FILEdmge.

标记文件集合Set(sign)中标记文件个数为N,系统损坏度计算方法如下:

对标记文件Set(sign)集合取加权平均,计算当前系统的损坏程度.当N足够大时,即N为系统中所有文件个数时,系统损坏程度将覆盖整个文件系统,根据上述方法能够准确地定量系统损坏度.当N小于系统中所有文件个数时,一般采取抽样调查,采用随机方法保证结果的相对准确性.

3 实验检测

本文利用文件加密型勒索样本对上述方法进行了验证.对大量勒索样本、正常样本进行动态执行,计算其文件损坏度和系统损坏度.从系统损坏度实验中确定损坏度阈值,从而检测加密型勒索软件.

3.1 实验步骤

本文选取木马动态检测引擎cuckoo sandbox作为检测平台,宿主平台为ubuntu14.04,同时虚拟机选取1 GB RAM的Win7 sp1(32 b).为能让样本充分执行,这里关闭虚拟机中防火墙和其他反病毒软件,同时将样本执行时间调整为20 min,标记文件文件N为10个.

从 malware-traffic-analysis①http://www.malware-traffic-analysis.net,virusshare②https://www.virusshare.com,hybrid-analysis③https://www.hybrid-analysis.com,virustotal④https://www.virustotal.com平台上下载相关样本,得到176个适用于该实验的勒索软件样本,同时准备84个其他类型的恶意样本(botnet,spy等类型).通过手工检测,确定样本能够在实验环境中顺利执行.而这些样本主要包含WANNACRY,PETYA,CryptoWall等类型的样本.

3.2 检测结果

在文件内容损坏度Self(i)计算方法中,本文采用了参数a对M i和Si进行权重衡量.根据大量正常样本和勒索样本进行实验,对Self(i)中的a取值情况进行实验.在Wi≥Si的情况下,a=0.7.在Wi<Si的情况下,a=0.3.在Mi=0,Si=0的情况下,a=0.5.

选取代表性样本WANNACRY,PETYA等,计算系统损坏度,结果如图1所示:

图1 部分样本系统损坏度

通过对以上数据分析可知,代表性样本文件系统损坏度基本集中在0.5~1区间内.以0.70作为阈值对176个样本进行系统损坏度检测,检测率为88.64%;当阈值为0.6时,176个勒索样本被检测率为91.48%;当阈值为0.5时,176个勒索样本被检测率为99.43%.

而对于其他文件修改类型恶意代码,botnet,spy类型恶意代码系统损坏度基本接近0.而其中PDF,DOC等payload注入型的恶意代码,经实验得出系统损坏度小于0.5(内容修改量不同,损坏度也不同,但均小于0.5).因此将阈值设置为0.5时,实验样本误报率为0.

从实验数据分析得知,阈值相对较小时检测率会随之提升,但误报率则呈相反的走势.而为了准确检测勒索软件,本文将系统损坏度阈值设定为0.5,能有效地区分文件勒索型勒索软件与其他文件修改类型的恶意代码.当文件损坏度大于0.5时,系统判断该样本为加密型勒索软件.

在本文的实验环境中,因选取的标记文件类型为多种,而每个勒索软件样本针对的文件类型不同;同时勒索软件采用的加密算法、加密密钥等的不同,导致每个样本造成的系统损坏度不同.最后的主观原因是为躲避勒索软件的绕过,我们采取随机的方法、对文件名、文件内容、文件类型随机写入,因此不同的样本对于标记文件损坏程度不同.同样地每个样本每次运行的结果也不相同,但是通过大量实验可知,尽管每次实验结果会有所差异,但是基本都在允许范围内,能够做到勒索软件的准确检测.

本文设计的方法对于BLUFISH等VBA宏勒索型恶意代码不能做到精确检测,因其加密方法与上述样本加密手段不同,采用VBA宏对特定文件类型进行加密勒索.而本文选定的标记文件类型为多种,尽管该类型文件的文件损坏度能做到检测,但其他类型并未发生加密,系统损坏度相对较低,本文提出的方法未能有效地检测该类型勒索软件.

4 结束语

本文提出了一种基于文件损坏度的文件加密型勒索软件检测方法,并将该方法在动态检测引擎CUCKOO SANDBOX中进行实际检测.通过实验证明该方法能够有效检测出文件加密型勒索软件,但对于BLUFISH等单类型文件加密勒索型还未能做到准确检测.

[1]趋势科技.勒索软件的过去、现在和未来[OL].[2018-02-15].https://www.cisco.com/c/dam/assets/global/CN/products/security/pdf/talos/ransomware.pdf.

[2]Black C.The Ransomware Economy[OL].[2018-02-15].https://www.carbonblack.com/wp-content/uploads/2017/10/Carbon-Black-Ransomware-Economy-Report-101117.pdf

[3]Luo X,Liao Q.Awareness education as the key to ransomware prevention[J].Information Systems Security,2007,16(4):195-202

[4]Andronio N,Zanero S,Maggi F.HelDroid:Dissecting and detecting mobile ransomware[C]//Proc of Int Workshop on Recent Advances in Intrusion Detection.Berlin:Springer,2015:382-404

[5]Yang T,Yang Y,Qian K,et al.Automated detection and analysis for Android ransomware[C]//Proc of IEEE Int Conf on High Performace Computing and Communications.Piscataway,NJ:IEEE,2015:1338-1343

[6]Kim G H,Spafford E H.The design and implementation of tripwire:a file system integrity checker[C]//Proc of ACM Conf on Computer&Communications Security.New York:ACM,1994:18-29

[7]Cabaj K,Mazurczyk W.Using software-defined networking for ransomware mitigation:The case of cryptoWall[J].IEEE Network,2016,30(6):14-20

[8]ESET.ESET anti-ransomware setup[OL].[2018-02-15].http://www.nod32.com.hr/Portals/66/PDF/anti-ransomwaretechbrief-en.pdf

[9]Brewer R.Ransomware attacks:Detection,prevention and cure[J].Network Security,2016,2016(9):5- 9

[10]Kharraz A,Robertson W,Balzarotti D,et al.Cutting the gordian knot:A look under the hood of ransomware attacks[M]//Detection of Intrusions and Malware,and Vulnerability Assessment.Berlin:Springer,2015:3-24

[11]Scaife N,Carter H,Traynor P,et al.CryptoLock(and Drop It):Stopping ransomware attacks on user data[C]//Proc of IEEE Int Conf on Distributed Computing Systems.Piscataway,NJ:IEEE,2016:303-312

猜你喜欢
勒索特征提取加密
一种新型离散忆阻混沌系统及其图像加密应用
情绪勒索:警惕以爱之名的伤害
遭遇勒索
勒索
获奖产品介绍:对勒索病毒说不
——美创科技“诺亚”防勒索系统向勒索病毒“宣战”
基于Gazebo仿真环境的ORB特征提取与比对的研究
一种基于熵的混沌加密小波变换水印算法
基于Daubechies(dbN)的飞行器音频特征提取
加密与解密
Bagging RCSP脑电特征提取算法