CN103942495A - 基于机器学习的程序识别方法及装置 - Google Patents
基于机器学习的程序识别方法及装置 Download PDFInfo
- Publication number
- CN103942495A CN103942495A CN201410131341.2A CN201410131341A CN103942495A CN 103942495 A CN103942495 A CN 103942495A CN 201410131341 A CN201410131341 A CN 201410131341A CN 103942495 A CN103942495 A CN 103942495A
- Authority
- CN
- China
- Prior art keywords
- program
- file
- feature
- architectural feature
- training pattern
- 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 66
- 238000010801 machine learning Methods 0.000 title claims abstract description 24
- 238000000605 extraction Methods 0.000 claims abstract description 15
- 239000000284 extract Substances 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000003066 decision tree Methods 0.000 claims description 4
- 238000012706 support-vector machine Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000004458 analytical method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 241000700605 Viruses Species 0.000 description 9
- 238000007418 data mining Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 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)
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种基于机器学习的程序识别方法及装置,所述方法包括:分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;根据所提取的PE文件的结构特征对所述未知程序进行粗分类;根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。本申请采用机器学习技术,通过对大量程序样本进行PE文件的结构特征提取及分析,得到基于PE文件的结构特征的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率。
Description
本发明专利申请是申请日为2010年12月31日、申请号为201010620959.7、名称为“基于机器学习的程序识别方法及装置”的中国发明专利申请的分案申请。
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于机器学习的程序识别方法及装置。
背景技术
恶意程序是一类特殊的程序,它们通常在用户不知晓也未授权的情况下潜入到用户的计算机系统中,对用户系统改进型攻击。恶意程序可以包括病毒、后门程序、木马程序、宏病毒、引导区病毒、脚本病毒等。在查杀恶意病毒之前,首先要对恶意程序进行识别,以查杀病毒为例,现有技术中主要通过字符串特征码和简单的人工总结进行查杀,所查杀的病毒也均是已知的病毒,难以对新型病毒进行查杀。
发明人在对现有技术的研究过程中发现,现有技术基本上采用字符串特征码和人工规则的启发式通杀,这种识别恶意程序的方式严重依赖于病毒分析师的能力,需要分析师针对已有样本进行人工分析,找出相应的特征,因此需要大量经验丰富的人员才能满足解决问题的需求,并且由于技术复杂,人工处理的结果将导致效率低效;现有技术中只能处理已知的问题,不能对可能发生的问题进行防范,因此具有一定的滞后性;由于现有技术基于简单的特征或规则进行查杀,因此很容易被病毒作者免杀。
发明内容
本申请实施例提供了一种基于机器学习的程序识别方法及装置,以解决现有技术中在识别恶意程序时效率不高,具有滞后性的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种基于机器学习的程序识别方法,包括:
分析输入的未知程序,提取所述未知程序中的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基本结构如下所示:
以上PE文件基本结构包含了丰富的PE信息,通过对大量的样本程序的分析可知,在PE文件的文件结构这一次层次上,正常程序和恶意程序存在很大的区别,通过对样本程序进行数据挖掘,针对PE结构,我们可以选取的PE文件的结构特征可以包括:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
下面分别介绍上述PE文件的结构特征:
1、PE文件头特征(IMAGE_FILE_HEADER),具体包括如下特征:
NumberOfSections
TimeDateStamp
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_DYNAMIC_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:123456785000:365。
特征向量的黑白属性用于表示包含该特征向量中的特征的程序属于恶意程序还是非恶意程序,其中属性为“白”,则对应非恶意程序,属性为“黑”,则对应恶意程序;进一步,可以为白属性定义标识为“0”,黑属性定义标识为“1”。则在为每个程序生成特征向量后,可以根据特征向量包含的信息为其分配属性标识,例如,为上述特征向量“1:02:121100:123456785000:365”分配属性标识为白属性“0”,则相应的信息可以表示为“01:02:121100:123456785000: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的决策机判别的结果是(ri1,ri2,…,rik),由此得到的综合结果为(wi1,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 (17)
1.一种基于机器学习的程序识别方法,其特征在于,包括:
分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;
根据所提取的PE文件的结构特征对所述未知程序进行粗分类;
根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
2.根据权利要求1所述的方法,其特征在于,所述PE文件的结构特征包括至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
3.根据权利要求1所述的方法,其特征在于,当包括多个训练模型时,所述将未知程序输入已生成的训练模型及相应的决策机中进行判断包括:
将未知程序分别输入一个或多个已生成的训练模型及相应的决策机中进行判断;
根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出未知程序的识别结果具体为:根据所述加权计算的结果输出对所述位置程序的识别结果。
4.根据权利要求1所述的方法,其特征在于,还包括:
输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
从所输入的每个程序中提取PE文件的结构特征,并对所提取的PE文件的结构特征进行分类;
根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
5.根据权利要求4所述的方法,其特征在于,所述从所输入的每个程序中提取PE文件的结构特征包括:
分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征;
根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。
6.根据权利要求4所述的方法,其特征在于,所述不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练。
7.一种基于机器学习的程序识别装置,其特征在于,包括:
提取单元,用于分析输入的未知程序,提取所述未知程序中的PE文件的结构特征;
分类单元,用于根据所提取的PE文件的结构特征对所述未知程序进行粗分类;
判断单元,用于根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出单元,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
8.根据权利要求7所述的装置,其特征在于,所述提取单元具体用于,提取所述未知程序中的至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
9.根据权利要求7所述的装置,其特征在于,所述判断单元包括:
程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断;
加权计算单元,用于根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出单元,具体用于根据所述加权计算的结果输出对所述位置程序的识别结果。
10.根据权利要求8所述的装置,其特征在于,还包括:
输入单元,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
提取单元,用于从所输入的每个程序中提取PE文件的结构特征;
分类单元,用于对所提取的PE文件的结构特征进行分类;
生成单元,用于根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
11.根据权利要求10所述的装置,其特征在于,所述提取单元包括:
结构特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的PE文件的结构特征;
向量属性生成单元,用于根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。
12.一种程序识别方法,其包括:
分析未知程序以提取所述未知程序中的PE文件的结构特征;
根据所提取的PE文件的结构特征对所述未知程序进行粗分类;
将所述未知程序输入与其粗分类相对应的已生成的训练模型及相应的决策机中进行判断;
根据判断结果确定所述识别结果为恶意程序或非恶意程序。
13.根据权利要求12所述的方法,其中,所述PE文件的结构特征包括至少一种下述特征:PE文件头特征、PE标准头特征、PE可选头特征、数据目录特征、常用节表特征。
14.根据权利要求13所述的方法,其中,将所述未知程序输入与其粗分类相对应的已生成的训练模型及相应的决策机中进行判断进一步包括:
将未知程序分别输入与其粗分类相对应的一个或多个已生成的训练模型及相应的决策机中进行判断;
根据预先设置的每种PE文件的结构特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算以得到判断结果。
15.根据权利要求12至14中任一项所述的方法,其中,所述训练模型通过下面步骤得到:
提取海量程序,所述海量程序包括恶意程序和非恶意程序;
从每个程序中提取PE文件的结构特征,并对所提取的PE文件的结构特征进行分类;
根据所述分类的结果,将不同类别的PE文件的结构特征使用不同的决策机进行训练并生成用于识别恶意程序的训练模型或训练模型集合。
16.根据权利要求15所述的方法,其中,从每个程序中提取PE文件的结构特征包括:
分析每个程序的程序文件并从所述程序文件中抽取预先定义的PE文件的结构特征;
根据所抽取的PE文件的结构特征生成特征向量,以及每个特征向量的黑白属性。
17.根据权利要求12至16中任一项所述的方法,其中,所述决策机包括:使用支持向量机的决策机或使用决策树的决策机进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410131341.2A CN103942495B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410131341.2A CN103942495B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
CN201010620959.7A CN102542190B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010620959.7A Division CN102542190B (zh) | 2010-11-29 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942495A true CN103942495A (zh) | 2014-07-23 |
CN103942495B CN103942495B (zh) | 2017-12-12 |
Family
ID=51190162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410131341.2A Active CN103942495B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942495B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104966020A (zh) * | 2014-07-24 | 2015-10-07 | 哈尔滨安天科技股份有限公司 | 基于特征向量的反病毒云检测方法及系统 |
CN105488408A (zh) * | 2014-12-31 | 2016-04-13 | 中国信息安全认证中心 | 一种基于特征的恶意样本类型识别的方法与系统 |
CN105574408A (zh) * | 2014-10-11 | 2016-05-11 | 安一恒通(北京)科技有限公司 | 用于文件病毒检测的特征获取方法及文件病毒检测的方法 |
CN105989285A (zh) * | 2015-01-06 | 2016-10-05 | 纬创资通股份有限公司 | 保护方法与其电脑系统 |
CN106485146A (zh) * | 2015-09-02 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN107577943A (zh) * | 2017-09-08 | 2018-01-12 | 北京奇虎科技有限公司 | 基于机器学习的样本预测方法、装置及服务器 |
CN111552965A (zh) * | 2020-04-07 | 2020-08-18 | 哈尔滨工程大学 | 一种基于pe头可视化的恶意软件分类方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019700B2 (en) * | 2007-10-05 | 2011-09-13 | Google Inc. | Detecting an intrusive landing page |
-
2010
- 2010-12-31 CN CN201410131341.2A patent/CN103942495B/zh active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104966020A (zh) * | 2014-07-24 | 2015-10-07 | 哈尔滨安天科技股份有限公司 | 基于特征向量的反病毒云检测方法及系统 |
CN105574408A (zh) * | 2014-10-11 | 2016-05-11 | 安一恒通(北京)科技有限公司 | 用于文件病毒检测的特征获取方法及文件病毒检测的方法 |
CN105574408B (zh) * | 2014-10-11 | 2018-04-17 | 安一恒通(北京)科技有限公司 | 用于文件病毒检测的特征获取方法及文件病毒检测的方法 |
CN105488408A (zh) * | 2014-12-31 | 2016-04-13 | 中国信息安全认证中心 | 一种基于特征的恶意样本类型识别的方法与系统 |
CN105989285A (zh) * | 2015-01-06 | 2016-10-05 | 纬创资通股份有限公司 | 保护方法与其电脑系统 |
CN106485146A (zh) * | 2015-09-02 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
WO2017036154A1 (zh) * | 2015-09-02 | 2017-03-09 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器、计算机存储介质 |
CN106485146B (zh) * | 2015-09-02 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
US11163877B2 (en) | 2015-09-02 | 2021-11-02 | Tencent Technology (Shenzhen) Company Limited | Method, server, and computer storage medium for identifying virus-containing files |
CN107577943A (zh) * | 2017-09-08 | 2018-01-12 | 北京奇虎科技有限公司 | 基于机器学习的样本预测方法、装置及服务器 |
CN111552965A (zh) * | 2020-04-07 | 2020-08-18 | 哈尔滨工程大学 | 一种基于pe头可视化的恶意软件分类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103942495B (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102479298B (zh) | 基于机器学习的程序识别方法及装置 | |
CN102567661B (zh) | 基于机器学习的程序识别方法及装置 | |
CN103853979B (zh) | 基于机器学习的程序识别方法及装置 | |
CN103839006B (zh) | 基于机器学习的程序识别方法及装置 | |
Darem et al. | Visualization and deep-learning-based malware variant detection using OpCode-level features | |
CN103870754A (zh) | 恶意程序识别及训练模型生成方法和装置 | |
CN103942495A (zh) | 基于机器学习的程序识别方法及装置 | |
CN102542190B (zh) | 基于机器学习的程序识别方法及装置 | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN109684840A (zh) | 基于敏感调用路径的Android恶意软件检测方法 | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
WO2012071989A1 (zh) | 基于机器学习的程序识别方法及装置 | |
CN105046152B (zh) | 基于函数调用图指纹的恶意软件检测方法 | |
CN106572117A (zh) | 一种WebShell文件的检测方法和装置 | |
CN107944274A (zh) | 一种基于宽度学习的Android平台恶意应用离线检测方法 | |
Savenko et al. | Metamorphic Viruses' Detection Technique Based on the Equivalent Functional Block Search. | |
CN101685483B (zh) | 一种病毒特征码提取的方法和装置 | |
CN106997367A (zh) | 程序文件的分类方法、分类装置和分类系统 | |
CN104680065A (zh) | 病毒检测方法、装置及设备 | |
CN109614795A (zh) | 一种事件感知的安卓恶意软件检测方法 | |
CN109829302A (zh) | Android恶意应用家族分类方法、装置与电子设备 | |
CN106973051B (zh) | 建立检测网络威胁模型的方法、装置和存储介质 | |
Feng et al. | Hrs: A hybrid framework for malware detection | |
CN105468972B (zh) | 一种移动终端文件检测方法 | |
CN105243327B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220728 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. |