- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种抗噪声的程序行为检测算法
近年来,基于行为特征的恶意程序检测一直是研究的重点。检测程序流程包括三个部分:检测程序行为监控、行为函数提取和使用行为检测算法。不同的研究人员在这三个问题上进行了研究,并取得了相应的研究成果。
(1) 程序行为监控Ulrich Bayer团队设计的Anubis是一款基于开源模拟器Qemu的优秀的恶意程序行为监控系统, TT Analyze
(2) 程序行为特征提取尽管API调用序列是恶意程序行为检测采集的核心数据, 但检测算法并不直接使用它们作为输入数据, 而是必须经过行为特征提取算法的处理, 得到适合被检测算法处理的形式化信息.API依赖关系图
(3) 行为检测算法设计按照设计思想和算法原理的不同, 行为检测算法主要分为:程序执行时释放代码特征分析
综上, 目前行为检测方法研究通常针对某一具体环节, 检测算法的设计也随着程序行为特征提取原理的不同千差万别.其中绝大多数方法在证明其有效性的测试实验中都只使用了少量恶意程序家族的测试样本, 在现实世界呈爆炸式增长的恶意程序面前, 这些方法的实用性值得怀疑.更重要的是, 行为检测应该是一个多分类问题, 所获得的类别标签是一种重要知识, 对辅助人工决策, 修复系统漏洞, 计算机安全防护等都有着重要的意义.
在分类问题中, 直接构造分类准确率高的强分类器通常是非常困难的, 分类精度会随着类别数目的增多急剧下降.集成学习中的Boosting理论提供了这一问题的有效解决方法, 能够方便地将弱分类器提升为强分类器.AdaBoost
笔者以“使用Boosting算法提高恶意程序多分类准确率”为研究目标, 提出了一种新的程序行为抽象方法.在此基础上, 以决策树为子分类器算法, 改进AdaBoost.M1, 提高原算法抗噪声数据能力.在集成环节, 为每一个子分类器生成投票向量取代单一的投票权值, 区别子分类器对不同类别样本分类的能力, 提高多分类情况下集成分类器分类准确率.图1给出了文中研究方法的基本架构图.
1 程序行为的抽象
1.1 程序行为数据的选择
在Windows系统中, 程序发起的API调用代表着程序与系统之间的交互, 是行为监控的首要目标, 也是行为检测分析的主要数据.在此基础上, 辅助静态分析信息往往能够更准确更快速地判定程序的恶意性.例如, 安装程序和恶意程序同样会向系统文件夹中写入内容, 但若是加壳程序执行期间向系统文件夹中写入内容, 该程序是恶意的可能性将大大提高.除了壳信息, 静态分析中的多国语言特征, 以及部分PE文件结构信息对程序恶意性判断都有很好的辅助作用.
恶意程序传播自身、接受控制命令、窃取并泄露用户机密信息等, 必然利用计算机网络, 网络行为的监控与描述在恶意程序行为检测中起着重要作用.传统基于主机的网络数据包监控得到的信息数据量大, 但只能描述底层网络流量的产生, 无法从中了解程序进行网络操作的真实意图.更高层基于API的网络行为监控, 尽管有着良好的语义, 却可能由于网络运行环境不满足, API调用失败, 导致监控不到任何网络行为.这两者的结合才能够为恶意程序网络行为的刻画提供更丰富的信息.
因此, 在行为数据的选择上, 笔者收集程序执行时发起的API调用序列、基于主机的网络数据包信息以及部分静态分析信息, 作为描述程序行为的源数据.
1.2 )api调用的数据依赖关系
API调用序列通常不能直接作为行为检测算法的输入数据, 主要有4个原因: (1) API调用反映出的行为语义粒度过小, 不是严格意义上的程序行为; (2) 同一个API可能实现不同的功能, 存在二义性; (3) 程序执行时收集到的API序列含有大量冗余数据; (4) 一般基于API时序关系设计行为描述方法, 易受到冗余API插入和API重排的攻击.因此, 需要一种从原始API序列中抽象出更稳定程序行为特征的方法.
一个API的返回值会成为另一个API的输入参数, 即API调用之间存在数据依赖关系, 这是一种更为稳定的程序行为特征.因此, 建立API调用之间的数据依赖关系, 是目前最流行的行为抽象方法.然而, 动态分析收集到的API调用数量庞大, 得到的API依赖关系图会异常复杂.以文献[6]中的实验结果为例, 对常见恶意程序执行两分钟发起的API调用进行分析, 一方面得到的API依赖关系图包含十万到百万数量级个节点, 千到万数量级条边, 数据量异常庞大;另一方面, 这种行为抽象方法也限制了分析与检测算法只能在各种图算法中选择, 而图是一种在计算机内部存储和相关处理算法都相对复杂的数据结构, 直接造成了检测算法具有高计算复杂度.为了解决以上问题, 笔者从行为抽象方法出发, 提出了一种低聚合度API依赖关系分析法, 使用特征向量表示的抽象行为数据.以下首先给
原创力文档


文档评论(0)