CN103853979B - 基于机器学习的程序识别方法及装置 - Google Patents
基于机器学习的程序识别方法及装置 Download PDFInfo
- Publication number
- CN103853979B CN103853979B CN201410062777.0A CN201410062777A CN103853979B CN 103853979 B CN103853979 B CN 103853979B CN 201410062777 A CN201410062777 A CN 201410062777A CN 103853979 B CN103853979 B CN 103853979B
- Authority
- CN
- China
- Prior art keywords
- program
- feature
- class behavior
- unknown
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000010801 machine learning Methods 0.000 title claims abstract description 23
- 230000006399 behavior Effects 0.000 claims abstract description 96
- 238000012549 training Methods 0.000 claims abstract description 66
- 238000000605 extraction Methods 0.000 claims abstract description 19
- 230000008676 import Effects 0.000 claims abstract description 16
- 239000000284 extract Substances 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 19
- 230000026676 system process Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000003542 behavioural effect Effects 0.000 claims description 5
- 238000003066 decision tree Methods 0.000 claims description 4
- 239000011800 void material Substances 0.000 claims 2
- 238000012706 support-vector machine Methods 0.000 claims 1
- 238000004458 analytical method Methods 0.000 abstract description 5
- 241000700605 Viruses Species 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000007418 data mining Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 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
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 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
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual 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/561—Virus type analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于机器学习的程序识别方法及装置,所述方法包括:分析输入的未知程序,提取所述未知程序中的类行为特征,所述类行为特征包括导入表库特征和导入表应用程序编程接口API特征;根据所提取的类行为特征对所述未知程序进行粗分类;根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。本申请采用机器学习技术,通过对大量程序样本进行类行为特征提取及分析,得到基于类行为的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率。
Description
本发明专利申请是申请日为2010年12月31日、申请号为201010620202.8、名称为“基于机器学习的程序识别方法及装置”的中国发明专利申请的分案申请。
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于机器学习的程序识别方法及装置。
背景技术
恶意程序是一类特殊的程序,它们通常在用户不知晓也未授权的情况下潜入到用户的计算机系统中,对用户系统改进型攻击。恶意程序可以包括病毒、后门程序、木马程序、宏病毒、引导区病毒、脚本病毒等。在查杀恶意病毒之前,首先要对恶意程序进行识别,以查杀病毒为例,现有技术中主要通过字符串特征码和简单的人工总结进行查杀,所查杀的病毒也均是已知的病毒,难以对新型病毒进行查杀。
发明人在对现有技术的研究过程中发现,现有技术基本上采用字符串特征码和人工规则的启发式通杀,这种识别恶意程序的方式严重依赖于病毒分析师的能力,需要分析师针对已有样本进行人工分析,找出相应的特征,因此需要大量经验丰富的人员才能满足解决问题的需求,并且由于技术复杂,人工处理的结果将导致效率低效;现有技术中只能处理已知的问题,不能对可能发生的问题进行防范,因此具有一定的滞后性;由于现有技术基于简单的特征或规则进行查杀,因此很容易被病毒作者免杀。
发明内容
本申请实施例提供了一种基于机器学习的程序识别方法及装置,以解决现有技术中在识别恶意程序时效率不高,具有滞后性的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种基于机器学习的程序识别方法,包括:
分析输入的未知程序,提取所述未知程序中的类行为特征,所述类行为特征包括导入表库特征和导入表应用程序编程接口API特征;
根据所提取的类行为特征对所述未知程序进行粗分类;
根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
所述导入表库特征包括:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;
所述导入表API特征为从所述导入表库中选取的函数特征。
当包括多个训练模型时,所述将未知程序输入已生成的训练模型及相应的决策机中进行判断包括:
将未知程序分别输入一个或多个已生成的训练模型及相应的决策机中进行判断;
根据预先设置的每种类行为特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出未知程序的识别结果具体为:根据所述加权计算的结果输出对所述位置程序的识别结果。
还包括:
输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
从所输入的每个程序中提取类行为特征,并对所提取的类行为特征进行分类;
根据所述分类的结果,将不同类别的类行为特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
所述从所输入的每个程序中提取类行为特征包括:
分析每个程序文件,从所述程序文件中抽取预先定义的类行为特征;
根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性。
所述不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练。
一种基于机器学习的程序识别装置,包括:
提取单元,用于分析输入的未知程序,提取所述未知程序中的类行为特征,所述类行为特征包括导入表库特征和导入表应用程序编程接口API特征;
分类单元,用于根据所提取的类行为特征对所述未知程序进行粗分类;
判断单元,用于根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出单元,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
所述提取单元具体用于,提取所述未知程序中的导入表库特征和所述导入表API特征,所述导入表库特征包括:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;所述导入表API特征为从所述导入表库中选取的函数特征。
所述判断单元包括:
程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断;
加权计算单元,用于根据预先设置的每种类行为特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出单元,具体用于根据所述加权计算的结果输出对所述位置程序的识别结果。
还包括:
输入单元,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
提取单元,用于从所输入的每个程序中提取类行为特征;
分类单元,用于对所提取的类行为特征进行分类;
生成单元,用于根据所述分类的结果,将不同类别的类行为特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
所述提取单元包括:
类行为特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的类行为特征;
向量属性生成单元,用于根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性。
由上述实施例可以看出,本申请实施例基于类行为特征识别未知程序的类型时,分析输入的未知程序,提取未知程序中的类行为特征,该类行为特征包括导入表库特征和导入表API特征,根据所提取的类行为特征对所述未知程序进行粗分类,根据粗分类的结果,将未知程序输入已生成的训练模型及相应的决策机中进行判断,输出未知程序的识别结果。本申请采用机器学习技术,通过对大量程序样本进行类行为特征提取及分析,得到基于类行为特征的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率;并且,在基于对海量程序进行数据挖掘的基础上,基于类行为可以发现程序的内在规律,对未发生的恶意程序进行预防,使得恶意程序难以被免杀。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请生成识别程序类型的模型的实施例流程图;
图2为本申请实施例生成识别程序类型的模型应用实例示意图;
图3为本申请基于机器学习的程序识别方法的实施例流程图;
图4为本申请实施例对程序类型进行识别的应用实例示意图;
图5为本申请基于机器学习的程序识别装置的第一实施例框图;
图6为本申请基于机器学习的程序识别装置的第二实施例框图。
具体实施方式
本申请如下实施例提供了一种基于机器学习的程序识别方法及装置。本申请采用MLD(Machine Learning Detection机器学习识别)技术,通过对大量程序样本进行分析,提取其中的类行为特征,得到识别恶意程序的模型,通过该模型基于类行为特征,可以提高对恶意程序的识别效率,对未发生的恶意程序进行预防,使得恶意程序难以被免杀。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图1,为本申请生成识别程序类型的模型的第一实施例流程图:
步骤101:输入提取到的海量程序,该海量程序中包括恶意程序和非恶意程序。
步骤102:从所输入的每个程序中提取类行为特征,并对所提取的类行为特征进行分类。
具体的,分析每个程序文件,从程序文件中抽取预先定义的类行为特征,根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性,根据已知编译器的入口指令序列判定编译生成相应程序的编译器类型。
下面具体介绍一下本申请实施例中的类行为特征,类行为特征可以从整体上分为导入表库特征和导入表API(Application Programming Interface,应用程序编程接口)特征。分别描述如下:
1、导入表库特征
导入表导入的动态库通常具有特别的功能,能表示程序本身可能达到的功能。例如,导入表库WS2_32.DLL的程序一般表示需要进行联网操作。因此,通过检查导入表的导入库名,可以预先选择常见恶意程序使用的动态库若干。具体的,可以为这些动态库建立HASH(哈希)表,即把所选择动态库特征字符串归一后,计算一个HASH值,并根据所计算的HASH值建立HASH表,后续对于输入的未知程序可以在提取其导入表后,查找该HASH表来确定导入表特征,以达到确定其是否为恶意程序的目的。
举例来说,该导入表库类特征可以进一步细分为如下特征类型:
1)网络类特征(包括RPC),示例如下:
DNSAPI.DLL
MSWSOCK.DLL
NDIS.SYS
NETAPI32.DLL
WININET.DLL
WSOCK32.DLL
WS2_32.DLL
MPR.DLL
RPCRT4.DLL
URLMON.DLL
2)高级Win32应用程序接口类特征,示例如下:
ADVAPI32.DLL
3)系统内核类特征,示例如下:
KERNEL32.DLL
NTDLL.DLL
NTOSKRNL.EXE
4)Windows用户界面相关应用程序接口类特征,示例如下:
USER32.DLL
5)Windows应用程序公用GUI图形用户界面模块类特征,示例如下:
COMCTL32.DLL
GDI32.DLL
GDIPLUS.DLL
6)Windows硬件提取层模块类特征,示例如下:
HAL.DLL
7)Microsoft MCF Library类特征,示例如下:
MFC42.DLL
8)微软Microsoft Visual Basic虚拟机相关模块类特征,示例如下:
MSVBVM60.DLL
9)标准的C运行库程序类特征,示例如下:
MSVCP60.DLL
MSVCR71.DLL
MSVCRT.DLL
10)对象链接和嵌入相关模块类特征,示例如下:
OLE32.DLL
OLEAUT32.DLL
11)Windows系统进程状态支持模块类特征,示例如下:
PSAPI.DLL
12)Windows的32位外壳动态链接库文件类特征,示例如下:
SHELL32.DLL
13)UNC和URL地址动态链接库文件类特征,,用于注册键值和色彩设置,示例如下:
SHLWAPI.DLL
2、导入表API特征
导入表API特征为从所述导入表库中选取的函数特征,这些函数可以进一步说明程序的行为功能。具体归一格式如下:
DLLNAME!APINAME
DLLNAME统一转成大写,如ADVAPI32.DLL!AddAccessAllowedAce
对于高级Win32应用程序接口类特征ADVAPI32.DLL,可以进一步选取其函数特征示例如下:
ADVAPI32.DLL!AddAccessAllowedAce
ADVAPI32.DLL!AddAce
ADVAPI32.DLL!AdjustTokenPrivileges
ADVAPI32.DLL!AllocateAndInitializeSid
ADVAPI32.DLL!ChangeServiceConfig2A
ADVAPI32.DLL!ChangeServiceConfig2W
ADVAPI32.DLL!CheckTokenMembership
ADVAPI32.DLL!CloseServiceHandle
ADVAPI32.DLL!ControlService
ADVAPI32.DLL!ConvertSidToStringSidW
又例如,对于Windows应用程序公用GUI图形用户界面模块类特征COMCTL32.DLL,可以进一步选取其函数特征示例如下:
COMCTL32.DLL!13
COMCTL32.DLL!14
COMCTL32.DLL!17
COMCTL32.DLL!CreatePropertySheetPageA
COMCTL32.DLL!DestroyPropertySheetPage
COMCTL32.DLL!FlatSB_GetScrollInfo
COMCTL32.DLL!FlatSB_SetScrollInfo
COMCTL32.DLL!FlatSB_SetScrollPos
COMCTL32.DLL!ImageList_Add
COMCTL32.DLL!ImageList_AddMasked
上述仅是示例性的描述,对于每种具体的导入表库特征对应的函数特征不再一一赘述。
对于上述函数特征,也可以为其建立HASH(哈希)表,把所选择函数特征字符串归一后,计算一个HASH值,并根据所计算的HASH值建立HASH表,后续对于输入的未知程序可以在提取其导入表API函数特征后,查找该HASH表,以达到确定其是否为恶意程序的目的。
步骤103:根据分类的结果,将不同类别的特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
其中,不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练;训练模型可以为带编码的训练模型、或压缩的训练模型。
参见图2,为本申请实施例生成识别程序类型的模型的应用实例示意图:
其中,若干PE文件即为所输入的海量可执行程序文件,包括恶意程序和非恶意程序,根据类行为特征分类的不同包含了k个决策机,以及对应k个决策机的k个训练模型。分析可执行程序文件后,抽取相应的类行为特征,将所抽取的类行为特征放入一个相应的特征向量之内,根据已经抽取到的特征,进行特征分类,例如,可以依据前述实施例中对导入表库特征的描述为例,分为网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;根据分类的结果,将不同类别的程序文件的特征向量和黑白属性使用不同的决策机进行训练,得到相应的训练模型。
举例来说,不同的特征分类中包含不同数量的具体特征,以特征分类是网络类特征为例,其中可以具体包括网络类特征为:DNSAPI.DLL,MSWSOCK.DLL,NDIS.SYS,NETAPI32.DLL,WININET.DLL,WSOCK32.DLL,WS2_32.DLL,MPR.DLL,RPCRT4.DLL,URLMON.DLL等。本申请实施例中,可以为每一个特征分类分配一个分类标识,例如,网络类特征的分类标识为“1”,对于具体的每个网络类特征,可以为其进一步分配特征标识,例如,动态库DNSAPI.DLL的特征标识为“1”,动态库MSWSOCK.DLL的特征标识为“2”,动态库NETAPI32.DLL的特征标识为“3”。在根据所抽取的特征生成特征向量时,特征向量中的每一个特征的数组都用其分类标识和特征标识进行表征,例如,所抽取的特征为常用节表特征中的“动态库DNSAPI.DLL”,则其对应的分类标识为“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:分析输入的未知程序,提取所述未知程序中的类行为特征,类行为特征包括导入表库特征和导入表API特征。
如前述图1所示实施例的描述可知,导入表库特征包括:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;而导入表API特征为从所述导入表库中选取的函数特征。
步骤302:根据所提取的类行为特征对所述未知程序进行粗分类。
步骤303:根据粗分类的结果,将未知程序输入已生成的训练模型及相应的决策机中进行判断。
具体的,可以根据粗分类的结果,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断,根据预先设置的每种特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对未知程序进行判断的结果进行加权计算。
步骤304:输出未知程序的识别结果,该识别结果为恶意程序或非恶意程序。
具体的,根据加权计算的结果输出对位置程序的识别结果,该识别结果为恶意程序或非恶意程序。
参见图4,为本申请实施例对程序类型进行识别的应用实例示意图:
其中,PE文件即为所输入的未知程序文件,根据特征分类的不同包含了k个决策机,以及对应k个决策机的k个训练模型。分析PE文件后,抽取相应的类行为特征,将所抽取的类行为特征放入一个相应的特征向量之内,根据已经抽取到的类行为特征,进行特征分类,例如,根据导入表库类特征可以分为网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征等,根据分类的结果,使用不同的决策机和训练模型进行相应的判断,根据相应决策机和模型得出的判断结果,依分类的权重加权得到评分结果,由评分结果确定该文件是否是恶意程序或正常程序。
对于输入的未知程序,在根据分类的结果,使用不同的决策机和训练模型进行相应的判断时,可以先将所有类行为特征的初始黑白属性值为0,从位置程序中提取类行为特征后,对这些类行为特征进行归一化处理,并在前述建立的HASH表中查找,如果找到相应特征,则将其黑白属性值从0置为1,否者不进行处理。
在依分类的权重加权得到评分结果时,假设决策机一共有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,用于分析输入的未知程序,提取所述未知程序中的类行为特征,所述类行为特征包括导入表库特征和导入表应用程序编程接口API特征;
分类单元520,用于根据所提取的类行为特征对所述未知程序进行粗分类;
判断单元530,用于根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;
输出单元540,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
其中,提取单元510具体用于,提取所述未知程序中的导入表库特征和所述导入表API特征,所述导入表库特征包括:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;所述导入表API特征为从所述导入表库中选取的函数特征。
具体的,判断单元530可以包括(图5中未示出):程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断;加权计算单元,用于根据预先设置的每种类行为特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;所述输出单元540,具体用于根据所述加权计算的结果输出对所述位置程序的识别结果。
参见图6,为本申请基于机器学习的程序识别装置的第二实施例框图,与图5相比,该程序识别装置进一步具有生成识别程序类型的模型的功能:
该装置包括:输入单元610、提取单元620、分类单元630、生成单元640。
其中,输入单元610,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
提取单元620,用于从所输入的每个程序中提取类行为特征;
分类单元630,用于对所提取的类行为特征进行分类;
生成单元640,用于根据所述分类的结果,将不同类别的类行为特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
具体的,提取单元620可以包括(图6中未示出):类行为特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的类行为特征;向量属性生成单元,用于根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性。
具体的,分类单元630用于根据已知编译器的入口指令序列判定编译生成相应程序的编译器类型。
通过对以上实施方式的描述可知,本申请实施例基于类行为特征识别未知程序的类型时,分析输入的未知程序,提取未知程序中的类行为特征,该类行为特征包括导入表库特征和导入表API特征,根据所提取的类行为特征对所述未知程序进行粗分类,根据粗分类的结果,将未知程序输入已生成的训练模型及相应的决策机中进行判断,输出未知程序的识别结果。本申请采用机器学习技术,通过对大量程序样本进行类行为特征提取及分析,得到基于类行为特征的识别恶意程序的模型,通过该模型的使用可以节省大量的人力,提高对恶意程序的识别效率;并且,在基于对海量程序进行数据挖掘的基础上,基于类行为可以发现程序的内在规律,对未发生的恶意程序进行预防,使得恶意程序难以被免杀。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本申请实施方式,并不构成对本申请保护范围的限定。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种基于机器学习的程序识别方法,其特征在于,包括:
分析输入的未知程序,提取所述未知程序中的类行为特征,所述类行为特征包括导入表库特征和导入表应用程序编程接口API特征;
根据所提取的类行为特征对所述未知程序进行粗分类;其中所述根据所提取的类行为特征对所述未知程序进行粗分类具体包括:根据导入表库特征分类和/或导入表应用程序编程接口API特征分类进行分类;
根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;所述训练模型根据对海量的程序的特征分类的结果,将不同类别的程序文件的特征向量和黑白属性使用不同的决策机进行训练,得到相应的训练模型;其中,不同特征分类中包含不同数量的具体特征,不同的特征分类对应有不同的分类标识,不同的具体特征对应有不同的特征标识;
输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
2.根据权利要求1所述的方法,其特征在于,所述导入表库特征包括:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;
所述导入表API特征为从所述导入表库中选取的函数特征。
3.根据权利要求1所述的方法,其特征在于,当包括多个训练模型时,所述将未知程序输入已生成的训练模型及相应的决策机中进行判断包括:
将未知程序分别输入一个或多个已生成的训练模型及相应的决策机中进行判断;
根据预先设置的每种类行为特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算;
所述输出未知程序的识别结果具体为:根据所述加权计算的结果输出对所述未知程序的识别结果。
4.根据权利要求1所述的方法,其特征在于,还包括:
输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
从所输入的每个程序中提取类行为特征,并对所提取的类行为特征进行分类;
根据所述分类的结果,将不同类别的类行为特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
5.根据权利要求4所述的方法,其特征在于,所述从所输入的每个程序中提取类行为特征包括:
分析每个程序文件,从所述程序文件中抽取预先定义的类行为特征;
根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性。
6.根据权利要求4所述的方法,其特征在于,所述不同的决策机使用相同或不同的方式对特征进行训练,包括:使用支持向量机的决策机进行训练,或使用决策树的决策机进行训练。
7.一种基于机器学习的程序识别装置,其特征在于,包括:
提取单元,用于分析输入的未知程序,提取所述未知程序中的类行为特征,所述类行为特征包括导入表库特征和导入表应用程序编程接口API特征;
分类单元,用于根据所提取的类行为特征对所述未知程序进行粗分类;其中所述根据所提取的类行为特征对所述未知程序进行粗分类具体包括:根据导入表库特征分类和/或导入表应用程序编程接口API特征分类进行分类;
判断单元,用于根据所述粗分类的结果,将所述未知程序输入已生成的训练模型及相应的决策机中进行判断;所述训练模型根据对海量的程序的特征分类的结果,将不同类别的程序文件的特征向量和黑白属性使用不同的决策机进行训练,得到相应的训练模型;其中,不同特征分类中包含不同数量的具体特征,不同的特征分类对应有不同的分类标识,不同的具体特征对应有不同的特征标识;
输出单元,用于输出所述未知程序的识别结果,所述识别结果为恶意程序或非恶意程序。
8.根据权利要求7所述的装置,其特征在于,所述提取单元具体用于,提取所述未知程序中的导入表库特征和所述导入表API特征,所述导入表库特征包括:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;所述导入表API特征为从所述导入表库中选取的函数特征。
9.根据权利要求7所述的装置,其特征在于,所述判断单元包括:
程序输入单元,用于当包括多个训练模型时,将未知程序分别输入多个已生成的训练模型及相应的决策机中进行判断;
加权计算单元,用于根据预先设置的每种类行为特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算。
10.根据权利要求9所述的装置,其特征在于,所述输出单元,具体用于根据所述加权计算的结果输出对所述未知程序的识别结果。
11.根据权利要求8所述的装置,其特征在于,还包括:
输入单元,用于输入提取到的海量程序,所述海量程序中包括恶意程序和非恶意程序;
生成单元,用于根据所述分类的结果,将不同类别的类行为特征使用不同的决策机进行训练,生成用于识别恶意程序的训练模型或训练模型集合。
12.根据权利要求11所述的装置,其特征在于,所述提取单元包括:
类行为特征抽取单元,用于分析每个程序文件,从所述程序文件中抽取预先定义的类行为特征;
向量属性生成单元,用于根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性。
13.一种程序识别方法,其包括:
分析未知程序以提取所述未知程序的类行为特征;
根据所提取的类行为特征对所述未知程序进行粗分类;其中所述根据所提取的类行为特征对所述未知程序进行粗分类具体包括:根据导入表库特征分类和/或导入表应用程序编程接口API特征分类进行分类;
将所述未知程序输入与其粗分类相对应的已生成的训练模型及相应的决策机中进行判断;所述训练模型根据对海量的程序的特征分类的结果,将不同类别的程序文件的特征向量和黑白属性使用不同的决策机进行训练,得到相应的训练模型;其中,不同特征分类中包含不同数量的具体特征,不同的特征分类对应有不同的分类标识,不同的具体特征对应有不同的特征标识;
根据判断结果确定所述未知程序为恶意程序或非恶意程序。
14.根据权利要求13所述的方法,其中,所述类行为特征包括导入表库特征和/或导入表应用程序编程接口API特征。
15.根据权利要求14所述的方法,其中,所述导入表库特征包括下面中的至少一个:网络类特征、高级WIN32应用程序接口类特征、系统内核类特征、操作系统用户界面相关应用程序接口类特征、操作系统应用程序共用图像用户界面模块类特征、操作系统硬件提取层模块类特征、虚拟机相关模块类特征、标准C运行库程序类特征、对象链接和嵌入相关模块类特征、操作系统进程状态支持模块类特征、操作系统32位外壳动态链接库文件类特征、地址动态链接库文件类特征;
所述导入表API特征为从所述导入表库中选取的函数特征。
16.根据权利要求13至15中任一项所述的方法,其中,将所述未知程序输入与其粗分类相对应的已生成的训练模型及相应的决策机中进行判断进一步包括:
将未知程序分别输入与其粗分类相对应的一个或多个已生成的训练模型及相应的决策机中进行判断;
根据预先设置的每种类行为特征分类在每个训练模型中的权重,将每个训练模型及相应的决策机对所述未知程序进行判断的结果进行加权计算以得到判断结果。
17.根据权利要求13至15中任一项所述的方法,其中,所述训练模型通过下面步骤得到:
提取海量程序,所述海量程序包括恶意程序和非恶意程序;
从每个程序提取类行为特征并对所提取的类行为特征进行分类;
根据所述分类的结果,将不同类别的类行为特征使用不同的决策机进行训练并生成用于识别恶意程序的训练模型或训练模型集合。
18.根据权利要求17所述的方法,其中,从每个程序提取类行为特征包括:
分析每个程序的程序文件并从所述程序文件中抽取预先定义的类行为特征;
根据所抽取的类行为特征生成特征向量,以及每个特征向量的黑白属性。
19.根据权利要求13至15中任一项所述的方法,其中,所述决策机包括:使用支持向量机的决策机或使用决策树的决策机进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410062777.0A CN103853979B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410062777.0A CN103853979B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
CN201010620202.8A CN102567661B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010620202.8A Division CN102567661B (zh) | 2010-11-29 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103853979A CN103853979A (zh) | 2014-06-11 |
CN103853979B true CN103853979B (zh) | 2018-01-16 |
Family
ID=50861623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410062777.0A Active CN103853979B (zh) | 2010-12-31 | 2010-12-31 | 基于机器学习的程序识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853979B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960154A (zh) * | 2017-03-30 | 2017-07-18 | 兴华永恒(北京)科技有限责任公司 | 一种基于决策树模型的恶意程序动态识别方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318158A (zh) * | 2014-07-09 | 2015-01-28 | 北京邮电大学 | 基于挖掘的网络智能平台恶意数据检测方法和装置 |
CN104331664B (zh) * | 2014-11-27 | 2017-08-08 | 南京大学 | 一种在取证场景下自动分析未知恶意程序特征的方法 |
CN105046154A (zh) * | 2015-08-13 | 2015-11-11 | 浪潮电子信息产业股份有限公司 | 一种webshell检测方法及装置 |
CN105630636A (zh) * | 2016-01-26 | 2016-06-01 | 陈谦 | 一种智能电子设备操作系统的动态恢复方法及其装置 |
CN105975861A (zh) * | 2016-05-27 | 2016-09-28 | 百度在线网络技术(北京)有限公司 | 应用检测方法和装置 |
CN106203117A (zh) * | 2016-07-12 | 2016-12-07 | 国家计算机网络与信息安全管理中心 | 一种基于机器学习的恶意移动应用程序判定方法 |
CN106228398A (zh) * | 2016-07-20 | 2016-12-14 | 武汉斗鱼网络科技有限公司 | 基于c4.5决策树算法的特定用户挖掘系统及其方法 |
CN106529220A (zh) * | 2016-11-17 | 2017-03-22 | 四川长虹电器股份有限公司 | iOS应用数据安防系统及方法 |
CN108376081A (zh) * | 2016-11-21 | 2018-08-07 | 北京大学(天津滨海)新代信息技术研究院 | 一种检测移动应用第三方库功能的方法 |
CN107103254B (zh) * | 2017-06-06 | 2021-06-29 | 北京奇虎科技有限公司 | 加密程序识别方法及装置、电子设备 |
CN107577943B (zh) * | 2017-09-08 | 2021-07-13 | 北京奇虎科技有限公司 | 基于机器学习的样本预测方法、装置及服务器 |
CN107679402A (zh) * | 2017-09-28 | 2018-02-09 | 四川长虹电器股份有限公司 | 恶意代码行为特征提取方法 |
CN107742079B (zh) * | 2017-10-18 | 2020-02-21 | 杭州安恒信息技术股份有限公司 | 恶意软件识别方法及系统 |
CN108108625B (zh) * | 2017-12-29 | 2022-01-07 | 安天科技集团股份有限公司 | 基于格式异构的溢出漏洞检测方法、系统及存储介质 |
CN109800581B (zh) * | 2018-12-29 | 2021-10-22 | 360企业安全技术(珠海)有限公司 | 软件行为的安全防护方法及装置、存储介质、计算机设备 |
CN109871686A (zh) * | 2019-01-31 | 2019-06-11 | 中国人民解放军战略支援部队信息工程大学 | 基于图标表示和软件行为一致性分析的恶意程序识别方法及装置 |
CN111382439A (zh) * | 2020-03-28 | 2020-07-07 | 玉溪师范学院 | 基于多模态深度学习的恶意软件检测方法 |
SG10202009754QA (en) | 2020-10-01 | 2020-11-27 | Flexxon Pte Ltd | Module and method for detecting malicious activities in a storage device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8490194B2 (en) * | 2006-01-31 | 2013-07-16 | Robert Moskovitch | Method and system for detecting malicious behavioral patterns in a computer, using machine learning |
WO2008055156A2 (en) * | 2006-10-30 | 2008-05-08 | The Trustees Of Columbia University In The City Of New York | Methods, media, and systems for detecting an anomalous sequence of function calls |
CN100489853C (zh) * | 2006-12-28 | 2009-05-20 | 腾讯科技(深圳)有限公司 | 一种快速查询黑白名单的系统及方法 |
CN101599113A (zh) * | 2009-06-17 | 2009-12-09 | 北京东方微点信息技术有限责任公司 | 驱动型恶意软件防御方法和装置 |
CN101593253B (zh) * | 2009-06-22 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 一种恶意程序判断方法及装置 |
CN102567661B (zh) * | 2010-12-31 | 2014-03-26 | 北京奇虎科技有限公司 | 基于机器学习的程序识别方法及装置 |
-
2010
- 2010-12-31 CN CN201410062777.0A patent/CN103853979B/zh active Active
Non-Patent Citations (3)
Title |
---|
基于向量空间模型的中文文本层次分类方法研究;肖雪 等;《计算机应用》;20060531;第26卷(第5期);论文摘要,论文第1节,第2.2节 * |
基于支持向量机的病毒程序检测方法;彭宇 等;《电子学报》;20050228;第33卷(第2期);论文第2节,第4节,第5节 * |
基于机器学习的恶意程序检测研究;毛明明 等;《软件导刊》;20100930;第9卷(第9期);第23页左栏最后1段至第24页左栏最后1段,图1 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960154A (zh) * | 2017-03-30 | 2017-07-18 | 兴华永恒(北京)科技有限责任公司 | 一种基于决策树模型的恶意程序动态识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103853979A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853979B (zh) | 基于机器学习的程序识别方法及装置 | |
CN102567661B (zh) | 基于机器学习的程序识别方法及装置 | |
CN103839006B (zh) | 基于机器学习的程序识别方法及装置 | |
CN102479298B (zh) | 基于机器学习的程序识别方法及装置 | |
Aslan et al. | A new malware classification framework based on deep learning algorithms | |
Kumar et al. | Malicious code detection based on image processing using deep learning | |
US9349006B2 (en) | Method and device for program identification based on machine learning | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
Alazab et al. | A hybrid wrapper-filter approach for malware detection | |
CN103942495B (zh) | 基于机器学习的程序识别方法及装置 | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
CN103870754A (zh) | 恶意程序识别及训练模型生成方法和装置 | |
CN107944274A (zh) | 一种基于宽度学习的Android平台恶意应用离线检测方法 | |
Zhong et al. | A malware classification method based on similarity of function structure | |
CN101685483B (zh) | 一种病毒特征码提取的方法和装置 | |
CN109614795A (zh) | 一种事件感知的安卓恶意软件检测方法 | |
CN107368856A (zh) | 恶意软件的聚类方法及装置、计算机装置及可读存储介质 | |
CN109829302A (zh) | Android恶意应用家族分类方法、装置与电子设备 | |
Kucuk et al. | Deceiving portable executable malware classifiers into targeted misclassification with practical adversarial examples | |
Zhang et al. | Based on multi-features and clustering ensemble method for automatic malware categorization | |
CN102542190B (zh) | 基于机器学习的程序识别方法及装置 | |
CN113901465A (zh) | 一种基于异质网络的Android恶意软件检测方法 | |
Al-Khshali et al. | Effect of PE file header features on accuracy | |
CN106973051A (zh) | 建立检测网络威胁模型的方法、装置、存储介质和处理器 | |
Kaur et al. | Unmasking Android obfuscation tools using spatial analysis |
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 |
Effective date of registration: 20220718 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. |
|
TR01 | Transfer of patent right |