CN108734012A - 恶意软件识别方法、装置及电子设备 - Google Patents
恶意软件识别方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108734012A CN108734012A CN201810489276.9A CN201810489276A CN108734012A CN 108734012 A CN108734012 A CN 108734012A CN 201810489276 A CN201810489276 A CN 201810489276A CN 108734012 A CN108734012 A CN 108734012A
- Authority
- CN
- China
- Prior art keywords
- software
- identified
- code
- detection result
- dynamic
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 claims abstract description 104
- 230000003068 static effect Effects 0.000 claims abstract description 47
- 239000012634 fragment Substances 0.000 claims abstract description 42
- 230000002068 genetic effect Effects 0.000 claims abstract description 42
- 238000007637 random forest analysis Methods 0.000 claims abstract description 28
- 244000035744 Hura crepitans Species 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 15
- 108090000623 proteins and genes Proteins 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 24
- 239000013598 vector Substances 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 10
- 235000013399 edible fruits Nutrition 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 241001377938 Yara Species 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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
本申请提供一种恶意软件识别方法、装置及电子设备,方法包括:获取待识别软件,并对待识别软件进行反编译得到待处理代码;根据待处理代码中调用系统API的代码所在的位置,将待处理代码拆分为多个代码基因片段;采用第一随机森林模型对多个代码基因片段进行检测,获得静态检测结果;在沙箱虚拟环境中运行待识别软件,获得待识别软件调用的系统API,采用第二随机森林模型对待识别软件调用的系统API进行检测,判断待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果;根据静态检测结果及动态检测结果判断待识别软件是否为恶意软件。如此,可以有效提高对恶意软件识别的精确度,更全面地进行恶意软件的识别。
Description
技术领域
本申请涉及软件安全技术领域,具体而言,涉及一种恶意软件识别方法、装置及电子设备。
背景技术
随着信息技术的不断发展,应用在各种电子设备上的软件越来越多,各种软件内容供应商也越来越繁杂,相应地,对软件安全的要求也越来越高。软件安全技术领域,常需要对未知的软件进行检测识别,判断软件是否为恶意软件。在现有技术的恶意软件识别方案中,大多基于静态识别,即对软件代码进行整体分析,将软件代码与已知的恶意代码做比对,判断软件代码中是否存在恶意代码,这种检测方式单一,往往造成识别不全面,检测结果的不稳定,例如在进行加壳样本处理时会在一定程度上影响静态检测的结果,造成误判。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种恶意软件识别方法,所述方法包括:
获取待识别软件,并对所述待识别软件进行反编译得到待处理代码;
根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段;
采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果;
在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测,判断所述待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果;
根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
可选地,在上述方法中,所述根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段的步骤,包括:
获取所述待处理代码中调用系统API的代码所在的位置;
以相邻的两条调用系统API的代码之间的部分作为一个代码基因片段,将所述待处理代码拆分为多个代码基因片段。
可选地,在上述方法中,所述采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果的步骤,包括:
根据预设的多个基因项,检测所述待识别软件的多个代码基因片段是否具有所述多个基因项,得到该待识别软件的基因向量;
采用预先训练的第一随机森林模型对所述基因向量进行检测,得到所述静态检测结果。
可选地,在上述方法中,所述在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测的步骤,包括:
在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用运行行为记录;
从所述运行行为记录中提取所述待识别软件运行过程中调用的系统API,并输入预先训练的Word2Vec模型,得到API向量;
采用预先训练的第二随机森林模型对所述API向量进行检测,得到动态检测结果。
可选地,在上述方法中,所述获取待识别软件,并对所述待识别软件进行反编译得到待处理代码的步骤可包括:
获取待识别软件,通过IDA反汇编工具将待识别软件反编译为asm格式的待处理代码。
可选地,在上述方法中,所述根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件的步骤包括:
获得所述静态检测结果及动态检测;
若所述静态检测结果及动态检测结果检测均为非恶意,则判定所述待识别软件为非恶意软件;若所述静态检测结果或所述动态检测结果中的至少一个为恶意,则判定所述待识别软件为恶意软件。
可选地,在上述方法中,所述获得所述静态检测结果及动态检测的步骤之后,所述方法还包括:
将所述待识别软件提交至第三方检测平台进行检测;
根据第三方检测平台的检测结果对所述静态检测结果及所述动态检测结果进行修正。
可选地,在上述方法中,所述方法还包括:
若判定所述待识别软件为恶意软件,则对所述待识别软件进行yara规则的生成,并根据该待识别软件在所述沙箱虚拟环境中的运行记录对该待识别软件进行抗动态分析检测。
本申请的另一目的在于提供一种恶意软件识别装置,所述装置包括:
预处理模块,用于获取待识别软件,并对所述待识别软件进行反编译得到待处理代码;
基因提取模块,用于根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段;
静态检测模块,用于采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果;
动态检测模块,用于在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测,判断所述待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果;
结果输出模块,用于根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
本申请的另一目的在于提供一种电子设备,所述电子设备包括可读存储介质级处理器;所述可读存储介质存储有机器可执行指令,所述机器可执行指令再被所述处理器执行或调用时,促使所述电子设备实现本申请提供的恶意软件识别方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的恶意软件识别方法、装置及电子设备,通过根据待识别软件的代码中对系统API调用的代码的位置将待识别软件拆分成多个代码基因片段,并对代码基因片段进行静态识别,再结合沙箱动态识别一起判断待识别软件是否为恶意软件。如此,可以有效提高对恶意软件识别的精确度,更全面地进行恶意软件的识别。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的方框示意图;
图2为本申请实施例提供的恶意软件识别方法的流程示意图之一;
图3为本申请实施例提供的恶意软件识别方法的流程示意图之二;
图4为本申请实施例提供的恶意软件识别装置的示意图。
图标:100-电子设备;110-恶意软件识别装置;111-预处理模块;112-基因提取模块;113-静态检测模块;114-动态检测模块;115-结果输出模块;120-存储器;130-处理器。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
请参照图1,图1是本实施例提供的一种电子设备100的方框示意图。所述电子设备100包括恶意软件识别装置110、存储器120及处理器130。
所述存储器120及处理器130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述恶意软件识别装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作系统(operating system,OS)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述恶意软件识别装置110所包括的软件功能模块及计算机程序等。
其中,所述存储器120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。
请参照图2,图2为本实施例提供的一种应用于图1所示的电子设备100的恶意软件识别方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤S110,获取待识别软件,并对所述待识别软件进行反编译得到待处理代码。
在本实施例中,所述待识别软件可以为PE类型的文件或者是ELF类型的文件。所述电子设备100在获取到获取所述待识别软件后,可以通过IDA反汇编工具将待识别软件反编译为asm格式的待处理代码,其中,所述IDA反汇编工具是一种交互式的反汇编程序插件,可以将软件反编译位汇编语言的格式。
通过步骤S110可以将待识别软件反编译成统一的asm格式,有利于之后步骤的检测识别。
步骤S120,根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段。
在本实施例中,需要对待处理代码进行拆分,拆分的原则是在正常运行的情况下(无外接终端或内部崩溃),无论任何输入,拆分出的每个代码片段应该是可以单独地完整被执行或者单独地完全不被执行,也就是说,拆分出的代码片段可做一个小的整体来表达,即拆分出的代码片段具有基因原子性。
经发明人研究发现,软件运行过程中会调用很多API,其中,如果调用的API为该软件本身API,则需要依赖该API返回值后续动作都可以在软件内部执行;如果调用的API为系统API,则需要等待外部操作系统的API返回值才能继续执行后续步骤。也就是说,相邻的两条调用系统API的代码之间的部分通常在不调用系统API时,可以完整地被执行。
故在本实施例中,根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段。具体地,在本实施例中,获取所述待处理代码中调用系统API的代码所在的位置。以相邻的两条调用系统API的代码之间的部分作为一个代码基因片段,将所述待处理代码拆分为多个代码基因片段。
步骤S130,采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果。
具体地,在本实施例中,根据预设的多个基因项,检测所述待识别软件的多个代码基因片段是否具有所述多个基因项,得到该待识别软件的基因向量。例如,将所述多个基因代码片段含有的基因项记录在该向量中,有为1,没有则为0,进行LE(LaplacianEigenmaps,拉普拉斯特征映)降维,最终得到所述待识别软件基因向量。
然后,采用预先训练的第一随机森林模型对所述基因向量进行检测。
所述第一随机森林模型在训练时对训练样本中的软件基因片段进行提取,记录所有的软件基因片段的种类,将种类数量设置为向量的维度。得到的所述第一随机森林模型可以包括多个随机树,每个随机数包括对应不同的基因项组合是否为恶意代码的多个判断分支。
将所述代码基因片段形成的基因向量输入所述第一随机森林后,遍历所述第一随机森林模型中的各个分支,得到所述多个代码基因片段对应的基因项组合是否为存在恶意,即获得所述静态检测结果。
步骤S140,在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测,判断所述待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果。
具体地,在本实施例中,所述电子设备100可以提供一个沙箱虚拟环境,并在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用运行行为记录。例如,将所述待识别软件在沙箱虚拟环境中运行之后会记录其行为,并且截获该待识别软件在运行过程中调用API接口传递的数据得到pcap文件。
接着,所述电子设备100可以从所述运行行为记录中提取所述待识别软件运行过程中调用的系统API,并输入预先训练的Word2Vec模型,得到API向量。然后,采用预先训练的第二随机森林模型对所述API向量进行检测,得到动态检测结果。例如,在获得运行行为记录和pcap文件之后,将运行行为记录文件中该待识别软件调用的系统API提取出来,将其经过Word2Vec进行训练,得到API的向量表达形式,并将其作为参数输入进随机森林模型中最终得到动态的结果。
步骤S150,根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
在本实施例中,若所述静态检测结果及动态检测结果检测均为非恶意,则判定所述待识别软件为非恶意软件;若所述静态检测结果或所述动态检测结果中的至少一个为恶意,则判定所述待识别软件为恶意软件。
进一步地,为了提高识别率,减少误判,在本实施例中,在获得所述静态检测结果及动态检测的步骤之后,所述电子设备100可以将所述待识别软件提交至第三方检测平台进行检测,然后根据第三方检测平台的检测结果对所述静态检测结果及所述动态检测结果进行修正。
例如,在一个例子中,所述第三方检测平台可以为类似VirusTotal的病毒检测平台。所述电子设备100将所述待识别软件提交至VirusTotal后,若VirusTotal的结果为0,则将所述静态检测结果重新设置为非恶意;若所述动态检测结果为恶意,但VirusTotal的结果小于等于3,则将所述动态检测结果重新设置为非恶意;若所述动态检测结果为非恶意,但VirusTotal的结果大于10,则将所述动态检测结果重新设置为恶意。
然后在根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
为了针对被判定为恶意的软件进一步地分析,请参照图3,本实施例中,在步骤S150之后所述方法还可以包括步骤S160。
步骤S160,若判定所述待识别软件为恶意软件,则对所述待识别软件进行yara规则的生成,并根据该待识别软件在所述沙箱虚拟环境中的运行记录对该待识别软件进行抗动态分析检测。
请参照图4,本实施例还提供一种应用于图1所示电子设备100的恶意软件识别装置110,所述装置包括预处理模块111、基因提取模块112、静态检测模块113、动态检测模块114及结果输出模块115。
所示预处理模块111,用于获取待识别软件,并对所述待识别软件进行反编译得到待处理代码。
本实施例中,所述预处理模块111可用于执行图2所示的步骤S110,关于所述预处理模块111的具体描述可参对所述步骤S110的描述。
所示基因提取模块112,用于根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段。
本实施例中,所述基因提取模块112可用于执行图2所示的步骤S120,关于所述基因提取模块112的具体描述可参对所述步骤S120的描述。
所示静态检测模块113,用于采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果。
本实施例中,所述静态检测模块113可用于执行图2所示的步骤S130,关于所述静态检测模块113的具体描述可参对所述步骤S130的描述。
所示动态检测模块114,用于在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测,判断所述待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果。
本实施例中,所述动态检测模块114可用于执行图2所示的步骤S140,关于所述动态检测模块114的具体描述可参对所述步骤S140的描述。
所示结果输出模块115,用于根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
本实施例中,所述结果输出模块115可用于执行图2所示的步骤S150,关于所述结果输出模块115的具体描述可参对所述步骤S150的描述。
综上所述,本申请提供的恶意软件识别方法、装置及电子设备,通过根据待识别软件的代码中对系统API调用的代码的位置将待识别软件拆分成多个代码基因片段,并对代码基因片段进行静态识别,再结合沙箱动态识别一起判断待识别软件是否为恶意软件。如此,可以有效提高对恶意软件识别的精确度,更全面地进行恶意软件的识别。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种恶意软件识别方法,其特征在于,所述方法包括:
获取待识别软件,并对所述待识别软件进行反编译得到待处理代码;
根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段;
采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果;
在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测,判断所述待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果;
根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段的步骤,包括:
获取所述待处理代码中调用系统API的代码所在的位置;
以相邻的两条调用系统API的代码之间的部分作为一个代码基因片段,将所述待处理代码拆分为多个代码基因片段。
3.根据权利要求1所述的方法,其特征在于,所述采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果的步骤,包括:
根据预设的多个基因项,检测所述待识别软件的多个代码基因片段是否具有所述多个基因项,得到该待识别软件的基因向量;
采用预先训练的第一随机森林模型对所述基因向量进行检测,得到所述静态检测结果。
4.根据权利要求1所述的方法,其特征在于,所述在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测的步骤,包括:
在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用运行行为记录;
从所述运行行为记录中提取所述待识别软件运行过程中调用的系统API,并输入预先训练的Word2Vec模型,得到API向量;
采用预先训练的第二随机森林模型对所述API向量进行检测,得到动态检测结果。
5.根据权利要求1所述的方法,其特征在于,所述获取待识别软件,并对所述待识别软件进行反编译得到待处理代码的步骤可包括:
获取待识别软件,通过IDA反汇编工具将待识别软件反编译为asm格式的待处理代码。
6.根据权利要求1所述的方法,其特征在于,所述根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件的步骤包括:
获得所述静态检测结果及动态检测;
若所述静态检测结果及动态检测结果检测均为非恶意,则判定所述待识别软件为非恶意软件;若所述静态检测结果或所述动态检测结果中的至少一个为恶意,则判定所述待识别软件为恶意软件。
7.根据权利要求6所述的方法,其特征在于,所述获得所述静态检测结果及动态检测的步骤之后,所述方法还包括:
将所述待识别软件提交至第三方检测平台进行检测;
根据第三方检测平台的检测结果对所述静态检测结果及所述动态检测结果进行修正。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
若判定所述待识别软件为恶意软件,则对所述待识别软件进行yara规则的生成,并根据该待识别软件在所述沙箱虚拟环境中的运行记录对该待识别软件进行抗动态分析检测。
9.一种恶意软件识别装置,其特征在于,所述装置包括:
预处理模块,用于获取待识别软件,并对所述待识别软件进行反编译得到待处理代码;
基因提取模块,用于根据所述待处理代码中调用系统API的代码所在的位置,将所述待处理代码拆分为多个代码基因片段;
静态检测模块,用于采用预先训练的第一随机森林模型对所述多个代码基因片段进行检测,判断所述多个代码基因片段中是否存在恶意代码,并获得静态检测结果;
动态检测模块,用于在沙箱虚拟环境中运行所述待识别软件,获得所述待识别软件调用的系统API,采用预先训练的第二随机森林模型对所述待识别软件调用的系统API进行检测,判断所述待识别软件的动态运行过程中是否存在恶意行为,并获得动态检测结果;
结果输出模块,用于根据所述静态检测结果及所述动态检测结果判断所述待识别软件是否为恶意软件。
10.一种电子设备,其特征在于,所述电子设备包括可读存储介质级处理器;所述可读存储介质存储有机器可执行指令,所述机器可执行指令再被所述处理器执行或调用时,促使所述电子设备实现权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810489276.9A CN108734012B (zh) | 2018-05-21 | 2018-05-21 | 恶意软件识别方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810489276.9A CN108734012B (zh) | 2018-05-21 | 2018-05-21 | 恶意软件识别方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108734012A true CN108734012A (zh) | 2018-11-02 |
CN108734012B CN108734012B (zh) | 2020-11-03 |
Family
ID=63937833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810489276.9A Active CN108734012B (zh) | 2018-05-21 | 2018-05-21 | 恶意软件识别方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108734012B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492396A (zh) * | 2018-11-12 | 2019-03-19 | 杭州安恒信息技术股份有限公司 | 基于语义分割的恶意软件基因快速检测方法和装置 |
CN109753794A (zh) * | 2018-11-30 | 2019-05-14 | 北京奇虎科技有限公司 | 一种恶意应用的识别方法、系统、训练方法、设备及介质 |
CN110135160A (zh) * | 2019-04-29 | 2019-08-16 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110414231A (zh) * | 2019-06-25 | 2019-11-05 | 中国人民解放军战略支援部队信息工程大学 | 基于马尔科夫模型的内存中软件基因动态提取方法 |
CN110543765A (zh) * | 2019-08-28 | 2019-12-06 | 南京市晨枭软件技术有限公司 | 一种恶意软件检测方法 |
CN111162961A (zh) * | 2019-12-05 | 2020-05-15 | 任子行网络技术股份有限公司 | 发现移动应用主控服务器的方法、系统及可读存储介质 |
CN111651761A (zh) * | 2019-03-04 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种黑产电子设备检测方法、装置、服务器及存储介质 |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
CN112948816A (zh) * | 2019-12-10 | 2021-06-11 | 北京一起教育信息咨询有限责任公司 | 一种系统权限的确定方法、装置、存储介质及电子设备 |
WO2021207874A1 (zh) * | 2020-04-13 | 2021-10-21 | 华为技术有限公司 | 一种非安全软件检测装置、检测方法以及存储介质 |
WO2021258789A1 (zh) * | 2020-06-22 | 2021-12-30 | 深信服科技股份有限公司 | 一种恶意软件识别的方法、系统、设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833228A (zh) * | 2012-07-27 | 2012-12-19 | 江苏亿通高科技股份有限公司 | 一种云计算环境下免疫网络的病毒检测系统及方法 |
CN103365699A (zh) * | 2012-12-21 | 2013-10-23 | 北京安天电子设备有限公司 | 基于apk的系统api和运行时字符串提取方法及系统 |
CN103685251A (zh) * | 2013-12-04 | 2014-03-26 | 电子科技大学 | 一种面向移动互联网的Android恶意软件检测平台 |
CN104376262A (zh) * | 2014-12-08 | 2015-02-25 | 中国科学院深圳先进技术研究院 | 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法 |
CN106845226A (zh) * | 2016-12-26 | 2017-06-13 | 中国电子科技集团公司第三十研究所 | 一种恶意程序分析方法 |
CN107169351A (zh) * | 2017-05-11 | 2017-09-15 | 北京理工大学 | 结合动态行为特征的Android未知恶意软件检测方法 |
CN107590388A (zh) * | 2017-09-12 | 2018-01-16 | 南方电网科学研究院有限责任公司 | 恶意代码检测方法和装置 |
-
2018
- 2018-05-21 CN CN201810489276.9A patent/CN108734012B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833228A (zh) * | 2012-07-27 | 2012-12-19 | 江苏亿通高科技股份有限公司 | 一种云计算环境下免疫网络的病毒检测系统及方法 |
CN103365699A (zh) * | 2012-12-21 | 2013-10-23 | 北京安天电子设备有限公司 | 基于apk的系统api和运行时字符串提取方法及系统 |
CN103685251A (zh) * | 2013-12-04 | 2014-03-26 | 电子科技大学 | 一种面向移动互联网的Android恶意软件检测平台 |
CN104376262A (zh) * | 2014-12-08 | 2015-02-25 | 中国科学院深圳先进技术研究院 | 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法 |
CN106845226A (zh) * | 2016-12-26 | 2017-06-13 | 中国电子科技集团公司第三十研究所 | 一种恶意程序分析方法 |
CN107169351A (zh) * | 2017-05-11 | 2017-09-15 | 北京理工大学 | 结合动态行为特征的Android未知恶意软件检测方法 |
CN107590388A (zh) * | 2017-09-12 | 2018-01-16 | 南方电网科学研究院有限责任公司 | 恶意代码检测方法和装置 |
Non-Patent Citations (5)
Title |
---|
HAN JIN等: "《Analyzing and Recognizing Android Malware via Semantic-based Malware Gene》", 《2017 INTERNATIONAL CONFERENCE ON CYBER-ENABLED DISTRIBUTED COMPUTING AND KNOWLEDGE DISCOVERY (CYBERC)》 * |
XI MENG等: "《MCSMGS: Malware Classification Model Based on Deep Learning》", 《2017 INTERNATIONAL CONFERENCE ON CYBER-ENABLED DISTRIBUTED COMPUTING AND KNOWLEDGE DISCOVERY (CYBERC)》 * |
章丽娟: "《模糊层次分析法在网络安全态势评估中的应用》", 《计算机仿真》 * |
胡逸漪等: "《大规模并行系统中的Firmware结构及其实现研究》", 《计算机工程与科学》 * |
陈鹏等: "《基于动静结合的Android恶意代码行为相似性检测》", 《计算机应用研究》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492396A (zh) * | 2018-11-12 | 2019-03-19 | 杭州安恒信息技术股份有限公司 | 基于语义分割的恶意软件基因快速检测方法和装置 |
CN109753794A (zh) * | 2018-11-30 | 2019-05-14 | 北京奇虎科技有限公司 | 一种恶意应用的识别方法、系统、训练方法、设备及介质 |
CN111651761A (zh) * | 2019-03-04 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种黑产电子设备检测方法、装置、服务器及存储介质 |
CN111651761B (zh) * | 2019-03-04 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 一种黑产电子设备检测方法、装置、服务器及存储介质 |
CN110135160A (zh) * | 2019-04-29 | 2019-08-16 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110135160B (zh) * | 2019-04-29 | 2021-11-30 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110414231A (zh) * | 2019-06-25 | 2019-11-05 | 中国人民解放军战略支援部队信息工程大学 | 基于马尔科夫模型的内存中软件基因动态提取方法 |
CN110543765A (zh) * | 2019-08-28 | 2019-12-06 | 南京市晨枭软件技术有限公司 | 一种恶意软件检测方法 |
CN111162961A (zh) * | 2019-12-05 | 2020-05-15 | 任子行网络技术股份有限公司 | 发现移动应用主控服务器的方法、系统及可读存储介质 |
CN111162961B (zh) * | 2019-12-05 | 2021-12-31 | 任子行网络技术股份有限公司 | 发现移动应用主控服务器的方法、系统及可读存储介质 |
CN112948816A (zh) * | 2019-12-10 | 2021-06-11 | 北京一起教育信息咨询有限责任公司 | 一种系统权限的确定方法、装置、存储介质及电子设备 |
WO2021207874A1 (zh) * | 2020-04-13 | 2021-10-21 | 华为技术有限公司 | 一种非安全软件检测装置、检测方法以及存储介质 |
WO2021258789A1 (zh) * | 2020-06-22 | 2021-12-30 | 深信服科技股份有限公司 | 一种恶意软件识别的方法、系统、设备及可读存储介质 |
CN113901457A (zh) * | 2020-06-22 | 2022-01-07 | 深信服科技股份有限公司 | 一种恶意软件识别的方法、系统、设备及可读存储介质 |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108734012B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108734012A (zh) | 恶意软件识别方法、装置及电子设备 | |
KR101779036B1 (ko) | 머신러닝을 이용하여 이상거래를 탐지하기 위한 장치 및 그 방법 | |
US9253208B1 (en) | System and method for automated phishing detection rule evolution | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN106295333B (zh) | 用于检测恶意代码的方法和系统 | |
WO2016015680A1 (zh) | 移动终端输入窗口的安全检测方法和安全检测装置 | |
US11580220B2 (en) | Methods and apparatus for unknown sample classification using agglomerative clustering | |
CN104158828B (zh) | 基于云端内容规则库识别可疑钓鱼网页的方法及系统 | |
CN107247902A (zh) | 恶意软件分类系统及方法 | |
CN111460446A (zh) | 基于模型的恶意文件检测方法及装置 | |
CN108596759A (zh) | 贷款申请信息检测方法及服务器 | |
CN110868378A (zh) | 钓鱼邮件检测方法、装置、电子设备及存储介质 | |
CN108985063A (zh) | 一种恶意代码混淆检测方法、系统、计算机设备、介质 | |
CN110363540A (zh) | 一种基于用户行为检测的羊毛党识别方法、装置和电子设备 | |
CN104640105A (zh) | 手机病毒分析和威胁关联的方法和系统 | |
CN114491523A (zh) | 恶意软件检测方法、装置、电子设备、介质及产品 | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、系统及存储介质 | |
CN110287700A (zh) | 一种iOS应用安全分析方法及装置 | |
CN113420295A (zh) | 恶意软件的检测方法及装置 | |
CN111898126A (zh) | 一种基于动态获取用户界面的Android重打包应用检测方法 | |
CN111488580A (zh) | 安全隐患检测方法、装置、电子设备及计算机可读介质 | |
CN110414579A (zh) | 元数据模型合标性检查方法及装置、存储介质 | |
CN108200776A (zh) | 用于确定未知应用的安全等级的系统和方法 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Methods, devices, and electronic devices for identifying malicious software Granted publication date: 20201103 Pledgee: Industrial Bank Co.,Ltd. Shanghai Changning sub branch Pledgor: SHANGHAI ROARPANDA NETWORK TECHNOLOGY Co.,Ltd. Registration number: Y2024310000875 |