CN111723371A - 构建恶意文件的检测模型以及检测恶意文件的方法 - Google Patents

构建恶意文件的检测模型以及检测恶意文件的方法 Download PDF

Info

Publication number
CN111723371A
CN111723371A CN202010572487.6A CN202010572487A CN111723371A CN 111723371 A CN111723371 A CN 111723371A CN 202010572487 A CN202010572487 A CN 202010572487A CN 111723371 A CN111723371 A CN 111723371A
Authority
CN
China
Prior art keywords
model
malicious
file
random forest
dynamic
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
CN202010572487.6A
Other languages
English (en)
Other versions
CN111723371B (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.)
Shanghai Douxiang Information Technology Co ltd
Original Assignee
Shanghai Douxiang Information Technology 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 Shanghai Douxiang Information Technology Co ltd filed Critical Shanghai Douxiang Information Technology Co ltd
Priority to CN202010572487.6A priority Critical patent/CN111723371B/zh
Publication of CN111723371A publication Critical patent/CN111723371A/zh
Application granted granted Critical
Publication of CN111723371B publication Critical patent/CN111723371B/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
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

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)
  • Storage Device Security (AREA)

Abstract

本发明涉及构建恶意文件的检测模型以及检测恶意文件的方法,在构建恶意文件的检测模型的方法中,通过建立用于检测恶意文件的静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型以形成融合模型,融合模型与malheur模型结合以形成恶意文件的检测模型。本发明中的恶意文件的检测模型能及时发现可疑恶意文件,从而规避了恶意文件造成的危害。在检测恶意文件的方法中,通过采用本发明的恶意文件的检测模型和第三方工具进行检测,在面对不断的推陈出新的恶意文件或恶意软件时,能及时发现以查杀,并且准确率得到提升,还可以适应线上检测环境。

Description

构建恶意文件的检测模型以及检测恶意文件的方法
技术领域
本发明涉及网络安全技术领域,特别涉及构建恶意文件的检测模型以及检测恶意文件的方法。
背景技术
近年来,互联网行业蓬勃发展,网络已经成为人们主要的信息获取方式,随着各种新网站的出现,网络信息成指数级增长,伴随出现的安全问题也愈发严重。一些恶意文件形成的恶意软件通过一些网站或邮件链接等渠道,安装在电脑上,但用户不知情,恶意软件会配合其它攻击手段,盗取用户信息,甚至公司的信息。
现有技术中,针对恶意软件虽然已经提出大量的查杀方案,但现有的查杀方案主要是根据恶意软件的代码特征建立病毒库,再以病毒库为参考对用户电子设备内存在的软件进行查杀。这样的方法对已知的病毒具有很好的查杀效果,但面对不断的推陈出新的恶意软件依然显得力不从心。需要不断的完善病毒库,以应对恶意软件的变化。这样的方式不仅对新出现的恶意软件查杀不及时,同时面对已知的恶意软件只是稍微改变部分代码或新增一个壳体也无法及时识别及查杀。另外,近年来虽然有关AI的算法有应用到恶意文件检测,但都存在着准确率较低或并不适合线上环境等问题。
因此有必要提供一种构建恶意文件的检测模型以及检测恶意文件的方法,以达到能及时发现可疑恶意文件的目的,从而规避恶意文件造成的危害。
发明内容
本发明的目的在于提供一种构建恶意文件的检测模型以及检测恶意文件的方法,以达到能及时发现可疑恶意文件的目的,从而规避恶意文件造成的危害。
为了解决现有技术中存在的问题,本发明提供了一种构建恶意文件的检测模型的方法,包括以下步骤:
获取多个正常样本和多个恶意样本,并分别标签;
过滤出恶意样本中未加壳的恶意样本;
建立静态模型,包括:获取多个所述正常样本和多个所述恶意样本的PE格式;根据获取的各样本的PE格式,将数据转化成多个特征向量;合并多个所述特征向量,并与标签关联;将随机森林模型和LightGBM模型调到最优参数;将与标签关联后的特征向量输入到随机森林模型和LightGBM模型中,分别建立用于静态检测恶意文件的随机森林模型和LightGBM模型;
建立动态模型,包括:把多个所述正常样本和多个所述恶意样本放入沙箱中,得到沙箱报告,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量;合并多个所述特征向量,并与标签关联;将随机森林模型和LightGBM模型调到最优参数,并建立重要特征随机森林模型;将与标签关联后的特征向量输入到随机森林模型、重要特征随机森林模型和LightGBM模型中,分别建立用于动态检测恶意文件的随机森林模型、重要特征随机森林模型和LightGBM模型;
融合所有静态模型和所有动态模型得到融合模型;
根据融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值计算得到最终恶意分值,根据最终恶意分值检测样本。
可选的,在所述构建恶意文件的检测模型的方法中,根据获取的各样本的PE格式,将数据转化成多个特征向量的方式如下:
特征一:统计sections的数量;
特征二:统计section大小等于0的数量;
特征三:统计section中包含读和执行权限的数量;
特征四:统计section中包含写权限的数量;
特征五:把section的name和size转化为向量;
特征六:把section的name和entropy转化为向量;
特征七:把entry转化为向量;
特征八:把section中的props属性转化为向量。
可选的,在所述构建恶意文件的检测模型的方法中,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量的方式如下:
特征一:统计各样本调用api总次数;
特征二:统计各样本调用api去重后的次数;
特征三:统计各样本tid的总次数和去重后的次数;tid的最小值、最大值、中位数以及方差;
特征四:统计各样本tid的0.2、0.4、0.6以及0.8分位数;
特征五:计算各样本tid的0.975分位减0.0125分位的值;
特征六:统计各样本index的最大值;
特征七:统计各样本中每个api的tid的个数和去重后的个数。
可选的,在所述构建恶意文件的检测模型的方法中,静态模型和动态模型中,合并多个所述特征向量,并与标签关联的关联方式如下:
通过将各样本的MD5与各样本合并后的特征向量组合,将各样本合并后的特征向量与其对应的标签关联。
可选的,在所述构建恶意文件的检测模型的方法中,建立重要特征随机森林模型的步骤包括:
由随机森林模型计算特征权重,将特征权重大于1的特征提取出来参与建立重要特征随机森林模型,以形成重要特征随机森林模型。
可选的,在所述构建恶意文件的检测模型的方法中,建立用于动态检测恶意文件的重要特征随机森林模型包括以下步骤:
获取沙箱报告中各样本关于api、tid、return_value以及index的重要特征向量;
合并多个所述重要特征向量,并与标签关联;
将与标签关联后的重要特征向量输入到重要特征随机森林模型中,建立用于动态检测恶意文件的重要特征随机森林模型。
可选的,在所述构建恶意文件的检测模型的方法中,静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型在建立模型时,均抽取正常样本和恶意样本总数的20%进行建立模型。
可选的,在所述构建恶意文件的检测模型的方法中,融合所有静态模型和所有动态模型得到融合模型包括以下步骤:
五个模型分别得出的恶意可疑分值分别乘以各自的权重得到一个合计恶意可疑分值。
可选的,在所述构建恶意文件的检测模型的方法中,得到最终恶意分值包括以下步骤:
由融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值分别乘以各自的权重得到最终恶意分值。
可选的,在所述构建恶意文件的检测模型的方法中,所述正常样本和所述恶意样本均包括exe文件类型的样本、dll文件类型的样本以及apk文件类型的样本。
本发明还提供了一种检测恶意文件的方法,采用上述构建恶意文件的检测模型的方法所构建的恶意文件的检测模型,包括以下步骤:
判断待检测文件是否带壳;
若不带壳则采用静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型以及malheur模型进行检测;根据融合模型得到静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型融合得到的合计恶意可疑分值;
若带壳则仅采用动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型以及malheur模型进行检测;根据融合模型得到动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型融合得到的合计恶意可疑分值;
最后根据融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值计算得到最终恶意分值,根据最终恶意分值判断待检测文件是否属于恶意文件。
可选的,在所述检测恶意文件的方法中,所述检测恶意文件的方法还包括以下检测方式:
查看clamav是否检出恶意情报,若有检出则为恶意文件;
查看yara是否检出恶意情报,若有检出则为恶意文件;
如果virustotal有返回结果,若返回结果中有7个及以上反病毒引擎,则视为恶意文件;
查看沙箱报告的可疑分数,若可疑分数>4,则视为恶意文件;
预设恶意软件经常出现的场景,并预设每个场景的权重,通过clamav扫描待检测文件,获取待检测文件调用系统的API,计算通过API合成的场景和权重得到恶意可疑分值,若分值>60,则视为恶意文件;
通过clamav扫描待检测文件中包含的敏感字符串,每条字符串对应一定的分数,若字符串分数总和>60,则视为恶意文件。
可选的,在所述检测恶意文件的方法中,若待检测文件在判断过程中至少有一种检测方式将其检测为恶意文件,则为恶意文件。
在本发明所提供的构建恶意文件的检测模型以及检测恶意文件的方法中,通过建立用于检测恶意文件的静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型以形成融合模型,融合模型与malheur模型结合以形成恶意文件的检测模型。本发明中的恶意文件的检测模型能及时发现可疑恶意文件,从而规避了恶意文件造成的危害。在检测恶意文件的方法中,通过采用本发明的恶意文件的检测模型和第三方工具进行检测,在面对不断的推陈出新的恶意文件或恶意软件时,能及时发现以查杀,并且准确率得到提升,还可以适应线上检测环境。
附图说明
图1为本发明实施例提供的构建恶意文件的检测模型的方法的流程图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
在下文中,术语“一”、“二”等用于在类似要素之间进行区分,且未必是用于描述特定次序或时间顺序。要理解,在适当情况下,如此使用的这些术语可替换。类似的,如果本文所述的方法包括一系列步骤,且本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
现有技术不仅对新出现的恶意软件查杀不及时,同时面对已知的恶意软件只是稍微改变部分代码或新增一个壳体也无法及时识别及查杀。并且,近年来虽然有关AI的算法有应用到恶意文件检测,但都存在着准确率较低或并不适合线上环境等问题。
因此有必要提供一种构建恶意文件的检测模型的方法,如图1所示,图1为本发明实施例提供的构建恶意文件的检测模型的方法的流程图,所述的方法包括以下步骤:
获取多个正常样本和多个恶意样本,并分别标签;
过滤出恶意样本中未加壳的恶意样本;
建立静态模型,包括:获取多个所述正常样本和多个所述恶意样本的PE格式;根据获取的各样本的PE格式,将数据转化成多个特征向量;合并多个所述特征向量,并与标签关联;将随机森林模型和LightGBM模型调到最优参数;将与标签关联后的特征向量输入到随机森林模型和LightGBM模型中,分别建立用于静态检测恶意文件的随机森林模型和LightGBM模型;
建立动态模型,包括:把多个所述正常样本和多个所述恶意样本放入沙箱中,得到沙箱报告,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量;合并多个所述特征向量,并与标签关联;将随机森林模型和LightGBM模型调到最优参数,并建立重要特征随机森林模型;将与标签关联后的特征向量输入到随机森林模型、重要特征随机森林模型和LightGBM模型中,分别建立用于动态检测恶意文件的随机森林模型、重要特征随机森林模型和LightGBM模型;
融合所有静态模型和所有动态模型得到融合模型;
根据融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值计算得到最终恶意分值,根据最终恶意分值检测样本。
本发明中构建恶意文件的检测模型的方法通过建立用于检测恶意文件的静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型以形成融合模型,融合模型与malheur模型结合以形成恶意文件的检测模型。本发明中的恶意文件的检测模型能及时发现可疑恶意文件,从而规避了恶意文件造成的危害。
具体的,所述正常样本和所述恶意样本均包括exe文件类型的样本、dll文件类型的样本以及apk文件类型的样本,若还有其他文件类型适用于本发明所提供的检测模型,也可以获取其他类型的样本参与建立模型。其中,恶意样本可以通过virusshare.com网站进行获取,正常样本需要通过搜集或者网上查询资料获取,如果正常样本采集过少,可以通过上采样/下采样来弥补,以获取足够多的样本参与建立模型。
进一步的,建立模型之前还需要对多个正常样本和多个恶意样本进行标签,以在任何情况下能区分出正常样本和恶意样本。接着,还需要过滤出恶意样本中未加壳的恶意样本,仅用正常样本和加壳的恶意样本参与建立模型,以提高建立模型的效率。
在本发明所提供的构建恶意文件的检测模型的方法中,可以采用python的模块包pefile获取多个所述正常样本和多个所述恶意样本的PE格式,每个样本的PE格式具有多种数据。
在建立静态模型的过程中,根据获取的各样本的PE格式,将每个样本的PE格式具有的多种数据转化成多个特征向量,方式如下:
特征一:统计sections的数量;
特征二:统计section大小等于0的数量;
特征三:统计section中包含读和执行权限的数量,例如:props中包含的MEM_READ/MEM_EXECUTE字段;
特征四:统计section中包含写权限的数量,例如:props中包含的MEM_WRITE字段;
特征五:把section的name和size转化为向量,例如转化方式可以为:首先把每个section中的name/size组成tuple类型,通过sklearn.feature_extraction.FeatureHasher,把参数input_type设置为"dict",与前面的tuple类型相对应,转化为50维度的向量;
特征六:把section的name和entropy转化为向量,例如转化方式可以为:首先把每个section中的name/entropy组成tuple类型,通过sklearn.feature_extraction.FeatureHasher,把参数input_type设置为"dict",与前面的tuple类型相对应,转化为50维度的向量;
特征七:把entry转化为向量,例如转化方式可以为:首先把每个entry中内容转化为字符串数组,通过sklearn.feature_extraction.FeatureHasher,把参数input_type设置为"string",转化为50维度的向量;
特征八:把section中的props属性转化为向量,例如转化方式可以为:取出entry中内容,根据该内容找出相应的section,把props内容通过sklearn.feature_extraction.FeatureHasher,把参数input_type设置为"string",转化为50维度的向量。
在建立动态模型的过程中,沙箱报告来源于沙箱,把所有样本放入沙箱sandbox中,获取每个样本的沙箱报告,并把沙箱报告存入elasticsearch中,从elasticsearch获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量的方式如下:
特征一:统计各样本调用api总次数;
特征二:统计各样本调用api去重后的次数;
特征三:统计各样本tid的总次数和去重后的次数;tid的最小值、最大值、中位数以及方差;
特征四:统计各样本tid的0.2、0.4、0.6以及0.8分位数;
特征五:计算各样本tid的0.975分位减0.0125分位的值;
特征六:统计各样本index的最大值;
特征七:统计各样本中每个api的tid的个数和去重后的个数。
进一步的,在静态模型和动态模型中,合并多个所述特征向量,并与标签关联的关联方式如下:
通过将各样本的MD5与各样本合并后的特征向量组合,将各样本合并后的特征向量与其对应的标签关联。从而明确各模型中的各样本属于正常样本还是恶意样本,用于后期判断各模型的准确率。
优选的,在静态模型和动态模型中,本发明还需要将随机森林模型和LightGBM模型调到最优参数,随机森林模型的参数包括:森林里树的个数(n_estimators)、每个决策树的随机选择的特征数目(max_features)以及树的最深深度(max_depth);LightGBM模型的参数包括:树的最大深度(max_depth)、叶子具有的最小记录数(min_data_in_leaf)以及正则化参数(lambda);调整随机森林模型的参数和LightGBM模型的参数,使随机森林模型和LightGBM模型准确率达到最高时,即最优参数。
进一步的,在所述构建恶意文件的检测模型的方法中,还需要建立重要特征随机森林模型,建立模型的步骤包括:
由随机森林模型计算特征权重,将特征权重大于1的特征提取出来参与建立重要特征随机森林模型,以形成重要特征随机森林模型。
接着,利用重要特征随机森林模型建立用于动态检测恶意文件的重要特征随机森林模型包括以下步骤:
获取沙箱报告中各样本关于api、tid、return_value以及index的重要特征向量;
合并多个所述重要特征向量,并与标签关联;
将与标签关联后的重要特征向量输入到重要特征随机森林模型中,建立用于动态检测恶意文件的重要特征随机森林模型。
优选的,静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型在建立模型时,均抽取正常样本和恶意样本总数的20%进行建立模型。
进一步的,根据实验,静态随机森林模型的准确率为0.9983,静态LightGBM模型的准确率为0.9760,动态随机森林模型的准确率为0.9936,动态重要特征随机森林模型的准确率为0.9942,动态LightGBM模型的准确率为0.9962。本发明将完成测试的所有模型保存,并把测试集的预测结果进行保存。
优选的,融合所有静态模型和所有动态模型得到融合模型包括以下步骤:
采用逻辑回归(logistic regression)将静态随机森林模型、静态LightGBM模型、动态随机森林模型(包含全部特征)、动态重要特征随机森林模型(仅包含重要特征)以及动态LightGBM模型在建立模型进行融合,其数据来源于参与建立模型的样本,这些样本通过MD5进行关联,在测试集上采用交叉验证。根据实验测试其平均准确率为0.99996。优选的,可以通过现有经验预设各模型的权重,使模型准确率达到最高,例如其权重可以为:
模型 权重(W)
动态LightGBM模型 4.8888
动态随机森林模型 3.1112
动态重要特征随机森林模型 3.5074
静态随机森林模型 2.6088
静态LightGBM模型 4.1011
截距 -8.1057
接着,五个模型分别得出的恶意可疑分值分别乘以各自的权重得到一个合计恶意可疑分值。
进一步的,Malheur模型是一个利用沙箱报告分析恶意软件的工具,建立用于检测恶意文件的malheur模型的方式如下:
首先取出elasticsearch中的样本的沙箱报告,从沙箱报告中提取各样本如下表中的信息,把提取的信息转化为md5,取前5个字符,并与下面表格中的前缀组成字符串,最终转化为数组,存入文本文件中。
Figure BDA0002550143920000101
Figure BDA0002550143920000111
接着,通过malheur模型将文本文件进行聚类,生成用于检测恶意文件的malheur模型并保存。优选的,malheur模型的判定方式为:如果未被检测出恶意软件,则返回的簇为rejected;否则会返回该样本所属的簇类,并包含该样本距离该簇中心的距离,但其距离<0.65,通过公式将距离转化为恶意可疑分值。
进一步的,在所述构建恶意文件的检测模型的方法中,得到最终恶意分值包括以下步骤:
由融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值分别乘以各自的权重得到最终恶意分值,例如融合模型的权重可以为0.75,malheur模型的权重可以为0.25。根据最终恶意分值检测样本的方式可以为:若最终恶意分值大于0.6,则视为恶意文本,反之视为正常文本。
本发明还提供了一种检测恶意文件的方法,采用上述构建恶意文件的检测模型的方法所构建的恶意文件的检测模型,包括以下步骤:
判断待检测文件是否带壳;
若不带壳则采用静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型以及malheur模型进行检测;根据融合模型得到静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型融合得到的合计恶意可疑分值;
若带壳则仅采用动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型以及malheur模型进行检测;根据融合模型得到动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型融合得到的合计恶意可疑分值;
最后根据融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值计算得到最终恶意分值,根据最终恶意分值判断待检测文件是否属于恶意文件。
具体的,判断待检测文件是否带壳;
不带壳则采用python的模块包pefile获取所述待检测文件的PE格式,并将PE格式中具有的多种数据转化成多个特征向量,合并多个所述特征向量,将合并的特征向量输入到静态随机森林模型和静态LightGBM模型进行检测得到检测结果;接着将所述待检测文件放入沙箱中,得到沙箱报告,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量,合并多个所述特征向量,将合并的特征向量输入到动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型进行检测得到检测结果。根据融合模型计算各检测结果以得到合计恶意可疑分值。
带壳则不用静态模型检测,只是将所述待检测文件放入沙箱中,得到沙箱报告,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量,合并多个所述特征向量,将合并的特征向量输入到动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型进行检测得到检测结果。根据融合模型计算各检测结果以得到合计恶意可疑分值。
进一步的,将沙箱报告中的数据按Malheur模型要求处理后输入Malheur模型,得到Malheur模型的恶意可疑分值。
接着,计算最终恶意分值,最终恶意分值=合计恶意可疑分值*0.75+Malheur模型的恶意可疑分值*0.25;
最后,若最终恶意分值大于0.6,则判定为恶意文本,反之判定为正常文本。
优选的,在所述检测恶意文件的方法中,所述检测恶意文件的方法还可以包括以下检测方式:
查看clamav是否检出恶意情报,若有检出则为恶意文件;
查看yara是否检出恶意情报,若有检出则为恶意文件;
如果virustotal有返回结果,若返回结果中有7个及以上反病毒引擎,则视为恶意文件;
查看沙箱报告的可疑分数,若可疑分数>4,则视为恶意文件;
预设恶意软件经常出现的场景,并预设每个场景的权重,通过clamav扫描待检测文件,获取待检测文件调用系统的API,计算通过API合成的场景和权重得到恶意可疑分值,若分值>60,则视为恶意文件;
其中,场景和权重可以如下表所示:
Figure BDA0002550143920000131
Figure BDA0002550143920000141
通过clamav扫描待检测文件中包含的敏感字符串,每条字符串对应一定的分数,若字符串分数总和>60,则视为恶意文件。
其中,其字符串规则如下表所示:
Figure BDA0002550143920000142
Figure BDA0002550143920000151
Figure BDA0002550143920000161
优选的,在所述检测恶意文件的方法中,待检测文本可以采用上述所有的检测方式,若待检测文件在判断过程中至少有一种检测方式将其检测为恶意文件,则为恶意文件。
综上,在本发明所提供的构建恶意文件的检测模型以及检测恶意文件的方法中,通过建立用于检测恶意文件的静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型以形成融合模型,融合模型与malheur模型结合以形成恶意文件的检测模型。本发明中的恶意文件的检测模型能及时发现可疑恶意文件,从而规避了恶意文件造成的危害。在检测恶意文件的方法中,通过采用本发明的恶意文件的检测模型和第三方工具进行检测,在面对不断的推陈出新的恶意文件或恶意软件时,能及时发现以查杀,并且准确率得到提升,还可以适应线上检测环境。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。

Claims (13)

1.一种构建恶意文件的检测模型的方法,其特征在于,包括以下步骤:
获取多个正常样本和多个恶意样本,并分别标签;
过滤出恶意样本中未加壳的恶意样本;
建立静态模型,包括:获取多个所述正常样本和多个所述恶意样本的PE格式;根据获取的各样本的PE格式,将数据转化成多个特征向量;合并多个所述特征向量,并与标签关联;将随机森林模型和LightGBM模型调到最优参数;将与标签关联后的特征向量输入到随机森林模型和LightGBM模型中,分别建立用于静态检测恶意文件的随机森林模型和LightGBM模型;
建立动态模型,包括:把多个所述正常样本和多个所述恶意样本放入沙箱中,得到沙箱报告,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量;合并多个所述特征向量,并与标签关联;将随机森林模型和LightGBM模型调到最优参数,并建立重要特征随机森林模型;将与标签关联后的特征向量输入到随机森林模型、重要特征随机森林模型和LightGBM模型中,分别建立用于动态检测恶意文件的随机森林模型、重要特征随机森林模型和LightGBM模型;
融合所有静态模型和所有动态模型得到融合模型;
根据融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值计算得到最终恶意分值,根据最终恶意分值检测样本。
2.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,根据获取的各样本的PE格式,将数据转化成多个特征向量的方式如下:
特征一:统计sections的数量;
特征二:统计section大小等于0的数量;
特征三:统计section中包含读和执行权限的数量;
特征四:统计section中包含写权限的数量;
特征五:把section的name和size转化为向量;
特征六:把section的name和entropy转化为向量;
特征七:把entry转化为向量;
特征八:把section中的props属性转化为向量。
3.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,获取沙箱报告中各样本关于api、tid、return_value以及index的特征向量的方式如下:
特征一:统计各样本调用api总次数;
特征二:统计各样本调用api去重后的次数;
特征三:统计各样本tid的总次数和去重后的次数;tid的最小值、最大值、中位数以及方差;
特征四:统计各样本tid的0.2、0.4、0.6以及0.8分位数;
特征五:计算各样本tid的0.975分位减0.0125分位的值;
特征六:统计各样本index的最大值;
特征七:统计各样本中每个api的tid的个数和去重后的个数。
4.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,静态模型和动态模型中,合并多个所述特征向量,并与标签关联的关联方式如下:
通过将各样本的MD5与各样本合并后的特征向量组合,将各样本合并后的特征向量与其对应的标签关联。
5.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,建立重要特征随机森林模型的步骤包括:
由随机森林模型计算特征权重,将特征权重大于1的特征提取出来参与建立重要特征随机森林模型,以形成重要特征随机森林模型。
6.如权利要求5所述的构建恶意文件的检测模型的方法,其特征在于,建立用于动态检测恶意文件的重要特征随机森林模型包括以下步骤:
获取沙箱报告中各样本关于api、tid、return_value以及index的重要特征向量;
合并多个所述重要特征向量,并与标签关联;
将与标签关联后的重要特征向量输入到重要特征随机森林模型中,建立用于动态检测恶意文件的重要特征随机森林模型。
7.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型在建立模型时,均抽取正常样本和恶意样本总数的20%进行建立模型。
8.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,融合所有静态模型和所有动态模型得到融合模型包括以下步骤:
五个模型分别得出的恶意可疑分值分别乘以各自的权重得到一个合计恶意可疑分值。
9.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,得到最终恶意分值包括以下步骤:
由融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值分别乘以各自的权重得到最终恶意分值。
10.如权利要求1所述的构建恶意文件的检测模型的方法,其特征在于,所述正常样本和所述恶意样本均包括exe文件类型的样本、dll文件类型的样本以及apk文件类型的样本。
11.一种检测恶意文件的方法,其特征在于,采用如权利要求1~10中任一项所述的构建恶意文件的检测模型的方法所构建的恶意文件的检测模型,包括以下步骤:
判断待检测文件是否带壳;
若不带壳则采用静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型以及malheur模型进行检测;根据融合模型得到静态随机森林模型、静态LightGBM模型、动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型融合得到的合计恶意可疑分值;
若带壳则仅采用动态随机森林模型、动态重要特征随机森林模型、动态LightGBM模型以及malheur模型进行检测;根据融合模型得到动态随机森林模型、动态重要特征随机森林模型以及动态LightGBM模型融合得到的合计恶意可疑分值;
最后根据融合模型得到的合计恶意可疑分值和malheur模型得到的恶意可疑分值计算得到最终恶意分值,根据最终恶意分值判断待检测文件是否属于恶意文件。
12.如权利要求11所述的检测恶意文件的方法,其特征在于,所述检测恶意文件的方法还包括以下检测方式:
查看clamav是否检出恶意情报,若有检出则为恶意文件;
查看yara是否检出恶意情报,若有检出则为恶意文件;
如果virustotal有返回结果,若返回结果中有7个及以上反病毒引擎,则视为恶意文件;
查看沙箱报告的可疑分数,若可疑分数>4,则视为恶意文件;
预设恶意软件经常出现的场景,并预设每个场景的权重,通过clamav扫描待检测文件,获取待检测文件调用系统的API,计算通过API合成的场景和权重得到恶意可疑分值,若分值>60,则视为恶意文件;
通过clamav扫描待检测文件中包含的敏感字符串,每条字符串对应一定的分数,若字符串分数总和>60,则视为恶意文件。
13.如权利要求11或12所述的检测恶意文件的方法,其特征在于,
若待检测文件在判断过程中至少有一种检测方式将其检测为恶意文件,则为恶意文件。
CN202010572487.6A 2020-06-22 2020-06-22 构建恶意文件的检测模型以及检测恶意文件的方法 Active CN111723371B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010572487.6A CN111723371B (zh) 2020-06-22 2020-06-22 构建恶意文件的检测模型以及检测恶意文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010572487.6A CN111723371B (zh) 2020-06-22 2020-06-22 构建恶意文件的检测模型以及检测恶意文件的方法

Publications (2)

Publication Number Publication Date
CN111723371A true CN111723371A (zh) 2020-09-29
CN111723371B CN111723371B (zh) 2024-02-20

Family

ID=72569872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010572487.6A Active CN111723371B (zh) 2020-06-22 2020-06-22 构建恶意文件的检测模型以及检测恶意文件的方法

Country Status (1)

Country Link
CN (1) CN111723371B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507331A (zh) * 2020-12-03 2021-03-16 北京微步在线科技有限公司 一种模型训练方法、文件识别方法及电子装置
CN112560020A (zh) * 2021-02-19 2021-03-26 鹏城实验室 威胁攻击检测方法、装置、终端设备以及存储介质
CN113378156A (zh) * 2021-07-01 2021-09-10 上海观安信息技术股份有限公司 一种基于api的恶意文件检测方法和系统
CN114510717A (zh) * 2022-01-25 2022-05-17 上海斗象信息科技有限公司 一种elf文件的检测方法、装置、存储介质
CN114579712A (zh) * 2022-05-05 2022-06-03 中科雨辰科技有限公司 基于动态模型的文本属性提取匹配方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663296A (zh) * 2012-03-31 2012-09-12 杭州安恒信息技术有限公司 面向网页JavaScript恶意代码的智能检测方法
CN108304720A (zh) * 2018-02-06 2018-07-20 恒安嘉新(北京)科技股份公司 一种基于机器学习的安卓恶意程序检测方法
CN108345794A (zh) * 2017-12-29 2018-07-31 北京物资学院 恶意软件的检测方法及装置
US20190114419A1 (en) * 2017-10-18 2019-04-18 AO Kaspersky Lab System and method detecting malicious files using machine learning
CN109753800A (zh) * 2019-01-02 2019-05-14 重庆邮电大学 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
CN110334510A (zh) * 2018-03-28 2019-10-15 蓝盾信息安全技术有限公司 一种基于随机森林算法的恶意文件检测技术
CN110502897A (zh) * 2018-05-16 2019-11-26 南京大学 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法
CN110795732A (zh) * 2019-10-10 2020-02-14 南京航空航天大学 基于SVM的Android移动网络终端恶意代码的动静结合检测方法
CN111222137A (zh) * 2018-11-26 2020-06-02 华为技术有限公司 一种程序分类模型训练方法、程序分类方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663296A (zh) * 2012-03-31 2012-09-12 杭州安恒信息技术有限公司 面向网页JavaScript恶意代码的智能检测方法
US20190114419A1 (en) * 2017-10-18 2019-04-18 AO Kaspersky Lab System and method detecting malicious files using machine learning
CN108345794A (zh) * 2017-12-29 2018-07-31 北京物资学院 恶意软件的检测方法及装置
CN108304720A (zh) * 2018-02-06 2018-07-20 恒安嘉新(北京)科技股份公司 一种基于机器学习的安卓恶意程序检测方法
CN110334510A (zh) * 2018-03-28 2019-10-15 蓝盾信息安全技术有限公司 一种基于随机森林算法的恶意文件检测技术
CN110502897A (zh) * 2018-05-16 2019-11-26 南京大学 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法
CN111222137A (zh) * 2018-11-26 2020-06-02 华为技术有限公司 一种程序分类模型训练方法、程序分类方法及装置
CN109753800A (zh) * 2019-01-02 2019-05-14 重庆邮电大学 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
CN110795732A (zh) * 2019-10-10 2020-02-14 南京航空航天大学 基于SVM的Android移动网络终端恶意代码的动静结合检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
田瑞凡 等;: "基于Android恶意软件检测技术的研究", 计算机与数字工程, vol. 46, no. 03, 20 March 2018 (2018-03-20), pages 556 - 560 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507331A (zh) * 2020-12-03 2021-03-16 北京微步在线科技有限公司 一种模型训练方法、文件识别方法及电子装置
CN112560020A (zh) * 2021-02-19 2021-03-26 鹏城实验室 威胁攻击检测方法、装置、终端设备以及存储介质
CN113378156A (zh) * 2021-07-01 2021-09-10 上海观安信息技术股份有限公司 一种基于api的恶意文件检测方法和系统
CN113378156B (zh) * 2021-07-01 2023-07-11 上海观安信息技术股份有限公司 一种基于api的恶意文件检测方法和系统
CN114510717A (zh) * 2022-01-25 2022-05-17 上海斗象信息科技有限公司 一种elf文件的检测方法、装置、存储介质
CN114579712A (zh) * 2022-05-05 2022-06-03 中科雨辰科技有限公司 基于动态模型的文本属性提取匹配方法
CN114579712B (zh) * 2022-05-05 2022-07-15 中科雨辰科技有限公司 基于动态模型的文本属性提取匹配方法

Also Published As

Publication number Publication date
CN111723371B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
US20210256127A1 (en) System and method for automated machine-learning, zero-day malware detection
CN111723371B (zh) 构建恶意文件的检测模型以及检测恶意文件的方法
US10817603B2 (en) Computer security system with malicious script document identification
US11463476B2 (en) Character string classification method and system, and character string classification device
JP5990284B2 (ja) キャラクター・ヒストグラムを用いるスパム検出のシステムおよび方法
CN106599686A (zh) 一种基于tlsh特征表示的恶意软件聚类方法
Ceschin et al. The need for speed: An analysis of brazilian malware classifiers
CN105224600B (zh) 一种样本相似度的检测方法及装置
CN107888606B (zh) 一种域名信誉度评估方法及系统
CN107204960A (zh) 网页识别方法及装置、服务器
CN113098887A (zh) 一种基于网站联合特征的钓鱼网站检测方法
CN112733146B (zh) 基于机器学习的渗透测试方法、装置、设备及存储介质
CN111740957A (zh) 一种FP-tree优化的XSS攻击自动检测方法
CN112487422B (zh) 一种恶意文档检测方法、装置、电子设备及存储介质
CN111988327B (zh) 威胁行为检测和模型建立方法、装置、电子设备及存储介质
CN111460803B (zh) 基于工业物联网设备Web管理页面的设备识别方法
US20230098919A1 (en) Malware attributes database and clustering
CN112347477A (zh) 家族变种恶意文件挖掘方法和装置
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
CN113378156B (zh) 一种基于api的恶意文件检测方法和系统
CN113361597B (zh) 一种url检测模型的训练方法、装置、电子设备和存储介质
CN114816518A (zh) 基于simhash的源代码中开源成分筛选识别方法及系统
CN114510717A (zh) 一种elf文件的检测方法、装置、存储介质
CN112597498A (zh) 一种webshell的检测方法、系统、装置及可读存储介质
CN113037714A (zh) 基于网络大数据的网络安全分析方法及区块链金融云系统

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