新闻中心

EEPW首页 > 设计应用 > 基于文本分类技术的恶意代码检测工具 

基于文本分类技术的恶意代码检测工具 

作者:张东红时间:2018-08-27来源:电子产品世界收藏
编者按:恶意代码对人们的工作和生活带来了严重的威胁,对恶意代码进行检测也变得越来越重要。一种有效的恶意代码检测方式是借鉴机器学习技术,训练检测模型并使用其检测新样本中是否含有恶意代码。为达到此目的,使用操作码特征的检测方法近年来深受欢迎。用于高效、可配置地反汇编多种平台多种格式类型的可执行样本,避免基于递归下降反汇编算法的 IDA Pro 遇到的各种问题;本文还重新设计和实现了 “飞鼠”恶意代码检测系统,自动化地采集、标记、处理样本,提高反汇编成功率。

作者 张东红 中国科学院软件研究所 (北京 100864)

本文引用地址:http://www.eepw.com.cn/article/201808/391178.htm

  张东红,硕士生,曾获得“2012国际青年创新大赛”特等奖,以及“第十三届‘五四杯’大学生创业计划竞赛”二等奖。

摘要:恶意代码对人们的工作和生活带来了严重的威胁,对恶意代码进行检测也变得越来越重要。一种有效的方式是借鉴机器学习技术,训练检测模型并使用其检测新样本中是否含有恶意代码。为达到此目的,使用特征的检测方法近年来深受欢迎。用于高效、可配置地多种平台多种格式类型的可执行样本,避免基于递归下降算法的 遇到的各种问题;本文还重新设计和实现了 “飞鼠”系统,自动化地采集、标记、处理样本,提高成功率。

1 “飞鼠”系统

  针对此问题,论文根据反汇编算法实现了低精度的反汇编工具D-light,用于高效、可配置地反汇编多种平台多种格式类型的可执行样本,避免基于递归下降反汇编算法的 遇到的各种问题;论文还重新设计和实现了“飞鼠”恶意代码检测系统,自动化地采集、标记、处理样本,在兼容 的基础上,同时支持反汇编工具 D-light,并能够根据配置选择相应算法实现恶意代码检测。论文通过实验分析指出,使用反汇编算法提取特征,能够在允许一定程度的反汇编代码不准确的情况下,提高反汇编成功率,增加可利用的样本数目;训练数据集样本量的大幅增加可以弥补样本反汇编质量小幅度降低的损失,最终超越,或保持,基于 IDA Pro 的检测模型的检测效果。实验中还发现,使用多项式核函数的支持向量机分类算法在实践中有着更好的性能和应用价值。如图1和图2所示。

2 互联网与病毒发展现状

  随着计算机技术的高速发展和计算机网络的不断普及,计算机和互联网已经深入到人们日常生活和工作的方方面面。根据中国互联网信息中心在2018年1月发布的《第41次中国互联网络发展状况统计报告》,截至2017 年12 月,我国网民规模达7.72亿,全年共计新增网民4074 万人,互联网普及率达55.8%,相比较于2016年底提升了2.6%。同时我国在线政务服务用户规模达到4.85 亿,占总体网民的62.9%,通过支付宝或微信城市服务平台获得政务服务的使用率为44.0% 。

  日益便捷的网络互联环境和成熟的计算机技术,也为网络攻击的产生与传播提供了极大的便利条件,每年新增的软件数量呈现出持续性增长的趋势。在赛门铁克(Symantec)公司2010 年发布的安全报告中指出,赛门铁克公司相比于2008 年捕获到169323 个新型软件,2009 年共捕获到了2895802个新型软件。根据中国互联网应急响应中心(CNCERT/CC )在2017年5月发布的《2016 年中国互联网网络安全报告》,CNCERT/CC 通过自主捕获以及与厂商交换获得的移动互联网恶意程序数量约205万个。

3 “飞鼠”的设计

  基于特征码的静态恶意代码检测流程可以分为三部分,首先需要获取恶意代码,然后对现有已知的恶意代码进行特征分析,提取相应的特征码;然后汇总整理,将提取的特征码存入特征库;最后,在对未知的可执行样本进行检测时,根据特征库中的特征码逐项进行匹配。如果待检测样本中包含特征库中的特征信息,则认为该样本是恶意代码,反之,则认为是非恶意代码。如图3。

4 “飞鼠”系统特征训练检测模型

  在获取到包含恶意代码样本和非恶意代码样本的原始实验数据集,并进行预处理和数据集划分之后,对训练集数据首先使用线性扫描反汇编工具进行反汇编处理。然后从反汇编代码中提取特征。在完成操作码特征提取之后,会首先根据训练集中操作码特征的数据特征选择一定的操作码特征对样本进行向量化表示。最后将描述样本的特征向量输入分类模型中进行训练,得到用于恶意代码检测的恶意代码检测模型。测试阶段,使用相同的线性扫描反汇编方法对未知样本进行反汇编提取其操作码特征。根据训练阶段选择出来的操作码特征子集对未知样本进行向量化描述。最后将该描述向量输入到训练阶段得到的恶意代码检测模型进行检测,得到最终的恶意代码检测结果,恶意代码或者非恶意代码。

  在恶意代码检测工作中,可以定义混淆矩阵(confusion matrix)来记录相应的检测结果数据。如表 1所示,TP 表示将恶意代码检测成为恶意代码的样本数,FP 表示非恶意代码检测成为恶意代码的样本数,FN 表示恶意代码检测成为非恶意代码的样本数,TN 表示非恶意代码检测成为非恶意代码的样本数。

5 结论

  论文提出的解决方案,主要思想是通过训练样本数量的大幅增长来弥补操作码特征略微不准确的问题,所以在该解决方案中通过 D-light 反汇编工具获取大量稍微有些不准确的反汇编代码提取操作码特征来训练恶意代码检测模型。在对反汇编代码的质量和数量对恶意代码检测性能影响的实验研究中,通过使用D-light反汇编提取操作码特征训练得到的恶意代码检测模型与使用IDA Pro反汇编提取操作码特征训练得到的恶意代码检测模型进行对比分析,发现使用 D-light反汇编提取操作码特征训练得到的恶意代码检测模型的检测性能更好一些,验证了本文提出的使用线性扫描反汇编算法提取操作码特征训练恶意代码检测模型的解决方案是有效和可行的。此外,在对比分析实验中,本文还发现使用多项式核函数支持向量机分类算法的恶意代码检测模型在实践中检测性能表现最好。

  参考文献:

  [1] 中国互联网信息中心.第 41 次中国互联网络发展状况统计报告[J]. 中国经济报告, 2017(4).

  [2] Nataraj L,Karthikeyan S,Jacob G,et al.Malware images: visualization and automatic classification[C]//Proceedings of the 8th international symposium on visualization for cyber security. ACM, 2011: 4.Fossi M, Egan G, Haley K, et al. Symantec global internet security threat report[J]. Volume 1, 2010.

  [3] Fossi M,Egan G,Haley K,et al.Symantec global internet security threat report [J]. Volume XVI, 2011.

  [4] 国家计算机网络应急技术处理协调中心.2016 年中国互联网网络安全报告[M/OL].北京: 人民邮电出版社,(2017).http://www.cert.org.cn/publish/main/upload/File/2016_cncert_rep -ort.pdf.

  本文来源于《电子产品世界》2018年第9期第75页,欢迎您写论文时引用,并注明出处。



推荐阅读

评论

技术专区

关闭