- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于语义的恶意行为的分析方法
一种基于语义的恶意行为分析方法
李佳静1,梁知音1,韦韬1♀,毛剑1
北京大学计算机科学技术研究所,北京,100871
♀通信作者,E-mail: weitao@icst.pku.edu.cn
摘要 多态和变形恶意代码的出现给传统的基于语法的恶意代码分析方法带来了挑战。基于语义的恶意代码分析方法试图解决这些问题,但是现有的方法对基于函数调用的攻击的研究存在不足。本文提出了一种基于语义的恶意行为分析方法,可以对基于函数调用的攻击进行完整刻划,支持流敏感、上下文敏感且路径敏感的函数间分析。与现有方法相比可以更加准确地描述全局状态中的基于函数调用的攻击行为。针对多个恶意程序和应用程序的分析表明,该方法可以有效地识别代码中的恶意行为。
关键词 恶意代码分析,代码混淆,模型检验, 信息安全
中图分类号:TP314
A Malicious Behavior Analysis Method Based on Program Semantic
Li Jiajing1, Liang Zhiyin1, Wei Tao1, Mao Jian1, Zou Wei1
Institute of Computer Science Technology of Peking University, Beijing, 100871
♀Corresponding Author, E-mail: weitao@icst.pku.edu.cn
Abstract Polymorphic and metamorphic malware defeat traditional malware analysis methods. Methods based on program semantic were provided to resolve this problem, but currently few researches were focused on function call based attacks. This paper presents a semantic based method to analysis malicious behavior in software, with more precise description of function call based attacks, and flow sensitive, context sensitive and path sensitive inter-procedure analysis ability. Experiments on malicious and benign programs show it is effective to find malicious behavior in software.
Keywords malware analysis, code obfuscation, model checking, information security
恶意代码已经成为威胁互联网安全的重要因素,对恶意代码的分析和检测是任何安全策略中的重要环节。传统的恶意代码检测技术根据恶意代码的形态特征,提取恶意代码的指纹,通过模式匹配方式对目标系统检测和防护,典型的指纹提取方法包括Rabin指纹等。实验表明这种方法不能识别特征未知的恶意代码,以及同一个恶意代码的多态或变形[1]。
为了解决基于语法检测的方法的这些问题,基于语义的恶意代码分析被提出来[1-6]。基于语义的方法使用抽象语义刻画程序的行为,以对抗对语法层次代码的修改和检测未知的恶意软件,其出发点为(1)不同的语法表达可能有相同的语义,例如攻击者可以使用拟态攻击(Mimicry Attacks)来模糊程序的语义;(2)恶意代码的大部分与攻击目标无关,例如有些代码只是进行内存分配和初始化等;(3)恶意代码可能通过代码重用实现相似的功能,例如扫描、攻击和隐藏,基于语义的方法通过分析已知恶意行为可以识别未知恶意程序。
根据恶意程序使用的主要策略,安全攻击将粗略分为基于内存的攻击(例如缓冲区溢出或者格式化字符攻击)和基于函数调用的攻击。大多数使用C/C++等高级语言编写的病毒、蠕虫、木马、后门等,在受害系统中进行的恶意行为,例如打开TCP端口将自身的拷贝发送到远程的机器、安装后门、删除或者截取敏感信息、修改受害系统的配置等,都使用基于函数的攻击。目前语义分析方法对基于函数调用攻击的研究存在不足,主要包括以下三个方面:
(1)无法描述函数调用的复杂上下文关系。现有的方法或者使用单个的可疑函数,或者使用基于语法的函数序列的统计信息,忽略了函数调用的语义与上下文之间的关系。
(2)无法描述函数调用的语义与控制结构的关系。例如在whil
文档评论(0)