CN103927483B - 用于检测恶意程序的判定模型及恶意程序的检测方法 - Google Patents
用于检测恶意程序的判定模型及恶意程序的检测方法 Download PDFInfo
- Publication number
- CN103927483B CN103927483B CN201410137169.1A CN201410137169A CN103927483B CN 103927483 B CN103927483 B CN 103927483B CN 201410137169 A CN201410137169 A CN 201410137169A CN 103927483 B CN103927483 B CN 103927483B
- Authority
- CN
- China
- Prior art keywords
- abstract behavior
- sample set
- current
- api calls
- rogue program
- 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
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
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)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及用于检测恶意程序的判定模型及恶意程序的检测方法。所涉及的用于检测恶意程序的判定模型的建立方法包括规则生成和机器学习算法训练,其中规则生成是将由“恶意程序”样本集和“非恶意程序”样本集组成的训练样本集在API调用层、基本抽象行为层和业务抽象行为层生成判定规则集合,所述判定规则集合包括API调用层判定规则、基本抽象行为层判定规则和业务抽象行为层判定规则;机器学习算法训练是使用OCSVM算法训练模型,得到OCSVM算法模型。所涉及的恶意程序的检测方法是利用所涉及的判定模型对待检测程序进行判定。本发明的技术方案具有多层次和***化的特点,在各步骤有效控制误检,提高了恶意程序行为检测在实际计算机安全问题中应用的可行性。
Description
技术领域
本发明属于***安全与网络安全相关领域,更进一步涉及恶意程序自动化分析和检测的方法。本发明利用已知少量恶意程序采样样本,自动建立规则库和机器学习算法判定模块,以多层次和严格控制误检的判定流程对未知恶意程序进行高准确度检测。
背景技术
在恶意程序分析和检测领域,为了解决静态特征码更新速度慢、无法应对变种和混淆恶意程序的问题,可采用规则判定或模式识别算法完成恶意程序检测。
腾讯科技(深圳)有限公司的专利申请“恶意文件检测的方法及装置”(专利号:201210222822,申请日:2012.11.07)中恶意文件检测的方法及装置。该方法可包括:获取被检测文件的文件属性;将获取的文件属性与预设的恶意文件属性类别库进行匹配,验证文件属性是否异常;当文件属性异常时,判定被检测文件为恶意文件并告警。该方法针对恶意文件,根据被检测文件自身的文件属性信息并结合预先建立的恶意文件属性类别库,对被检测文件体进行启发式的判断,准确及时的识别出恶意文件。该方法的恶意程序检测逻辑基于文件静态分析和预设的恶意文件属性类别库,不仅难以应对数目庞大的变种恶意程序,而且无法检测未知恶意程序。
张一驰等人在文献“张一弛,庞建民,赵荣彩.基于证据推理的程序恶意性判定方法[J].软件学报,23(12),3149-3160(2012)”中提出了一种采用证据推理完成程序恶意性判定的方法,是一种使用规则判定程序恶意性的方法。虽然该方法采用模糊推理取得了对变种和混淆恶意程序的判定能力,但规则判定方法本身的限制,以及该方法中采用的7个程序特征过于简单,其泛化能力依然无法得到有效保证。
彭宏等人在文献“彭宏,王军.基于支持向量机的病毒程序检测方法[J].电子学报,33(2),276-278(2005).”中提出了一种使用支持向量机检测恶意程序的方法,该方法虽然能够通过使用机器学习算法提高对未知恶意程序的检测能力,但实验结果表明其误检率较高,难以满足实际应用中对低误检率的严格要求。
综上所述,单纯基于特征码、基于规则或基于机器学习算法的恶意程序方法均存在各自的不足,如泛化检测能力的不足和误检控制能力的不足等。
发明内容
针对现有技术的缺陷或不足,本发明的目的之一是提供一种用于监测恶意程序的判定模型。
为此,本发明提供的用于监测恶意程序的判定模型,该判定模型包括判定规则集合和训练模型,该该判定模型建立方法包括:
步骤一,判定规则生成:
将由“恶意程序”样本集和“非恶意程序”样本集组成的训练样本集在API调用层、基本抽象行为层和业务抽象行为层生成判定规则集合,所述判定规则集合包括API调用层判定规则、基本抽象行为层判定规则和业务抽象行为层判定规则:
(1.1)将训练样本集在API调用层生成API调用层判定规则,该API调用层判定规则包括API调用层独立规则、API调用层敏感规则和API调用层可疑规则:
①统计训练样本集中出现的API调用,得到所有出现过的API调用;
②针对每一个出现过的API调用,分别进行如下处理:
分别计算当前API调用在“恶意程序”样本集中出现的概率和“非恶意程序”样本集中出现的概率,并计算该API调用的误检风险比率:
当前API调用在“恶意程序”样本集中出现的概率=当前API调用在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前API调用在“非恶意程序”样本集中出现的概率=当前API调用在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前API调用的误检风险比率=当前API调用在“非恶意程序”样本集中出现的次数÷当前API调用在“恶意程序”样本集中出现的次数,
如当前API调用的误检风险比率为r1,且当前API调用在“恶意程序”样本集中出现的概率大于d1,则该当前API调用定义为API调用层独立规则,其中:0≤r1≤0.05,0.2≤d1≤0.4;
如当前API调用的误检风险比率为r2,且当前API调用在“恶意程序”样本集中出现的概率大于d2,则该当前API调用定义为API调用层敏感规则,其中:0≤r2≤0.05,0.15≤d2≤0.35;
如当前API调用的误检风险比率为r3,且当前API调用在“恶意程序”样本集中出现的概率大于d3,则该当前API调用定义为API调用层可疑规则,其中:0≤r3≤0.05,0.1≤d3≤0.3;
(1.2)将训练样本集在基本抽象行为层生成基本抽象行为层判定规则,该基本抽象行为层判定规则包括独立基本抽象行为判定规则、敏感基本抽象行为判定规则和可疑基本抽象行为判定规则:
①统计训练样本集中出现的基本抽象行为,得到所有出现过的基本抽象行为;
②针对每一个出现过的基本抽象行为分别进行如下处理:
分别计算当前基本抽象行为在“恶意程序”样本集中出现的概率和“非恶意程序”样本集中出现的概率,并计算该基本抽象行为的误检风险比率:
当前基本抽象行为在“恶意程序”样本集中出现的概率=当前基本抽象行为在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前基本抽象行为在“非恶意程序”样本集中出现的概率=当前基本抽象行为在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前基本抽象行为的误检风险比率=当前基本抽象行为在“非恶意程序”样本集中出现的次数÷当前基本抽象行为在“恶意程序”样本集中出现的次数,
如当前基本抽象行为的误检风险比率为r4,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d4,则该当前基本抽象行为定义为独立基本抽象行为判定规则,其中:0≤r4≤0.05,0.2≤d4≤0.4;
如当前基本抽象行为的误检风险比率为r5,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d5,则该当前基本抽象行为定义为敏感基本抽象行为判定规则,其中:0≤r5≤0.05,0.15≤d5≤0.35;
如当前基本抽象行为的误检风险比率为r6,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d6,则该当前基本抽象行为定义为可疑基本抽象行为判定规则,其中:0≤r6≤0.05,0.1≤d6≤0.3;
(1.3)将训练样本集在基本抽象行为层生成业务抽象行为层判定规则,该业务抽象行为层判定规则包括独立业务抽象行为判定规则、敏感业务抽象行为判定规则和可疑业务抽象行为判定规则:
①统计训练样本集中出现的业务抽象行为,得到所有出现过的业务抽象行为;
②针对每一个出现过的业务抽象行为分别进行如下处理:
分别计算当前业务抽象行为在“恶意程序”样本集和“非恶意程序”样本集中出现的概率,并计算该业务抽象行为的误检风险比率:
当前业务抽象行为在“恶意程序”样本集中出现的概率=当前业务抽象行为在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前业务抽象行为在“非恶意程序”样本集中出现的概率=当前业务抽象行为在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前业务抽象行为的误检风险比率=当前业务抽象行为在“非恶意程序”样本集中出现的次数÷当前业务抽象行为在“恶意程序”样本集中出现的次数,
如当前业务抽象行为的误检风险比率为r7,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d7,则该当前业务抽象行为定义为独立业务抽象行为判定规则,其中:0≤r7≤0.05,0.2≤d7≤0.4;
如当前业务抽象行为的误检风险比率为r8,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d8,则该当前业务抽象行为定义为敏感业务抽象行为判定规则,其中:0≤r8≤0.05,0.15≤d8≤0.35;
如当前业务抽象行为的误检风险比率为r9,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d9,则该当前业务抽象行为定义为可疑业务抽象行为判定规则,其中:0≤r9≤0.05,0.1≤d9≤0.3。
步骤二,机器学习算法训练
(2.1)样本整理:将训练样本集中的样本数据整理为OCSVM算法能够处理的特征串格式;
(2.2)参数选择:对OCSVM模型中RBF(径向基函数)核函数的核带宽进行参数选择,RBF核函数的核带宽选择范围是{2k},其中k的取值范围是[-m,m]内的整数,5≤m≤30;
(2.3)模型训练:基于步骤(2.2)选出的RBF核参数,将样本特征从原空间映射到特征空间,并使用超平面模型区分特征空间点与特征空间原点,通过解优化问题得到超平面与原点距离最大的位置,即确定参数ω和ρ,通过解优化得到超平面与原点距离最大的位置,得到函数(Ⅰ):
f(x)=sgn((ω·Φ(x))-ρ) (Ⅰ)
其中:
x是样本对应的特征向量,是OCSVM算法模型的输入,
Φ(x)是RBF核函数对应的映射函数,用于将原空间的特征点映射至高维的RKHS(再生核希尔伯特空间)中,
ω是OCSVM算法核心优化问题求解得到的参数,
ρ为RKHS中原点到决策平面的距离,用于确定正类与负类间决策边界的位置,其中正类指的是恶意程序类,负类指的是非恶意程序类;
优选的,上述建立方法还包括:
测试步骤一的误检率,若误检率不符合要求,则调整r1、r2、r3、r4、r5、r6、r7、r8、r9、d1、d2、d3、d4、d5、d6、d7、d8和d9的取值,执行步骤一,直至误检率符合要求。
优选的,上述建立方法还包括:
测试步骤二的误检率,若误检率不符合要求,则调整m的取值,执行步骤二,直至误检率符合要求。
优选的,使用2迭、5迭或10迭交叉验证流程,对OCSVM模型中RBF核函数的核带宽进行参数选择。
针对现有技术的缺陷或不足,本发明的另一目的在于提供一种恶意程序行为检测方法。
为此,本发明提供的恶意程序行为检测方法包括:
测试一,规则判定:
测试a、API调用层判定:
将待检测样本API调用层中的API调用与已经生成的API调用规则进行比对,至少满足以下任一条件则可以判为恶意程序:
(a1)待检测样本API调用层中的1个或以上的API调用属于独立API层判定规则;
(a2)待检测样本API调用层中的4个或以上的API调用属于敏感API层判定规则;
(a3)待检测样本API调用层中的8个或以上的API调用属于可疑API层判定规则;
测试b、基本抽象行为层判定:
将待检测样本的基本抽象行为与已经生成的基本抽象行为层规则进行比对,至少满足以下任一条件则可以判为恶意程序:
(b1)待检测样本的基本抽象行为中的1个或以上的基本抽象行为属于独立基本抽象行为判定规则;
(b2)待检测样本的基本抽象行为中的3个或以上的基本抽象行为属于敏感基本抽象行为判定规则;
(b3)待检测样本的基本抽象行为中的7个或以上的基本抽象行为属于可疑基本抽象行为判定规则;
测试c、业务抽象行为层判定:
将待检测样本的业务抽象行为与已经生成的业务抽象行为层规则进行比对,至少满足以下任一条件则可以判为恶意程序:
(c1)将待检测样本的业务抽象行为中的1个或以上的业务抽象行为属于独立业务抽象行为判定规则;
(c2)将待检测样本的业务抽象行为中的3个或以上的业务抽象行为属于敏感业务抽象行为判定规则;
(c3)将待检测样本的业务抽象行为中的5个或以上的业务抽象行为属于可疑业务抽象行为判定规则;
所述测试a、测试b和测试c三个测试中至少一个测试得出待检测样本为恶意程序,则测试一的测试结果为:待检测样本为恶意程序;
测试二,使用函数(Ⅰ)对待检测样本进行判定,f(x)>0时,则测试二的测试结果为:待检测样本属于恶意程序,f(x)<0时,则测试二的测试结果为:待检测样本属于非恶意程序;
如测试一的测试结果是待检测样本为恶意程序,不执行测试二,直接判定恶意;如测试一的测试结果是待检测样本为非恶意程序,则最终判定以测试二的测试结果为准。
进一步,如测试一和测试二的测试结果均是待检测样本为恶意程序,则判定待检测样本为恶意程序,否则判定待检测样本为非恶意程序。
优选的,按照测试c,测试b、测试a的顺序对待检测样本进行测试。
与现有技术相比,本发明具有以下优点:
第一,本发明包含了一个自动规则生成步骤,能够基于已标记的训练样本自动生成规则,不仅能够利用规则判定的高准确率,而且有效避免了人工指定规则的高人力耗费。此外,自动生成的规则是可解释的,在存在可利用专家知识的情况下,可以无缝结合自动规则生成和人工规则制定。
第二,本发明包含了一个单类统计机器学习步骤,能够从训练数据中自动学习恶意程序类的描绘模型用于后续的判定。目前相关研究虽然已经认识到机器学习在恶意分析中的作用,但是误检率高的问题始终没有得到有效的解决。本发明采用的单类机器学习能够有效控制误检,尤其在非正常样本难以有效采样的情况下能够取得较一般机器学习方法更好的效果。
第三,本发明在恶意程序的包含了一个多层恶意程序检测步骤,未知类别的样本首先经过规则的模块各层次的判定,如果均未判定成功,则使用机器学习算法判定。
综上,相对于现有恶意程序检测技术的单一检测方法,本发明中的多层次检测逻辑一方面能够有效利用规则***的高准确率,另一方面能够利用机器学习算法的泛化能力,故能够有效处理变种和未知恶意程序。
附图说明
图1为本发明结合自动规则生成与机器学习的恶意程序行为检测方法中规则生成模块的层次示意图;
图2本发明结合自动规则生成与机器学习的恶意程序行为检测方法中机器学习模块的流程图;
图3为本发明结合自动规则生成与机器学习的恶意程序行为检测方法中恶意程序判定阶段的流程图。
具体实施方式
本发明的API调用是指程序对操作***提供的API(ApplicationProgramming Interface,应用程序编程接口)的调用,是程序实现其功能的途径。
本发明的训练样本集可来源于计算机安全厂商、公开的恶意程序数据库(例如vxheaven.org等)、综合性软件下载网站(例如onlinedown.com等),自个人计算机中收集到的可执行文件也可以在使用反病毒引擎检测后作为训练样本。
参见201210408358.9中公开的方法,本发明所述的基本抽象行为层是对API调用层的第一次语义聚合所得结果,该层语义聚合以句柄为核心,将多个关联的API调用通过句柄聚合为一个基本抽象行为。该聚合过程以操作***中标记***资源的句柄为核心,将对同一句柄进行各种操作(包括打开、修改、删除、修改等)的一组API按照其功能构成单一行为,即基本抽象行为层在API调用层基础上按照句柄聚合一个或多个API函数调用,得到基本抽象行为。例如,对同一句柄操作的RegOpenKeyEx和RegSetValueEx函数,可以将其聚合为“注册表修改”这一基本抽象行为。
本发明所述的业务抽象行为层是对基本抽象行为层数据进行第二次语义聚合所得结果,该层语义聚合以***资源为核心,将多个关联的基本抽象行为通过***资源描述符(例如文件路径、注册表位置等)聚合为一个业务抽象行为。该聚合过程以各类***资源的描述符(例如文件路径、注册表路径、网络URL等)为核心,分析将整个程序运行期间对该***资源的操作,将符合各种已知程序行为模式的操作(例如设置自启动项、添加并启动***服务、压缩并发送文件到可移动磁盘、从互联网位置下载文件并执行等)的多个基本行为聚合为业务抽象行为。例如,对于同一个***进程的枚举、打开和远程线程创建者三个基本抽象行为,可以被聚合为一个“进程注入”业务抽象行为。
本发明的步骤一中对训练数据中各样本的API调用做全面统计,并以误检风险为指标自动将API调用函数归为独立判定规则、敏感规则、可疑规则,其他无法归入以上三类规则的,认为是无关规则,不参与后续模型的构建和检测。
考虑到在完整训练数据集上训练得到的模型可能出现严重的过拟合现象,导致机器学习模型失去泛化能力,无法有效处理测试阶段遇到的未知样本。因此使用2迭、5迭或10迭交叉验证流程,对OCSVM模型中RBF核函数的核带宽进行参数选择。RBF核函数的核带宽选择范围是{2k},其中k的取值范围是[-m,m]内的整数,m的初始值可设为10;使用2迭、5迭或10迭交叉验证的时机如下:
(1)数据质量较差,冗余数据等情况较明显时,采用2迭交叉验证;
(2)数据质量一般,有一定冗余数据时,采用5迭交叉验证;
(3)数据质量较好,冗余数据较少时,采用10迭交叉验证。
考虑到误检率的问题,根据实际误检率的需求,本发明的方案中对测试一和测试二的误检率进行调整优化,具体来讲:
采用在训练数据集上测试步骤一的误检率,若误检率不符合要求,则调整r1、r2、r3、r4、r5、r6、r7、r8、r9、d1、d2、d3、d4、d5、d6、d7、d8和d9的取值,执行步骤一,直至误检率符合要求。例如对误检率的要求为小于0.03,而当前误检率为0.04,不符合要求,则调整r1、r2、r3、r4、r5、r6、r7、r8、r9、d1、d2、d3、d4、d5、d6、d7、d8和d9的取值,以上各取值均以0.01为步长降低,然后执行步骤一,直至误检率符合要求,例如误检率小于0.03。
使用验证样本集计算性能,主要观察验证样本集上误检率是否符合要求,该要求由具体应用场景确定,例如要求误检率不高于0.03等。此处验证样本集指在训练阶段与训练数据没有重合的,用于验证训练阶段构成的模型是否符合要求。若不符合要求,则扩展参数选择中m的范围,以步长为5扩展,例如m=15、m=20等,重复步骤2a~2d,直至得到合适的模型。
同时考虑到误检率的问题,本发明的最终判定结果可依测试一和测试二的测试结果设定。本发明设计测试一和测试二的判定结果对程序的最终判定有两种方案,方案二较方案一能够取得更低的误检率,但检测率也会有所降低。如下:
方案一:如测试一检测出恶意,不执行测试二,直接判定恶意程序;如测试一未检测出恶意程序,则最终判定以测试二为准。
方案二:仅在测试一和测试二均判定为恶意的情况下,判定为恶意程序;其他情况均判定为非恶意程序。
本发明所述的OCSVM算法能够处理的特征串格式如布尔类型、数值类型和可枚举集合类型等。
以下是发明人提供的实施例,以对本发明的技术方案作进一步解释说明。
实施例1:
该实施例采用从VX-Heaven公共恶意程序数据库中收集的14863个恶意程序样本,和从原始Windows XP***中采集的2623个非恶意程序样本作为训练数据。此外从互联网上安全论坛等途径收集的1100个恶意程序和1100个非恶意程序作为测试数据。
该实施例中:
r1、r2、r3、r4、r5、r6、r7、r8、r9均等于0.005,
d1、d4、d7均等于0.4,
d2、d5、d8均等于0.35,
d3、d6、d9均等于0.3,
OCSVM算法中,采用RBF核函数核带宽为0.01。
OCSVM算法模型的相关参数(ω和ρ)是算法优化得到的结果,因优化算法的原因存在一些内在随机性,算法模型的性能由参数选择过程可以得到保证,因此确保参数选择过程的正确性即可确保优化完成后OCSVM模型参数的正确性。
参照图1-3的整体流程,对于以上训练数据和测试数据完成仿真实验,并记录检测性能。
实验方式采用标准的五迭交叉验证法,以估计检测方法的泛化性能。作为对比方法的是六个机器学***台是MATALB r2012b和weka3.7.10。
实验结果如表1所示。
表1仿真实验结果
从表1的仿真实验结果中可以看到,本发明在仿真实验中的检测率位列所有对比检测方法的第二名,仅次于支持向量机方法,而误检率显著低于所有对比检测方法。由此可以说明本发明不仅能够保证较高的检测率,同时能够有效控制误检率。
实施例2:
该实施例与实施例1的不同之处在于:检测流程中,若仅在规则和机器学习算法均判定为恶意程序时,使用与实施例1一致的数据、对比算法和实验流程,则仿真实验结果如表2所示:
表2仿真实验结果
从表2的仿真实验结果可以看到,在采用更加严格控制误检率检测流程的本发明取得了显著低于所有对比组算法的误检率,而检测率位于对比组算法中等水平。由此可进一步说明本发明在控制误检率和确保检测率方面的平衡是有效的。
Claims (7)
1.一种用于监测恶意程序的判定模型建立方法,其特征在于,该判定模型包括判定规则集合和训练模型,该判定模型建立方法包括:
步骤一,判定规则生成:
将由“恶意程序”样本集和“非恶意程序”样本集组成的训练样本集在API调用层、基本抽象行为层和业务抽象行为层生成判定规则集合,所述判定规则集合包括API调用层判定规则、基本抽象行为层判定规则和业务抽象行为层判定规则:
(1.1)将训练样本集在API调用层生成API调用层判定规则,该API调用层判定规则包括API调用层独立规则、API调用层敏感规则和API调用层可疑规则:
①统计训练样本集中出现的API调用,得到所有出现过的API调用;
②针对每一个出现过的API调用,分别进行如下处理:
分别计算当前API调用在“恶意程序”样本集中出现的概率和“非恶意程序”样本集中出现的概率,并计算该API调用的误检风险比率:
当前API调用在“恶意程序”样本集中出现的概率=当前API调用在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前API调用在“非恶意程序”样本集中出现的概率=当前API调用在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前API调用的误检风险比率=当前API调用在“非恶意程序”样本集中出现的次数÷当前API调用在“恶意程序”样本集中出现的次数,
如当前API调用的误检风险比率为r1,且当前API调用在“恶意程序”样本集中出现的概率大于d1,则该当前API调用定义为API调用层独立规则,其中:0≤r1≤0.05,0.2≤d1≤0.4;
如当前API调用的误检风险比率为r2,且当前API调用在“恶意程序”样本集中出现的概率大于d2,则该当前API调用定义为API调用层敏感规则,其中:0≤r2≤0.05,0.15≤d2≤0.35;
如当前API调用的误检风险比率为r3,且当前API调用在“恶意程序”样本集中出现的概率大于d3,则该当前API调用定义为API调用层可疑规则,其中:0≤r3≤0.05,0.1≤d3≤0.3;
(1.2)将训练样本集在基本抽象行为层生成基本抽象行为层判定规则,该基本抽象行为层判定规则包括独立基本抽象行为判定规则、敏感基本抽象行为判定规则和可疑基本抽象行为判定规则:
①统计训练样本集中出现的基本抽象行为,得到所有出现过的基本抽象行为;
②针对每一个出现过的基本抽象行为分别进行如下处理:
分别计算当前基本抽象行为在“恶意程序”样本集中出现的概率和“非恶意程序”样本集中出现的概率,并计算该基本抽象行为的误检风险比率:
当前基本抽象行为在“恶意程序”样本集中出现的概率=当前基本抽象行为在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前基本抽象行为在“非恶意程序”样本集中出现的概率=当前基本抽象行为在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前基本抽象行为的误检风险比率=当前基本抽象行为在“非恶意程序”样本集中出现的次数÷当前基本抽象行为在“恶意程序”样本集中出现的次数,
如当前基本抽象行为的误检风险比率为r4,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d4,则该当前基本抽象行为定义为独立基本抽象行为判定规则,其中:0≤r4≤0.05,0.2≤d4≤0.4;
如当前基本抽象行为的误检风险比率为r5,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d5,则该当前基本抽象行为定义为敏感基本抽象行为判定规则,其中:0≤r5≤0.05,0.15≤d5≤0.35;
如当前基本抽象行为的误检风险比率为r6,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d6,则该当前基本抽象行为定义为可疑基本抽象行为判定规则,其中:0≤r6≤0.05,0.1≤d6≤0.3;
(1.3)将训练样本集在业务抽象行为层生成业务抽象行为层判定规则,该业务抽象行为层判定规则包括独立业务抽象行为判定规则、敏感业务抽象行为判定规则和可疑业务抽象行为判定规则:
①统计训练样本集中出现的业务抽象行为,得到所有出现过的业务抽象行为;
②针对每一个出现过的业务抽象行为分别进行如下处理:
分别计算当前业务抽象行为在“恶意程序”样本集和“非恶意程序”样本集中出现的概率,并计算该业务抽象行为的误检风险比率:
当前业务抽象行为在“恶意程序”样本集中出现的概率=当前业务抽象行为在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前业务抽象行为在“非恶意程序”样本集中出现的概率=当前业务抽象行为在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前业务抽象行为的误检风险比率=当前业务抽象行为在“非恶意程序”样本集中出现的次数÷当前业务抽象行为在“恶意程序”样本集中出现的次数,
如当前业务抽象行为的误检风险比率为r7,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d7,则该当前业务抽象行为定义为独立业务抽象行为判定规则,其中:0≤r7≤0.05,0.2≤d7≤0.4;
如当前业务抽象行为的误检风险比率为r8,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d8,则该当前业务抽象行为定义为敏感业务抽象行为判定规则,其中:0≤r8≤0.05,0.15≤d8≤0.35;
如当前业务抽象行为的误检风险比率为r9,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d9,则该当前业务抽象行为定义为可疑业务抽象行为判定规则,其中:0≤r9≤0.05,0.1≤d9≤0.3;
步骤二,机器学习算法训练
(2.1)样本整理:将训练样本集中的样本数据整理为OCSVM算法能够处理的特征串格式;
(2.2)参数选择:对OCSVM模型中RBF核函数的核带宽进行参数选择,RBF核函数的核带宽选择范围是{2k},其中k的取值范围是[-m,m]内的整数,5≤m≤30;
(2.3)模型训练:基于步骤(2.2)选出的RBF核参数,将样本特征从原空间映射到特征空间,并使用超平面模型区分特征空间点与特征空间原点,通过解优化得到超平面与原点距离最大的位置,得到函数(Ⅰ):
f(x)=sgn((ω·Φ(x))-ρ) (Ⅰ)
其中:
x是样本对应的特征向量,
Φ(x)是RBF核函数对应的映射函数,用于将原空间的特征点映射至高维的RKHS中,
ω是OCSVM核心优化问题求解得到的参数,
ρ为RKHS中原点到决策平面的距离,用于确定正类与负类间决策边界的位置,其中正类指的是恶意程序类,负类指的是非恶意程序类。
2.如权利要求1所述的用于监测恶意程序的判定模型建立方法,其特征在于,所述判定模型建立方法包括:
测试步骤一的误检率,若误检率不符合要求,则调整r1、r2、r3、r4、r5、r6、r7、r8、r9、d1、d2、d3、d4、d5、d6、d7、d8和d9的取值,执行步骤一,直至误检率符合要求。
3.如权利要求1所述的用于监测恶意程序的判定模型建立方法,其特征在于,所述判定模型建立方法包括:
测试步骤二的误检率,若误检率不符合要求,则调整m的取值,执行步骤二,直至误检率符合要求。
4.如权利要求1所述的用于监测恶意程序的判定模型建立方法,其特征在于,使用2迭、5迭或10迭交叉验证流程,对OCSVM模型中RBF核函数的核带宽进行参数选择。
5.一种恶意程序行为检测方法,其特征在于,方法包括:
(0)建立判定模型:
所述判定模型包括判定规则集合和训练模型,该判定模型建立方法包括:
步骤一,判定规则生成:
将由“恶意程序”样本集和“非恶意程序”样本集组成的训练样本集在API调用层、基本抽象行为层和业务抽象行为层生成判定规则集合,所述判定规则集合包括API调用层判定规则、基本抽象行为层判定规则和业务抽象行为层判定规则:
(1.1)将训练样本集在API调用层生成API调用层判定规则,该API调用层判定规则包括API调用层独立规则、API调用层敏感规则和API调用层可疑规则:
①统计训练样本集中出现的API调用,得到所有出现过的API调用;
②针对每一个出现过的API调用,分别进行如下处理:
分别计算当前API调用在“恶意程序”样本集中出现的概率和“非恶意程序”样本集中出现的概率,并计算该API调用的误检风险比率:
当前API调用在“恶意程序”样本集中出现的概率=当前API调用在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前API调用在“非恶意程序”样本集中出现的概率=当前API调用在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前API调用的误检风险比率=当前API调用在“非恶意程序”样本集中出现的次数÷当前API调用在“恶意程序”样本集中出现的次数,
如当前API调用的误检风险比率为r1,且当前API调用在“恶意程序”样本集中出现的概率大于d1,则该当前API调用定义为API调用层独立规则,其中:0≤r1≤0.05,0.2≤d1≤0.4;
如当前API调用的误检风险比率为r2,且当前API调用在“恶意程序”样本集中出现的概率大于d2,则该当前API调用定义为API调用层敏感规则,其中:0≤r2≤0.05,0.15≤d2≤0.35;
如当前API调用的误检风险比率为r3,且当前API调用在“恶意程序”样本集中出现的概率大于d3,则该当前API调用定义为API调用层可疑规则,其中:0≤r3≤0.05,0.1≤d3≤0.3;
(1.2)将训练样本集在基本抽象行为层生成基本抽象行为层判定规则,该基本抽象行为层判定规则包括独立基本抽象行为判定规则、敏感基本抽象行为判定规则和可疑基本抽象行为判定规则:
①统计训练样本集中出现的基本抽象行为,得到所有出现过的基本抽象行为;
②针对每一个出现过的基本抽象行为分别进行如下处理:
分别计算当前基本抽象行为在“恶意程序”样本集中出现的概率和“非恶意程序”样本集中出现的概率,并计算该基本抽象行为的误检风险比率:
当前基本抽象行为在“恶意程序”样本集中出现的概率=当前基本抽象行为在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前基本抽象行为在“非恶意程序”样本集中出现的概率=当前基本抽象行为在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前基本抽象行为的误检风险比率=当前基本抽象行为在“非恶意程序”样本集中出现的次数÷当前基本抽象行为在“恶意程序”样本集中出现的次数,
如当前基本抽象行为的误检风险比率为r4,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d4,则该当前基本抽象行为定义为独立基本抽象行为判定规则,其中:0≤r4≤0.05,0.2≤d4≤0.4;
如当前基本抽象行为的误检风险比率为r5,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d5,则该当前基本抽象行为定义为敏感基本抽象行为判定规则,其中:0≤r5≤0.05,0.15≤d5≤0.35;
如当前基本抽象行为的误检风险比率为r6,且当前基本抽象行为在“恶意程序”样本集中出现的概率大于d6,则该当前基本抽象行为定义为可疑基本抽象行为判定规则,其中:0≤r6≤0.05,0.1≤d6≤0.3;
(1.3)将训练样本集在业务抽象行为层生成业务抽象行为层判定规则,该业务抽象行为层判定规则包括独立业务抽象行为判定规则、敏感业务抽象行为判定规则和可疑业务抽象行为判定规则:
①统计训练样本集中出现的业务抽象行为,得到所有出现过的业务抽象行为;
②针对每一个出现过的业务抽象行为分别进行如下处理:
分别计算当前业务抽象行为在“恶意程序”样本集和“非恶意程序”样本集中出现的概率,并计算该业务抽象行为的误检风险比率:
当前业务抽象行为在“恶意程序”样本集中出现的概率=当前业务抽象行为在“恶意程序”样本集中出现的次数÷“恶意程序”样本集中的总样本数,
当前业务抽象行为在“非恶意程序”样本集中出现的概率=当前业务抽象行为在“非恶意程序”样本集中出现的次数÷“非恶意程序”样本集中的总样本数,
当前业务抽象行为的误检风险比率=当前业务抽象行为在“非恶意程序”样本集中出现的次数÷当前业务抽象行为在“恶意程序”样本集中出现的次数,
如当前业务抽象行为的误检风险比率为r7,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d7,则该当前业务抽象行为定义为独立业务抽象行为判定规则,其中:0≤r7≤0.05,0.2≤d7≤0.4;
如当前业务抽象行为的误检风险比率为r8,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d8,则该当前业务抽象行为定义为敏感业务抽象行为判定规则,其中:0≤r8≤0.05,0.15≤d8≤0.35;
如当前业务抽象行为的误检风险比率为r9,且当前业务抽象行为在“恶意程序”样本集中出现的概率大于d9,则该当前业务抽象行为定义为可疑业务抽象行为判定规则,其中:0≤r9≤0.05,0.1≤d9≤0.3;
步骤二,机器学习算法训练
(2.1)样本整理:将训练样本集中的样本数据整理为OCSVM算法能够处理的特征串格式;
(2.2)参数选择:对OCSVM模型中RBF核函数的核带宽进行参数选择,RBF核函数的核带宽选择范围是{2k},其中k的取值范围是[-m,m]内的整数,5≤m≤30;
(2.3)模型训练:基于步骤(2.2)选出的RBF核参数,将样本特征从原空间映射到特征空间,并使用超平面模型区分特征空间点与特征空间原点,通过解优化得到超平面与原点距离最大的位置,得到函数(Ⅰ):
f(x)=sgn((ω·Φ(x))-ρ) (Ⅰ)
其中:
x是样本对应的特征向量,
Φ(x)是RBF核函数对应的映射函数,用于将原空间的特征点映射至高维的RKHS中,
ω是OCSVM核心优化问题求解得到的参数,
ρ为RKHS中原点到决策平面的距离,用于确定正类与负类间决策边界的位置,其中正类指的是恶意程序类,负类指的是非恶意程序类;
(1)测试一,规则判定:
测试a、API调用层判定:
将待检测样本API调用层中的API调用与已经生成的API调用规则进行比对,至少满足以下任一条件则可以判为恶意程序:
(a1)待检测样本API调用层中的1个或以上的API调用属于独立API层判定规则;
(a2)待检测样本API调用层中的4个或以上的API调用属于敏感API层判定规则;
(a3)待检测样本API调用层中的8个或以上的API调用属于可疑API层判定规则;
测试b、基本抽象行为层判定:
将待检测样本的基本抽象行为与已经生成的基本抽象行为层规则进行比对,至少满足以下任一条件则可以判为恶意程序:
(b1)待检测样本的基本抽象行为中的1个或以上的基本抽象行为属于独立基本抽象行为判定规则;
(b2)待检测样本的基本抽象行为中的3个或以上的基本抽象行为属于敏感基本抽象行为判定规则;
(b3)待检测样本的基本抽象行为中的7个或以上的基本抽象行为属于可疑基本抽象行为判定规则;
测试c、业务抽象行为层判定:
将待检测样本的业务抽象行为与已经生成的业务抽象行为层规则进行比对,至少满足以下任一条件则可以判为恶意程序:
(c1)将待检测样本的业务抽象行为中的1个或以上的业务抽象行为属于独立业务抽象行为判定规则;
(c2)将待检测样本的业务抽象行为中的3个或以上的业务抽象行为属于敏感业务抽象行为判定规则;
(c3)将待检测样本的业务抽象行为中的5个或以上的业务抽象行为属于可疑业务抽象行为判定规则;
所述测试a、测试b和测试c三个测试中至少一个测试得出待检测样本为恶意程序,则测试一的测试结果为:待检测样本为恶意程序;
(2)测试二,使用函数(Ⅰ)对待检测样本进行判定,f(x)>0时,则测试二的测试结果为:待检测样本属于恶意程序,f(x)<0时,则测试二的测试结果为:待检测样本属于非恶意程序;
(3)如测试一的测试结果是待检测样本为恶意程序,不执行测试二,直接判定待检测样本属于恶意程序;如测试一的测试结果是待检测样本为非恶意程序,则最终判定以测试二的测试结果为准。
6.一种恶意程序行为检测方法,其特征在于,权利要求5所述的恶意程序行为检测方法中步骤(3)用以下步骤代替:
如测试一和测试二的测试结果均是待检测样本为恶意程序,则判定待检测样本为恶意程序,否则判定待检测样本为非恶意程序。
7.如权利要求5或6所述的恶意程序行为检测方法,其特征在于,按照测试c,测试b、测试a的顺序对待检测样本进行测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410137169.1A CN103927483B (zh) | 2014-04-04 | 2014-04-04 | 用于检测恶意程序的判定模型及恶意程序的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410137169.1A CN103927483B (zh) | 2014-04-04 | 2014-04-04 | 用于检测恶意程序的判定模型及恶意程序的检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927483A CN103927483A (zh) | 2014-07-16 |
CN103927483B true CN103927483B (zh) | 2016-11-16 |
Family
ID=51145701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410137169.1A Active CN103927483B (zh) | 2014-04-04 | 2014-04-04 | 用于检测恶意程序的判定模型及恶意程序的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927483B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704103B (zh) | 2014-11-26 | 2017-05-10 | 中国科学院沈阳自动化研究所 | 基于OCSVM双轮廓模型的Modbus TCP通信行为异常检测方法 |
CN104657662B (zh) * | 2015-01-26 | 2017-11-03 | 安一恒通(北京)科技有限公司 | 用于检测感染型病毒的方法及装置 |
CN105446741B (zh) * | 2015-12-10 | 2018-09-28 | 北京邮电大学 | 一种基于api比对的移动应用程序辨识方法 |
CN107229849A (zh) * | 2016-03-24 | 2017-10-03 | 全球能源互联网研究院 | 面向电力信息内外网边界的数据库用户行为安全审计方法 |
KR101842267B1 (ko) * | 2016-08-16 | 2018-03-27 | 단국대학교 산학협력단 | Mld를 이용한 소프트웨어 분류 장치 및 그 방법 |
CN106529293B (zh) * | 2016-11-09 | 2019-11-05 | 东巽科技(北京)有限公司 | 一种用于恶意软件检测的样本类别判定方法 |
CN108509796B (zh) * | 2017-02-24 | 2022-02-11 | ***通信集团公司 | 一种风险性的检测方法及服务器 |
CN107729754B (zh) * | 2017-09-25 | 2020-04-14 | 暨南大学 | 基于API特征的Android恶意软件检测方法 |
CN107508844A (zh) * | 2017-10-23 | 2017-12-22 | 山东浪潮云服务信息科技有限公司 | 一种访问请求验证方法、装置及*** |
CN108399336B (zh) * | 2018-02-11 | 2020-08-28 | 侯殿君 | 一种安卓应用恶意行为的检测方法及装置 |
US11899763B2 (en) | 2018-09-17 | 2024-02-13 | Microsoft Technology Licensing, Llc | Supervised learning system for identity compromise risk computation |
CN110362995B (zh) * | 2019-05-31 | 2022-12-02 | 电子科技大学成都学院 | 一种基于逆向与机器学习的恶意软件检测及分析*** |
CN110611675A (zh) * | 2019-09-20 | 2019-12-24 | 哈尔滨安天科技集团股份有限公司 | 向量级检测规则生成方法、装置、电子设备及存储介质 |
CN111901347B (zh) * | 2020-07-29 | 2022-12-06 | 南方电网科学研究院有限责任公司 | 一种零信任下的动态身份认证方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936910A (zh) * | 2005-11-16 | 2007-03-28 | 白杰 | 未知病毒程序的识别及清除方法 |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
-
2014
- 2014-04-04 CN CN201410137169.1A patent/CN103927483B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936910A (zh) * | 2005-11-16 | 2007-03-28 | 白杰 | 未知病毒程序的识别及清除方法 |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
Non-Patent Citations (1)
Title |
---|
AdaBoost恶意程序行为检测新算法;曹莹等;《西安电子科技大学学报》;20131231;第40卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103927483A (zh) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103927483B (zh) | 用于检测恶意程序的判定模型及恶意程序的检测方法 | |
Xie et al. | Deephunter: a coverage-guided fuzz testing framework for deep neural networks | |
CN107784312B (zh) | 机器学习模型训练方法及装置 | |
CN109922032B (zh) | 用于确定登录账户的风险的方法、装置、设备及存储介质 | |
CN105989283B (zh) | 一种识别病毒变种的方法及装置 | |
CN103473506B (zh) | 用于识别恶意apk文件的方法和装置 | |
CN108200030A (zh) | 恶意流量的检测方法、***、装置及计算机可读存储介质 | |
CN110442712B (zh) | 风险的确定方法、装置、服务器和文本审理*** | |
Gálvez et al. | Less is More: A privacy-respecting Android malware classifier using federated learning | |
US11019099B2 (en) | Method of application malware detection based on dynamic API extraction, and readable medium and apparatus for performing the method | |
CN111931047B (zh) | 基于人工智能的黑产账号检测方法及相关装置 | |
CN106570399A (zh) | 一种跨App组件间隐私泄露的检测方法 | |
Jie et al. | Survey on software vulnerability analysis method based on machine learning | |
CN108985061A (zh) | 一种基于模型融合的webshell检测方法 | |
Backes et al. | LUNA: quantifying and leveraging uncertainty in android malware analysis through Bayesian machine learning | |
CN109271762A (zh) | 基于滑块验证码的用户认证方法及装置 | |
US20230138180A1 (en) | Systems and methods for generating and executing a test case plan for a software product | |
CN106411635A (zh) | 一种实时协议的形式化分析及验证方法 | |
CN110457220A (zh) | 基于安卓***的模拟器检测方法、智能终端及存储介质 | |
Chen et al. | Fix the leaking tap: A survey of Trigger-Action Programming (TAP) security issues, detection techniques and solutions | |
WO2020192179A1 (zh) | 一种基于iOS应用的安全检测方法、装置及*** | |
JP2017068293A (ja) | テストdbデータ生成方法及び装置 | |
CN112783513B (zh) | 一种代码风险检查方法、装置及设备 | |
CN114462040A (zh) | 一种恶意软件检测模型训练、恶意软件检测方法及装置 | |
CN109299592A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210730 Address after: 400031 unit 1, building 1, phase 3, R & D building, Xiyong micro power park, Shapingba District, Chongqing Patentee after: Chongqing Institute of integrated circuit innovation Xi'an University of Electronic Science and technology Address before: 710071 No. 2 Taibai South Road, Shaanxi, Xi'an Patentee before: XIDIAN University |