CN102012988B - 自动二进制恶意代码行为分析方法 - Google Patents
自动二进制恶意代码行为分析方法 Download PDFInfo
- Publication number
- CN102012988B CN102012988B CN201010570398A CN201010570398A CN102012988B CN 102012988 B CN102012988 B CN 102012988B CN 201010570398 A CN201010570398 A CN 201010570398A CN 201010570398 A CN201010570398 A CN 201010570398A CN 102012988 B CN102012988 B CN 102012988B
- Authority
- CN
- China
- Prior art keywords
- path
- execution
- malicious code
- malicious
- predicate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种自动二进制恶意代码行为分析方法;该方法为:a.首先确定二进制恶意代码中可能存在的待分析的恶意行为,然后,在全系统模拟环境中执行待分析程序;b.取一条程序指令;c.如果该指令有输入值,则将输入值定义为符号变量;d.如果该指令是为条件分支指令,则生成、解析路径判定谓词,生成新路径,并将新路径加入路径存储池;e.如果该指令中包含待分析的WindowsAPI序列,则求解与该WindowsAPI序列相关的代码段,并生成相关触发输入集;f.如果路径存储池为空,则生成分析报告后结束;如不空,选择下一条要执行的路径,然后执行步骤b;本发明提供了一种高效的自动二进制恶意代码行为分析方法。
Description
(一)、技术领域:本发明涉及一种恶意代码行为分析方法,特别是涉及一种自动二进制恶意代码行为分析方法。
(二)、背景技术:恶意代码是威胁计算机系统和网络安全的重要因素之一。恶意代码是对在不被用户所知的情况下渗透或破坏计算机系统的具有恶意行为的软件的总称,是各种攻击、入侵、破坏软件或代码的泛指,包括计算机病毒、蠕虫、特洛伊木马、Rootkits、间谍软件等。恶意代码分析用于提取恶意代码的特征信息,是恶意代码检测和发现的基础和前提,近年来,由于恶意代码发展迅猛,自动分析恶意二进制代码显得十分必要,分析结果不仅在设计防御系统方面很有用,还有助于了解攻击者的攻击能力。
目前,恶意代码分析的方法之一是人工使用调试器,并且对代码执行行为进行推理。然而,人工分析的效率很低,还比较容易出错,无法与大量涌现的恶意代码进行对抗。恶意二进制分析的另一种方法就是在一个有条件限制的环境(比如虚拟机环境)中运行一段二进制代码程序观察并记录其行为。然而,此类方法提供的信息十分有限,日志信息只记录了在具体设置下运行的恶意代码的表象行为。恶意二进制代码某些功能,只在某些特定的环境或是条件下(比如当收到一个正确的命令或是设置了一个特定的register key)才会被触发。如果用于测试的环境设置没有满足所需条件,相关的恶意功能不会被激活。人们可以在各种不同的环境设置下对程序示例进行测试,并且随意给定网络输入。然而,设置不同的环境,并在这个环境下测试程序的花费较大,并且效率较低,猜测满足条件的正确环境的可能性非常小。因此,这种方法不能完全有效地对恶意二进制代码进行分析。为了研究有效的恶意代码防御技术,自动分析恶意代码就显得尤为重要了。
(三)、发明内容:
本发明要解决的技术问题是:克服现有技术的缺陷,提供一种自动二进制恶意代码行为分析方法,该方法基于全系统模拟技术,采用动态符号执行探查可执行程序中所有可能的执行路径,发现其中恶意代码的操作行为,分析恶意行为与输入的关联关系,并可以有效分析出恶意代码执行行为的控制结构关系,提取出恶意行为执行的触发输入条件,给出恶意行为执行与输入的关联关系;该系统可以有效提高恶意代码分析的效率。
本发明的技术方案:
一种自动二进制恶意代码行为分析方法,在全系统模拟环境下,对二进制恶意代码进行如下分析:
a.首先确定二进制恶意代码中存在的待分析的恶意行为,待分析的恶意行为由一张恶意行为列表来维护,恶意行为列表中含有Windows API调用序列;然后,在全系统模拟环境中执行待分析程序;
b.取一条程序指令;
c.判断该指令是否有输入值?如有,执行步骤d;如没有,执行步骤e;
d.引入符号变量,将输入值定义为符号变量,在全系统模拟环境中采用符号执行方式执行;
e.判断该指令是否为条件分支指令?如是,执行步骤f;如不是,执行步骤i;
f.为该指令生成包含符号变量的路径判定谓词;
g.解析路径判定谓词,生成程序执行新路径;
h.保存新路径,将新路径加入路径存储池;
i.判断该指令中是否包含待分析的Windows API调用序列?如是,执行步骤j;如不是,执行步骤l;
j.采用反向切片技术,求解与该Windows API调用序列相关的代码段;
k.生成相关触发输入集;
l.判断路径存储池是否为空?如是,执行步骤m;如不是,在路径存储池中选择下一条要执行的路径,然后执行步骤b;
m.生成分析报告;
n.结束。
步骤a中的恶意行为列表是默认提供的典型的Windows API调用序列,或者是由用户根据需要来定义的可疑的感兴趣的WindowsAPI调用序列。
步骤f中路径判定谓词的生成过程为:根据二进制恶意代码中依赖于符号变量的分支为每一条分支构建一个路径判定谓词,路径判定谓词是使得程序按特定路径执行的条件。
步骤g中的解析路径判定谓词是指:针对条件分支指令生成的包含符号变量的路径判定谓词,判定分支条件是否可满足,即是否存在使路径判定谓词成立的有效输入值;如果分支条件是可满足的,执行条件分支指令的true分支;如果分支条件是不可满足的,执行条件分支指令的false分支。
步骤k中的相关触发输入集是指:与特定恶意行为相关,并且能够触发程序中的恶意代码执行的输入值的集合。
输入值含有特定的键盘输入值、系统时间值和网络数据包,输入值为可触发恶意代码执行的外部输入。
步骤m中的分析报告含有:恶意代码功能报告、行为特征报告、实现的指令序列报告、相关触发输入集报告和输入与输出的关联关系报告。
全系统模拟环境可采用全系统模拟器实现;全系统模拟器可采用Bochs全系统模拟器,或采用Vmware全系统模拟器,或采用QEMU全系统模拟器。
本发明的有益效果:
1、本发明可以发现恶意代码执行了什么动作、恶意代码潜藏行为之间的控制流(如:恶意软件是否对文件进行写或删除操作、是否发出网络数据包、是否接受远程命令等问题),利用本发明还可以得出使得恶意行为执行的相关触发输入集、恶意行为和输入之间的关联关系。本发明为发现和检测恶意代码提供有力的支持,其分析的结果不仅在设计防御系统方面很有用,还有助于了解攻击者的攻击能力。
(四)、附图说明:
图1为自动二进制恶意代码行为分析方法的工作流程示意图。
(五)、具体实施方式:
参见图1,图中,自动二进制恶意代码行为分析方法为:在全系统模拟环境下,对二进制恶意代码进行如下分析:
a.首先确定二进制恶意代码中存在的待分析的恶意行为,待分析的恶意行为由一张恶意行为列表来维护,恶意行为列表中含有Windows API调用序列;然后,在全系统模拟环境中执行待分析程序;
b.取一条程序指令;
c.判断该指令是否有输入值?如有,执行步骤d;如没有,执行步骤e;
d.引入符号变量,将输入值定义为符号变量,在全系统模拟环境中采用符号执行方式执行;
e.判断该指令是否为条件分支指令?如是,执行步骤f;如不是,执行步骤i;
f.为该指令生成包含符号变量的路径判定谓词;
g.解析路径判定谓词,生成程序执行新路径;
h.保存新路径,将新路径加入路径存储池;
i.判断该指令中是否包含待分析的Windows API调用序列?如是,执行步骤j;如不是,执行步骤l;
j.采用反向切片技术,求解与该WindowsAPI调用序列相关的代码段;
k.生成相关触发输入集;
l.判断路径存储池是否为空?如是,执行步骤m;如不是,在路径存储池中选择下一条要执行的路径,然后执行步骤b;
m.生成分析报告;
n.结束。
步骤a中的恶意行为列表是默认提供的典型的Windows API调用序列,或者是由用户根据需要来定义的可疑的感兴趣的WindowsAPI调用序列。
步骤f中路径判定谓词的生成过程为:根据二进制恶意代码中依赖于符号变量的分支为每一条分支构建一个路径判定谓词,路径判定谓词是使得程序按特定路径执行的条件。
步骤g中的解析路径判定谓词是指:针对条件分支指令生成的包含符号变量的路径判定谓词,判定分支条件是否可满足,即是否存在使路径判定谓词成立的有效输入值;如果分支条件是可满足的,执行条件分支指令的true分支;如果分支条件是不可满足的,执行条件分支指令的false分支。
步骤k中的相关触发输入集是指:与特定恶意行为相关,并且能够触发程序中的恶意代码执行的输入值的集合。
输入值含有特定的键盘输入值、系统时间值和网络数据包,输入值为可触发恶意代码执行的外部输入。
步骤m中的分析报告含有:恶意代码功能报告、行为特征报告、实现的指令序列报告、相关触发输入集报告和输入与输出的关联关系报告。
全系统模拟环境可采用全系统模拟器实现;全系统模拟器可采用Bochs全系统模拟器。
Claims (7)
1.一种自动二进制恶意代码行为分析方法,其特征是:在全系统模拟环境下,对二进制恶意代码进行如下分析:
a.首先确定二进制恶意代码中存在的待分析的恶意行为,待分析的恶意行为由一张恶意行为列表来维护,恶意行为列表中含有Windows API调用序列;然后,在全系统模拟环境中执行待分析程序;
b.取一条程序指令;
c.判断该指令是否有输入值?如有,执行步骤d;如没有,执行步骤e;
d.引入符号变量,将输入值定义为符号变量,在全系统模拟环境中采用符号执行方式执行;
e.判断该指令是否为条件分支指令?如是,执行步骤f;如不是,执行步骤i;
f.为该指令生成包含符号变量的路径判定谓词;
g.解析路径判定谓词,生成程序执行新路径;
h.保存新路径,将新路径加入路径存储池;
i.判断该指令中是否包含待分析的Windows API调用序列?如是,执行步骤j;如不是,执行步骤l;
j.采用反向切片技术,求解与该Windows API调用序列相关的代码段;
k.生成相关触发输入集;相关触发输入集是指:与特定恶意行为相关,并且能够触发程序中的恶意代码执行的输入值的集合;
l.判断路径存储池是否为空?如是,执行步骤m;如不是,在路径存储池中选择下一条要执行的路径,然后执行步骤b;
m.生成分析报告;
n.结束。
2.根据权利要求1所述的自动二进制恶意代码行为分析方法,其特征是:所述步骤a中的恶意行为列表是默认提供的典型的Windows API调用序列,或者是由用户根据需要来定义的可疑的感兴趣的Windows API调用序列。
3.根据权利要求1所述的自动二进制恶意代码行为分析方法,其特征是:所述步骤f中路径判定谓词的生成过程为:根据二进制恶意代码中依赖于符号变量的分支为每一条分支构建一个路径判定谓词,路径判定谓词是使得程序按特定路径执行的条件。
4.根据权利要求1所述的自动二进制恶意代码行为分析方法,其特征是:所述步骤g中的解析路径判定谓词是指:针对条件分支指令生成的包含符号变量的路径判定谓词,判定分支条件是否可满足,即是否存在使路径判定谓词成立的有效输入值;如果分支条件是可满足的,执行条件分支指令的true分支;如果分支条件是不可满足的,执行条件分支指令的false分支。
5.根据权利要求1所述的自动二进制恶意代码行为分析方法,其特征是:所述步骤k中的输入值含有特定的键盘输入值、系统时间值和网络数据包,输入值为可触发恶意代码执行的外部输入。
6.根据权利要求1所述的自动二进制恶意代码行为分析方法,其特征是:所述步骤m中的分析报告含有:恶意代码功能报告、行为特征报告、实现的指令序列报告、相关触发输入集报告和输入与输出的关联关系报告。
7.根据权利要求1所述的自动二进制恶意代码行为分析方法,其特征是:所述全系统模拟环境可采用全系统模拟器实现;全系统模拟器可采用Bochs全系统模拟器,或采用Vmware全系统模拟器,或采用QEMU全系统模拟器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010570398A CN102012988B (zh) | 2010-12-02 | 2010-12-02 | 自动二进制恶意代码行为分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010570398A CN102012988B (zh) | 2010-12-02 | 2010-12-02 | 自动二进制恶意代码行为分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102012988A CN102012988A (zh) | 2011-04-13 |
CN102012988B true CN102012988B (zh) | 2012-09-26 |
Family
ID=43843161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010570398A Expired - Fee Related CN102012988B (zh) | 2010-12-02 | 2010-12-02 | 自动二进制恶意代码行为分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102012988B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102256242B (zh) * | 2011-04-14 | 2015-06-03 | 中兴通讯股份有限公司 | 一种处理业务应用的系统和方法 |
CN103096320B (zh) * | 2011-11-01 | 2016-08-10 | 中国移动通信集团公司 | 移动终端恶意软件的分析方法和装置 |
CN102945347B (zh) * | 2012-09-29 | 2016-02-24 | 中兴通讯股份有限公司 | 一种检测Android恶意软件的方法、系统及设备 |
CN104462962B (zh) * | 2013-09-13 | 2018-07-03 | 北京安赛创想科技有限公司 | 一种检测未知恶意代码和二进制漏洞的方法 |
CN105260662A (zh) * | 2014-07-17 | 2016-01-20 | 南京曼安信息科技有限公司 | 一种未知应用漏洞威胁检测装置及方法 |
CN106468559B (zh) * | 2015-08-20 | 2019-10-22 | 高德信息技术有限公司 | 一种导航语音播报方法及装置 |
CN108875361A (zh) * | 2017-12-28 | 2018-11-23 | 北京安天网络安全技术有限公司 | 一种监控程序的方法、装置、电子设备及存储介质 |
SG11202012485SA (en) * | 2018-07-18 | 2021-01-28 | Bitdefender Ipr Man Ltd | Systems and methods for reporting computer security incidents |
CN109684828B (zh) * | 2018-08-06 | 2021-03-02 | 北京微步在线科技有限公司 | 一种文件检测方法和文件检测装置 |
CN114338188B (zh) * | 2021-12-30 | 2024-01-30 | 杭州电子科技大学 | 一种基于进程行为序列分片的恶意软件智能云检测系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350822A (zh) * | 2008-09-08 | 2009-01-21 | 南开大学 | 一种Internet恶意代码的发现和追踪方法 |
CN101359351A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 针对恶意行为的多层语义标注及检测方法 |
-
2010
- 2010-12-02 CN CN201010570398A patent/CN102012988B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350822A (zh) * | 2008-09-08 | 2009-01-21 | 南开大学 | 一种Internet恶意代码的发现和追踪方法 |
CN101359351A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 针对恶意行为的多层语义标注及检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102012988A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012988B (zh) | 自动二进制恶意代码行为分析方法 | |
CN102012987B (zh) | 自动二进制恶意代码行为分析系统 | |
Bonfante et al. | Codisasm: Medium scale concatic disassembly of self-modifying binaries with overlapping instructions | |
Santos et al. | Opem: A static-dynamic approach for machine-learning-based malware detection | |
Ahmadi et al. | Malware detection by behavioural sequential patterns | |
US10055585B2 (en) | Hardware and software execution profiling | |
US20160371494A1 (en) | Software Vulnerabilities Detection System and Methods | |
CN102043915B (zh) | 一种非可执行文件中包含恶意代码的检测方法及其装置 | |
CN106326737B (zh) | 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法 | |
Xu et al. | Goldeneye: Efficiently and effectively unveiling malware’s targeted environment | |
WO2013026320A1 (zh) | 一种网页挂马检测方法及系统 | |
US20160196425A1 (en) | System and Method for Detection of Malicious Code by Iterative Emulation of Microcode | |
US20160196427A1 (en) | System and Method for Detecting Branch Oriented Programming Anomalies | |
CN103810428B (zh) | 一种宏病毒检测方法及装置 | |
WO2017177003A1 (en) | Extraction and comparison of hybrid program binary features | |
Pandey et al. | Performance of malware detection tools: A comparison | |
CN103310152A (zh) | 基于系统虚拟化技术的内核态Rootkit检测方法 | |
Eskandari et al. | To incorporate sequential dynamic features in malware detection engines | |
Zabidi et al. | Malware analysis with multiple features | |
Ding et al. | Accurate and efficient exploit capture and classification | |
Jin et al. | Dynamic attack tree and its applications on trojan horse detection | |
Zwanger et al. | Kernel mode API spectroscopy for incident response and digital forensics | |
Li et al. | A deep malware detection method based on general-purpose register features | |
Shi et al. | Detecting environment-sensitive malware based on taint analysis | |
Bai et al. | Malware detection method based on dynamic variable length API sequence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120926 Termination date: 20131202 |