CN104850786B - 基于环境重构的恶意代码完整性分析方法 - Google Patents
基于环境重构的恶意代码完整性分析方法 Download PDFInfo
- Publication number
- CN104850786B CN104850786B CN201510296943.8A CN201510296943A CN104850786B CN 104850786 B CN104850786 B CN 104850786B CN 201510296943 A CN201510296943 A CN 201510296943A CN 104850786 B CN104850786 B CN 104850786B
- Authority
- CN
- China
- Prior art keywords
- malicious code
- environment
- analysis
- data
- environmental
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于环境重构的恶意代码完整性分析方法,通过使用合理的分析策略提取恶意代码执行过程中所需的环境数据,以此为基础进行恶意代码执行环境的动态构建,将恶意代码置入动态构建的环境中进行分析,从而获得较为完整的行为信息。利用本发明可以有效解决多路径分析中存在的问题,实现恶意代码完整性分析。相比于传统分析方法可以更为合理的实现关键路径的触发,获取准确的行为特征。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种基于环境重构的恶意代码完整性分析方法。
背景技术
随着互联网的快速发展,恶意代码的种类和数量在不断增多。通常所说的恶意代码是实现攻击者不良意图的恶意软件的统称,包括病毒、蠕虫、木马、后门、僵尸、间谍软件、广告软件等,其危害主要表现在窃取用户隐私、机密文件、账号信息、破坏数据、消耗内存及硬盘空间等。据2014年赛门铁克(Symantec)的调查报告表明,恶意代码数量日益庞大,威胁日益严重,其编写、传播和利用呈现出趋利化、商业化和组织化的态势。
恶意代码攻击技术在演变过程中,为了实现精确控制完成特定操作,依据对于环境的识别结果来触发不同的行为模式,决定下一步将要执行的操作,其传播扩散、敏感数据收集、精确打击控制以及升级维护等功能的实现都与所处环境的类型和配置密切相关。面对现实世界攻击目标环境的多样性,例如操作***类型的不同、防护机制和检测机制的差异等,恶意代码表现出的行为差异巨大。为了能够完整有效地分析出恶意代码的所有恶意行为,分析不同环境对恶意代码行为和执行过程的影响,通过动态构建合适的环境用以激发恶意代码的隐藏行为,进而对其表现出的恶意行为进行分析,我们将这一过程称为恶意代码完整性分析。
在恶意代码完整性分析领域主要存在静态分析和动态分析两种分析方法。静态分析方法不需要动态执行程序,分析时间短、效率高,而且分析过程中可以获取程序全部代码和数据,信息提取全面,但是静态分析方法也存在诸多问题:
(1) 恶意代码加壳。为了躲避杀软,增加恶意代码逆向分析的难度,恶意代码编写者常常使用加壳方法对代码实施保护。对于采用加壳保护的程序,需要进行脱壳处理之后再进行下一步分析提取工作。
(2) 动态解密类环境字符串信息的提取。恶意代码编写者为保证核心信息的安全性,将环境字符串采用加密的形式存放在程序中,只有程序动态执行到触发位置时才进行解密,使用静态分析方法无法有效提取这类字符信息,而且这类信息往往是非常关键的环境信息。
(3) 特殊编程技巧实现字符串隐藏。为了躲避查杀,欺骗恶意代码分析人员,恶意代码编写者采用特殊的编程技巧,将环境字符串存放到代码节中,通过静态分析提取字符串信息是无法提取到这类信息。
由于静态分析方法存在的诸多问题均为恶意代码完整性分析带来极大阻碍,实际分析中为了获得较好的结果大多采用动态分析方法。目前国内外开展了许多以提高路径覆盖率为目的的恶意代码多路径分析方法的研究,以期能够较为完整地分析出程序的所有行为。恶意代码多路径分析在一定程度上可以解决动态程序分析过程中执行路径单一的缺陷,但是由于路径遍历过程使用强制修改分支路径的方法,仍存在以下问题难以解决:
(1) 路径***。由于多路径分析中某些路径(如:循环体中的路径)会被重复遍历,对分析***的效率有严重影响。随着恶意代码功能越来越复杂,路径被重复执行的问题越来越普遍,对分析的性能影响越来越大。
(2) 内存泄露。多路径分析方法为了避免在恢复进程快照时出现已分配资源被释放引起句柄无效的情况,不允许代码释放已经分配的资源,例如动态分配的内存等,因此多次重复执行含有分配资源操作行为的程序路径,分配的资源会占用大量的内存,容易引起内存泄露。
(3) 容易引发程序崩溃。多路径分析中使用强制修改分支路径的方法实现代码覆盖率的提高,但是强制修改执行路径可能影响程序后续执行过程,导致程序执行时崩溃,使得正常分析无法进一步开展。
由于动态分析方法存在上述难点问题,无法全面有效地分析出复杂恶意代码的所有恶意行为,如何触发恶意代码的不同行为模式,提高动态分析的全面性仍是恶意代码动态分析中亟待解决的难点问题。
发明内容
针对现有的恶意代码多路径分析方法中存在的路径***、内存泄露、分析效率低以及强制修改分支路径导致的程序崩溃等问题,本发明提出一种基于环境重构的恶意代码完整性分析方法,利用本发明可以有效解决多路径分析中存在的问题,实现恶意代码完整性分析。
本发明提出了一种基于环境重构的恶意代码完整性分析方法,使用动态二进制分析平台Pin和反编译工具IDA获取恶意代码执行过程中感知寻找的环境信息,并以获取的环境信息为基础进行恶意代码最佳执行环境的构建,最后将恶意代码投入动态构建的环境中运行实现完整性分析。
在本发明在进行恶意代码完整性分析的过程中,采用粗粒度环境数据提取与细粒度敏感环境识别相结合的方式,共同确定恶意代码隐藏行为触发所需要的执行环境,其具体执行步骤如下:
Step1. 恶意代码输入,开始进行行为完整性分析,分别执行Step2和Step8;
Step2. 使用动态分析方法提取恶意代码执行过程中使用的字符串型环境数据,并对使用字符串的函数类型进行判别确定字符串环境类型,同时对恶意代码进行脱壳处理;
Step3. 使用静态分析方法提取脱壳代码中的静态字符串信息,并对各字符串的引用位置及方式进行分析确定字符串环境类型;
Step4. 整合Step2和Step3中提取出的环境数据填充环境数据提取信息库;
Step5. 使用决策树分析环境数据提取信息库中环境类型为其它的数据,确定数据的环境类型;
Step6. 对环境数据提取信息库中的数据进行冗余删减、负面数据去除处理,获得构建环境所需的最终数据;
Step7. 使用Step6中获得的数据从预先搭建的虚拟机镜像群中选择合适镜像,作为恶意代码基础执行环境,转Step13;
Step8. 采用基于动态二进制分析平台Pin的数据流跟踪程序,跟踪记录环境敏感数据的传播过程;
Step9.判断分支点是否属于环境敏感分支点,如果是,则提取分支靶项并执行下一步操作;否则继续跟踪程序执行;
Step10.执行分支靶项回溯,获取与之对应的环境敏感API函数规则;
Step11.解析API模式规则提取靶项类型信息,如果靶项类型为二元靶项,则确定强制修改分支条件取值的位置与方式;如果靶项类型为三元靶项,则获取需要添加的环境数据;
Step12. 继续跟踪程序执行流程,判断程序是否结束,如果程序结束,则执行Step13;如果遇到分支点,转Step9;
Step13. 使用Step11中获取的环境数据与配置文件完善Step7中构建的基础环境,获得恶意代码最佳执行环境;
Step14. 将恶意代码置入Step13中构建的执行环境,启动恶意代码行为分析;
Step15. 解析分析结果,获得恶意代码完整性分析结果。
本发明使用环境重构的方法实现恶意代码完整性分析,主要优点和积极效果包括:
(1) 传统的多路径分析方法试图采用统一的策略实现恶意代码行为信息的提取,但是由于恶意代码本身类型非常丰富,难以通过统一的策略实现行为提取。本发明首先对恶意代码的环境数据类型进行分类,针对不同类型环境数据采用不同的信息提取方法,并在提取过程中综合使用动静结合的策略,使之能够获取完备合理的环境构建信息。
(2) 通过构建恶意代码所需的执行环境来实现恶意代码核心行为的合理触发,对于分支路径的改变充分考虑了程序执行过程中的前后关联型,可以有效避免由于强制修改分支路径引发的程序崩溃。相比于传统分析方法可以更为合理的实现关键路径的触发,获取准确的行为特征。
(3) 制作虚拟机镜像群作为环境构建的依据,通过逐步完善的方法实现恶意代码执行环境的动态构建。一方面,通过选择虚拟机镜像作为恶意代码基础执行环境可以极大地提高分析效率,减少不必要的时间开销;另一方面,使用针对不同恶意代码类型的环境信息完善基础执行环境可以使环境的构建更具针对性,达到合理触发恶意代码关键路径的目的。
附图说明
图1是本发明基于环境重构的恶意代码完整性分析的框图。
具体实施方式
实施例:本发明提出一种基于环境重构的恶意代码完整性分析方法,其分析思路是:使用动态二进制分析平台Pin和反编译工具IDA获取恶意代码执行过程中感知寻找的环境信息,并以获取的环境信息为基础进行恶意代码最佳执行环境的构建,最后将恶意代码投入动态构建的环境中运行实现完整性分析。在上述总体思路的指导下,分析过程如图1所示。
本发明在进行恶意代码完整性分析的过程中,采用粗粒度环境数据提取与细粒度敏感环境识别相结合的方式,共同确定恶意代码隐藏行为触发所需要的执行环境,其具体执行步骤如下:
Step1. 恶意代码输入,开始进行行为完整性分析,分别执行Step2和Step8;
Step2. 使用动态分析方法提取恶意代码执行过程中使用的字符串型环境数据,并对使用字符串的函数类型进行判别确定字符串环境类型,同时对恶意代码进行脱壳处理;
Step3. 使用静态分析方法提取脱壳代码中的静态字符串信息,并对各字符串的引用位置及方式进行分析确定字符串环境类型;
Step4. 整合Step2和Step3中提取出的环境数据填充环境数据提取信息库;
Step5. 使用决策树分析环境数据提取信息库中环境类型为其它的数据,确定数据的环境类型;
Step6. 对环境数据提取信息库中的数据进行冗余删减、负面数据去除处理,获得构建环境所需的最终数据;
Step7. 使用Step6中获得的数据从预先搭建的虚拟机镜像群中选择合适镜像,作为恶意代码基础执行环境,转Step13;
Step8. 采用基于动态二进制分析平台Pin的数据流跟踪程序,跟踪记录环境敏感数据的传播过程;
Step9.判断分支点是否属于环境敏感分支点,如果是,则提取分支靶项并执行下一步操作;否则继续跟踪程序执行;
Step10.执行分支靶项回溯,获取与之对应的环境敏感API函数规则;
Step11.解析API模式规则提取靶项类型信息,如果靶项类型为二元靶项,则确定强制修改分支条件取值的位置与方式;如果靶项类型为三元靶项,则获取需要添加的环境数据;
Step12. 继续跟踪程序执行流程,判断程序是否结束,如果程序结束,则执行Step13;如果遇到分支点,转Step9;
Step13. 使用Step11中获取的环境数据与配置文件完善Step7中构建的基础环境,获得恶意代码最佳执行环境;
Step14. 将恶意代码置入Step13中构建的执行环境,启动恶意代码行为分析;
Step15. 解析分析结果,获得恶意代码完整性分析结果。
Claims (1)
1.一种基于环境重构的恶意代码完整性分析方法,其特征在于,使用动态二进制分析平台Pin和反编译工具IDA获取恶意代码执行过程中感知寻找的环境信息,并以获取的环境信息为基础进行恶意代码最佳执行环境的构建,最后将恶意代码投入动态构建的环境中运行实现完整性分析;采用粗粒度环境数据提取与细粒度敏感环境识别相结合的方式,共同确定恶意代码隐藏行为触发所需要的执行环境,其具体执行步骤如下:
步骤一:恶意代码输入,开始进行行为完整性分析,分别执行步骤二和步骤八;
步骤二:使用动态分析方法提取恶意代码执行过程中使用的字符串型环境数据,并对使用字符串的函数类型进行判别确定字符串环境类型,同时对恶意代码进行脱壳处理;
步骤三:使用静态分析方法提取脱壳代码中的静态字符串信息,并对各字符串的引用位置及方式进行分析确定字符串环境类型;
步骤四:整合步骤二和步骤三中提取出的环境数据填充环境数据提取信息库;
步骤五:使用决策树分析环境数据提取信息库中环境类型为其它的数据,确定数据的环境类型;
步骤六:对环境数据提取信息库中的数据进行冗余删减、负面数据去除处理,获得构建环境所需的最终数据;
步骤七:使用步骤六中获得的数据从预先搭建的虚拟机镜像群中选择合适镜像,作为恶意代码基础执行环境,转步骤十三;
步骤八:采用基于动态二进制分析平台Pin的数据流跟踪程序,跟踪记录环境敏感数据的传播过程;
步骤九:判断分支点是否属于环境敏感分支点,如果是,则提取分支靶项并执行下一步操作;否则继续跟踪程序执行;
步骤十:执行分支靶项回溯,获取与之对应的环境敏感API函数规则;
步骤十一:解析API模式规则提取靶项类型信息,如果靶项类型为二元靶项,则确定强制修改分支条件取值的位置与方式;如果靶项类型为三元靶项,则获取需要添加的环境数据;
步骤十二:继续跟踪程序执行流程,判断程序是否结束,如果程序结束,则执行步骤十三;如果遇到分支点,转步骤九;
步骤十三:使用步骤十一中获取的环境数据与配置文件完善步骤七中构建的基础环境,获得恶意代码最佳执行环境;
步骤十四: 将恶意代码置入步骤十三中构建的执行环境,启动恶意代码行为分析;
步骤十五:解析分析结果,获得恶意代码完整性分析结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510296943.8A CN104850786B (zh) | 2015-06-03 | 2015-06-03 | 基于环境重构的恶意代码完整性分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510296943.8A CN104850786B (zh) | 2015-06-03 | 2015-06-03 | 基于环境重构的恶意代码完整性分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850786A CN104850786A (zh) | 2015-08-19 |
CN104850786B true CN104850786B (zh) | 2018-03-20 |
Family
ID=53850425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510296943.8A Active CN104850786B (zh) | 2015-06-03 | 2015-06-03 | 基于环境重构的恶意代码完整性分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850786B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975858A (zh) * | 2015-12-08 | 2016-09-28 | 武汉安天信息技术有限责任公司 | 安卓***下基于虚拟技术的恶意代码检测方法及*** |
CN105678157B (zh) * | 2016-01-11 | 2018-09-21 | 迅鳐成都科技有限公司 | 一种基于应用环境识别的数据产权保护***和方法 |
CN106650503B (zh) * | 2016-12-09 | 2019-10-18 | 南京理工大学 | 基于ida的云端数据完整性验证及恢复方法 |
CN108038375A (zh) * | 2017-12-21 | 2018-05-15 | 北京星河星云信息技术有限公司 | 一种恶意文件检测方法及装置 |
CN108959936B (zh) * | 2018-06-28 | 2021-05-25 | 中国人民解放军国防科技大学 | 一种基于路径分析的缓冲区溢出漏洞自动利用方法 |
CN109714314B (zh) * | 2018-11-21 | 2021-04-27 | 中国电子科技网络信息安全有限公司 | 一种重现漏洞全生命周期的全息漏洞库的构建方法 |
CN113139188A (zh) * | 2021-04-29 | 2021-07-20 | 湘潭大学 | Android平台上一种绕过虚假函数的自动脱壳技术 |
CN113688189A (zh) * | 2021-07-16 | 2021-11-23 | 济南浪潮数据技术有限公司 | JavaScript内存可视化分析与管理方法、***、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359352A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
CN102902538A (zh) * | 2012-09-21 | 2013-01-30 | 哈尔滨工业大学深圳研究生院 | 移动互联网智能终端应用中间件安全开发方法 |
CN103699479A (zh) * | 2012-09-27 | 2014-04-02 | 百度在线网络技术(北京)有限公司 | 一种沙盒测试环境构建***及构建方法 |
CN104462984A (zh) * | 2014-11-27 | 2015-03-25 | 北京航空航天大学 | 基于逆向符号执行的应用权限泄漏检测方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120321078A1 (en) * | 2011-06-20 | 2012-12-20 | Jason Chambers | Key rotation and selective re-encryption for data security |
-
2015
- 2015-06-03 CN CN201510296943.8A patent/CN104850786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359352A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
CN102902538A (zh) * | 2012-09-21 | 2013-01-30 | 哈尔滨工业大学深圳研究生院 | 移动互联网智能终端应用中间件安全开发方法 |
CN103699479A (zh) * | 2012-09-27 | 2014-04-02 | 百度在线网络技术(北京)有限公司 | 一种沙盒测试环境构建***及构建方法 |
CN104462984A (zh) * | 2014-11-27 | 2015-03-25 | 北京航空航天大学 | 基于逆向符号执行的应用权限泄漏检测方法及*** |
Non-Patent Citations (2)
Title |
---|
基于环境敏感分析的恶意代码脱壳方法;王志 等;《计算机学报》;20120430;第35卷(第4期);第693-702页 * |
基于环境智能匹配的恶意代码完整性分析方法;舒辉 等;《计算机工程与设计》;20150228;第36卷(第2期);第341-345页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104850786A (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850786B (zh) | 基于环境重构的恶意代码完整性分析方法 | |
CN104866765B (zh) | 基于行为特征相似性的恶意代码同源性分析方法 | |
CN104778413B (zh) | 一种基于模拟攻击的软件漏洞检测方法 | |
CN109271780A (zh) | 机器学习恶意软件检测模型的方法、***和计算机可读介质 | |
CN104091121B (zh) | 对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法 | |
CN102012987B (zh) | 自动二进制恶意代码行为分析*** | |
CN101187959B (zh) | 基于决策树的游戏作弊检测方法 | |
Li et al. | Effective and light-weight deobfuscation and semantic-aware attack detection for powershell scripts | |
CN109684836A (zh) | 使用经训练的机器学习模型检测恶意文件的***和方法 | |
Liu et al. | A robust malware detection system using deep learning on API calls | |
CN106203122B (zh) | 基于敏感子图的安卓恶意重打包软件检测方法 | |
CN103886229B (zh) | 一种提取pe文件特征的方法及装置 | |
CN102360408A (zh) | 恶意代码的检测方法及其*** | |
Wagener et al. | Self adaptive high interaction honeypots driven by game theory | |
CN109818961A (zh) | 一种网络入侵检测方法、装置和设备 | |
CN105138916A (zh) | 基于数据挖掘的多轨迹恶意程序特征检测方法 | |
Martínez-Gallego et al. | Technical, tactical and movement analysis of men's professional tennis on hard courts. | |
CN109190371A (zh) | 一种基于行为图的Android恶意软件检测方法和技术 | |
CN109992969A (zh) | 一种恶意文件检测方法、装置及检测平台 | |
Zheng et al. | Cryptocurrency malware detection in real-world environment: Based on multi-results stacking learning | |
Sartea et al. | Secur-ama: active malware analysis based on monte carlo tree search for android systems | |
CN105915536A (zh) | 用于网络靶场的攻击行为实时跟踪分析方法 | |
CN107358106A (zh) | 漏洞检测方法、漏洞检测装置及服务器 | |
CN105930703A (zh) | 鼠标键盘双指标复合安全身份认证*** | |
CN105825086A (zh) | 一种基于攻击树的rop防护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201013 Address after: 450000 No. 62 science Avenue, hi tech Zone, Henan, Zhengzhou Patentee after: Information Engineering University of the Chinese People's Liberation Army Strategic Support Force Address before: 450000 No. 62 science Avenue, hi tech Zone, Henan, Zhengzhou Patentee before: Shu Hui |