版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于行为轨迹的特征码检测方法
0静态行为轨迹检测2016年,360互联安全中心发布了2015年中国互联安全报告。目前恶意代码的检测可以分为静态和动态两种方法动态方法主要通过跟踪代码运行时的行为轨迹来判断是否是恶意代码。王蕊等人针对上述检测方法的不足,本文提出一种基于静态行为轨迹的恶意代码检测技术,通过IDAPro反编译工具,提取出二进制代码的函数调用关系图,再利用变长的n-gram算法对已经获得的系统调用序列进行分片,从而获得恶意代码特征库,最后利用分片技术与判决阈值构建匹配模型,检测恶意样本。与传统的方法相比,该方法具有效率高且能够识别未知的恶意代码的优点。1反汇编提取特征任何程序的运行,在内核级都是通过系统调用体现的。程序运行后会留下运行的轨迹是时序关系的系统调用序列,即行为轨迹。对恶意代码的静态检测方法大部分是基于字节序列的特征码检测,这种方式数据量大,特征复杂且不确定性很高,在一定程度上会将正常程序的特征送入特征库中。本文利用IDAPro将正常样本与恶意样本进行反汇编处理,通过Hex-rays插件对生成的汇编代码进行反编译处理,得到每个样本的类C代码,然后通过Graphviz得到函数调用关系图(APIgraph),如图1所示。APIG可以拆分出若干路径,每一个路径实际上就是程序在实际运行时一条可能执行的轨迹,称这条轨迹就是一条程序的静态行为轨迹。定义1静态行为轨迹(staticbehaviortrajectories)。用来表征程序执行过程的函数调用关系图中的函数调用序列被称为静态行为轨迹。即SBT=(S定义2轨迹段。存在SBT=(S2资源提取定义3特征(staticsignature)。用于表征程序执行过程中特定行为的轨迹段,并且可以判断程序的行为是否具有恶意性。2.1n-gram算法n-gram是自然语言处理的一种模型,该模型基于这样一种假设例如文献[14],一段二进制序列可以由n个字节的二进制码组成,即S=(b但是n-gram也有其自身的缺陷,首先n-gram难以获得不同长度的序列特征,如果一条APIG中有多个序列特征但是不等长,或者不是n的整数倍时,则会产生错误的匹配,造成有效的特征片段丢失或出现异常;另外n-gram会产生庞大的特征库,造成巨大空间消耗,同时也降低了匹配效率。本文在提取特征时以API函数作为特征的基本组成单元,并将系统的API函数与整数一一对应,与基于字节序列的异常检测相比,可以极大地减少特征的存储空间,提高匹配效率。2.2特征序列筛选变长n-gram与n-gram的区别在于,它的长度是可变的,可以提取出一串不定长且有效的特征序列,在一定程度上避免了若干个有意义的特征序列被分离的可能。为了寻找有意义的子序列,必须在原始的序列中设置断点,两个相邻断点之间的连续序列就是需要寻找的可能的特征序列。本文则采用Cohen等人专家投票算法有两个属性值。一个是边界熵属性,每一个单独的序列特征都会按照它的子序列进行分配,例如子序列“en”在一段话中出现了7次,而跟在“en”之后的有“c”“t”等分别出现了不同的次数(<7),此时就可以算出“en”在这段话中的边界熵值,xi表示以“en”为开始的所有子序列。如果边界熵越大,说明序列之后是断点的可能性越大。另一个是频率属性。如果一段话中不同子序列出现的频率越高,说明这个子序列是一个单词(特征)的可能性越大;反之其中包含断点的可能性则越小。在滑动窗口内求得每一个位置的频率和边界熵后,将频率和边界熵最大的两个位置分数加1。最后,根据每个位置所得到的分数来判断可能的断点,而两个相邻断点之间的序列就是本文需要提取的特征。2.3子节点检出限点的确定构造一个d=n+1的Trie树实现专家投票算法,其中d代表树的深度,以长度n为窗口依次从左至右读取子序列,并将读取的子序列按单元依次插入Trie树中,如图2所示。如果单元在Trie树中不存在,则将其频率置1;否则频率加1。本文中取d=4。假设有一段英文序列“abcabd”,它所生产的Trie树如图2所示。在这个结构中,字母右边括号内的数字代表其出现的次数。例如左边叶子节点中的c(1),表示序列“a|b|c|”出现了一次,父节点b(2)表示序列ab出现了两次。在寻找断点时,窗口按顺序滑过序列,首先经过“a|b|c|”,a与b之间为第一个可能的断点,分别计算此断点的频率和熵。定义4频率。每个位置的频率是该位置在窗口内前后两个序列的频率之和,如f(a)=f(a)+f(bs)。其中f(bc)表示序列“bc”出现的频率。定义5边界熵。每个位置的边界熵是该位置左边节点的熵,即其中:p(x)为该位置处右边两个节点相对于其父节点出现的频率。由于断点的判定是由频率和熵共同决定的,所以在将其所得分数相加前,需要对两个属性作标准化处理,以消除其量纲关系。窗口中的每一个可能的断点计算完成后,给频率和熵值最大的位置分数加1,并且滑动窗口向后移动,步长设置为1,再重复上述操作,直到序列结束。在实验中需要设定一个最小阈值来判断是否将一个分数大于0的位置视为断点。利用上述方法对正常程序和恶意程序进行特征提取,会分别得到正常的特征库ND和异常的特征库SD。而ND的大小对于后续检测也有一定的影响。若ND偏小,则会导致SD中混入部分正常的轨迹段使得检测结果误报率升高;若ND偏大,则会导致SD中特征数量的减少使得检测结果中漏报率升高。所以在实际检测中,应该针对样本集的大小选取合适的训练集数目。2.4确定最大可能断点整个特征提取的算法如下所示,其中输入S、N是恶意程序和正常程序的集合,输出SD为匹配所需的恶意特征库。a)1~4行为初始化部分,将获取到的APIG分成若干静态行为轨迹,并为每一条轨迹生成深度为d+1的Trie树结构。b)5~8行是对Trie树中的每一条路径计算其中可能断点的频率值和熵值,并作标准化处理以消除量纲关系。c)9行对每一个可能的断点位置作分数的初始化,使其置为0。d)10~16行是利用长度为k的滑动窗口在静态行为轨迹上获取行为轨迹段。在窗口中存在k个可能的断点,分别找出频率值最大和熵值最大的可能断点,并对该位置的分数加1。在计算完一个窗口时,向右滑动,步长为1。重复上述操作,直到该条轨迹结束。e)17行设定一个最小阈值γ,将该值将与断点处的得分作比较。f)18~22行遍历每一个可能的断点,并将其所得分数与最小阈值γ作比较,若大于γ,则将其置入特征库中,反之舍弃。3基于相对熵的特征选择在生成的特征库中依然存在许多冗余的恶意特征,所以本章利用相对熵进一步处理特征库,挑选出对于判别恶意代码贡献较为突出的特征,进而提高检测的准确率。3.1衡量p和q相关性的特征库的构建在信息论中,相对熵(relativeentropy)在本文中利用衡量P和Q的相关性这一特点,进一步处理特征库,优化特征质量。3.2优化资源设第i个特征的相对熵定义如下:其中:x相对熵KL(x将所求得的KL(x4异常性的判定为了实现多样化的功能,程序会执行不同的函数调用序列,这些不同的函数调用序列将会组成轨迹段。本文将用这些分割出的轨迹段与特征库中的恶意特征进行比对。检测流程包括以下几部分:首先获取程序的函数调用图APIG,经过处理获得若干静态行为轨迹。设已获取的静态行为轨迹为SBT将获得的静态行为轨迹拆分成由多个轨迹段组成的轨迹段序列(trajectoriessequence)。TS将S在求判决阈值时,为了更有效地判定样本的异常性,本文引入可信度这一概念。轨迹段S=(S其中:confi(S)表示轨迹段S在特征库中的可信度;描述了特征库中第一个函数调用为s判决值的计算公式为其中:judg(Sam)表示某个样本的判决值;n表示从APIG中拆分出了n条静态行为轨迹;k表示某一条静态行为轨迹分出的轨迹段序列包含k个轨迹段。然后根据判决值judg(Sam)与判决阈值γ的对比来判定当前检测样本是否具有恶意性。如果judg(Sam)>γ,则判定其为恶意的;如果judg(Sam)<γ,则判定其为正常的。判决阈值γ是用户根据不同安全等级自己定义的门限值,γ越大,匹配的成功率相对较低,说明安全级别较低;反之γ越小,匹配的成功率相对较高,说明安全级别较高。5)生成恶意特征库本次实验过程如图3所示。首先对训练集合进行特征提取、特征筛选并生成恶意特征库;然后提取出待测集合中样本的特征,并与特征库中的恶意特征作比对,依据设定的判决值作出判定。根据不同安全等级,本次实验分别取判决阈值γ=0.5和γ=0.8。5.1实验过程和评估指标实验主机的硬件采用主频为2.7GHz的Intel实验所用的测试集恶意代码样本分为两类,第一类用于测试对恶意代码变种的检测能力(表1),共1892个,第二类用于测试模型对整体恶意代码的检测能力(表2),共930个。所有样本来源于;正常程序600个,来源于初始Windows7中正常的系统程序。样本中Trojan-Banker为“银行家”木马,当计算机被感染后,会不断地监视用户是否访问银行等网站,并盗取用户账号信息发送给黑客。Trojan-Downloader为“下载者”木马,其通过用户的计算机从指定的URL地址下载多个病毒文件并在本地运行。Trojan-clicker运行后衍生病毒文件到系统目录下以修改注册表,添加启动项,以达到开机启动的目的,连接网络后,会弹出URL列表中的网址。在构建训练集时,在恶意程序和正常程序中各随机抽取20%。实验通过检测率(TPR)、误报率(FPR)和漏报率(FNR)作为评估指标。TPR计算公式为其中:U其中:N其中:U5.2判决阈值的确定实验中分别用诺顿、Avast、AVG和360杀毒四款流行杀毒软件(表3)对待测恶意样本进行扫描,并采用3-gram与4-gram直接进行特征提取,与本文中变长n-gram的特征检测实验结果作对比,结果如图4、5所示。从图4和5中可以看出,由于病毒变种更新速度过快,导致病毒库更新出现的严重滞后性,诺顿的检测率非常低;而Avast、AVG以及360杀毒对于恶意样本有着较好的检测率,但是由于受到病毒库中特征数量的限制,其结果也存在明显的差异,并且漏报率相对于本实验模型较高。对于测试集1,因为待测的恶意样本种族特性明显,具有相似的恶意行为特征,所以本模型对其检测效率较高;而测试集2中恶意样本具有离散型,导致模型的检测效率有所下降。本文模型的检测率受限于判决阈值γ的大小,不同的γ值会产生不同的安全级别,γ升高,安全级别降低,检测率下降,误报率下降;γ减小,安全级别升高,检测率和误报率都会上升。所以选择合适的判决阈值对于检测的效果有着不可忽略的影响。相比于3-gram与4-gram的实验结果,变长n-gram的性能要优于它们。6基于特征序列库的匹配检测面对恶意代码及其变种爆炸式增长,本文提出基于静态行为轨迹的异常特征检测模型,在基于IDAPr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高档商品房认购协议书
- 商业秘密授权使用协议
- 塑料排水板堆载预压施工方案
- 高空作业平台安全专项施工方案
- 管道顶管施工测量放线方案
- 数据中心运维管理安装施工方案
- 土地表面平整施工措施
- 降水施工技术方案
- 仓库管理员安全制度
- 2026年跨境电商营销推广方案
- 现代西班牙语A1课后翻译
- 《碳排放管理体系建设与评价指南》
- 装配式建筑装饰装修技术 课件 模块一 装配式装修概述
- FZ∕T 93043-2012 棉纺并条机行业标准
- 高铁火车工作原理
- MOOC 英国小说-南京大学 中国大学慕课答案
- 《旅游法规》课件-第25讲 旅行社责任保险分析
- MOOC 隔网的智慧-乒羽两项-西南交通大学 中国大学慕课答案
- JTT327-2016 公路桥梁伸缩装置通用技术条件
- 实验题-江苏省南通市10年(2013-2022)中考物理真题按题型分类(解析版)
- 高中化学选择性必修3 教材习题答案
评论
0/150
提交评论