CN109241742B - 一种恶意程序的识别方法及电子设备 - Google Patents
一种恶意程序的识别方法及电子设备 Download PDFInfo
- Publication number
- CN109241742B CN109241742B CN201811237418.9A CN201811237418A CN109241742B CN 109241742 B CN109241742 B CN 109241742B CN 201811237418 A CN201811237418 A CN 201811237418A CN 109241742 B CN109241742 B CN 109241742B
- Authority
- CN
- China
- Prior art keywords
- system api
- api data
- data combination
- program
- risk
- 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
Images
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)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种恶意程序的识别方法及电子设备,用于解决现有技术中在恶意程序变种时,如何高效、准确地对恶意程序进行识别的问题。包括:将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合,其中,所述系统API数据组合包括系统API的名称、调用系统API的地址和指向系统API的指针;将所述至少一个系统API数据组合中任一系统API数据组合与查询特征库中的特征值按照设定条件进行匹配;确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数;若所述匹配成功的系统API数据组合的个数等于第一设定阈值,判断所述第一程序为恶意程序。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种恶意程序的识别方法及电子设备。
背景技术
随着互联网技术的发展,给用户的生活带来了极大的便利,但是由于恶意程序的出现,给用户也带来了困扰和侵害,例如,近期流行的近期流行的勒索病毒、互联网蠕虫、和恶意挖矿程序,导致用户财产受到损失。恶意程序检测引擎对恶意程序进行识别,保护用户的安全,但是恶意程序曾出不穷,且变种变化频繁,恶意程序检测引擎对恶意程序变种识别比较困难,导致用户所使用的恶意程序检测装置无法及时响应最新的恶意程序变种,无法保证用户的安全。
在现有技术中,互联网传播最为广泛的恶意程序为PE/ELF文件格式,为了对上述恶意程序进行识别,采用以下两种方式,方式一、通过提取恶意程序中包含的具备显著性的特征码,实现对恶意程序的通用检测。采用上述方式当恶意程序变种时,恶意程序的识别率低。方式二、计算恶意程序的哈希(hash)值,进行一比一识别。采用该方式需要极为庞大的恶意程序特征库,识别的时效性差,并且当恶意程序出现变种时,由于恶意程序特征库中没有保存相应的特征,会无法识别恶意程序变种,导致无法识别恶意程序。
综上所述,在恶意程序变种时,如何对恶意程序进行高效、准确地识别,是目前需要解决的问题。
发明内容
有鉴于此,本发明提供了一种恶意程序的识别方法及电子设备,用于解决现有技术中在恶意程序变种时,如何对恶意程序进行高效、准确识别的问题。
根据本发明实施例的第一个方面,提供了一种恶意程序的识别方法,包括:将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口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数据组合的个数小于所述第一设定阈值,且大于或等于所述第一设定阈值的设定比例的第二设定阈值,判断所述第一程序为风险程序。
在一个实施例中,所述确定所述至少一个系统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数据组合包括系统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数据组合;风险判断单元,用于通过可运营的风险系统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数据组合的个数等于第一设定阈值,判断所述第一程序为恶意程序,由于恶意程序变种,重新编译后系统API数据组合的调度关系基本未发生变化,因此,采用该方法对恶意程序进行识别时即使恶意程序小范围修改源代码重新编译后依旧可以准确地识别出恶意程序,识别准确性高,并且只是对几个系统API数据组合进行识别,识别效率高。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例提供的一种恶意程序的识别方法流程图;
图2是本发明实施例提供的一种特征值生成的方法流程图;
图3是本发明实施例提供的一种恶意程序的识别方法流程图;
图4是本发明实施例提供的一种恶意程序的识别装置示意图;
图5是本发明实施例提供的一种电子设备结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1是本发明实施例的一种恶意程序的识别方法流程图,如图1所示,恶意程序识别的方法包括:
步骤S100、将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合,其中,所述系统API数据组合包括系统API的名称、调用系统API的地址和指向系统API的指针。
步骤S101、将所述至少一个系统API数据组合中任一系统API数据组合与查询特征库中的特征值按照设定条件进行匹配。
具体的,所述特征值包括系统API的名称、调用系统API的地址和指向系统API的指针,将所述至少一个系统API数据组合中任一系统API数据组合按照系统API的名称与所述查询特征库的特征值中的系统API的名称进行匹配,确定所述系统API的名称匹配成功的系统API数据组合,将所述系统API的名称匹配成功的任一系统API数据组合中的调用系统API的地址和指向系统API的指针,与所述查询特征库的特征值中的调用系统API的地址和指向系统API的指针进行匹配,判断是否匹配成功,若匹配成功,将记录匹配成功的系统API数据组合个数的计数器增加1,然后继续匹配所述至少一个系统API数据组合中下一个系统API数据组合,直至所述至少一个系统API数据组合中的全部系统API数据组合完成匹配。
其中,所述系统API的名称可以用字符串的全称表示也可以为所述字符串的全称按照设定规律缩写的字符串的缩写表示,本发明实施例对其不做限定。
步骤S102、确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数。
步骤S103、若所述匹配成功的系统API数据组合的个数等于第一设定阈值,判断所述第一程序为恶意程序。
具体的,所述第一设定阈值为所述查询特征库中与所述匹配成功的系统API数据组合的特征值所对应的特征组中系统API数据组合的个数。
可选的,若所述匹配成功的系统API数据组合的个数小于所述第一设定阈值,且大于或等于所述第一设定阈值的设定比例的第二设定阈值的第二设定阈值,判断所述第一程序为风险程序;若所述匹配成功的系统API数据组合的个数小于所述第一设定阈值的设定比例的第二设定阈值的第二设定阈值,判断所述第一程序为非风险程序。
举例说明,假设第一设定阈值为5,当匹配成功的系统API数据组合的个数等于5时,说明第一程序为恶意程序,第一设定阈值的设定比例为60%,即的第二设定阈值为3,当匹配成功的系统API数据组合的个数等于4时,大于3且小于5,则判断所述第一程序为风险程序,当匹配成功的系统API数据组合的个数等于2时,小于3,则判断所述第一程序为非风险程序。
本发明实施例中,首先将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合,其中,所述系统API数据组合包括系统API的名称、调用系统API的地址和指向系统API的指针,然后将所述至少一个系统API数据组合中任一系统API数据组合与查询特征库中的特征值按照设定条件进行匹配,继而确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数,最后若所述匹配成功的系统API数据组合的个数等于第一设定阈值,判断所述第一程序为恶意程序,由于恶意程序变种,重新编译后系统API数据组合的调度关系基本未发生变化,因此,采用该方法对恶意程序进行识别时即使恶意程序小范围修改源代码重新编译后依旧可以准确地识别出恶意程序,识别准确性高,并且只是对几个系统API数据组合进行识别,识别效率高。
本发明实施例中,在步骤S100之前,该方法还包括:建立查询特征库。
下面通过一个具体实施例对建立查询特征库的步骤进行详细说明,具体如图2所示:
步骤S200、将接收到的已知恶意程序进行解析,确定所述已知恶意程序调用的至少一个系统API数据组合。
其中,所述已知恶意程序也可以称为已知恶意文件,所述已知恶意程序的数量为多个,本发明对此不做限定。
举例说明:假设所述至少一个系统API数据组合的个数取值可以为4、8、20,本发明对其不做限定,当至少一个系统API数据组合的取值为4时,系统API数据组合分别为API1、API2、API3和API4;当至少一个系统API数据组合的取值8时,系统API数据组合分别为API1’、API2’、API3’、API4’、API5’、API6’、API7’和API8’;当至少一个系统API数据组合的取值20时,系统API数据组合分别为API1”、API2”、API3”、API4”、API5”、API6”、API7”、API8”、API9”、API10”、API11”、API12”、API13”、API14”、API15”、API16”、API17”、API18”、API19”和API20”。
步骤S201、通过可运营的风险系统API数据组合库对所述至少一个系统API数据组合进行风险判断。
举例说明,可以通过所述可运营的风险系统API数据组合库中查询所述至少一个系统API数据组合中每个系统API数据组合的风险概率,例如,当至少一个系统API数据组合的取值为4,系统API数据组合分别为API1、API2、API3和API4时,通过查询所述可运营的风险系统API数据组合库可得如下表1。
表1
当至少一个系统API数据组合的取值为8,系统API数据组合分别为API1’、API2’、API3’、API4’、API5’、API6’、API7’和API8’时,通过查询所述可运营的风险系统API数据组合库可得如下表2。
表2
系统API数据组合名称 | 风险值 |
API1’ | 25% |
API2’ | 20% |
API3’ | 13% |
API4’ | 27% |
API5’ | 15% |
API6’ | 10% |
API7’ | 7% |
API8’ | 3% |
当至少一个系统API数据组合的取值为20,系统API数据组合分别为API1”、API2”、API3”、API4”、API5”、API6”、API7”、API8”、API9”、API10”、API11”、API12”、API13”、API14”、API15”、API16”、API17”、API18”、API19”和API20”时,通过查询所述可运营的风险系统API数据组合库可得如下表3。
表3
步骤S202、在所述至少一个系统API数据组合中确定特征组及所述特征组个数,其中,所述特征组为可用的系统API数据组合。
具体的,若所述至少一个系统API数据组合中包括的风险系统API数据组合的风险值之和大于或等于第三设定阈值,则组成所述特征组的可用的系统API数据组合都为风险系统API数据组合。
举例说明:假设第三设定阈值为100%,风险值大于或等于10%的系统API数据组合为风险系统API数据组合,风险值小于10%的系统API数据组合为非风险系统API数据组合。
以表1为例,API1、API2、API3和API4中每个系统API数据组合为风险系统,且APIAPI1、API2、API3和API4的风险值之和等于100%,且,即API1、API2、API3和API4是组成特征组的可用的系统API数据组合。
以表2为例,API1’、API2’、API3’、API4’、API5’、API6’、API7’和API8’中API1’、API2’、API3’、API4’、API5’和API6’为风险API数据组合,API1’、API2’、API3’、API4’、API5’和API6’的风险值之和等于110%,大于100%,因此将API1’、API2’、API3’、API4’、API5’和API6’按风险值从大到小进行排序,API1’、API2’、API3’、API4’和API5’,风险值之和等于100%,即选API1’、API2’、API3’、API4’和API5’作为组成特征组的可用的系统API数据组合。
具体的,若所述至少一个系统API数据组合中包括的风险系统API数据组合的风险值之和小于所述第三设定阈值,则组成所述特征组的可用的系统API数据组合包括风险系统API数据组合和非风险系统API数据组合。
举例说明:以表3为例,API1”、API2”、API3”、API4”、API5”、API6”、API7”、API8”、API9”、API10”、API11”、API12”、API13”、API14”、API15”、API16”、API17”、API18”、API19”和API20”中API1”、API2”、API3”、API4”、API5”为风险API,API6”、API7”、API8”、API9”、API10”、API11”、API12”、API13”、API14”、API15”、API16”、API17”、API18”、API19”和API20”为非风险API数据组合,API1’、API2’、API3’、API4’和API5’的风险值之和等于65%,小于100%,因此将API6”、API7”、API8”、API9”、API10”、API11”、API12”、API13”、API14”、API15”、API16”、API17”、API18”、API19”和API20”按风险值从大到小进行排序,选择API6”、API7”、API8”、API9”、API10”、API11”、和API12”,其风险值之和等于35%,65%+35%=100%即选则风险API数据组合中的API1’、API2’、API3’、API4’API5’和非风险API数据组合中的API6”、API7”、API8”、API9”、API10”、API11”、和API12”作为组成特征组的可用的系统API数据组合。
步骤S203、确定所述特征组的特征值,其中,所述特征值包括所述特征组中每个系统API数据组合的系统API的名称、调用系统API数据组合的地址和指向系统API数据组合的指针。
步骤S204、将所述特征值保存到所述查询特征库。
下面通过一个完整的实施例,对本发明提到的一种恶意程序的识别方法从查询特征库的生成开始进行完整的说明,具体如图3所示:
步骤S300、接收已知恶意程序。
步骤S301、将接收到的已知恶意程序进行解析,确定所述已知恶意程序调用的至少一个系统API数据组合。
步骤S302、对所述至少一个系统API数据组合中的每个系统API数据组合逐一进行风险判断。
具体的,通过所述可运营的风险系统API数据组合库进行风险判断。
步骤S303、根据风险判断结果,在所述至少一个系统API数据组合中确定特征组,并确定所述特征组中包含的系统API数据组合的个数。
步骤S304、获取特征组中系统API数据组合的系统API的名称、调用系统API数据组合的地址和指向系统API数据组合的指针。
步骤S305、确定所述特征组的特征值。
其中,所述特征值包括所述特征组中每个系统API数据组合的系统API的名称、调用系统API的地址和指向系统API的指针。
步骤S306、将所述特征值保存到所述查询特征库。
步骤S307、接收第一程序。
步骤S308、将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合。
步骤S309、将所述至少一个系统API数据组合中任一系统API数据组合与所述查询特征库中的特征值按照设定条件进行匹配。
步骤S310、将记录匹配成功的系统API数据组合个数的计数器增加1,继续执行步骤S309的操作直至所述至少一个系统API数据组合中的所有系统API数据组合完成匹配,确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数。
步骤S311、判断所述匹配成功的系统API数据组合的个数与第一阈值进行比较。
步骤S312、若所述匹配成功的系统API数据组合的个数等于第一设定阈值,判断所述第一程序为恶意程序;若小于第一设定阈值,且大于或等于第二设定阈值,则判断所述第一程序为风险程序。
具体的,所述第二设定阈值等于第一设定阈值乘以设定比例。
图4是本发明实施例提供的一种恶意程序的识别装置示意图。如图4所示,本实施例的恶意程序识别装置包括:第一分析单元41、匹配单元42、第一确定单元43和判断单元44。
其中,第一分析单元41,用于将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合,其中,所述系统API数据组合包括系统API的名称、调用系统API的地址和指向系统API的指针;匹配单元42,用于将所述至少一个系统API数据组合中任一系统API数据组合与查询特征库中的特征值按照设定条件进行匹配;第一确定单元43,用于确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数;判断单元44,若所述匹配成功的系统API数据组合的个数等于第一设定阈值,用于判断所述第一程序为恶意程序。
在一个实施例中,所述匹配单元具体用于:将所述至少一个系统API数据组合中任一系统API数据组合按照系统API的名称与所述查询特征库的特征值中的系统API的名称进行匹配,确定所述系统API的名称匹配成功的系统API数据组合;将所述系统API的名称匹配成功的任一系统API数据组合中的调用系统API的地址和指向系统API的指针,与所述查询特征库的特征值中的调用系统API的地址和指向系统API的指针进行匹配。
可选的,所述确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数之后,所述判断单元还用于:若所述匹配成功的系统API数据组合的个数小于所述第一设定阈值,且大于或等于所述第一设定阈值的设定比例的第二设定阈值,判断所述第一程序为风险程序。
可选的,所述确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数之后,所述判断单元还用于:若所述匹配成功的系统API数据组合的个数小于所述第一设定阈值的设定比例的第二设定阈值,判断所述第一程序为非风险程序。
可选的,所述第一设定阈值为所述查询特征库中的特征值所对应的特征组中系统API数据组合的个数。
在一个实施例中,在一个实施例中,所述将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合之前,该装置还包括:
建立单元45,用于建立查询特征库。
在一个实施例中,建立单元45具体包括:第二所述分析单元451用于,将接收到的已知恶意程序进行解析,确定所述已知恶意程序调用的至少一个系统API数据组合;风险判断单元452,用于通过可运营的风险系统API数据组合库对所述至少一个系统API数据组合进行风险判断;第二确定单元453,用于在所述至少一个系统API数据组合中确定特征组及所述特征组个数,其中,所述特征组为可用的系统API数据组合;第三确定单元454,用于确定所述特征组的特征值,其中,所述特征值包括所述特征组中每个系统API数据组合的系统API的名称、调用系统API数据组合的地址和指向系统API数据组合的指针;保存单元455,用于将所述特征值保存到所述查询特征库。
可选的,所述第二确定单元具体用于:若所述至少一个系统API数据组合中包括的风险系统API数据组合的风险值之和大于或等于第三设定阈值,则组成所述特征组的可用的系统API数据组合都为风险系统API数据组合;若所述至少一个系统API数据组合中包括的风险系统API数据组合的风险值之和小于所述第三设定阈值,则组成所述特征组的可用的系统API数据组合包括风险系统API数据组合和非风险系统API数据组合。
图5是本发明实施例的电子设备的示意图。图5所示的电子设备为通用恶意程序的识别装置,其包括通用的计算机硬件结构,其至少包括处理器51和存储器52。处理器51和存储器52通过总线53连接。存储器52适于存储处理器51可执行的指令或程序。处理器51可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器51通过执行存储器52所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线53将上述多个组件连接在一起,同时将上述组件连接到显示控制器54和显示装置以及输入/输出(I/O)装置55。输入/输出(I/O)装置55可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置55通过输入/输出(I/O)控制器56与系统相连。
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种恶意程序的识别方法,其特征在于,包括:
将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合,其中,所述系统API数据组合包括系统API的名称、调用系统API的地址和指向系统API的指针;
将所述至少一个系统API数据组合中任一系统API数据组合按照系统API的名称与查询特征库的特征值中的系统API的名称进行匹配,确定所述系统API的名称匹配成功的系统API数据组合;
将所述系统API的名称匹配成功的任一系统API数据组合中的调用系统API的地址和指向系统API的指针,与所述查询特征库的特征值中的调用系统API的地址和指向系统API的指针进行匹配;
确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数;
若所述匹配成功的系统API数据组合的个数等于第一设定阈值,判断所述第一程序为恶意程序,其中,所述第一设定阈值为所述查询特征库中的特征值所对应的特征组中系统API数据组合的个数。
2.如权利要求1所述的方法,其特征在于,所述确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数之后,该方法还包括:
若所述匹配成功的系统API数据组合的个数小于所述第一设定阈值,且大于或等于所述第一设定阈值的设定比例的第二设定阈值,判断所述第一程序为风险程序。
3.如权利要求1所述的方法,其特征在于,所述确定所述至少一个系统API数据组合中匹配成功的系统API数据组合的个数之后,该方法还包括:
若所述匹配成功的系统API数据组合的个数小于所述第一设定阈值的设定比例的第二设定阈值,判断所述第一程序为非风险程序。
4.如权利要求1所述的方法,其特征在于,所述将接收到的第一程序进行解析,确定所述第一程序调用的至少一个系统应用程序接口API数据组合之前,该方法还包括:
建立查询特征库。
5.如权利要求4所述的方法,其特征在于,所述建立查询特征库中的步骤如下:
将接收到的已知恶意程序进行解析,确定所述已知恶意程序调用的至少一个系统API数据组合;
通过可运营的风险系统API数据组合库对所述至少一个系统API数据组合进行风险判断;
在所述至少一个系统API数据组合中确定特征组,并确定所述特征组中系统API数据组合的个数,其中,所述特征组中的系统API数据组合为可用的系统API数据组合;
确定所述特征组的特征值,其中,所述特征值包括所述特征组中每个系统API数据组合的系统API的名称、调用系统API的地址和指向系统API的指针;
将所述特征值保存到所述查询特征库。
6.如权利要求5所述的方法,其特征在于,所述在所述至少一个系统API数据组合中确定特征组,具体包括:
若所述至少一个系统API数据组合中包括的风险系统API数据组合的风险值之和大于或等于第三设定阈值,则组成所述特征组的可用的系统API数据组合都为风险系统API数据组合;
若所述至少一个系统API数据组合中包括的风险系统API数据组合的风险值之和小于所述第三设定阈值,则组成所述特征组的可用的系统API数据组合包括风险系统API数据组合和非风险系统API数据组合。
7.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-6中任一项所述的方法。
8.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237418.9A CN109241742B (zh) | 2018-10-23 | 2018-10-23 | 一种恶意程序的识别方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237418.9A CN109241742B (zh) | 2018-10-23 | 2018-10-23 | 一种恶意程序的识别方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241742A CN109241742A (zh) | 2019-01-18 |
CN109241742B true CN109241742B (zh) | 2021-03-30 |
Family
ID=65081514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811237418.9A Active CN109241742B (zh) | 2018-10-23 | 2018-10-23 | 一种恶意程序的识别方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241742B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532758B (zh) * | 2019-07-24 | 2023-06-06 | 创新先进技术有限公司 | 一种针对群组的风险识别方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2541895C2 (ru) * | 2012-12-25 | 2015-02-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ повышения защищенности данных организации путем создания изолированной среды |
TWI461952B (zh) * | 2012-12-26 | 2014-11-21 | Univ Nat Taiwan Science Tech | 惡意程式偵測方法與系統 |
CN104598815B (zh) * | 2013-10-30 | 2018-09-11 | 北京猎豹移动科技有限公司 | 恶意广告程序的识别方法、装置及客户端 |
CN105653949B (zh) * | 2014-11-17 | 2019-06-21 | 华为技术有限公司 | 一种恶意程序检测方法及装置 |
CN105989283B (zh) * | 2015-02-06 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种识别病毒变种的方法及装置 |
CN108182364B (zh) * | 2017-12-29 | 2022-07-15 | 安天科技集团股份有限公司 | 一种基于调用依赖关系识别攻击同源的方法及系统 |
-
2018
- 2018-10-23 CN CN201811237418.9A patent/CN109241742B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109241742A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11057424B2 (en) | Database query injection detection and prevention | |
US20190050566A1 (en) | Technologies for control flow exploit mitigation using processor trace | |
CN102592079B (zh) | 用于检测未知恶意软件的系统和方法 | |
US9021592B2 (en) | Source code analysis of inter-related code bases | |
CN113704102B (zh) | 应用程序合规检测方法、装置、设备和介质 | |
CN110096872B (zh) | 网页入侵脚本攻击工具的检测方法及服务器 | |
US9292693B2 (en) | Remediation of security vulnerabilities in computer software | |
CN103631904A (zh) | 反病毒分析期间选择同或异步文件访问方法的系统和方法 | |
CN115033894B (zh) | 一种基于知识图谱的软件组件供应链安全检测方法及装置 | |
CN109446753A (zh) | 检测盗版应用程序的方法、装置、计算机设备及存储介质 | |
CN115562992A (zh) | 一种文件检测方法、装置、电子设备及存储介质 | |
CN111930610B (zh) | 软件同源性检测方法、装置、设备及存储介质 | |
CN112148305A (zh) | 一种应用检测方法、装置、计算机设备和可读存储介质 | |
US10409572B2 (en) | Compiled file normalization | |
CN114139161A (zh) | 一种批量检测漏洞的方法、装置、电子设备及介质 | |
CN111367531A (zh) | 代码处理方法及装置 | |
CN109241742B (zh) | 一种恶意程序的识别方法及电子设备 | |
KR101461051B1 (ko) | 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 | |
CN112363814A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN109446809B (zh) | 一种恶意程序的识别方法及电子设备 | |
US11687652B1 (en) | Clustering of binary files using architecture-agnostic digests | |
CN110674491B (zh) | 用于安卓应用的实时取证的方法、装置和电子设备 | |
CN114238391A (zh) | 数据分页查询方法、装置、电子设备及存储介质 | |
CN114205156A (zh) | 面向切面技术的报文检测方法、装置、电子设备及介质 | |
US10489272B2 (en) | Automatic instrumentation of code |
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 |