CN100461197C - 一种恶意代码自动分析系统及方法 - Google Patents

一种恶意代码自动分析系统及方法 Download PDF

Info

Publication number
CN100461197C
CN100461197C CNB200610080454XA CN200610080454A CN100461197C CN 100461197 C CN100461197 C CN 100461197C CN B200610080454X A CNB200610080454X A CN B200610080454XA CN 200610080454 A CN200610080454 A CN 200610080454A CN 100461197 C CN100461197 C CN 100461197C
Authority
CN
China
Prior art keywords
malicious code
module
api
code
file
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
Application number
CNB200610080454XA
Other languages
English (en)
Other versions
CN1845120A (zh
Inventor
俞科技
蔡晶晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Venus Information Security Technology Co Ltd
Beijing Venus Information Technology Co Ltd
Original Assignee
BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd
Priority to CNB200610080454XA priority Critical patent/CN100461197C/zh
Publication of CN1845120A publication Critical patent/CN1845120A/zh
Application granted granted Critical
Publication of CN100461197C publication Critical patent/CN100461197C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种恶意代码自动分析系统含有多个相对独立的模块构成,恶意代码运行模块,文件监视模块,注册表监视模块,函数调用监视模块,网络数据监视模块,程序内部行为监视模块,恶意代码行为自动分析模块,方法含有以下步骤:加载文件监视和注册表监视的驱动程序,加载预定义要记录的敏感函数,在恶意代码运行的过程,同步记录应用程序接口调用,文件,注册表的访问,网络操作;当恶意代码进程结束而自动退出,系统对这些行为进行自动分析,输出自动分析结果;本发明提供的自动分析方法,完全记录恶意代码运行的行为,并对于恶意代码使用的未知壳或变形壳不受影响。大幅度地提高了恶意代码分析人员的工作效率。

Description

一种恶意代码自动分析系统及方法
技术领域
本发明涉及一种恶意代码自动分析系统及方法。本发明用于WINDOWS(一种操作系统的名称)环境下恶意代码(应用程序)的分析。
背景技术
传统的恶意代码分析是通过人工调试跟踪进行分析的,这就取决于分析者的经验和能力,而且在许多情况下,会遗漏掉一些恶意代码的行为。随着恶意代码以每天几十到几百个的数量出现,以往手工逐个静,动态跟踪逆向分析法在工作效率及成本投入上已不适合现今的需求。即使人工有时间去分析,但是面对新的变形代码和未知壳,变形壳的出现,人工分析不得不先花大量的精力在分析和去除变形代码、未知壳上面。
发明内容
为了克服现有的技术的不足,本发明提供一种恶意代码自动分析系统及方法,人工只要进行很少量的参与,就可以基本完成对恶意代码的分析工作。用户只需要输入恶意代码的样本体,系统就会输出对该恶意代码的分析结果。
技术方案
一种恶意代码自动分析系统含有以下多个相对独立的模块构成,这些相对独立的模块记录恶意代码在运行期间所进行的所有行为:
恶意代码运行模块,用于控制恶意代码进程的启动,终止,线程的启动,终止,模块的载入,卸载。
文件监视模块,文件监视是通过文件系统驱动来实现的,以驱动程序的形式安装在操作系统中。系统通过DeviceIoControl(WINDOWS API(Applicationprogramming interface应用程序接口))来与驱动程序进行通信,获得对文件的所有的操作,然后根据进程ID来判断是否是恶意代码所进行的操作。
注册表监视模块,通过驱动程序的形式进行拦截监视。
函数调用监视模块,系统提供了一系列的敏感的API(Application programminginterface)(应用程序接口)函数,通过记录这些API(Application programminginterface)(应用程序接口)的调用,以及分析其它附近API(Applicationprogramming interface)(应用程序接口)调用的组合,判断该程序是否具有恶意性质。系统在记录API(Application programming interface)(应用程序接口)本身的同时,也会记录由恶意代码传送过来的参数和返回地址。
网络数据监视模块,在记录网络数据包的同时,记录了发送该数据包时程序的状态,网络通信函数调用的位置和时间。
程序内部行为监视模块,包括模块的载入与卸载,线程的创建与退出,内存访问与查看;
恶意代码行为自动分析模块,根据以上各模块所记录的结果,选出由恶意代码运行所导致的行为,剔出对恶意代码行为分析无价值的部分,并对这些行为进行分析汇总。
恶意代码的运行,对计算机的破坏操作无非是通过对文件、注册表、网络、API(Application programming interface)(应用程序接口)等的操作完成的。而本系统在输入恶意代码样本体后,上述所有模块开始启动,并记录恶意代码运行期间所有的行为,这些行为通过系统的处理,得出分析结果。
一种恶意代码自动分析方法,含有以下步骤:
步骤1;系统启动后,先加载文件监视和注册表监视的驱动程序,
步骤2;等待分析的恶意代码的输入,一旦恶意代码输入本系统,恶意代码运行模块启动。
步骤3;加载预定义要记录的敏感函数,
步骤4;在恶意代码运行的过程,同步记录API(Application programminginterface)(应用程序接口)调用,文件,注册表的访问,网络操作;
步骤5;当恶意代码进程结束而自动退出,或当用户认为当前的分析已足够而强制结束恶意代码进程后,系统对这些行为进行自动分析,输出自动分析结果;
步骤6;
本发明的有益效果是,
本发明提供的自动分析方法,完全记录恶意代码运行的行为,并对于恶意代码使用的未知壳或变形壳不受影响。大幅度地提高了恶意代码分析人员的工作效率。本发明自动分析恶意代码,记录恶意代码的行为,如文件操作,注册表操作,网络,内存访问,系统API(Application programming interface)(应用程序接口)调用等行为,并可配置记录敏感的API(Application programminginterface)(应用程序接口)调用。通过分析这些记录的行为,可以基本确定恶意代码的种类和技术细节。分析者通过这一结果,可以进一步地进行精确地针对性的分析。
本发明可对恶意代码进行快速地分析,自动得出分析结果,人工只需参与很少的工作。而现有的技术是人工采用大量的时间在分析工作上,花费很大的精力,效率很低。
附图说明
图1是本发明结构流程图。
图2是监视模块和分析模块结构图。
图3是系统运行流程图。
下面结合附图和实施例对本发明进一步说明。
具体实施方式
如图1所示,在恶意代码运行前,用户首先需要定义一批函数,一般情况下,正常的应用程序很少使用到,或没有必要使用到这些函数,而恶意代码使用到这些函数的机率相当大。
系统在开始进行分析前,会从数据库中加载所有的API(Applicationprogramming interface)(应用程序接口)函数列表,当恶意代码调用到上述用户预定义的敏感函数时,就会记录对该函数的调用。
当API函数加载完毕,系统会加载驱动程序,以便记录恶意代码对文件,注册表,网络的访问和操作。
当恶意代码运行完毕,系统将会根据恶意代码运行期间所记录的各种行为,自动分析其机理。
图2为监视模块和分析模块关系图。其中恶意代码运行模块负责控制恶意代码进程的运行,以调试的方式运行恶意代码程序,由CreateProcess(WINDOWS API)来启动,该模块同时负责程序内部断点的设置。
以下详细说明监视模块的实施例。
文件监视
监视文件或文件的建立,读写。记录文件操作的时间,文件操作的类型,如建立/读/写,文件操作的结果,如读写的长度和位置。
文件监视的信息对于进一步地详细分析也十分有意义,分析者可以根据文件读写的长度和位置、次数进行相应的断点设置,使逆向分析更有效率和目的性。
该功能实现步骤:
文件监视是通过文件系统驱动来实现的,以驱动程序的形式安装在操作系统中。系统通过DeviceIoControl(WINDOWS API)来与驱动程序进行通信,获得对文件的所有的操作,然后根据进程ID(进程的唯一标识)来判断是否是恶意代码所进行的操作。
注册表监视
监视注册表的建立,读写等操作。记录注册表操作的时间,操作类型,操作结果,并记录注册表的位置和数据。
该功能实现步骤:
该功能也是通过驱动程序的形式进行拦截监视。驱动程序通过拦截注册表操作的API来实现本功能。注册表操作API(Application programming interface)(应用程序接口)包括:
RegCloseKey
RegConnectRegistry
RegCreateKeyEx
RegDeleteKey
RegDeleteValue
RegDisablePredefinedCache
RegEnumKeyEx
RegEnumValue
RegFlushKey
RegGetKeySecurity
RegLoadKey
RegNotifyChangeKeyValue
RegOpenCurrentUser
RegOpenKeyEx
RegOpenUserClassesRoot
RegOverridePredefKey
RegQueryInfoKey
RegQueryMultipleValues
RegQueryValueEx
RegReplaceKey
RegRestoreKey
RegSaveKey
RegSetKeySecurity
RegSetValueEx
RegUnLoadKey
函数调用的记录和API(Application programming interface)(应用程序接口)记录,
系统提供了一系列的敏感的API函数,一般的恶意代码调用这些API函数的概率非常高,但是普通的应用程序很少调用这些函数。通过记录这些API的调用,以及分析其它附近API调用的组合,可判断该程序是否具有恶意性质。系统在记录API本身的同时,也会记录由恶意代码传送过来的参数和返回地址。该功能实现步骤:
(1),修改每个需要拦截的API的第一个代码字节为0xCC,并保存原代码字节;
(2),恶意代码运行过程中,一旦调用到该API函数,那么将执行0xCC,导致产生异常。异常处理程序通过判断,判断该异常是否是由于执行了该API的第一个代码字节。如果是,则把该内存处的代码替换回原来的字节,并继续执行下一条指令。当执行到下一条指令时,再把该API的头一个字节改为0xCC;
(3),记录拦截到的API函数。
网络数据监视
越来越多的恶意代码通过网络进行传播。与传统数据抓包工具不同的是,本系统在记录网络数据包的同时,记录了发送该数据包时程序的状态,网络通信函数调用的位置和时间。这更有利于恶意代码通信行为的分析。
该功能实现步骤:
实现步骤同API(Application programming interface)(应用程序接口)记录的方法完全相同。任何网络数据包的发送接收都是通过网络API来进行的。如send,recv,sendfrom,sendto等等。当拦截到API时,再判断是不是网络数据发送/接收的API,取其参数的内容,可以得到数据包的内容。
程序内部行为的监视
这些行为包括模块的载入与卸载,线程的创建与退出,内存访问与查看。
该功能实现步骤:
WINDOWS系统自带这种功能。当进程以DEBUG_ONLY_THIS_PROCES(C语言宏名,值为2)的模式启动时,系统会自动为这些内部行为的处理提供接口。
恶意代码启动以后,立即调用WaitForDebugEvent(WINDOWS API),调用线程将会进入阻塞状态,等待调试事件的发生。当恶意代码有模块的载入与卸载,线程的创建立与退出等行为时,线程就会取消阻塞,并返回上述行为的信息。
图3描述了本软件系统的启动过程。如图3所示,在系统启动后,先加载文件监视和注册表监视的驱动程序,并等待恶意代码的输入。在恶意代码运行的过程,同步记录API调用,文件,注册表的访问,网络操作等。

Claims (2)

1.一种恶意代码自动分析方法,它包括加载文件监视和注册表监视模块的步骤、加载预定义敏感函数的步骤、启动恶意代码运行的步骤、记录应用程序接口调用、文件和注册表访问监视步骤、网络操作监视步骤和恶意代码行为自动分析步骤,其特征在于:
它还包括程序内部行为监视步骤,这些程序内部行为信息包括模块加载和卸载、线程创建和退出、内存访问和查看;
所述的由程序内部行为监控步骤收集的恶意代码程序内部行为信息将作为恶意代码行为自动分析步骤输入的一部分进行综合分析;
文件监视以驱动程序的形式安装在操作系统中,系统通过DeviceIoControl WINDOWS API来与驱动程序进行通信,获得对文件的所有的操作,然后根据进程ID来判断是否是恶意代码所进行的操作;
判断程序是否具有恶意性质实现步骤有:
步骤(1),修改每个需要拦截的API的第一个代码字节为0xCC,并保存原代码字节;
步骤(2),恶意代码运行过程中,一旦调用到该API函数,那么将执行0xCC,导致产生异常,异常处理程序通过判断,判断该异常是否是由于执行了该API的第一个代码字节,如果是,则把该内存处的代码替换回原来的字节,并继续执行下一条指令,当执行到下一条指令时,再把该API的头一个字节改为0xCC;
步骤(3),记录拦截到的API函数。
2.一种恶意代码自动分析系统,它包括以下模块:
恶意代码运行模块:用于控制恶意代码进程的启动,终止;
文件监视模块:通过文件系统驱动实现,以驱动程序的形式安装在操作系统中,通过DeviceIoControl来与驱动程序进行通信,获得对文件的所有访问操作,然后根据进程ID来判断是否是恶意代码所进行的操作;
注册表监视模块:通过驱动程序的形式实现对注册表的监视;
函数调用监视模块:系统提供了一系列的敏感的应用程序接口函数,通过记录这些应用程序接口的调用,以及分析其它附近应用程序接口调用的组合,判断该程序是否具有恶意性质,系统在记录应用程序接口本身的同时,也会记录由恶意代码传送过来的参数和返回地址;
网络数据监视模块:在记录网络数据包的同时,记录了发送该数据包时程序的状态,网络通信函数调用的位置和时间;
恶意代码行为自动分析模块:根据以上各模块所记录的结果,选出由恶意代码运行所导致的行为,剔出对恶意代码行为分析无价值的部分,并对这些行为进行分析汇总;
其特征在于:
所述恶意代码自动分析系统还包括程序内部行为监视模块,该模块包括模块的载入与卸载,线程的创建与退出,内存访问与查看功能;
函数调用监视模块,修改每个需要拦截的API的第一个代码字节为0xCC,并保存原代码字节,恶意代码运行过程中,一旦调用到该API函数,那么将执行0xCC,导致产生异常,异常处理程序通过判断,判断该异常是否是由于执行了该API的第一个代码字节,如果是,则把该内存处的代码替换回原来的字节,并继续执行下一条指令,当执行到下一条指令时,再把该API的头一个字节改为0xCC;记录拦截到的API函数;
所述由程序内部行为监控模块收集的恶意代码程序内部行为信息将作为恶意代码行为自动分析模块输入的一部分进行综合分析。
CNB200610080454XA 2006-05-16 2006-05-16 一种恶意代码自动分析系统及方法 Expired - Fee Related CN100461197C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200610080454XA CN100461197C (zh) 2006-05-16 2006-05-16 一种恶意代码自动分析系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200610080454XA CN100461197C (zh) 2006-05-16 2006-05-16 一种恶意代码自动分析系统及方法

Publications (2)

Publication Number Publication Date
CN1845120A CN1845120A (zh) 2006-10-11
CN100461197C true CN100461197C (zh) 2009-02-11

Family

ID=37064048

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610080454XA Expired - Fee Related CN100461197C (zh) 2006-05-16 2006-05-16 一种恶意代码自动分析系统及方法

Country Status (1)

Country Link
CN (1) CN100461197C (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504903C (zh) * 2007-09-18 2009-06-24 北京大学 一种恶意代码自动识别方法
CN101350054B (zh) 2007-10-15 2011-05-25 北京瑞星信息技术有限公司 计算机有害程序自动防护方法及装置
CN101414328B (zh) * 2007-10-15 2012-07-18 北京瑞星信息技术有限公司 一种用于对文件进行脱壳的装置和方法
CN101350052B (zh) 2007-10-15 2010-11-03 北京瑞星信息技术有限公司 发现计算机程序的恶意行为的方法和装置
CN101667236B (zh) * 2008-09-02 2013-11-20 北京瑞星信息技术有限公司 一种控制驱动程序安装的方法和装置
CN102208004B (zh) * 2011-05-13 2013-07-03 南京邮电大学 一种基于最小化特权原则的软件行为控制方法
CN103500306A (zh) * 2011-06-03 2014-01-08 北京奇虎科技有限公司 客户端程序监控方法、装置及客户端
JP2013171556A (ja) * 2012-02-23 2013-09-02 Hitachi Ltd プログラム解析システム及び方法
CN102799493A (zh) * 2012-06-21 2012-11-28 北京伸得纬科技有限公司 一种对具有自我保护的目标进程实现拦截的方法
CN102799500B (zh) * 2012-06-25 2014-04-30 腾讯科技(深圳)有限公司 系统修复方法及装置
CN102779255B (zh) * 2012-07-16 2014-11-12 腾讯科技(深圳)有限公司 判断恶意程序的方法及装置
CN103605592A (zh) * 2013-11-29 2014-02-26 中国航空工业集团公司第六三一研究所 一种分布式计算机系统故障检测机制
CN103778367A (zh) * 2013-12-30 2014-05-07 网秦(北京)科技有限公司 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
CN105991620B (zh) * 2015-03-05 2019-09-06 阿里巴巴集团控股有限公司 恶意账户识别方法及装置
CN104766011B (zh) * 2015-03-26 2017-09-12 国家电网公司 基于主机特征的沙箱检测告警方法和系统
CN104766007B (zh) * 2015-03-27 2017-07-21 杭州安恒信息技术有限公司 一种基于文件系统过滤驱动实现沙箱快速恢复的方法
CN104933365B (zh) * 2015-07-08 2018-04-27 中国科学院信息工程研究所 一种基于调用习惯的恶意代码自动化同源判定方法及系统
CN107766716B (zh) * 2016-08-16 2021-08-31 阿里巴巴集团控股有限公司 证书检测方法及装置、电子设备
CN109948336A (zh) * 2019-01-29 2019-06-28 北京中安兴坤科技有限公司 恶意代码检测方法以及装置
CN111026599A (zh) * 2019-07-24 2020-04-17 哈尔滨安天科技集团股份有限公司 一种基于api调用的数据收集方法、装置及存储设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409222A (zh) * 2001-09-14 2003-04-09 北京瑞星科技股份有限公司 计算机内存病毒监控和带毒运行方法
CN1647007A (zh) * 2002-04-13 2005-07-27 计算机联合思想公司 检测怀有恶意代码的系统与方法
WO2005116797A1 (en) * 2004-05-19 2005-12-08 Computer Associates Think, Inc. Method and system for isolating suspicious email
WO2006006144A2 (en) * 2004-07-14 2006-01-19 Aladdin Knowledge Systems Ltd. A method for detecting of unwanted executables
CN1737722A (zh) * 2005-08-03 2006-02-22 珠海金山软件股份有限公司 一种检测和防御计算机恶意程序的系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409222A (zh) * 2001-09-14 2003-04-09 北京瑞星科技股份有限公司 计算机内存病毒监控和带毒运行方法
CN1647007A (zh) * 2002-04-13 2005-07-27 计算机联合思想公司 检测怀有恶意代码的系统与方法
WO2005116797A1 (en) * 2004-05-19 2005-12-08 Computer Associates Think, Inc. Method and system for isolating suspicious email
WO2006006144A2 (en) * 2004-07-14 2006-01-19 Aladdin Knowledge Systems Ltd. A method for detecting of unwanted executables
CN1737722A (zh) * 2005-08-03 2006-02-22 珠海金山软件股份有限公司 一种检测和防御计算机恶意程序的系统和方法

Also Published As

Publication number Publication date
CN1845120A (zh) 2006-10-11

Similar Documents

Publication Publication Date Title
CN100461197C (zh) 一种恶意代码自动分析系统及方法
CN101645119B (zh) 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
CN102930210B (zh) 恶意程序行为自动化分析、检测与分类系统及方法
US8527960B2 (en) Combining method parameter traces with other traces
US20020091968A1 (en) Object-oriented data driven software GUI automated test harness
CN110290212A (zh) 服务调用记录方法、装置、计算机设备和存储介质
CN101930399A (zh) 一种对软件测试进行记录的方法
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
CN102243609A (zh) 一种基于嵌入式软件的测试分析方法及系统
CN103577310A (zh) 记录软件调试日志的方法以及装置
CN103136107A (zh) 一种嵌入式程序动态分配内存的变量调试方法
CN100388234C (zh) 一种基于有限状态机的对内存变量改写进行监控的方法
CN110232014A (zh) 业务流程自动化测试方法、装置、控制器及介质
CN100578674C (zh) 一种寄存器测试的方法和系统
US20120254662A1 (en) Automated test system and automated test method
CN101154185A (zh) 软件运行时执行恢复与重放方法
CN106598859A (zh) Appium多线程实现系统及方法
CN109947635A (zh) 一种数据上报方法、装置、存储介质及终端设备
CN1485740A (zh) 一种基于主机平台的嵌入式模块和子系统的通用测试装置
CN1318976C (zh) 软件测试方法及其系统
US7286953B1 (en) Device testing automation utility and method
CN112216340A (zh) 硬盘测试方法、装置、存储介质及电子设备
CN112612697A (zh) 一种基于字节码技术的软件缺陷测试定位方法及系统
CN102519514B (zh) 电子测试仪器一键式自动测试的实现方法
CN101237350A (zh) 用于多任务环境单板机的全局变量异常改写定位方法

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
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South Avenue, Haidian District, Beijing, Zhongguancun

Patentee after: Beijing Venus Information Technology Co., Ltd.

Address before: South Avenue, Haidian District, Beijing, Zhongguancun

Patentee before: Beijing Qiming Xingchen Information Technology Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING QIMINGXINGCHEN INFORMATION TECHNOLOGY CO.,

Free format text: FORMER NAME: BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY CO. LTD.

ASS Succession or assignment of patent right

Owner name: BEIJING QIMINGXINCHEN INFORMATION SECURITY TECHNOL

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100081 ZHONGGUANCUN SOUTH AVENUE, HAIDIAN DISTRICT, BEIJING CITY TO: 100193QIMINGXINGCHEN BUILDING, BUILDING 21, ZHONGGUANCUN SOFTWARE PARK, NO.8, DONGBEIWANG WEST ROAD, HAIDIAN DISTRICT, BEIJING CITY

TR01 Transfer of patent right

Effective date of registration: 20100507

Address after: 100193 Beijing city Haidian District Dongbeiwang qimingxingchenmansionproject Building No. 21 West Road No. 8 Zhongguancun Software Park

Co-patentee after: Beijing Venusense Information Security Technology Co., Ltd.

Patentee after: Beijing Venus Information Technology Co., Ltd.

Address before: 100081 Haidian District Zhongguancun South Avenue, Beijing

Patentee before: Beijing Venus Information Technology Co., Ltd.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090211

Termination date: 20130516