CN102542190B - 基于机器学习的程序识别方法及装置 - Google Patents

基于机器学习的程序识别方法及装置 Download PDF

Info

Publication number
CN102542190B
CN102542190B CN201010620959.7A CN201010620959A CN102542190B CN 102542190 B CN102542190 B CN 102542190B CN 201010620959 A CN201010620959 A CN 201010620959A CN 102542190 B CN102542190 B CN 102542190B
Authority
CN
China
Prior art keywords
program
file
feature
architectural feature
result
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
Application number
CN201010620959.7A
Other languages
English (en)
Other versions
CN102542190A (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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201010620959.7A priority Critical patent/CN102542190B/zh
Priority to CN201410131341.2A priority patent/CN103942495B/zh
Priority to US13/990,146 priority patent/US9349006B2/en
Priority to PCT/CN2011/082416 priority patent/WO2012071989A1/zh
Publication of CN102542190A publication Critical patent/CN102542190A/zh
Application granted granted Critical
Publication of CN102542190B publication Critical patent/CN102542190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种基于机器学习的程序识别方法及装置,所述方法包括:分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;根据所提取的PE文件的结构特征对所述未知程序进行粗分类;根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。本申请采用机器学习技术,通过对大量程序样本进行PE文件的结构特征提取及分析,得到基于PE文件的结构特征的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率。

Description

基于机器学习的程序识别方法及装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于机器学习的程序识别方法及装置。
背景技术
恶意程序是一类特殊的程序,它们通常在用户不知晓也未授权的情况下潜入到用户的计算机系统中,对用户系统改进型攻击。恶意程序可以包括病毒、后门程序、木马程序、宏病毒、引导区病毒、脚本病毒等。在查杀恶意病毒之前,首先要对恶意程序进行识别,以查杀病毒为例,现有技术中主要通过字符串特征码和简单的人工总结进行查杀,所查杀的病毒也均是已知的病毒,难以对新型病毒进行查杀。
发明人在对现有技术的研究过程中发现,现有技术基本上采用字符串特征码和人工规则的启发式通杀,这种识别恶意程序的方式严重依赖于病毒分析师的能力,需要分析师针对已有样本进行人工分析,找出相应的特征,因此需要大量经验丰富的人员才能满足解决问题的需求,并且由于技术复杂,人工处理的结果将导致效率低效;现有技术中只能处理已知的问题,不能对可能发生的问题进行防范,因此具有一定的滞后性;由于现有技术基于简单的特征或规则进行查杀,因此很容易被病毒作者免杀。
发明内容
本申请实施例提供了一种基于机器学习的程序识别方法及装置,以解决现有技术中在识别恶意程序时效率不高,具有滞后性的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种基于机器学习的程序识别方法,包括:
分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;
根据所提取的PE文件的结构特征对所述未知程序进行粗分类;
根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
所述PE文件的结构特征包括至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
当包括多个训练模型时,所述将未知程序输入已生成的训练模型及相应的决策机中进行判断包括:
将未知程序分别输入一个或多个已生成的训练模型及相应的决策机中进行判断;
根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出未知程序的识别结果具体为:根据所述加权计算的结果输出对所述位置程序的识别结果。
还包括:
输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
从所输入的每个程序中提取PE文件的结构特征,并对所提取的PE文件的结构特征进行分类;
根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
所述从所输入的每个程序中提取PE文件的结构特征包括:
分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征;
根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。
所述不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练。
一种基于机器学习的程序识别装置,包括:
提取单元,用于分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;
分类单元,用于根据所提取的PE文件的结构特征对所述未知程序进行粗分类;
判断单元,用于根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出单元,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
所述提取单元具体用于,提取所述未知程序中的至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
所述判断单元包括:
程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断;
加权计算单元,用于根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出单元,具体用于根据所述加权计算的结果输出对所述位置程序的识别结果。
还包括:
输入单元,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
提取单元,用于从所输入的每个程序中提取PE文件的结构特征;
分类单元,用于对所提取的PE文件的结构特征进行分类;
生成单元,用于根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
所述提取单元包括:
结构特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征;
向量属性生成单元,用于根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。
由上述实施例可以看出,本申请实施例基于PE文件的结构特征识别未知程序的类型时,分析输入的未知程序,提取未知程序中的PE文件的结构特征,根据所提取的PE文件的结构特征对所述未知程序进行粗分类,根据粗分类的结果,将未知程序输入已生成的训练模型及相应的决策机中进行判断,输出未知程序的识别结果。本申请采用机器学习技术,通过对大量程序样本进行PE文件的结构特征提取及分析,得到基于PE文件的结构特征的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率;并且,在基于对海量程序进行数据挖掘的基础上,基于PE文件的结构可以发现程序的内在规律,对未发生的恶意程序进行预防,使得恶意程序难以被免杀。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请生成识别程序类型的模型的实施例流程图;
图2为本申请实施例生成识别程序类型的模型应用实例示意图;
图3为本申请基于机器学习的程序识别方法的实施例流程图;
图4为本申请实施例对程序类型进行识别的应用实例示意图;
图5为本申请基于机器学习的程序识别装置的第一实施例框图;
图6为本申请基于机器学习的程序识别装置的第二实施例框图。
具体实施方式
本申请如下实施例提供了一种基于机器学习的程序识别方法及装置。本申请采用MLD(Machine Learning Detection机器学习识别)技术,通过对大量程序样本进行分析,提取其中的PE文件结构特征,得到识别恶意程序的模型,通过该模型基于PE文件结构特征,可以提高对恶意程序的识别效率,对未发生的恶意程序进行预防,使得恶意程序难以被免杀。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图1,为本申请生成识别程序类型的模型的第一实施例流程图:
步骤101:输入提取到的海量程序,该海量程序中包括恶意程序和非恶意程序。
步骤102:从所输入的每个程序中提取PE文件的结构特征,并对所提取的PE文件结构的特征进行分类。
具体的,分析每个程序文件,从程序文件中抽取预先定义的PE文件结构的特征,根据所抽取的PE文件结构的特征生成特征向量,以及每个特征向量的黑白属性,根据已知编译器的入口指令序列判定编译生成相应程序的编译器类型。
下面具体介绍一下PE文件结构:PE文件结构是一个很复杂的结构,其中一些基本结构包含了大量PE信息,可以基于这些PE新提提取PE文件的结构特征。
本申请实施例中,一种常用PE基本结构如下所示:
IMAGE_FILE_HEADER STRUCT
  Machine             WORD
  NumberOfSections    WORD
  TimeDate Stamp      DWORD
  PointerTo SymbolTable DWORD
  NumberOfSymbols DWORD
  SizeOfOptionalHeader WORD
  Characteristics    WORD
IMAGE_FILE_HEADER ENDS
IMAGE_OPTIONAL_HEADER32S TRUCT
  Magic                    WORD
  MajorLinkerVersion     BYTE
MinorLinkerVersion        BYTE
SizeOfCode                  DWORD
SizeOfInitializedData     DWORD
SizeOfUninitializedData  DWORD
AddressOfEntryPoint       DWORD
BaseOfCode                 DWORD
BaseOfData                 DWORD
ImageBase                   DWORD
SectionAlignment            DWORD
FileAlignment               DWORD
MajorOperatingSystemVersion WORD
MinorOperatingSystemVersion WORD
MajorImageVersion            WORD
MinorImageVersion            WORD
MajorSubsystemVersion        WORD
MinorSubsystemVersion        WORD
Win32VersionValue            DWORD
SizeOfImage                  DWORD
SizeOfHeaders                DWORD
CheckSum                      DWORD
Subsystem                    WORD
DllCharacteristics         WORD
SizeOfStackReserve          DWORD
SizeOfStackCommit           DWORD
SizeOfHeapReserve           DWORD
SizeOfHeapCommit            DWORD
LoaderFlags                DWORD
NumberOfRvaAndSizes         DWORD
DataDirectory    IMAGE_DATA_DIRECTORY 16dup(<>)
IMAGE_OPTIONAL_HEADER32ENDS
MAGE_DATA_DIRECTORY STRUCT
 VirtualAddress    DWORD
 isize              DWORD
IMAGE_DATA_DIRECTORY ENDS
IMAGE_SECTION_HEADER STRUCT
Name1              db       8dup()
union Misc
    PhysicalAddress  dd
    VirtualSize      dd
ends
VirtualAddress    dd
SizeOfRawData      dd
PointerToRawData    dd
PointerToRelocations  dd
PointerToLinenumbers  dd
NumberOfRelocations dw
NumberOfLinenumbers dw
Characteristics    dd
IMAGE_SECTION_HEADER ENDS
以上PE文件基本结构包含了丰富的PE信息,通过对大量的样本程序的分析可知,在PE文件的文件结构这一次层次上,正常程序和恶意程序存在很大的区别,通过对样本程序进行数据挖掘,针对PE结构,我们可以选取的PE文件的结构特征可以包括:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
下面分别介绍上述PE文件的结构特征:
1、PE文件头特征(IMAGE_FILE_HEADER),具体包括如下特征:
NumberOfSections
TimeDate Stamp
Characteristics&IMAGE_FILE_RELOCS_STRIPPED
Characteristics&IMAGE_FILE_DLL
Characteristics&IMAGE_FILE_BYTES_REVERSED_LO
Characteristics&IMAGE_FILE_BYTES_REVERSED_HI
Characteristics&IMAGE_FILE_LOCAL_SYMS_STRIPPED
Characteristics&IMAGE_FILE_LINE_NUMS_STRIPPED
Characteristics&IMAGE_FILE_LARGE_ADDRESS_AWARE
Characteristics&IMAGE_FILE_NET_RUN_FROM_SWAP
Characteristics&IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
Characteristics&IMAGE_FILE_DEBUG_STRIPPED
2、PE标准头特征(IMAGE_OPTIONAL_HEADER32的BaseOfData以上),具体包括如下特征:
MajorLinkerVersion
MinorLinkerVersion
SizeOfCode
SizeOfInitializedData
SizeOfUninitializedData
AddressOfEntryPoint
BaseOfCode
BaseOfData
3、PE可选头特征(IMAGE_OPTIONAL_HEADER32),具体包括如下特征:
ImageBase
SectionAlignment
FileAlignment
MajorOperatingSystemVersion
MinorOperatingSystemVersion
MajorImageVersion
MinorImageVersion
MajorSubsystemVersion
MinorSubsystemVersion
SizeOfImage
SizeOfHeaders
CheckSum
Subsystem
SizeOfStackReserve
SizeOfStackCommit
DllCharacteristics&MAGE_DLLCHARACTERISTICS_DYNANMIC_BASE
DllCharacteristics&AGE_DLLCHARACTERISTICS_NO_ISOLATION
DllCharacteristics&IMAGE_DLLCHARACTERISTICS_NO_SEH
DllCharacteristics&IMAGE_DLLCHARACTERISTICS_WDM_DRIVER
DllCharacteristics&IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
4、数据目录特征(IMAGE_OPTIONAL_HEADER32),具体包括如下特征:
DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size
DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].Size
5、常用节表特征,具体包括如下特征:
代码节的节表特征;
数据节的节表特征;
资源节的节表特征;
其中,可以对上述每个节表Characteristics按位展开,每个展开位作为一个特征。
步骤103:根据分类的结果,将不同类别的特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
其中,不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练;训练模型可以为带编码的训练模型、或压缩的训练模型。
参见图2,为本申请实施例生成识别程序类型的模型的应用实例示意图:
其中,若干PE文件即为所输入的海量可执行程序文件,包括恶意程序和非恶意程序,根据PE文件的结构特征的特征分类的不同包含了k个决策机,以及对应k个决策机的k个训练模型。分析可执行程序文件后,抽取相应的PE文件的结构特征,将所抽取的PE文件的结构特征放入一个相应的特征向量之内,根据已经抽取到的特征,进行特征分类,例如,可以依据前述实施例中的描述分为PE文件头特征分类、PE标准头特征分类、PE可选头特征分类、数据目录特征分类、常用节表特征分类,根据分类的结果,将不同类别的程序文件的特征向量和黑白属性使用不同的决策机进行训练,得到相应的训练模型。
举例来说,不同的特征分类中包含不同数量的具体特征,以特征分类是常用节表特征为例,其中可以具体包括的节表特征为:代码节的节表特征,数据节的节表特征,资源节的节表特征。本申请实施例中,可以为每一个特征分类分配一个分类标识,例如,常用节表特征的分类标识为“1”,对于具体的每个常用节表特征,可以为其进一步分配特征标识,例如,代码节的节表特征的特征标识为“1”,数据节的节表特征的特征标识为“2”,资源节的节表特征的特征标识为“3”。在根据所抽取的特征生成特征向量时,特征向量中的每一个特征的数组都用其分类标识和特征标识进行表征,例如,所抽取的特征为常用节表特征中的“代码节的节表特征”,则其对应的分类标识为“1”,特征标识为“1”,因此特征向量中对应该“代码节的节表特征”的信息表示为“1:1”;同理,属于其它特征分类的具体特征也用上述形式表示,如下所示,为从某个程序中提取到了4个特征的特征向量示例:1:02:121100:12345678 5000:365。
特征向量的黑白属性用于表示包含该特征向量中的特征的程序属于恶意程序还是非恶意程序,其中属性为“白”,则对应非恶意程序,属性为“黑”,则对应恶意程序;进一步,可以为白属性定义标识为“0”,黑属性定义标识为“1”。则在为每个程序生成特征向量后,可以根据特征向量包含的信息为其分配属性标识,例如,为上述特征向量“1:0 2:121 100:12345678 5000:365”分配属性标识为白属性“0”,则相应的信息可以表示为“0 1:0 2:121100:12345678 5000:365”。上述表示方法也可以直接用数组表示,在数组第n个位置的值即为第n个特征的值。
参见图3,为本申请基于机器学习的程序识别方法的实施例流程图:
步骤301:分析输入的未知程序,提取所述未知程序中的PE文件的结构特征。
如前述图1所示实施例的描述可知,该PE文件的结构特征包括至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
步骤302:根据所提取的PE文件的结构特征对所述未知程序进行粗分类。
步骤303:根据粗分类的结果,将未知程序输入已生成的训练模型及相应的决策机中进行判断。
具体的,可以根据粗分类的结果,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断,根据预先设置的每种特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对未知程序进行判断的结果进行加权计算。
步骤304:输出未知程序的识别结果,该识别结果为恶意程序或非恶意程序。
具体的,根据加权计算的结果输出对位置程序的识别结果,该识别结果为恶意程序或非恶意程序。
参见图4,为本申请实施例对程序类型进行识别的应用实例示意图:
其中,PE文件即为所输入的未知程序文件,根据特征分类的不同包含了k个决策机,以及对应k个决策机的k个训练模型。分析PE文件后,抽取相应的PE文件的结构特征,将所抽取的PE文件的结构特征放入一个相应的特征向量之内,根据已经抽取到的PE文件的结构特征,进行特征分类,例如,根据常用节表特征的特征分类可以分为代码节的节表特征,数据节的节表特征,资源节的节表特征等,根据分类的结果,使用不同的决策机和训练模型进行相应的判断,根据相应决策机和模型得出的判断结果,依分类的权重加权得到评分结果,由评分结果确定该文件是否是恶意程序或正常程序。
例如,假设决策机一共有k个,分类一共有m种,分别为分类1,2,...,m,第i种分类预先设定的权重是(wi1,wi2,...,wik),则相应的样本类别i的决策机判别的结果是(ril,ri2,...,rik),由此得到的综合结果为(wil,wi2,...,wik)*(ri1,ri2,...,rik)。可以预先设置一个结果判断阈值,当判断结果小于该阈值则确定未知程序为非恶意程序,当判断结果大于该阈值,则确定未知程序为恶意程序。
与本申请基于机器学习的程序识别方法的实施例相对应,本申请还提供了基于机器学习的程序识别装置的实施例。
参见图5,为本申请基于机器学习的程序识别装置的第一实施例框图:
该装置包括:提取单元510、分类单元520、判断单元530和输出单元540。
其中,提取单元510,用于分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;
分类单元520,用于根据所提取的PE文件的结构特征对所述未知程序进行粗分类;
判断单元530,用于根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出单元540,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
其中,提取单元510具体用于,提取所述未知程序中的至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
具体的,判断单元530可以包括(图5中未示出):程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断;加权计算单元,用于根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;所述输出单元540,具体用于根据所述加权计算的结果输出对所述位置程序的识别结果。
参见图6,为本申请基于机器学习的程序识别装置的第二实施例框图,与图5相比,该程序识别装置进一步具有生成识别程序类型的模型的功能:
该装置包括:输入单元610、提取单元620、分类单元630、生成单元640。
其中,输入单元610,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
提取单元620,用于从所输入的每个程序中提取PE文件的结构特征;
分类单元630,用于对所提取的PE文件的结构特征进行分类;
生成单元640,用于根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
具体的,提取单元620可以包括(图6中未示出):结构特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征;向量属性生成单元,用于根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。
具体的,分类单元630用于根据已知编译器的入口指令序列判定编译生成相应程序的编译器类型。
通过对以上实施方式的描述可知,本申请实施例基于PE文件的结构特征识别未知程序的类型时,分析输入的未知程序,提取未知程序中的PE文件的结构特征,根据所提取的PE文件的结构特征对所述未知程序进行粗分类,根据粗分类的结果,将未知程序输入已生成的训练模型及相应的决策机中进行判断,输出未知程序的识别结果。本申请采用机器学习技术,通过对大量程序样本进行PE文件的结构特征提取及分析,得到基于PE文件的结构特征的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率;并且,在基于对海量程序进行数据挖掘的基础上,基于PE文件的结构可以发现程序的内在规律,对未发生的恶意程序进行预防,使得恶意程序难以被免杀。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本申请实施方式,并不构成对本申请保护范围的限定。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种基于机器学习的程序识别方法,其特征在于,包括: 
输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序; 
从所输入的每个程序中提取PE文件的结构特征,并对所提取的PE文件的结构特征进行分类; 
根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合; 
分析输入的未知程序,提取所述未知程序中的PE文件的结构特征,其中,所述PE文件的结构特征至少包括PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征中的一种; 
根据所提取的PE文件的结构特征对所述未知程序进行粗分类; 
根据所述粗分类的结果,将所述未知程序输入已生成的基于PE文件的结构特征的、且与所述粗分类的结果相应的训练模型及相应的决策机中进行判断; 
输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。 
2.根据权利要求1所述的方法,其特征在于,当包括多个训练模型时,所述将未知程序输入已生成的训练模型及相应的决策机中进行判断包括: 
将未知程序分别输入一个或多个已生成的训练模型及相应的决策机中进行判断; 
根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算; 
所述输出未知程序的识别结果具体为:根据所述加权计算的结果输出对所述未知程序的识别结果。 
3.根据权利要求1所述的方法,其特征在于,所述从所输入的每个程序中提取PE文件的结构特征包括: 
分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征; 
根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。 
4.根据权利要求1所述的方法,其特征在于,所述不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练。 
5.一种基于机器学习的程序识别装置,其特征在于,包括: 
输入单元,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序; 
提取单元,用于从所输入的每个程序中提取PE文件的结构特征; 
分类单元,用于对所提取的PE文件的结构特征进行分类; 
生成单元,用于根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合; 
提取单元,用于分析输入的未知程序,提取所述未知程序中的PE文件的结构特征,其中,所述PE文件的结构特征至少包括PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征中的一种; 
分类单元,用于根据所提取的PE文件的结构特征对所述未知程序进行粗分类; 
判断单元,用于根据所述粗分类的结果,将所述未知程序输入已生成的基于PE文件的结构特征的、且与所述粗分类的结果相应的训练模型及相应的决策机中进行判断; 
输出单元,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。 
6.根据权利要求5所述的装置,其特征在于,所述判断单元包括: 
程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断; 
加权计算单元,用于根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算; 
所述输出单元,具体用于根据所述加权计算的结果输出对所述未知程序 的识别结果。 
7.根据权利要求5所述的装置,其特征在于,所述提取单元包括: 
结构特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征; 
向量属性生成单元,用于根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。 
CN201010620959.7A 2010-11-29 2010-12-31 基于机器学习的程序识别方法及装置 Active CN102542190B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201010620959.7A CN102542190B (zh) 2010-12-31 2010-12-31 基于机器学习的程序识别方法及装置
CN201410131341.2A CN103942495B (zh) 2010-12-31 2010-12-31 基于机器学习的程序识别方法及装置
US13/990,146 US9349006B2 (en) 2010-11-29 2011-11-18 Method and device for program identification based on machine learning
PCT/CN2011/082416 WO2012071989A1 (zh) 2010-11-29 2011-11-18 基于机器学习的程序识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010620959.7A CN102542190B (zh) 2010-12-31 2010-12-31 基于机器学习的程序识别方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201410131341.2A Division CN103942495B (zh) 2010-12-31 2010-12-31 基于机器学习的程序识别方法及装置

Publications (2)

Publication Number Publication Date
CN102542190A CN102542190A (zh) 2012-07-04
CN102542190B true CN102542190B (zh) 2014-07-09

Family

ID=46349059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010620959.7A Active CN102542190B (zh) 2010-11-29 2010-12-31 基于机器学习的程序识别方法及装置

Country Status (1)

Country Link
CN (1) CN102542190B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104966020B (zh) * 2014-07-24 2018-09-07 哈尔滨安天科技股份有限公司 基于特征向量的反病毒云检测方法及系统
CN105488403A (zh) * 2014-12-23 2016-04-13 哈尔滨安天科技股份有限公司 基于pe文件中未使用字段的恶意代码检测方法及系统
CN104657662B (zh) * 2015-01-26 2017-11-03 安一恒通(北京)科技有限公司 用于检测感染型病毒的方法及装置
CN105205397B (zh) * 2015-10-13 2018-10-16 北京奇安信科技有限公司 恶意程序样本分类方法及装置
CN109299609A (zh) * 2018-08-08 2019-02-01 北京奇虎科技有限公司 一种elf文件检测方法及装置
CN109460658B (zh) * 2018-11-16 2022-03-25 成都网域复兴科技有限公司 一种针对恶意勒索样本的检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113128A1 (en) * 2007-10-24 2009-04-30 Sumwintek Corp. Method and system for preventing virus infections via the use of a removable storage device
CN101593253A (zh) * 2009-06-22 2009-12-02 成都市华为赛门铁克科技有限公司 一种恶意程序判断方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034043B (zh) * 2010-12-13 2012-12-05 四川大学 基于文件静态结构属性的恶意软件检测新方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113128A1 (en) * 2007-10-24 2009-04-30 Sumwintek Corp. Method and system for preventing virus infections via the use of a removable storage device
CN101593253A (zh) * 2009-06-22 2009-12-02 成都市华为赛门铁克科技有限公司 一种恶意程序判断方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吴云芳等.多分类器集成的汉语词义消歧研究.《计算机研究与发展》.2008,第45卷(第8期),
多分类器集成的汉语词义消歧研究;吴云芳等;《计算机研究与发展》;20081231;第45卷(第8期);摘要、第1355页左栏第1-3段、第1357页左栏第4-7段 *
毛明明,柳益君.基于机器学习的恶意程序检测研究.《软件导刊》.2010,第9卷(第9期), *

Also Published As

Publication number Publication date
CN102542190A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102479298B (zh) 基于机器学习的程序识别方法及装置
CN102567661B (zh) 基于机器学习的程序识别方法及装置
CN103853979B (zh) 基于机器学习的程序识别方法及装置
CN103839006B (zh) 基于机器学习的程序识别方法及装置
Aslan et al. A new malware classification framework based on deep learning algorithms
Darem et al. Visualization and deep-learning-based malware variant detection using OpCode-level features
CN102542190B (zh) 基于机器学习的程序识别方法及装置
CN103942495A (zh) 基于机器学习的程序识别方法及装置
CN103870754A (zh) 恶意程序识别及训练模型生成方法和装置
CN111639337B (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN109598124A (zh) 一种webshell检测方法以及装置
WO2012071989A1 (zh) 基于机器学习的程序识别方法及装置
CN101685483B (zh) 一种病毒特征码提取的方法和装置
CN105046152B (zh) 基于函数调用图指纹的恶意软件检测方法
CN106572117A (zh) 一种WebShell文件的检测方法和装置
Savenko et al. Metamorphic Viruses' Detection Technique Based on the Equivalent Functional Block Search.
Li et al. CNN-based malware variants detection method for internet of things
CN108985064A (zh) 一种识别恶意文档的方法及装置
CN103473104A (zh) 一种基于关键词上下文频率矩阵的应用重打包辨别方法
CN112528284A (zh) 恶意程序的检测方法及装置、存储介质、电子设备
CN112685738B (zh) 一种基于多级投票机制的恶意混淆脚本静态检测方法
CN104680065A (zh) 病毒检测方法、装置及设备
CN109871686A (zh) 基于图标表示和软件行为一致性分析的恶意程序识别方法及装置
CN109614795A (zh) 一种事件感知的安卓恶意软件检测方法
CN111428236A (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
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zhou Hongdai

Inventor after: Dong Yi

Inventor after: Zhou Hui

Inventor before: Dong Yi

Inventor before: Zhou Hui

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: DONG YI ZHOU HUI TO: ZHOU HONGYI DONG YI ZHOU HUI

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.