CN104866765B - 基于行为特征相似性的恶意代码同源性分析方法 - Google Patents
基于行为特征相似性的恶意代码同源性分析方法 Download PDFInfo
- Publication number
- CN104866765B CN104866765B CN201510296976.2A CN201510296976A CN104866765B CN 104866765 B CN104866765 B CN 104866765B CN 201510296976 A CN201510296976 A CN 201510296976A CN 104866765 B CN104866765 B CN 104866765B
- Authority
- CN
- China
- Prior art keywords
- api
- behavior
- malicious code
- node
- function
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000003542 behavioural effect Effects 0.000 claims abstract description 27
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 230000006399 behavior Effects 0.000 claims description 96
- 230000006870 function Effects 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 230000009471 action Effects 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 6
- 230000004069 differentiation Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 238000013139 quantization Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 11
- 238000011160 research Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000012098 association analyses Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001568 sexual effect Effects 0.000 description 2
- 102100030346 Antigen peptide transporter 1 Human genes 0.000 description 1
- 108050009514 Antigen peptide transporter 1 Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003556 assay Methods 0.000 description 1
- 239000005441 aurora Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002864 sequence alignment Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
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)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于行为特征相似性的恶意代码同源性分析方法,首先基于动态二进制插桩平台提取并量化表示恶意代码的行为特征,在此基础上度量不同恶意代码之间行为特征的相似性,以行为特征的相似度反映了恶意代码的同源性判别结果。利用本发明可以对网络中收集的恶意代码进行同源性分析,并对后续攻击源头的追踪溯源提供有力支撑。该方法能够正确地反映了恶意代码样本之间的同源性,同时正确地区分了不具有同源性的恶意代码样本,对恶意代码的同源性分析工作具有重要的指导和借鉴意义。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种基于行为特征相似性的恶意代码同源性分析方法。
背景技术
恶意代码是指运行在计算机上,使***按照攻击者意愿执行任务的一组指令。随着计算机网络的深度应用和恶意代码技术的不断发展,恶意代码带来的危害越来越大,已成为威胁计算机***安全的一个重要因素。恶意代码在未获得用户授权的前提下,在计算机或其他终端上执行,达到干扰主机正常工作、破坏存储数据的完整性和窃取用户个人隐私等恶意的目的,严重侵犯被攻击者的合法权益。
近年来,随着2010年Google极光攻击和2011年的RSA SecurID窃取攻击等事件的曝光,一个新兴的网络攻击手段正在引起越来越多的关注—高级持续性威胁(AdvancedPersistent Threat)。相比传统攻击手法,APT攻击具有高级入侵手段和持续性攻击两个特点,危害性极强,且传统的基于特征匹配的检测手段无法发现。
由于APT攻击的特殊性,它一般是由组织(特别是政府)或者一些特定的团队发起的,为了适应不同的攻击目标环境或实现不同的攻击目的,恶意代码的编写者会在一个原始恶意代码样本的基础上,通过修改得到不同的恶意代码。在此情况下,这些新生成的恶意代码使用的已经不再是传统恶意代码生存技术中的变形(Metamorphic)和多态(Polymorphic)技术,但这些恶意代码之间通常存在着某种共同特征,例如相似的代码结构,高度一致的代码片段或使用数据手法的相似性等等。这些来自同一编写者或编写团队的、具有相似特征的恶意代码就是具有同源性的恶意代码。同源性分析技术是实现恶意代码追踪溯源的一个重要手段。
2011年,知名信息安全厂商卡巴斯基在其分析报告中指出,在近两年相继发现的震网和毒区两个ATP攻击病毒中包括一部分相同的代码,因此推定他们应该来自同一编写者。由此国外针对同源性恶意代码的分析也迅速展开。该分析是建立在大量的人工分析工作的基础上的,分析周期较长,分析效率不高。
美国科技公司Charles River Analytics通过综合利用生物演化、计算机程序逆向工程和语言学等多项技术,开发了一套能够快速定位攻击来源的恶意代码分析***。该分析***选择了静态分析中提取的指令序列、PE头分析中的头部信息、动态分析中的追踪记录、代码执行过程中的行为序列的语义和函数特征等多种特征作为分析的基础,经过代码演化算法分析最终输出一张代码演化图来表明输入的恶意代码样本之间的同源性关系。该分析方法建立在著名的情报分析平台palantir之上的,不满足一般的应用条件。
2013年1月,美国的曼迪昂特公司发布报告“APT1”,在该报告中提出了一种利用恶意代码特征追踪攻击源头的方法,该报告从软件的注释、代码的编写风格、恶意软件的中针对的目标群体、使用的IP地址、维持联系的域名服务等多个方面对不同恶意软件进行了同源性分析,并据此作为确定攻击源头的重要依据。该分析是在对目标长期的跟踪情况下得出,分析周期较长。
国内著名安全机构安天实验室也对震网和毒区进行了人工对比分析,他们指出两个病毒在资源嵌入、加密、驱动存在相似的结构和手法,并且都使用了窃取的数字证书来躲避反病毒检测,但这些手法是恶意代码的典型手法并不能证明两者同源。他们判定的依据主要是:相似的代码片段、相似的数据结构和共同的错误。该分析方法需要借助分析人员的逆向分析知识,且分析过程中花费的时间和人力资源的成本较高。
2012年,刘星借鉴了生物信息学中的物种***发生树构建方法,提出了基于恶意代码函数调用图的恶意代码***发生树构建方法。官强借鉴和利用了生物信息学中同源和进化分析的序列比对和网络比对技术,提出了基于***函数序列的恶意代码同源分析方法,对一组恶意代码构建其家族演化树。这两种方法基于恶意代码静态特征对同源性自动分析技术进行了深入的研究,但对于加壳恶意代码样本的分析具有一定的局限性。
目前国内外针对恶意代码同源性的研究还不是很多,在已有的方法中,卡巴斯基、安天等安全公司都有关于恶意代码同源性的详细的分析报告,但这些成果都是在对捕获的样本进行深入的人工分析之后取得的,分析所需的人力与时间投入较大。美国一家科技公司也有一整套针对同源性的恶意代码分析软件,但相关文献只是介绍了其采用的技术框架而缺少实现的技术细节的介绍。另外国防科技大学的官强等人在同源性分析中对恶意代码特征的选取比较单一,且无法分析加壳的恶意代码,分析方法缺乏通用性。
发明内容
针对目前恶意代码同源性分析研究大部分依赖于人工分析,在已有的自动化分析方法中仅把恶意代码的特征码、控制流图等静态特征作为恶意代码分析的依据,无法分析加壳的恶意代码样本,通用性较差的问题。本发明提出了基于行为特征相似性的恶意代码同源性分析方法,对网络中收集的恶意代码进行同源性分析,并对后续攻击源头的追踪溯源提供有力支撑。
API:全称Application Programming Interface,是windows操作***提供给用户的实现***特定功能的函数接口。
本发明提出了一种基于行为特征相似性的恶意代码同源性分析方法,包括指令和数据记录模块、特征提取模块和同源性判别模块。分析过程如下:
首先,指令和数据记录模块以动态二进制插桩平台为基础,在一个受保护的虚拟环境中执行恶意代码样本,通过插桩分析关键指令,记录程序在函数入口点、返回点、内存读写点等关键位置上的数据,结合API参数格式解析库,得到库中定义的关键API的调用序列和参数信息。
然后,特征提取模块以API调用序列及其参数信息作为输入,结合行为规则库,在构建API关联关系树的基础上提取行为特征。
最后,同源性判别模块将两个恶意代码的行为特征作为输入,通过对行为特征相似性比较来对恶意代码的同源性进行判别最终得到结果分析报告,并将不同样本的特征写入恶意代码特征库中。
所述指令和数据记录模块,以记录为主,对API函数之间的关联分析工作在后面的特征提取模块中进行,从而减少恶意代码在插件环境下运行的***开销,提高***的分析效率。通过对call指令进行插桩,获取函数调用前的信息,包括调用点地址(即call指令地址)及函数的输入参数信息。同时对ret指令进行插桩,获取函数调用后的信息,包括函数返回地址(即ret指令指向的目标地址)以及函数的输出信息。
所述行为提取模块包括提取API序列、API关联算法和行为提取。
提取API序列:恶意代码通过调用一组有序的API函数,改变***中的某个或多个对象以实现其功能。对大量的API调用进行总结和抽象,我们定义一个API为一个具有四个属性的向量:首先是API的名称,一个确定的API对应一个唯一的函数名称,调用时可以实现一个具体的功能;其次是API的对象,是API实现功能的目标客体;然后是与API函数有关的数据,是对其实现功能的补充说明;最后是调用时间,在实际的代码运行过程中,调用的多个API有执行的先后顺序。
API关联算法:根据在动态二进制插桩平台下执行恶意代码的记录可以获得一组API序列,行为特征提取的目标,就是从恶意代码执行的API序列中,抽取出对应的行为信息。行为特征提取的过程总体上可以分为两步,首先是利用关联关系对API集合进行划分,划分的目的是将对特定对象操作的API划分到一个集合中,然后根据行为规则对每个子集进行行为提取。
API关联算法的关键是API之间对象信息的关联性,而不同的API对所包含的对象信息的影响是不同的,根据这种特点我们将API分为5大类:创建型API是指新建一个对象,该对象会被后续的API引用;引用创建型是一种过渡创建型API,在引用某个对象的同时,以此为基础新建另一个的对象;引用型是最常见的API,使用对象进行操作,不创建新的对象;结束型API表示当前的对象操作结束;独立型API不涉及对象信息,能够独立完成某项功能。在API关联算法中,需要对5种类型的API采取不同的处理方法。
输入:动态二进制分析平台的API记录文件
输出:行为模式数组
Step1.读取API记录文件,提取API序列及其中包含的对象信息。
Step2.为API关联树创建一个空的根节点
Step3.顺序读取序列中的一个API调用,根据API类型执行对应操作:
若为创建型,则新建一个对象节点添加到根节点下,同时将API作为儿子节点添加到该对象节点下。
若为引用创建型,则API中包含引用对象和新建对象两个对象。首先搜索与引用对象对应的节点,若搜索成功,将API作为儿子节点添加到该对象节点下;如果没有搜索到,那么在根节点下添加引用对象节点,然后将API作为儿子节点***到该节点下。接着将新建对象作为儿子节点添加到该API节点下,同时将API作为儿子节点添加到该对象节点下。
若为引用型,搜索引用对象节点并判断是否具有结束标记,若搜索到匹配的对象节点且该节点没有结束标记,则添加API作为该对象节点的儿子节点;若搜索不到或者对象有结束标记,则在根节点下添加对象节点,同时将API作为儿子节点添加到该节点下。
若为结束型,则搜索引用对象节点,添加API作为该对象节点的儿子节点,同时将为该对象节点添加结束标记。
若为独立型,则将API直接添加到另外独立API关联树下,单独处理。
Step4.若API调用数据处理结束,转到下一步,否则转到Step11。
Step5.读取行为规则库,将库中现有的行为模式存储到一个行为模式的数组中。
Step6.按照广度优先算法,查找API关联树中的下一个对象节点,读取该节点的所有API儿子节点,这些API组成的序列就是API全集中对当前父亲节点代表的特定对象进行操作的一个划分。
Step7.读取行为模式的数组,并在得到的一组API序列中查找匹配的行为模式,若匹配成功,则将这个行为模式加入到最终输出的结果数组中。
Step8.若API关联树遍历结束,算法结束,否则转到Step14。
行为提取:在API函数调用序列的基础上,依据预先定义的行为规则库,将符合某一特定模式的序列抽象为一个行为。按照行为的操作对象不同,行为特征分为文件行为、注册表行为、进程行为、网络行为、服务行为、其他行为共六大类。
本发明利用动态二进制插桩的特点,获取恶意代码执行过程中完整的行为特征,通过比较这些行为特征的相似性来判断恶意代码之间的同源性,达到了很好的分析效果。具体来说主要表现在:
1.选取了更加全面、合理的恶意代码行为特征作为同源性判别的依据
当前,大部分的研究仅把恶意代码的静态特征码、控制流图或动态执行的行为序列等较单一的恶意代码特征作为分析的依据,这对同源性分析来说是远远不够的。本发明按照恶意代码行为的操作对象不同,将行为特征归纳为文件行为、注册表行为、进程行为、网络行为、服务行为、其他行为共六大类,这些特征能够很好地反映出恶意代码本质和具有同源性恶意代码之间的相似性,同时对于不同来源的恶意代码样本具有明显的区分。
2.实现了一种自动化的恶意代码行为特征提取方法
目前很多恶意代码同源性分析方面的研究成果都是人工分析的结果,不能满足恶意代码数量急剧增长的现状。本发明利用动态二进制分析技术的特点,在程序运行过程中,在不影响运行结果的条件下,***分析代码,由分析程序完成行为特征的提取以及特征之间的相似性分析工作,不需要人工的干预,实现了一种自动化的恶意代码同源性分析方法,提高了同源性分析的效率。
3.实现了一种有效、准确地恶意代码同源性分析方法
本发明充分考虑了恶意代码在行为特征方面表现的多样性以及它们的抗分析性,实现了一种有效、准确地恶意代码同源性分析方法。该方法能够正确地反映了恶意代码样本之间的同源性,同时正确地区分了不具有同源性的恶意代码样本,对恶意代码的同源性分析工作具有重要的指导和借鉴意义。
附图说明
图1是本发明基于行为特征相似性的恶意代码同源性分析的框图。
具体实施方式
实施例:一种基于行为特征相似性的恶意代码同源性分析方法,具体步骤如下:
首先,指令和数据记录模块以动态二进制插桩平台为基础,在一个受保护的虚拟环境中执行恶意代码样本,通过插桩分析关键指令,记录程序在函数入口点、返回点、内存读写点等关键位置上的数据,结合API参数格式解析库,得到库中定义的关键API的调用序列和参数信息。
然后,特征提取模块以API调用序列及其参数信息作为输入,结合行为规则库,在构建API关联关系树的基础上提取行为特征。
最后,同源性判别模块将两个恶意代码的行为特征作为输入,通过对行为特征相似性比较来对恶意代码的同源性进行判别最终得到结果分析报告,并将不同样本的特征写入恶意代码特征库中。
整个过程如图1所示。
1.指令和数据记录模块
本模块的工作以记录为主,对API函数之间的关联分析工作在后面的特征提取模块中进行,从而减少恶意代码在插件环境下运行的***开销,提高***的分析效率。
通过对call指令进行插桩,获取函数调用前的信息,包括调用点地址(即call指令地址)及函数的输入参数信息。同时对ret指令进行插桩,获取函数调用后的信息,包括函数返回地址(即ret指令指向的目标地址)以及函数的输出信息。
2.行为提取模块
1)提取API序列
恶意代码通过调用一组有序的API函数,改变***中的某个或多个对象以实现其功能。对大量的API调用进行总结和抽象,我们定义一个API为一个具有四个属性的向量:首先是API的名称,一个确定的API对应一个唯一的函数名称,调用时可以实现一个具体的功能;其次是API的对象,是API实现功能的目标客体;然后是与API函数有关的数据,是对其实现功能的补充说明;最后是调用时间,在实际的代码运行过程中,调用的多个API有执行的先后顺序。
定义1API调用:api_call=(name,object,data,time).
恶意代码的执行序列可以表示为多个API调用的集合,在这个集合中,两个元素(即两个API调用)之间可能会有相等的属性,但不存在两个完全相等的元素。例如当同一个API函数被先后两次调用时(用api_call1,api_call2表示),显然name1=name2,若两次操作针对的是同一个对象,那么有object1=object2且data1=data2,但调用时间不相等,即time1≠time2。
定义2恶意代码一次运行的API执行序列:
其中n为执行序列的长度。
API间并不是相互孤立的,一般而言,为了针对某个对象实现一个具体的功能,恶意代码需要一组连续的API调用配合实现。这组API通过特定的核心数据结构传递信息,该核心数据结构即为API的对象信息,对象信息在形式上表现为句柄、字符串以及上下文数据结构等等,API之间存在逻辑联系就是API间的关联性。
定义3API关联关系:
对于API集合API_Sequence,从关联关系的定义可知,关联性关系R满足:
自反性
对称性
传递性
因此关联关系R为等价关系。依据等价关系的性质,我们可以将API集合API_Sequence完全划分为S1,S2,...,Sn,即S=S1∪S2…∪Sn且在此基础上,我们定义一个将一组满足一定的API调用序列映射到一个具体行为的行为规则库,利用这个库从S1,S2,...,Snn个划分中提取出的多个行为,作为恶意代码的特征行为。
2)API关联算法
根据在动态二进制插桩平台下执行恶意代码的记录可以获得一组API序列,行为特征提取的目标,就是从恶意代码执行的API序列中,抽取出对应的行为信息。行为特征提取的过程总体上可以分为两步,首先是利用关联关系对API集合进行划分,划分的目的是将对特定对象操作的API划分到一个集合中,然后根据行为规则对每个子集进行行为提取。
API关联算法的关键是API之间对象信息的关联性,而不同的API对所包含的对象信息的影响是不同的,根据这种特点我们将API分为5大类:创建型API是指新建一个对象,该对象会被后续的API引用;引用创建型是一种过渡创建型API,在引用某个对象的同时,以此为基础新建另一个的对象;引用型是最常见的API,使用对象进行操作,不创建新的对象;结束型API表示当前的对象操作结束;独立型API不涉及对象信息,能够独立完成某项功能。在API关联算法中,需要对5种类型的API采取不同的处理方法。
输入:动态二进制分析平台的API记录文件
输出:行为模式数组
Step9.读取API记录文件,提取API序列及其中包含的对象信息。
Step10.为API关联树创建一个空的根节点
Step11.顺序读取序列中的一个API调用,根据API类型执行对应操作:
若为创建型,则新建一个对象节点添加到根节点下,同时将API作为儿子节点添加到该对象节点下。
若为引用创建型,则API中包含引用对象和新建对象两个对象。首先搜索与引用对象对应的节点,若搜索成功,将API作为儿子节点添加到该对象节点下;如果没有搜索到,那么在根节点下添加引用对象节点,然后将API作为儿子节点***到该节点下。接着将新建对象作为儿子节点添加到该API节点下,同时将API作为儿子节点添加到该对象节点下。
若为引用型,搜索引用对象节点并判断是否具有结束标记,若搜索到匹配的对象节点且该节点没有结束标记,则添加API作为该对象节点的儿子节点;若搜索不到或者对象有结束标记,则在根节点下添加对象节点,同时将API作为儿子节点添加到该节点下。
若为结束型,则搜索引用对象节点,添加API作为该对象节点的儿子节点,同时将为该对象节点添加结束标记。
若为独立型,则将API直接添加到另外独立API关联树下,单独处理。
Step12.若API调用数据处理结束,转到下一步,否则转到Step11。
Step13.读取行为规则库,将库中现有的行为模式存储到一个行为模式的数组中。
Step14.按照广度优先算法,查找API关联树中的下一个对象节点,读取该节点的所有API儿子节点,这些API组成的序列就是API全集中对当前父亲节点代表的特定对象进行操作的一个划分。
Step15.读取行为模式的数组,并在得到的一组API序列中查找匹配的行为模式,若匹配成功,则将这个行为模式加入到最终输出的结果数组中。
Step16.若API关联树遍历结束,算法结束,否则转到Step14。
3)行为提取
在API函数调用序列的基础上,依据预先定义的行为规则库,将符合某一特定模式的序列抽象为一个行为。按照行为的操作对象不同,行为特征分为文件行为、注册表行为、进程行为、网络行为、服务行为、其他行为共六大类。
一、文件行为
操作***将实际的物理存储地址抽象为文件和树形目录的逻辑概念来组织和存储计算机中的数据,用户只需要记住文件的所属目录和文件名就能对其进行查找和访问。我们将这样一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型称为文件***。正是因为文件***对程序运行的重要性,因此大量恶意代码在执行时都会对文件***产生影响,比如新建文件、查找文件、修改或删除已有文件等等。
表3.1恶意代码中常见的文件行为
二、注册表行为
注册表是Windows***下管理和配置***运行参数和应用程序的初始化信息的一个核心数据库,其中存储的信息包括硬件设备的说明、应用程序的运行参数、网络连接等等。恶意代码可以通过读取注册表中关键子键的键值获取与硬件、软件或网络设置相关的信息,另外大部分的恶意代码还利用新建或篡改注册表键值的方式影响***正常的运行。
表3.2恶意代码中常见的注册表行为
三、网络行为
网络通信是恶意代码的一大特性,在入侵主机之后,木马需要与攻击者进行通信,同时利用该主机的网络资源感染网络上其他主机***,另外木马在成功盗窃游戏账号或者银行账号密码等数据或者***中的其他敏感的重要文件后,也要通过网络发送给病毒制造者,这些功能的实现都需要网络操作。由此可见绝大多数的恶意程序都包含网络行为。
表3.3恶意代码中常见的网络行为
四、进程行为
程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例,因此恶意代码在入侵主机***后通常是以进程的形式驻留在***中的。恶意代码常见的进程行为有创建并启动一个新的进程、远程注入到其他进程、跨进程读写内存、结束进程等等。比如一些盗号木马经常会强制结束正在运行的游戏进程,迫使玩家重新登录,然后通过监控键盘等方法达到偷窃玩家账号密码的目的。
表3.4恶意代码中常见的进程行为
五、服务行为
服务是微软公司Windows操作***下一种特殊的机制,它使得用户能够创建在自己的Windows会话中可长时间运行的可执行应用程序。服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这些功能使服务能够在不影响在同一台计算机上工作的其他用户的功能的同时运行,因此常在恶意代码中被用于隐藏其恶意行为。另外,相比于常见的文件和注册表操作,用户不太熟悉这一类型的操作,因此恶意代码中使用服务来实现恶意行为的操作常常能收到更好的效果。恶意代码可以通过创建一个新的服务来实现自身代码的功能,也可以通过修改***中的其他服务的属性或者直接暂停或删除某个服务来干扰***的正常运行。
表3.5恶意代码中常见的网络行为
六、其他行为
其他行为是指恶意代码的行为对象不属于上面提到五类对象中的任何一种,但是这些行为也对恶意代码的实现起到了关键作用,例如创建互斥体、窗口操作、设置消息钩子等等。例如有的恶意代码在运行时会创建GUI窗口,这些窗口没有标题栏和文本框,是一个简单的错误消息提示框,使已经运行了恶意代码的用户误以为程序由于某种错误并没有真正执行。
表3.6恶意代码中常见的其他行为
Claims (6)
1.一种基于行为特征相似性的恶意代码同源性分析方法,包括指令和数据记录模块、特征提取模块和同源性判别模块,其特征在于,分析过程如下:
首先,指令和数据记录模块以动态二进制插桩平台为基础,在一个受保护的虚拟环境中执行恶意代码样本,通过插桩分析关键指令,记录程序在函数入口点、返回点和内存读写点关键位置上的数据,结合API参数格式解析库,得到库中定义的关键API的调用序列和参数信息;
然后,特征提取模块以API调用序列及其参数信息作为输入,结合行为规则库,在构建API关联关系树的基础上提取行为特征;
最后,同源性判别模块将两个恶意代码的行为特征作为输入,通过对行为特征相似性比较来对恶意代码的同源性进行判别最终得到结果分析报告,并将不同样本的特征写入恶意代码特征库中;
所述特征提取模块包括提取API序列、API关联算法和行为提取;提取API序列:定义一个API为一个具有四个属性的向量:首先是API的名称,一个确定的API对应一个唯一的函数名称,调用时可以实现一个具体的功能;其次是API的对象,是API实现功能的目标客体;然后是与API函数有关的数据,是对其实现功能的补充说明;最后是调用时间,在实际的代码运行过程中,调用的多个API有执行的先后顺序。
2.根据权利要求1所述的基于行为特征相似性的恶意代码同源性分析方法,其特征在于,所述指令和数据记录模块以记录为主,通过对call指令进行插桩,获取函数调用前的信息,包括调用点地址及函数的输入参数信息;同时对ret指令进行插桩,获取函数调用后的信息,包括函数返回地址以及函数的输出信息。
3.根据权利要求1所述的基于行为特征相似性的恶意代码同源性分析方法,其特征在于,API关联算法:根据在动态二进制插桩平台下执行恶意代码的记录可以获得一组API序列,行为特征提取的目标,就是从恶意代码执行的API序列中,抽取出对应的行为信息;行为特征提取的过程可以分为两步,首先是利用关联关系对API集合进行划分,划分的目的是将对特定对象操作的API划分到一个集合中,然后根据行为规则对每个子集进行行为提取。
4.根据权利要求3所述的基于行为特征相似性的恶意代码同源性分析方法,其特征在于,将API分为5大类:创建型API是指新建一个对象,该对象会被后续的API引用;引用创建型API是一种过渡创建型API,在引用某个对象的同时,以此为基础新建另一个对象;引用型API是最常见的API,使用对象进行操作,不创建新的对象;结束型API表示当前的对象操作结束;独立型API不涉及对象信息,能够独立完成某项功能;对5种类型的API采取不同的处理方法。
5.根据权利要求3或4所述的基于行为特征相似性的恶意代码同源性分析方法,其特征在于,API关联算法的输入为动态二进制分析平台的API记录文件;API关联算法的输出为行为模式数组;API关联算法的步骤为:
步骤一:读取API记录文件,提取API序列及其中包含的对象信息;
步骤二:为API关联树创建一个空的根节点;
步骤三:顺序读取序列中的一个API调用,根据API类型执行对应操作:
若为创建型,则新建一个对象节点添加到根节点下,同时将API作为儿子节点添加到该对象节点下;
若为引用创建型,则API中包含引用对象和新建对象两个对象;首先搜索与引用对象对应的节点,若搜索成功,将API作为儿子节点添加到该引用对象节点下;如果没有搜索到,那么在根节点下添加引用对象节点,然后将API作为儿子节点***到引用对象节点下;接着将新建对象作为儿子节点添加到该API节点下,同时将API作为儿子节点添加到该新建对象节点下;若为引用型,搜索引用对象节点并判断是否具有结束标记,若搜索到匹配的引用对象节点且引用对象节点没有结束标记,则添加API作为该引用对象节点的儿子节点;若搜索不到引用对象节点的结束标记,则在根节点下添加引用对象节点,同时将API作为儿子节点添加到引用对象节点下;
若为结束型,则搜索引用对象节点,添加API作为该引用对象节点的儿子节点,同时将为该引用对象节点添加结束标记;
若为独立型,则将API直接添加到另外独立API关联树下,单独处理;
步骤四:若API调用数据处理结束,转到下一步,否则转到步骤三;
步骤五:读取行为规则库,将库中现有行为模式存储到一个行为模式的数组中;
步骤六:按照广度优先算法,查找API关联树中的下一个对象节点,读取该对象节点的所有API儿子节点,这些API组成的序列就是API全集中对当前父亲节点代表的特定对象进行操作的一个划分;
步骤七:读取行为模式的数组,并在得到的一组API序列中查找匹配的行为模式,若匹配成功,则将这个行为模式加入到最终输出的结果数组中;
步骤八:若API关联树遍历结束,算法结束,否则转到步骤六。
6.根据权利要求1所述的基于行为特征相似性的恶意代码同源性分析方法,其特征在于,行为提取:在API函数调用序列的基础上,依据预先定义的行为规则库,将符合某一特定模式的序列抽象为一个行为;按照行为的操作对象不同,行为特征分为文件行为、注册表行为、进程行为、网络行为、服务行为、其他行为共六大类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510296976.2A CN104866765B (zh) | 2015-06-03 | 2015-06-03 | 基于行为特征相似性的恶意代码同源性分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510296976.2A CN104866765B (zh) | 2015-06-03 | 2015-06-03 | 基于行为特征相似性的恶意代码同源性分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104866765A CN104866765A (zh) | 2015-08-26 |
CN104866765B true CN104866765B (zh) | 2017-11-10 |
Family
ID=53912587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510296976.2A Active CN104866765B (zh) | 2015-06-03 | 2015-06-03 | 基于行为特征相似性的恶意代码同源性分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866765B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245495A (zh) * | 2015-08-27 | 2016-01-13 | 哈尔滨工程大学 | 一种基于相似性匹配恶意shellcode快速检测方法 |
CN105262726B (zh) * | 2015-09-10 | 2018-10-19 | 中国人民解放军信息工程大学 | 一种基于大数据行为序列分析的apt攻击检测方法 |
CN105721416B (zh) * | 2015-11-16 | 2019-09-13 | 哈尔滨安天科技股份有限公司 | 一种apt事件攻击组织同源性分析方法及装置 |
CN105574409B (zh) * | 2015-12-10 | 2018-09-04 | 北京奇虎科技有限公司 | 一种注入代码提取方法及装置 |
CN106384048B (zh) * | 2016-08-30 | 2021-05-07 | 北京奇虎科技有限公司 | 一种威胁信息处理方法与装置 |
CN107979581B (zh) * | 2016-10-25 | 2020-10-27 | 华为技术有限公司 | 僵尸特征的检测方法和装置 |
CN106778264A (zh) * | 2016-11-24 | 2017-05-31 | 北京金山安全管理***技术有限公司 | 一种移动客户端的应用程序分析方法及分析*** |
CN106570401B (zh) * | 2016-12-27 | 2019-07-26 | 哈尔滨安天科技股份有限公司 | 一种基于时间变化的恶意代码检测方法及*** |
CN108694319B (zh) * | 2017-04-06 | 2021-04-16 | 武汉安天信息技术有限责任公司 | 一种恶意代码家族判定方法及装置 |
CN107704501B (zh) * | 2017-08-28 | 2020-04-24 | 中国科学院信息工程研究所 | 一种识别同源二进制文件的方法及*** |
CN108073809A (zh) * | 2017-12-25 | 2018-05-25 | 哈尔滨安天科技股份有限公司 | 基于异常组件关联的apt启发式检测方法及*** |
CN108123956B (zh) * | 2017-12-27 | 2020-10-20 | 中国人民解放军战略支援部队信息工程大学 | 基于Petri网的密码误用漏洞检测方法及*** |
CN108038381A (zh) * | 2017-12-27 | 2018-05-15 | 中国人民解放军战略支援部队信息工程大学 | 一种密钥安全性检测方法及*** |
CN108073815B (zh) * | 2017-12-29 | 2022-02-15 | 安天科技集团股份有限公司 | 基于代码切片的家族判定方法、***及存储介质 |
CN108182364B (zh) * | 2017-12-29 | 2022-07-15 | 安天科技集团股份有限公司 | 一种基于调用依赖关系识别攻击同源的方法及*** |
CN108734215A (zh) * | 2018-05-21 | 2018-11-02 | 上海戎磐网络科技有限公司 | 软件分类方法及装置 |
CN110555305A (zh) * | 2018-05-31 | 2019-12-10 | 武汉安天信息技术有限责任公司 | 基于深度学习的恶意应用溯源方法及相关装置 |
CN109063055B (zh) * | 2018-07-19 | 2021-02-02 | 中国科学院信息工程研究所 | 同源二进制文件检索方法和装置 |
CN108881294B (zh) * | 2018-07-23 | 2021-05-25 | 杭州安恒信息技术股份有限公司 | 基于网络攻击行为的攻击源ip画像生成方法以及装置 |
CN109542508B (zh) * | 2018-10-18 | 2020-12-29 | 华中科技大学 | 一种基于函数调用关系图的代码同源性分析方法 |
CN110210222B (zh) * | 2018-10-24 | 2023-01-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、数据处理装置和计算机可读存储介质 |
CN110007957A (zh) * | 2018-12-17 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 调用链路构建方法、装置及设备 |
CN110765457A (zh) * | 2018-12-24 | 2020-02-07 | 哈尔滨安天科技集团股份有限公司 | 一种基于程序逻辑识别同源攻击的方法、装置及存储设备 |
CN109992968A (zh) * | 2019-03-25 | 2019-07-09 | 北京理工大学 | 基于二进制动态插桩的Android恶意行为动态检测方法 |
CN111857678B (zh) * | 2019-04-25 | 2024-05-31 | 阿里巴巴(中国)有限公司 | 代码生成方法、装置、电子设备及计算机存储介质 |
CN110198303A (zh) * | 2019-04-26 | 2019-09-03 | 北京奇安信科技有限公司 | 威胁情报的生成方法及装置、存储介质、电子装置 |
CN112035836B (zh) * | 2019-06-04 | 2023-04-14 | 四川大学 | 一种恶意代码家族api序列挖掘方法 |
CN110826067B (zh) * | 2019-10-31 | 2022-08-09 | 深信服科技股份有限公司 | 一种病毒检测方法、装置、电子设备及存储介质 |
CN111083133B (zh) * | 2019-12-11 | 2021-10-22 | 公安部第三研究所 | 一种邮件信息和恶意代码信息的关联性分析方法及*** |
CN111737694B (zh) * | 2020-05-19 | 2023-04-25 | 华南理工大学 | 一种基于行为树的恶意软件同源性分析方法 |
CN111797394B (zh) * | 2020-06-24 | 2021-06-08 | 广州大学 | 基于stacking集成的APT组织识别方法、***及存储介质 |
CN112257062B (zh) * | 2020-12-23 | 2021-04-16 | 北京金睛云华科技有限公司 | 一种基于频繁项集挖掘的沙箱知识库生成方法和装置 |
CN112836216B (zh) * | 2021-02-04 | 2023-11-17 | 武汉大学 | 基于行为和代码长度的恶意样本逆向任务分配方法及*** |
CN114826639B (zh) * | 2021-11-01 | 2024-03-19 | 中国工商银行股份有限公司 | 基于函数调用链跟踪的应用攻击检测方法及装置 |
CN114662111B (zh) * | 2022-05-18 | 2022-08-09 | 成都数默科技有限公司 | 一种恶意代码软件基因同源性分析方法 |
CN117201043B (zh) * | 2023-11-08 | 2024-01-12 | 北京中科网威信息技术有限公司 | 文件检测方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470620A (zh) * | 2007-12-29 | 2009-07-01 | 珠海金山软件股份有限公司 | Pe文件源代码一致性的判定方法及装置 |
CN101894236A (zh) * | 2010-07-28 | 2010-11-24 | 北京华夏信安科技有限公司 | 基于摘要语法树和语义匹配的软件同源性检测方法及装置 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
CN102495795A (zh) * | 2011-11-25 | 2012-06-13 | 中国人民解放军总参谋部第五十四研究所 | 一种基于中间语言分析的软件脆弱性测试方法 |
CN102789419A (zh) * | 2012-07-20 | 2012-11-21 | 中国人民解放军信息工程大学 | 一种使用多样本差异比对的软件故障分析方法 |
CN103679030A (zh) * | 2013-12-12 | 2014-03-26 | 中国科学院信息工程研究所 | 一种基于动态语义特征的恶意代码分析检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101303643B1 (ko) * | 2007-01-31 | 2013-09-11 | 삼성전자주식회사 | 침입 코드 탐지 장치 및 그 방법 |
-
2015
- 2015-06-03 CN CN201510296976.2A patent/CN104866765B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470620A (zh) * | 2007-12-29 | 2009-07-01 | 珠海金山软件股份有限公司 | Pe文件源代码一致性的判定方法及装置 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
CN101894236A (zh) * | 2010-07-28 | 2010-11-24 | 北京华夏信安科技有限公司 | 基于摘要语法树和语义匹配的软件同源性检测方法及装置 |
CN102495795A (zh) * | 2011-11-25 | 2012-06-13 | 中国人民解放军总参谋部第五十四研究所 | 一种基于中间语言分析的软件脆弱性测试方法 |
CN102789419A (zh) * | 2012-07-20 | 2012-11-21 | 中国人民解放军信息工程大学 | 一种使用多样本差异比对的软件故障分析方法 |
CN103679030A (zh) * | 2013-12-12 | 2014-03-26 | 中国科学院信息工程研究所 | 一种基于动态语义特征的恶意代码分析检测方法 |
Non-Patent Citations (2)
Title |
---|
基于函数调用图的恶意代码同源分析;刘星;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115;19-43 * |
基于***函数序列的恶意代码同源分析;官强;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115;49-54 * |
Also Published As
Publication number | Publication date |
---|---|
CN104866765A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866765B (zh) | 基于行为特征相似性的恶意代码同源性分析方法 | |
US10560471B2 (en) | Detecting web exploit kits by tree-based structural similarity search | |
Costin et al. | A {Large-scale} analysis of the security of embedded firmwares | |
Lin et al. | Identifying android malicious repackaged applications by thread-grained system call sequences | |
US9135443B2 (en) | Identifying malicious threads | |
US11575700B2 (en) | Systems and methods for displaying an attack vector available to an attacker of a networked system | |
CA2797584C (en) | Behavioral signature generation using clustering | |
Soh et al. | Detecting clones in android applications through analyzing user interfaces | |
Chen et al. | Sharing more and checking less: Leveraging common input keywords to detect bugs in embedded systems | |
CN107066883A (zh) | 用于阻断脚本执行的***和方法 | |
Vidal et al. | A novel pattern recognition system for detecting Android malware by analyzing suspicious boot sequences | |
CN109271780A (zh) | 机器学习恶意软件检测模型的方法、***和计算机可读介质 | |
CN109684836A (zh) | 使用经训练的机器学习模型检测恶意文件的***和方法 | |
Karbalaie et al. | Semantic malware detection by deploying graph mining | |
Shan et al. | Growing grapes in your computer to defend against malware | |
CN110914823A (zh) | 用于检测服务器上漏洞的***和方法 | |
CN107247902A (zh) | 恶意软件分类***及方法 | |
CN111651591A (zh) | 一种网络安全分析方法和装置 | |
CN106326737A (zh) | 用于检测可在虚拟堆栈机上执行的有害文件的***和方法 | |
CN105760787A (zh) | 用于检测随机存取存储器中的恶意代码的***及方法 | |
Bostani et al. | Evadedroid: A practical evasion attack on machine learning for black-box android malware detection | |
Allix et al. | Machine learning-based malware detection for Android applications: History matters! | |
CN108073808B (zh) | 基于pdb调试信息生成攻击者画像的方法及*** | |
Al-Khshali et al. | Effect of PE file header features on accuracy | |
Le Jamtel | Swimming in the Monero pools |
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: 20201014 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: Kang Fei |