CN113468524A - 基于rasp的机器学习模型安全检测方法 - Google Patents

基于rasp的机器学习模型安全检测方法 Download PDF

Info

Publication number
CN113468524A
CN113468524A CN202110557257.7A CN202110557257A CN113468524A CN 113468524 A CN113468524 A CN 113468524A CN 202110557257 A CN202110557257 A CN 202110557257A CN 113468524 A CN113468524 A CN 113468524A
Authority
CN
China
Prior art keywords
monitoring
machine learning
learning model
function
sensitive
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
Application number
CN202110557257.7A
Other languages
English (en)
Other versions
CN113468524B (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.)
Tianjin University of Technology
Original Assignee
Tianjin University of Technology
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 Tianjin University of Technology filed Critical Tianjin University of Technology
Priority to CN202110557257.7A priority Critical patent/CN113468524B/zh
Publication of CN113468524A publication Critical patent/CN113468524A/zh
Application granted granted Critical
Publication of CN113468524B publication Critical patent/CN113468524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种基于RASP的机器学习模型安全检测方法。其包括构建规则库;将规则表达式与待检测的机器学习模型文件进行匹配;构建监测环境;运行待检测的机器学习模型文件并检测;得到特征数据;建立恶意代码检测模型并输出预测结果;更新恶意代码样本和更新规则库等步骤。本发明效果:能够提供安全可信的机器学习模型运行环境,解决在运行机器学习模型文件时的数据安全问题,并能够在攻击发生前拦截,本方法适用性更广,实用性更强,效率更高,资源消耗小。

Description

基于RASP的机器学习模型安全检测方法
技术领域
本发明属于恶意代码检测技术领域,特别是涉及一种基于RASP的机器学习模型安全检测方法。
背景技术
随着时代的不断发展,越来越多的新技术融入了我们的日期生活,因此已经进入了大数据时代。目前大数据已在许多决策和预测领域中发挥了关键作用,例如推荐系统、业务分析等。收集、挖掘大数据以获取重要信息可以为世界经济和社会创造巨大价值,因此相关部门都对大数据的巨大潜力产生了兴趣。同时大数据也推动人工智能的逐渐成熟,因为大数据的一个最大应用就是用于人工智能,现在人工智能在应用上有很多突破。而在人工智能中最重要的是机器学习,但是至今尚未发现针对机器学习模型执行的安全防御研究。
目前的安全检测方法主要包括以下几种:
签名检测方法:目前大多数检测主要是基于特征码的检测技术、基于基因码的检测技术、启发式检测等,但它们都属于基于签名的检测。这类检测一般使用预先建立的数据库去扫描检测文件。
形式化验证检测方法:基于严格的数学基础,对计算机硬件和软件系统进行描述,开发和验证以证明程序是安全的。
机器学习的检测方法:主要分为动态和静态,静态的检测集中在从可移植的可执行文件(PE)的各种字段、段内容中获取特征。动态的检测依靠第三方的虚拟机沙箱的报告,即从报告中获取程序动态运行的信息,进而得到相关特征。
但这些传统的检测方法难以跟上时代的发展。攻击者可以很容易利用现有工具和框架躲避检测。
形式化验证检测方法过程过于复杂繁琐,且效率较低。
机器学习的检测方法很少有针对一些场景和使用环境。静态检测在实际使用中效果一般。动态的检测往往又依靠第三方的虚拟机沙箱,资源消耗极大。
发明内容
为了解决上述问题,本发明的目的在于提供了一种基于RASP的机器学习模型安全检测方法。
为了达到上述目的,本发明提供的基于RASP的机器学习模型安全检测方法包括按顺序进行的下列步骤:
1)收集已有的多个恶意代码样本,对所有恶意代码样本进行分类、对比并查找出相同的字符和数字,然后根据字符和数字出现的规律按照规则转换为规则表达式,之后将规则表达式进行存储而构建成用于静态检测机器学习模型文件的规则库;
2)将上述规则库中的规则表达式与待检测的机器学习模型文件的内容进行匹配,如果匹配成功,则判定该机器学习模型文件为恶意文件并结束运行,否则进入下一步骤;设置本步骤的目的是过滤掉一部分恶意文件,以避免浪费更多资源,由此完成静态检测过程;
3)建立监听集合,从上述多个恶意代码样本中提取出敏感函数和敏感类作为监听对象并记录到监听集合中;设置处理中心,选择检测方法以及各个危险等级的处理策略,并配置白名单或黑名单,建立参数规则库;创建监听函数,在监听集合中插入监听函数而形成监听点,设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件进行跟踪,获得的跟踪数据由处理中心记录到日志文件中,由此构建成监测环境;
4)运行待检测的机器学习模型文件并检测,如果待检测的机器学习模型文件中调用了上述监听集合中插入有监听函数的敏感函数或敏感类,监听函数将收集监听数据并转发至处理中心,由处理中心进行处理;
5)待检测的机器学习模型文件F运行结束后,对由步骤3)获得的跟踪数据和步骤4)获得的监听数据进行处理,得到特征数据;
6)建立恶意代码检测模型,然后将上述特征数据输入恶意代码检测模型中进行预测,最后由恶意代码检测模型输出预测结果;
7)如果恶意代码检测模型输出的预测结果是待检测的机器学习模型文件为恶意文件,更新恶意代码样本,同时更新规则库,结束运行。
在步骤1)中,所述收集已有的多个恶意代码样本,对所有恶意代码样本进行分类、对比并查找出相同的字符和数字,然后根据字符和数字出现的规律按照规则转换为规则表达式,之后将规则表达式进行存储而构建成用于静态检测机器学习模型文件的规则库的具体步骤如下:
101)收集已有的多个恶意代码样本Sm
102)将上述多个恶意代码样本Sm按代码相似或功能相似的原则进行分类,然后对比同一类中的恶意代码样本Sm,寻找出该类每个恶意代码样本Sm中都存在的一些字符和数字Lm或者在同一位置出现的有限的字符和数字Lm并记录;
103)根据字符和数字Lm出现的规律按照规则转换为程序可解析的规则表达式L_Exp;
104)将所有规则表达式L_Exp进行存储而构建成规则库DL
在步骤2)中,所述将上述规则库中的规则表达式与待检测的机器学习模型文件的内容进行匹配的具体步骤如下:
201)加载待检测的机器学习模型文件F;
202)从上述规则库DL中顺序加载一个规则表达式L_Exp;
203)使用该规则表达式L_Exp不回溯地搜索匹配待检测的机器学习模型文件F的整个内容;
204)如果待检测的机器学习模型文件F中存在符合该规则表达式L_Exp的逻辑内容,则结束匹配过程,否则重复步骤202)—步骤204),直到所有规则表达式L_Exp匹配一遍。
在步骤3)中,所述建立监听集合,从上述多个恶意代码样本中提取出敏感函数和敏感类作为监听对象并记录到监听集合中;设置处理中心,选择检测方法以及各个危险等级的处理策略,并配置白名单或黑名单,建立参数规则库;创建监听函数,在监听集合中插入监听函数而形成监听点,设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件进行跟踪,获得的跟踪数据由处理中心记录到日志文件中,由此构建成监测环境的具体步骤如下:
301)建立监听集合,从多个恶意代码样本Sm中提取出涉及网络、操作系统调用、操作系统命令执行和操作系统进程的所需监听的敏感函数和敏感类作为监听对象,然后找到监听对象所在的代码文件,逐条记录监听对象及对应的代码文件到监听集合中;
302)根据系统部署场景和安全要求等级,选择处理中心Server的检测方法以及各个危险等级的处理策略;如果选择名单检测方法,需配置白名单或黑名单,然后在上述监听集合中选择所需监听的敏感函数或敏感类,之后将敏感函数或敏感类名称放入白名单或黑名单中,并设置对应的危险等级和默认危险等级;如果选择规则检测方法,需建立参数规则库DP,然后通过对多个恶意代码样本Sm的分类和对比,将恶意代码样本Sm的参数出现的规律按照规则转换为参数规则表达式,之后将参数规则表达式存储到参数规则库DP中,并设置对应的危险等级;
303)创建监听函数L_f;
304)在监听集合中插入监听函数L_f而形成监听点;
305)设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件F进行跟踪,并将跟踪数据转发给处理中心Server,然后由处理中心Server记录到日志文件中。
在步骤304)中,所述在监听集合中插入监听函数L_f而形成监听点的具体步骤如下:
30401)从监听集合中获取一条记录;
30402)根据记录找到对应的代码文件,并判断该记录是敏感函数还是敏感类;
30403)如果是敏感函数,则在对应的代码文件中敏感函数的入口处和结束前插入监听函数L_f,然后将函数输入值或函数返回值、敏感函数和监听点名称、数据类型一起设置为监听函数L_f的输入;
30404)如果是敏感类,则在对应的代码文件的敏感类中具有最高优先级的函数中插入监听函数L_f,或在对应的代码文件的敏感类中各个函数入口处和结束前插入监听函数L_f,然后将函数输入值或函数返回值、敏感类和监听点名称、数据类型一起设置为监听函数L_f的输入;
30405)重复步骤30401)-步骤30404),直至将监听集合中所有记录都判断一遍。
在步骤4)中,所述运行待检测的机器学习模型文件并检测,如果待检测的机器学习模型文件F中调用了上述监听集合中插入有监听函数L_f的敏感函数或敏感类,监听函数L_f将收集监听数据并转发至处理中心,由处理中心进行处理的具体步骤如下:
401)当待检测的机器学习模型文件F运行中调用了监听集合中插入有监听函数L_f的敏感函数或敏感类时,监听函数L_f将收集监听数据;
402)监听函数L_f将收集到的监听数据发送给处理中心Server;
403)处理中心Server收到监听数据后,根据步骤3)中已选择的检测方法进行名单检测和规则检测;
404)在进行名单检测时,将监听数据中的敏感函数或敏感类名称与白名单或黑名单进行对比;在使用黑名单的情况下,如果敏感函数或敏感类名称出现在黑名单中,判定该机器学习模型文件F为恶意,返回对应的危险等级作为检测结果,否则返回默认危险等级,之后进行下一步骤;在使用白名单的情况下,如果敏感函数或敏感类名称出现在白名单中,判定该机器学习模型文件F为非恶意,直接进行下一步骤;
405)在进行规则检测时,从参数规则库DP中顺序加载一条参数规则表达式,然后将监听数据中敏感函数或敏感类的输入数据与参数规则表达式进行匹配,如果匹配成功,判定该机器学习模型文件F为恶意文件,返回对应的危险等级作为检测结果;否则加载下一条参数规则表达式,直至所有参数规则表达式匹配一遍;
406)根据上述检测结果及302)配置的各危险等级的处理策略进行处理;如危险等级为低危,则显示警告信息,如为高危,则发起中断程序请求;
407)处理中心Server记录此次收到的监听数据、检测过程、检测结果和处理结果到日志文件中;
408)如果收到中断程序请求,则保存当前信息,并结束运行。
在步骤5)中,所述待检测的机器学习模型文件运行结束后,对由步骤3)获得的跟踪数据和步骤4)获得的监听数据进行处理,得到特征数据的具体步骤如下:
501)读取处理中心Server日志文件中由步骤3)获得的跟踪数据和步骤4)获得的监听数据;
502)利用上述跟踪数据和监听数据计算出运行中所调用的各类敏感函数和敏感类的次数、运行时操作码集合的信息熵以及统计量、运行时操作码的所有参数的信息熵,得到特征数据XP
在步骤6)中,所述建立恶意代码检测模型的具体步骤如下:
601)收集多个良性代码样本Sb,并与多个恶意代码样本Sm共同组成样本集S;
602)利用样本集S创建数据集DS;
603)将数据集DS按比例随机分成训练集和测试集,利用训练集对多个机器学习模型进行训练,然后使用测试集测试各机器学习模型的效果,取测试结果最好即准确率最高的机器学习模型作为恶意代码检测模型ModelD并保存。
在步骤602)中,所述的利用样本集S创建数据集DS的具体步骤如下:
60201)从样本集S中选取一个样本并运行,记录运行时的跟踪数据和监听数据;
60202)利用上述跟踪数据和监听数据计算出运行中所调用的各类敏感函数和敏感类的次数、运行时操作码集合的信息熵以及统计量、运行时操作码的所有参数的信息熵,得到特征数据XP
60203)根据样本是属于恶意代码样本Sm还是属于良性代码样本Sb,对其特征数据XP添加标签,1为恶意,0为非恶意,由此获得一条训练数据XT
60204)重复步骤60201)—步骤60203),获得多条训练数据XT;由所有训练数据XT构成数据集DS。
本发明提供的基于RASP的机器学习模型安全检测方法具有如下有益效果:能够提供安全可信的机器学习模型运行环境,解决在运行机器学习模型文件时的数据安全问题,并能够在攻击发生前拦截,本方法适用性更广,实用性更强,效率更高,资源消耗小。
附图说明
图1为本发明提供的基于RASP的机器学习模型安全检测方法流程图。
图2为本发明中静态检测过程流程图。
图3为本发明中运行中检测过程流程图。
图4为本发明中创建数据集过程流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
如图1-图3所示,本发明提供的基于RASP的机器学习模型安全检测方法包括按顺序进行的下列步骤:
1)收集已有的多个恶意代码样本,对所有恶意代码样本进行分类、对比并查找出相同的字符和数字,然后根据字符和数字出现的规律按照规则转换为规则表达式,之后将规则表达式进行存储而构建成用于静态检测机器学习模型文件的规则库;
具体步骤如下:
101)收集已有的多个恶意代码样本Sm
102)将上述多个恶意代码样本Sm按代码相似或功能相似的原则进行分类,然后对比同一类中的恶意代码样本Sm,寻找出该类每个恶意代码样本Sm中都存在的一些字符和数字Lm或者在同一位置出现的有限的字符和数字Lm并记录;
103)根据字符和数字Lm出现的规律按照规则转换为程序可解析的规则表达式L_Exp;;
104)将所有规则表达式L_Exp进行存储而构建成规则库DL
2)将上述规则库中的规则表达式与待检测的机器学习模型文件的内容进行匹配,如果匹配成功,则判定该机器学习模型文件为恶意文件并结束运行,否则进入下一步骤;设置本步骤的目的是过滤掉一部分恶意文件,以避免浪费更多资源,由此完成静态检测过程;
如图2所示,具体步骤如下:
201)加载待检测的机器学习模型文件F;
202)从上述规则库DL中顺序加载一个规则表达式L_Exp;
203)使用该规则表达式L_Exp不回溯地搜索匹配待检测的机器学习模型文件F的整个内容;
204)如果待检测的机器学习模型文件F中存在符合该规则表达式L_Exp的逻辑内容,则结束匹配过程,否则重复步骤202)—步骤204),直到所有规则表达式L_Exp匹配一遍。
3)建立监听集合,从上述多个恶意代码样本中提取出敏感函数和敏感类作为监听对象并记录到监听集合中;设置处理中心,选择检测方法以及各个危险等级的处理策略,并配置白名单或黑名单,建立参数规则库;创建监听函数,在监听集合中插入监听函数而形成监听点,设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件进行跟踪,获得的跟踪数据由处理中心记录到日志文件中,由此构建成监测环境;
具体步骤如下:
301)建立监听集合,从多个恶意代码样本Sm中提取出涉及网络、操作系统调用、操作系统命令执行和操作系统进程的所需监听的敏感函数和敏感类作为监听对象,然后找到监听对象所在的代码文件,逐条记录监听对象及对应的代码文件到监听集合中;
302)根据系统部署场景和安全要求等级,选择处理中心Server的检测方法以及各个危险等级的处理策略;如果选择名单检测方法,需配置白名单或黑名单,然后在上述监听集合中选择所需监听的敏感函数或敏感类,之后将敏感函数或敏感类名称放入白名单或黑名单中,并设置对应的危险等级和默认危险等级;如果选择规则检测方法,需建立参数规则库DP,然后通过对多个恶意代码样本Sm的分类和对比,将恶意代码样本Sm的参数出现的规律按照规则转换为参数规则表达式,之后将参数规则表达式存储到参数规则库DP中,并设置对应的危险等级;
303)创建监听函数L_f;
304)在监听集合中插入监听函数L_f而形成监听点;
305)设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件F进行跟踪,并将跟踪数据转发给处理中心Server,然后由处理中心Server记录到日志文件中。
在步骤304)中,所述的在监听集合中插入监听函数L_f而形成监听点的具体步骤如下:
30401)从监听集合中获取一条记录;
30402)根据记录找到对应的代码文件,并判断该记录是敏感函数还是敏感类;
30403)如果是敏感函数,则在对应的代码文件中敏感函数的入口处和结束前插入监听函数L_f,然后将函数输入值或函数返回值、敏感函数和监听点名称、数据类型一起设置为监听函数L_f的输入;
30404)如果是敏感类,则在对应的代码文件的敏感类中具有最高优先级的函数中插入监听函数L_f,或在对应的代码文件的敏感类中各个函数入口处和结束前插入监听函数L_f,然后将函数输入值或函数返回值、敏感类和监听点名称、数据类型一起设置为监听函数L_f的输入;
30405)重复步骤30401)-步骤30404),直至将监听集合中所有记录都判断一遍。
4)运行待检测的机器学习模型文件F并检测,如图3所示,如果待检测的机器学习模型文件F中调用了上述监听集合中插入有监听函数L_f的敏感函数或敏感类,监听函数L_f将收集监听数据并转发至处理中心Server,由处理中心Server进行处理;
具体步骤如下:
401)当待检测的机器学习模型文件F运行中调用了监听集合中插入有监听函数L_f的敏感函数或敏感类时,监听函数L_f将收集监听数据;
402)监听函数L_f将收集到的监听数据发送给处理中心Server;
403)处理中心Server收到监听数据后,根据步骤3)中已选择的检测方法进行名单检测和规则检测;
404)在进行名单检测时,将监听数据中的敏感函数或敏感类名称与白名单或黑名单进行对比;在使用黑名单的情况下,如果敏感函数或敏感类名称出现在黑名单中,判定该机器学习模型文件F为恶意,返回对应的危险等级作为检测结果,否则返回默认危险等级,之后进行下一步骤;在使用白名单的情况下,如果敏感函数或敏感类名称出现在白名单中,判定该机器学习模型文件F为非恶意,直接进行下一步骤;
405)在进行规则检测时,从参数规则库DP中顺序加载一条参数规则表达式,然后将监听数据中敏感函数或敏感类的输入数据与参数规则表达式进行匹配,如果匹配成功,判定该机器学习模型文件F为恶意文件,返回对应的危险等级作为检测结果;否则加载下一条参数规则表达式,直至所有参数规则表达式匹配一遍;
406)根据上述检测结果及302)配置的各危险等级的处理策略进行处理;如危险等级为低危,则显示警告信息,如为高危,则发起中断程序请求;
407)处理中心Server记录此次收到的监听数据、检测过程、检测结果和处理结果到日志文件中;
408)如果收到中断程序请求,则保存当前信息,并结束运行;
5)待检测的机器学习模型文件F运行结束后,对由步骤3)获得的跟踪数据和步骤4)获得的监听数据进行处理,得到特征数据;
具体步骤如下:
501)读取处理中心Server日志文件中由步骤3)获得的跟踪数据和步骤4)获得的监听数据;
502)利用上述跟踪数据和监听数据计算出运行中所调用的各类敏感函数和敏感类的次数、运行时操作码集合的信息熵以及统计量、运行时操作码的所有参数的信息熵,得到特征数据XP
6)建立恶意代码检测模型ModelD,然后将上述特征数据XP输入恶意代码检测模型ModelD中进行预测,最后由恶意代码检测模型ModelD输出预测结果;
所述的建立恶意代码检测模型ModelD的具体步骤如下:
601)收集多个良性代码样本Sb,并与多个恶意代码样本Sm共同组成样本集S;
602)利用样本集S创建数据集DS;
603)将数据集DS按比例随机分成训练集和测试集,利用训练集对多个机器学习模型进行训练,然后使用测试集测试各机器学习模型的效果,取测试结果最好即准确率最高的机器学习模型作为恶意代码检测模型ModelD并保存。
在步骤602)中,所述的利用样本集S创建数据集DS的具体步骤如下:
60201)从样本集S中选取一个样本并运行,记录运行时的跟踪数据和监听数据;
60202)利用上述跟踪数据和监听数据计算出运行中所调用的各类敏感函数和敏感类的次数、运行时操作码集合的信息熵以及统计量、运行时操作码的所有参数的信息熵,得到特征数据XP
60203)根据样本是属于恶意代码样本Sm还是属于良性代码样本Sb,对其特征数据XP添加标签,1为恶意,0为非恶意,由此获得一条训练数据XT
60204)重复步骤60201)—步骤60203),获得多条训练数据XT;由所有训练数据XT构成数据集DS。
7)如果恶意代码检测模型ModelD输出的预测结果是待检测的机器学习模型文件F为恶意文件,更新恶意代码样本Sm,同时更新规则库DL,结束运行。

Claims (9)

1.一种基于RASP的机器学习模型安全检测方法,其特征在于:所述的基于RASP的机器学习模型安全检测方法包括按顺序进行的下列步骤:
1)收集已有的多个恶意代码样本,对所有恶意代码样本进行分类、对比并查找出相同的字符和数字,然后根据字符和数字出现的规律按照规则转换为规则表达式,之后将规则表达式进行存储而构建成用于静态检测机器学习模型文件的规则库;
2)将上述规则库中的规则表达式与待检测的机器学习模型文件的内容进行匹配,如果匹配成功,则判定该机器学习模型文件为恶意文件并结束运行,否则进入下一步骤;
3)建立监听集合,从上述多个恶意代码样本中提取出敏感函数和敏感类作为监听对象并记录到监听集合中;设置处理中心,选择检测方法以及各个危险等级的处理策略,并配置白名单或黑名单,建立参数规则库;创建监听函数,在监听集合中插入监听函数而形成监听点,设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件进行跟踪,获得的跟踪数据由处理中心记录到日志文件中,由此构建成监测环境;
4)运行待检测的机器学习模型文件并检测,如果待检测的机器学习模型文件中调用了上述监听集合中插入有监听函数的敏感函数或敏感类,监听函数将收集监听数据并转发至处理中心,由处理中心进行处理;
5)待检测的机器学习模型文件运行结束后,对由步骤3)获得的跟踪数据和步骤4)获得的监听数据进行处理,得到特征数据;
6)建立恶意代码检测模型,然后将上述特征数据输入恶意代码检测模型中进行预测,最后由恶意代码检测模型输出预测结果;
7)如果恶意代码检测模型输出的预测结果是待检测的机器学习模型文件为恶意文件,更新恶意代码样本,同时更新规则库,结束运行。
2.根据权利要求1所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤1)中,所述收集已有的多个恶意代码样本,对所有恶意代码样本进行分类、对比并查找出相同的字符和数字,然后根据字符和数字出现的规律按照规则转换为规则表达式,之后将规则表达式进行存储而构建成用于静态检测机器学习模型文件的规则库的具体步骤如下:
101)收集已有的多个恶意代码样本Sm
102)将上述多个恶意代码样本Sm按代码相似或功能相似的原则进行分类,然后对比同一类中的恶意代码样本Sm,寻找出该类每个恶意代码样本Sm中都存在的一些字符和数字Lm或者在同一位置出现的有限的字符和数字Lm并记录;
103)根据字符和数字Lm出现的规律按照规则转换为程序可解析的规则表达式L_Exp;
104)将所有规则表达式L_Exp进行存储而构建成规则库DL
3.根据权利要求1所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤2)中,所述将上述规则库中的规则表达式与待检测的机器学习模型文件的内容进行匹配的具体步骤如下:
201)加载待检测的机器学习模型文件F;
202)从上述规则库DL中顺序加载一个规则表达式L_Exp;
203)使用该规则表达式L_Exp不回溯地搜索匹配待检测的机器学习模型文件F的整个内容;
204)如果待检测的机器学习模型文件F中存在符合该规则表达式L_Exp的逻辑内容,则结束匹配过程,否则重复步骤202)—步骤204),直到所有规则表达式L_Exp匹配一遍。
4.根据权利要求1所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤3)中,所述建立监听集合,从上述多个恶意代码样本中提取出敏感函数和敏感类作为监听对象并记录到监听集合中;设置处理中心,选择检测方法以及各个危险等级的处理策略,并配置白名单或黑名单,建立参数规则库;创建监听函数,在监听集合中插入监听函数而形成监听点,设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件进行跟踪,获得的跟踪数据由处理中心记录到日志文件中,由此构建成监测环境的具体步骤如下:
301)建立监听集合,从多个恶意代码样本Sm中提取出涉及网络、操作系统调用、操作系统命令执行和操作系统进程的所需监听的敏感函数和敏感类作为监听对象,然后找到监听对象所在的代码文件,逐条记录监听对象及对应的代码文件到监听集合中;
302)根据系统部署场景和安全要求等级,选择处理中心Server的检测方法以及各个危险等级的处理策略;如果选择名单检测方法,需配置白名单或黑名单,然后在上述监听集合中选择所需监听的敏感函数或敏感类,之后将敏感函数或敏感类名称放入白名单或黑名单中,并设置对应的危险等级和默认危险等级;如果选择规则检测方法,需建立参数规则库DP,然后通过对多个恶意代码样本Sm的分类和对比,将恶意代码样本Sm的参数出现的规律按照规则转换为参数规则表达式,之后将参数规则表达式存储到参数规则库DP中,并设置对应的危险等级;
303)创建监听函数L_f;
304)在监听集合中插入监听函数L_f而形成监听点;
305)设置执行虚拟机的跟踪功能而对待检测的机器学习模型文件F进行跟踪,并将跟踪数据转发给处理中心Server,然后由处理中心Server记录到日志文件中。
5.根据权利要求4所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤304)中,所述在监听集合中插入监听函数L_f而形成监听点的具体步骤如下:
30401)从监听集合中获取一条记录;
30402)根据记录找到对应的代码文件,并判断该记录是敏感函数还是敏感类;
30403)如果是敏感函数,则在对应的代码文件中敏感函数的入口处和结束前插入监听函数L_f,然后将函数输入值或函数返回值、敏感函数和监听点名称、数据类型一起设置为监听函数L_f的输入;
30404)如果是敏感类,则在对应的代码文件的敏感类中具有最高优先级的函数中插入监听函数L_f,或在对应的代码文件的敏感类中各个函数入口处和结束前插入监听函数L_f,然后将函数输入值或函数返回值、敏感类和监听点名称、数据类型一起设置为监听函数L_f的输入;
30405)重复步骤30401)-步骤30404),直至将监听集合中所有记录都判断一遍。
6.根据权利要求1所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤4)中,所述运行待检测的机器学习模型文件并检测,如果待检测的机器学习模型文件F中调用了上述监听集合中插入有监听函数L_f的敏感函数或敏感类,监听函数L_f将收集监听数据并转发至处理中心,由处理中心进行处理的具体步骤如下:
401)当待检测的机器学习模型文件F运行中调用了监听集合中插入有监听函数L_f的敏感函数或敏感类时,监听函数L_f将收集监听数据;
402)监听函数L_f将收集到的监听数据发送给处理中心Server;
403)处理中心Server收到监听数据后,根据步骤3)中已选择的检测方法进行名单检测和规则检测;
404)在进行名单检测时,将监听数据中的敏感函数或敏感类名称与白名单或黑名单进行对比;在使用黑名单的情况下,如果敏感函数或敏感类名称出现在黑名单中,判定该机器学习模型文件F为恶意,返回对应的危险等级作为检测结果,否则返回默认危险等级,之后进行下一步骤;在使用白名单的情况下,如果敏感函数或敏感类名称出现在白名单中,判定该机器学习模型文件F为非恶意,直接进行下一步骤;
405)在进行规则检测时,从参数规则库DP中顺序加载一条参数规则表达式,然后将监听数据中敏感函数或敏感类的输入数据与参数规则表达式进行匹配,如果匹配成功,判定该机器学习模型文件F为恶意文件,返回对应的危险等级作为检测结果;否则加载下一条参数规则表达式,直至所有参数规则表达式匹配一遍;
406)根据上述检测结果及302)配置的各危险等级的处理策略进行处理;如危险等级为低危,则显示警告信息,如为高危,则发起中断程序请求;
407)处理中心Server记录此次收到的监听数据、检测过程、检测结果和处理结果到日志文件中;
408)如果收到中断程序请求,则保存当前信息,并结束运行。
7.根据权利要求1所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤5)中,所述待检测的机器学习模型文件运行结束后,对由步骤3)获得的跟踪数据和步骤4)获得的监听数据进行处理,得到特征数据的具体步骤如下:
501)读取处理中心Server日志文件中由步骤3)获得的跟踪数据和步骤4)获得的监听数据;
502)利用上述跟踪数据和监听数据计算出运行中所调用的各类敏感函数和敏感类的次数、运行时操作码集合的信息熵以及统计量、运行时操作码的所有参数的信息熵,得到特征数据XP
8.根据权利要求1所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤6)中,所述建立恶意代码检测模型的具体步骤如下:
601)收集多个良性代码样本Sb,并与多个恶意代码样本Sm共同组成样本集S;
602)利用样本集S创建数据集DS;
603)将数据集DS按比例随机分成训练集和测试集,利用训练集对多个机器学习模型进行训练,然后使用测试集测试各机器学习模型的效果,取测试结果最好即准确率最高的机器学习模型作为恶意代码检测模型ModelD并保存。
9.根据权利要求8所述的基于RASP的机器学习模型安全检测方法,其特征在于:在步骤602)中,所述的利用样本集S创建数据集DS的具体步骤如下:
60201)从样本集S中选取一个样本并运行,记录运行时的跟踪数据和监听数据;
60202)利用上述跟踪数据和监听数据计算出运行中所调用的各类敏感函数和敏感类的次数、运行时操作码集合的信息熵以及统计量、运行时操作码的所有参数的信息熵,得到特征数据XP
60203)根据样本是属于恶意代码样本Sm还是属于良性代码样本Sb,对其特征数据XP添加标签,1为恶意,0为非恶意,由此获得一条训练数据XT
60204)重复步骤60201)—步骤60203),获得多条训练数据XT;由所有训练数据XT构成数据集DS。
CN202110557257.7A 2021-05-21 2021-05-21 基于rasp的机器学习模型安全检测方法 Active CN113468524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110557257.7A CN113468524B (zh) 2021-05-21 2021-05-21 基于rasp的机器学习模型安全检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110557257.7A CN113468524B (zh) 2021-05-21 2021-05-21 基于rasp的机器学习模型安全检测方法

Publications (2)

Publication Number Publication Date
CN113468524A true CN113468524A (zh) 2021-10-01
CN113468524B CN113468524B (zh) 2022-05-24

Family

ID=77871027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110557257.7A Active CN113468524B (zh) 2021-05-21 2021-05-21 基于rasp的机器学习模型安全检测方法

Country Status (1)

Country Link
CN (1) CN113468524B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174192A (zh) * 2022-06-29 2022-10-11 中国电信股份有限公司 应用安全防护方法及装置、电子设备和存储介质
CN115309785A (zh) * 2022-08-08 2022-11-08 北京百度网讯科技有限公司 文件规则引擎库的生成、文件信息检测方法、装置及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法
CN102938040A (zh) * 2012-09-29 2013-02-20 中兴通讯股份有限公司 Android恶意应用程序检测方法、系统及设备
US20160246590A1 (en) * 2015-02-20 2016-08-25 Sounil Yu Priority Status of Security Patches to RASP-Secured Applications
CN108347430A (zh) * 2018-01-05 2018-07-31 国网山东省电力公司济宁供电公司 基于深度学习的网络入侵检测和漏洞扫描方法及装置
CN109240922A (zh) * 2018-08-30 2019-01-18 北京大学 基于RASP提取webshell软件基因进行webshell检测的方法
CN110263539A (zh) * 2019-05-15 2019-09-20 湖南警察学院 一种基于并行集成学习的安卓恶意应用检测方法及系统
CN110633567A (zh) * 2019-05-31 2019-12-31 天津理工大学 一种基于rasp的智能合约虚拟机漏洞检测系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法
CN102938040A (zh) * 2012-09-29 2013-02-20 中兴通讯股份有限公司 Android恶意应用程序检测方法、系统及设备
US20160246590A1 (en) * 2015-02-20 2016-08-25 Sounil Yu Priority Status of Security Patches to RASP-Secured Applications
CN108347430A (zh) * 2018-01-05 2018-07-31 国网山东省电力公司济宁供电公司 基于深度学习的网络入侵检测和漏洞扫描方法及装置
CN109240922A (zh) * 2018-08-30 2019-01-18 北京大学 基于RASP提取webshell软件基因进行webshell检测的方法
CN110263539A (zh) * 2019-05-15 2019-09-20 湖南警察学院 一种基于并行集成学习的安卓恶意应用检测方法及系统
CN110633567A (zh) * 2019-05-31 2019-12-31 天津理工大学 一种基于rasp的智能合约虚拟机漏洞检测系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王劲松: "基于IPv6的大规模网络异常流量检测系统设计", 《计算机工程》 *
邱若男: "基于RASP技术的Java Web框架漏洞通用检测与定位方案", 《武汉大学学报(理学版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174192A (zh) * 2022-06-29 2022-10-11 中国电信股份有限公司 应用安全防护方法及装置、电子设备和存储介质
CN115309785A (zh) * 2022-08-08 2022-11-08 北京百度网讯科技有限公司 文件规则引擎库的生成、文件信息检测方法、装置及设备

Also Published As

Publication number Publication date
CN113468524B (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
CN111639337B (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN111523117A (zh) 一种安卓恶意软件检测和恶意代码定位系统及方法
CN111460446B (zh) 基于模型的恶意文件检测方法及装置
CN109492395B (zh) 一种检测恶意程序的方法、装置及存储介质
CN113468524B (zh) 基于rasp的机器学习模型安全检测方法
CN111368289B (zh) 一种恶意软件检测方法和装置
CN111163065A (zh) 异常用户检测方法及装置
US20210334371A1 (en) Malicious File Detection Technology Based on Random Forest Algorithm
CN113360912A (zh) 恶意软件检测方法、装置、设备及存储介质
CN104866764B (zh) 一种基于对象引用图的Android手机恶意软件检测方法
Nguyen et al. Detecting repackaged android applications using perceptual hashing
CN112688966A (zh) webshell检测方法、装置、介质和设备
Bernardi et al. A fuzzy-based process mining approach for dynamic malware detection
CN113254935A (zh) 恶意文件识别方法、装置及存储介质
CN114626069A (zh) 威胁建模方法及装置
Zuo Defense of Computer Network Viruses Based on Data Mining Technology.
CN108959922B (zh) 一种基于贝叶斯网的恶意文档检测方法及装置
CN108229168B (zh) 一种嵌套类文件的启发式检测方法、系统及存储介质
CN110990834B (zh) 一种android恶意软件的静态检测方法、系统及介质
Vahedi et al. Cloud based malware detection through behavioral entropy
CN113935022A (zh) 一种同源样本捕获方法、装置、电子设备及存储介质
CN111190813B (zh) 基于自动化测试的安卓应用网络行为信息提取系统及方法
Nugraha et al. Malware Detection Using Decision Tree Algorithm Based on Memory Features Engineering
CN114491528A (zh) 恶意软件的检测方法、装置和设备
CN112597498A (zh) 一种webshell的检测方法、系统、装置及可读存储介质

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