CN110362996B - 一种离线检测PowerShell恶意软件的方法与系统 - Google Patents

一种离线检测PowerShell恶意软件的方法与系统 Download PDF

Info

Publication number
CN110362996B
CN110362996B CN201910478849.2A CN201910478849A CN110362996B CN 110362996 B CN110362996 B CN 110362996B CN 201910478849 A CN201910478849 A CN 201910478849A CN 110362996 B CN110362996 B CN 110362996B
Authority
CN
China
Prior art keywords
powershell
software
feature
training
detection
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
Application number
CN201910478849.2A
Other languages
English (en)
Other versions
CN110362996A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201910478849.2A priority Critical patent/CN110362996B/zh
Publication of CN110362996A publication Critical patent/CN110362996A/zh
Application granted granted Critical
Publication of CN110362996B publication Critical patent/CN110362996B/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种离线的PowerShell恶意软件检测方法与系统。该方法包括的步骤有:利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除;提取PowerShell软件的统计特征、结构特征及行为特征作为基础特征;利用距离相关系数对基础特征进行筛选,得到关键特征;利用关键特征训练基于多变量决策树的随机森林检测模型MRF,用于检测PowerShell恶意软件;利用训练好的MRF离线检测PowerShell软件是否恶意,输出检测结果。该系统包括数据预处理模块、特征提取模块、MRF模块、模型训练模块、外部接口调用模块。本发明通过训练基于多变量决策树的随机森林检测模型MRF,实现对PowerShell恶意软件的离线检测。

Description

一种离线检测PowerShell恶意软件的方法与系统
技术领域
本发明涉及计算机终端安全领域及网络空间安全领域,可用于核查取证等领域,具体涉及一种离线检测PowerShell恶意软件的方法与系统。
背景技术
安全领域攻防博弈至今,恶意软件制造者越来越趋向于利用目标计算机中已有的工具,PowerShell是其中最具代表性的一个。PowerShell是微软于2006年引入的一款基于.NET框架的脚本语言和命令行shell,2007年发布第一个版本,2009年发行2.0版本时微软将其默认安装于Windows 7和Windows Server 2008R2,从此开始,PowerShell在其后的各Windows操作系统版本中均默认安装,2016年微软宣布PowerShell面向Linux和macOS操作系统开源,使得管理员可用一种语言管理不同设备。PowerShell的功能十分强大,包括:直接调用.NET和Windows API、不将代码写入磁盘而直接运行于内存、从另一系统下载代码并执行、对系统函数包括windows管理规范(WMI)和组件对象模块(COM)的完全访问。
上述功能在方便系统管理员使用的同时,也拓宽了网络犯罪人员的攻击面。无论在普通网络犯罪或高级可持续性威胁攻击活动中都频繁见其身影。普通网络犯罪中PowerShell恶意软件涉及的方面十分广泛,包括窃取信息、金融木马、勒索软件、挖矿软件、下载器等。定向攻击中,攻击者趋向于利用PowerShell下载payload、隐蔽横向移动、实现后门木马等,根据ATT&CK数据显示,截止2018年全球共78个攻击组织中,利用过PowerShell实施攻击活动的为23个,约占总数的41%;国内方面,综合腾讯御见威胁情报中心与360天眼实验室的年度威胁报告,2017年及2018年针对中国的活跃APT组织共7个,其中5个组织将其部分攻击模块用PowerShell恶意软件替换。
PowerShell恶意软件作为一种无文件恶意软件,不像传统恶意软件那样将恶意代码写入磁盘,因此它不会留下任何直接存在的痕迹,传统防病毒安全产品针对磁盘静态文件的检测方式(例如基于规则库的检测方式)几乎完全失效,虽然他们也提出一些方式在PowerShell运行时监测其行为,但是这种方法不适用于离线PowerShell恶意软件检测;PowerShell恶意软件作为一种脚本文件,他对攻击者而言方便易用、隐秘高效、易混淆、难检测、难归因,通常核查取证及安全相关人员通过人工分析样本、针对性去除混淆后根据其经验判断该样本的恶意性,由于近几年的PowerShell恶意软件样本量急剧增长、混淆方式也更多样化,基于人工分析的PowerShell恶意软件检测方式已不能满足需求。
发明内容
针对上述现状与存在问题,本发明提供一种离线检测PowerShell恶意软件的方法与系统,通过训练基于多变量决策树的随机森林检测模型MRF(Multivariable RandomForest),实现对PowerShell恶意软件的离线检测。
为实现上述目的,本发明采用的技术方案如下:
一种离线检测PowerShell恶意软件的方法,包括以下步骤:
利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除;
提取PowerShell软件的统计特征、结构特征及行为特征作为基础特征;
利用距离相关系数对基础特征进行筛选,得到关键特征;
利用关键特征训练基于多变量决策树的随机森林检测模型MRF,用于检测PowerShell恶意软件;
利用训练好的MRF离线检测PowerShell软件是否恶意,输出检测结果。
进一步地,利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除,包括以下步骤:
去除PowerShell软件中存在的base64、ASCII、二进制、八进制、十进制及十六进制编码混淆;
去除PowerShell软件中存在的字符串分割、字符串重排和字符串反序混淆;
去除PowerShell软件中的抽象语法树混淆;
去除PowerShell软件中存在的赋值语句重命名、类型描述及类型强制转换的基于抽象语法树的混淆;
去除抽象语法树中分词存在的分割、重排、换行、喷射、随机大小写、随机空格和删除注释混淆。
进一步地,提取PowerShell软件的结构特征包括:构建PowerShell软件代码的抽象语法树,记录该抽象语法树的深度、宽度和节点个数,形成结构特征。
进一步地,提取PowerShell软件的统计特征包括:
统计PowerShell软件代码的命令行个数、最大命令的长度、最大字符串长度、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;
根据PowerShell软件代码是否中存在IP、URL内容,以及存在的IP、URL内容的声誉是善意还是恶意,进行相应赋值;
通过上述统计和赋值,得到统计特征。
进一步地,提取PowerShell软件的行为特征包括:
将PowerShell软件代码中的cmdlets、函数及该二者的参数进行如下编号:将PowerShell软件内部cmdlets从1-813编号,将cmdlets参数从814-1457编号,将函数从1458-2347编号,将函数参数从2348-2629编号;
统计各个cmdlets、函数及该二者的参数在PowerShell软件代码中出现的次数,形成行为特征。
进一步地,根据基础特征,通过以下步骤得到基础特征集F1
提取的结构特征、统计特征及行为特征按照以下顺序形成一个2640维度的基础特征向量:软件代码中cmdlets、函数即二者的参数编码,抽象语法树的深度、抽象语法树的宽度、抽象语法树的节点个数;命令行个数、最大命令长度、IP声誉、URL声誉、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;
利用基础特征向量形成训练用的基础特征集F1
进一步地,利用距离相关系数对基础特征进行筛选,包括:
以基础特征集作为初始特征子集,采用距离相关系数作为评价函数,以恶意和非恶意作为分类属性,计算每个基础特征属性与分类属性间的距离相关系数;
将各个特征属性与分类属性间的距离相关系数降序排列,去除与分类属性距离相关系数小于设定值的特征属性,得到关键特征集F2
进一步地,利用关键特征训练基于多变量决策树的随机森林检测模型MRF,包括以下步骤:
1)在关键特征集中利用Bagging算法有放回地随机选择多个样本,共选K次,形成K个子训练集T;
2)针对K个子训练集T,从关键特征集F2中抽取对应特征向量,形成K个子特征集F3
3)在子特征集F3中的每个子特征集中无放回地随机选择M个特征属性,形成m/M组特征属性组合F4
4)利用支持向量机训练特征属性组合F4,得到各个特征属性组合F4的最佳线性组合F4 *
5)将最佳线性组合F4 *作为构造多变量决策树的特征属性,利用基尼系数在最佳线性组合F4 *中选择最优的新特征属性作为该节点的分裂点,递归构造一个多变量决策树;
6)对形成的K个子训练集T,重复步骤3)至5),训练得到K个多变量决策树作为随机森林的弱分类器;
7)将K个多变量决策树组合,形成基于多变量决策树的随机森林检测模型MRF。
进一步地,检测结果包括软件检测结果的置信度、检测结果的解释内容、检测软件的hash值、标准化的软件代码及恶意软件中存在的失陷标志物(Indicator OfCompromise,IoCs)。
一种离线检测PowerShell恶意软件的系统,包括:
数据预处理模块,用于检测PowerShell软件样本是否混淆,进行混淆去除,将样本的cmdlets、函数名称和参数统一编号实现样本的标准化;
特征提取模块,用于提取PowerShell软件的统计特征、结构特征和行为特征作为基础特征,利用距离相关系数对基础特征进行筛选,得到关键特征;
MRF模块,包括基于多变量决策树的随机森林检测模型MRF,其多变量决策树由Bagging算法、支持向量机和基尼系数构造成,该MRF模块用于检测PowerShell恶意软件;
模型训练模块,用于利用关键特征训练得到基于多变量决策树的随机森林检测模型MRF;
外部接口调用模块,用于通过其检测接口调用数据预处理模块、特征提取模块完成输入PowerShell软件预处理;在检测时通过其检测接口调用MRF模块进行监测,通过其检测结果处理接口输出PowerShell软件检测结果。
本发明首先训练模型MRF,然后通过该模型检测PowerShell恶意软件。该模型可提高普通随机森林模型中决策树每个节点的表达能力、降低每个决策树分类规则的复杂度、提升模型的训练性能、增强模型检测结果的可解释性,同时能够保留随机森林模型良好的泛化性、防止模型的过拟合问题。实验数据表明,使用MRF模型的多变量决策树与使用全部特征的单变量决策树相比,准确率提升至91%,模型的训练效率提升约10倍。
附图说明
图1为实施例的一种离线检测PowerShell恶意软件的方法流程图;
图2为实施例的离线检测PowerShell恶意软件的系统框架图;
图3为实施例的基于抽象语法树实现PowerShell软件混淆去除的流程图;
图4为实施例的基于距离相关系数实现特征选取的流程图;
图5为实施例的基于Bagging算法与多变量决策树结合训练模型MRF的流程图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本实施例提供一种离线检测PowerShell恶意软件的方法,如图1所示,包括以下步骤:
利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除;
提取PowerShell软件的统计特征、结构特征及行为特征作为基础特征;
利用距离相关系数对基础特征进行筛选,得到关键特征;
利用关键特征训练基于多变量决策树的随机森林检测模型MRF,用于检测PowerShell恶意软件;
利用训练好的MRF离线检测PowerShell软件是否恶意,输出检测结果。
本实施例还提供一种离线检测PowerShell恶意软件的系统,如图2所示,包括:
数据预处理模块,用于检测PowerShell软件样本是否混淆,进行混淆去除,将样本的cmdlets、函数名称和参数统一编号实现样本的标准化;
特征提取模块,用于提取PowerShell软件的统计特征、结构特征和行为特征作为基础特征,利用距离相关系数对基础特征进行筛选,得到关键特征;
MRF模块,包括基于多变量决策树的随机森林检测模型MRF,其多变量决策树由Bagging算法、支持向量机和基尼系数构造成,该MRF模块用于检测PowerShell恶意软件;
模型训练模块,用于利用关键特征训练得到基于多变量决策树的随机森林检测模型MRF;
外部接口调用模块,用于通过其检测接口调用数据预处理模块、特征提取模块完成输入PowerShell软件预处理;在检测时通过其检测接口调用MRF模块进行监测,通过其检测结果处理接口输出PowerShell软件检测结果。
本方法中,利用PowerShell软件的抽象语法树进行PowerShell软件的混淆去除的流程如图3所示,具体步骤如下:
第一步,判断输入PowerShell软件是否存在混淆,若不存在则直接输出原始PowerShell软件,完成混淆去除,否则执行第二步;
第二步,判断该PowerShell软件是否存在base64、ASCII、二进制、八进制、十进制及十六进制编码混淆,若不存在则执行第四步,否则执行第三步;
第三步,通过正则表达式去除上述编码混淆;
第四步,判断该PowerShell软件是否存在字符串分割、字符串重排和字符串反序混淆,若不存在则执行第五步;
第五步,调用微软提供的PowerShell抽象语法树构建接口构建PowerShell软件代码的抽象语法树,判断该抽象语法树是否混淆,如不混淆,则执行第七步,否则执行第六步;
第六步,通过正则表达式去除上述字符串混淆,执行第五步;
第七步,判断是否存在赋值语句重命名、类型描述及类型强制转换的基于抽象语法树的混淆,若不存在则执行第九步,否则执行第八步;
第八步,通过正则表达式去除上述基于抽象语法树的混淆实施;
第九步,对抽象语法树的每个分词判断是否存在分割、重排、换行、喷射、随机大小写、随机空格和删除注释混淆,若不存在则输出该PowerShell软件代码,完成混淆去除,否则执行第十步;
第十步,通过正则表达式去除上述基于分词的混淆实施,输出该PowerShell软件代码,完成混淆去除。
本方法中,提取特征的过程为:
第一步,在前述完成混淆去除的PowerShell软件代码中统计软件代码的命令行个数、最大命令的长度、最大字符串长度,形成该软件代码的一部分统计特征属性;
第二步,调用PowerShell抽象语法树构建接口构建前述软件代码的抽象语法树,记录该抽象语法树的深度、宽度和节点个数,形成该PowerShell软件的结构特征属性;
第三步,在前述构造的软件代码的抽象语法树中统计该软件代码中变量名平均长度、变量名大小写比例及连续数学操作的最大次数形成一部分统计特征属性;
第四步,若该软件代码中存在IP、URL内容,则向威胁情报平台查询其声誉,声誉为良性该特征属性赋值为1、声誉为恶意的则该属性赋值为-1;若不存在该内容则将其特征属性设置为0,形成一部分统计特征属性;
第五步,将前述PowerShell软件代码中的cmdlets、函数及他们的参数进行编号;
编号的方式是将PowerShell内部cmdlets从1-813编号,将cmdlets参数从814-1457编号,将函数从1458-2347编号,将函数参数从2348-2629编号;
第六步,提取PowerShell软件的行为特征,统计各个cmdlets在该软件代码中所有的cmdlets中出现的概率,即:
Figure BDA0002082384360000061
其中xi表示该软件代码中cmdlets、函数及他们的参数的编号;
num(xi)表示该软件代码中每个cmdlets、函数及他们的参数的出现次数;
num(xtype)是该软件代码中cmdets、cmdlets、函数或函数参数出现的总数;
第七步,将上述提取的特征属性按照以下顺序形成一个2640维度的基础特征向量:该软件代码中cmdlets、cmdlets参数、函数、函数参数编码,抽象语法树的深度、抽象语法树的宽度、抽象语法树的节点个数;命令行个数、最大命令长度、IP声誉、URL声誉、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;
第八步,对训练集中的每个数据集均通过前述特征提取方法得到特征向量,形成训练阶段的基础特征集F1
本方法中利用距离相关系数对基础特征进行筛选的流程如图4所示,具体的过程为:
第一步,以前述基础特征集作为初始特征子集,采用距离相关系数作为评价函数,以恶意和非恶意作为分类属性,计算每个基础特征属性与分类属性间的距离相关系数;计算公式如下:
Figure BDA0002082384360000071
其中υ2(X,Y)是各个基础特征属性向量和分类属性向量的协方差矩阵,当υ2(X,Y)=0时,表示该特征属性与分类属性独立,对分类无贡献值,去除该特征属性。
Figure BDA0002082384360000072
表示各个举出特征属性向量和分类属性向量间的相关性,特征选取时,选择
Figure BDA0002082384360000073
大的基础特征属性;
第二步,将前述各个特征属性与分类属性间的距离相关系数降序排列,去除与分类属性距离相关系数很小的特征属性,得到特征选取的结果——关键特征集F2(每个特征向量维度为m)。
本方法中利用支持向量机算法对随机森林模型进行改进,利用关键特征集训练基于多变量决策树的随机森林检测模型MRF的过程如下:
第一步,在训练集中利用Bagging算法有放回的随机选择1000个样本,共选K次,形成K个子训练集T;
第二步,针对前述K个子训练集T,从前述关键特征集F2中抽取对应特征向量,形成K个子特征集F3
第三步,在前述子特征集F3中的每个子特征集中无放回的随机选择M个特征属性,形成m/M组特征属性组合F4
第四步,利用支持向量机训练前述所得的多个特征属性组合F4,得到各个特征属性组合F4的最佳线性组合F4 *
第五步,将前述所得多个特征属性的最佳线性组合F4 *作为构造多变量决策树的特征属性,利用基尼系数在前述F4 *中选择最优的新特征属性作为该节点的分裂点,递归构造一个多变量决策树;
第六步,对形成的K个子训练集T,重复步骤三至步骤五,训练得到K个多变量决策树作为随机森林的弱分类器;
第七步,将第六步中的K个多变量决策树组合,形成基于多变量决策树的随机森林检测模型MRF。
其中,子训练集个数K、从子特征集F3随机选择的特征属性个数M在训练过程中确定。
本发明通过传统机器学习技术实现自动化检测PowerShell恶意软件,当输入PowerShell软件在检测模型MRF的检测结果为1时判定该PowerShell软件为恶意的。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (6)

1.一种离线检测PowerShell恶意软件的方法,包括以下步骤:
利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除;
提取PowerShell软件的统计特征、结构特征及行为特征作为基础特征;其中,提取PowerShell软件的结构特征包括:构建PowerShell软件代码的抽象语法树,记录该抽象语法树的深度、宽度和节点个数,形成结构特征;提取PowerShell软件的统计特征包括:统计PowerShell软件代码的命令行个数、最大命令的长度、最大字符串长度、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;根据PowerShell软件代码是否中存在IP、URL内容,以及存在的IP、URL内容的声誉是善意还是恶意,进行相应赋值;通过上述统计和赋值,得到统计特征;提取PowerShell软件的行为特征包括:将PowerShell软件代码中的cmdlets、函数及该二者的参数进行如下编号:将PowerShell软件内部cmdlets从1-813编号,将cmdlets参数从814-1457编号,将函数从1458-2347编号,将函数参数从2348-2629编号;统计各个cmdlets、函数及该二者的参数在PowerShell软件代码中出现的次数,形成行为特征;
利用距离相关系数对基础特征进行筛选,得到关键特征;
利用关键特征训练基于多变量决策树的随机森林检测模型MRF,用于检测PowerShell恶意软件;训练包括以下步骤:1)在关键特征集F2中利用Bagging算法有放回地随机选择多个样本,共选K次,形成K个子训练集T;2)针对K个子训练集T,从关键特征集F2中抽取对应特征向量,形成K个子特征集F3;3)在子特征集F3中的每个子特征集中无放回地随机选择M个特征属性,形成m/M组特征属性组合F4,其中m为每个特征向量的维度;4)利用支持向量机训练特征属性组合F4,得到各个特征属性组合F4的最佳线性组合F4 *;5)将最佳线性组合F4 *作为构造多变量决策树的特征属性,利用基尼系数在最佳线性组合F4 *中选择最优的新特征属性作为节点的分裂点,递归构造一个多变量决策树;6)对形成的K个子训练集T,重复步骤3)至5),训练得到K个多变量决策树作为随机森林的弱分类器;7)将K个多变量决策树组合,形成基于多变量决策树的随机森林检测模型MRF;
利用训练好的MRF离线检测PowerShell软件是否恶意,输出检测结果。
2.如权利要求1所述的方法,其特征在于,利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除,包括以下步骤:
去除PowerShell软件中存在的base64、ASCII、二进制、八进制、十进制及十六进制编码混淆;
去除PowerShell软件中存在的字符串分割、字符串重排和字符串反序混淆;
去除PowerShell软件中的抽象语法树混淆;
去除PowerShell软件中存在的赋值语句重命名、类型描述及类型强制转换的基于抽象语法树的混淆;
去除抽象语法树中分词存在的分割、重排、换行、喷射、随机大小写、随机空格和删除注释混淆。
3.如权利要求1所述的方法,其特征在于,根据基础特征通过以下步骤得到基础特征集F1
将结构特征、统计特征及行为特征按照以下顺序形成一个2640维度的基础特征向量:软件代码中cmdlets、cmdlets参数、函数、函数参数编码,抽象语法树的深度、抽象语法树的宽度、抽象语法树的节点个数;命令行个数、最大命令长度、IP声誉、URL声誉、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;
利用基础特征向量形成训练用的基础特征集F1
4.如权利要求3所述的方法,其特征在于,利用距离相关系数对基础特征进行筛选,包括:
以基础特征集F1作为初始特征子集,采用距离相关系数作为评价函数,以恶意和非恶意作为分类属性,计算每个基础特征属性与分类属性间的距离相关系数;
将各个特征属性与分类属性间的距离相关系数降序排列,去除与分类属性距离相关系数小于设定值的特征属性,得到关键特征集F2
5.如权利要求1所述的方法,其特征在于,检测结果包括软件检测结果的置信度、检测结果的解释内容、检测软件的hash值、标准化的软件代码及恶意软件中存在的失陷标志物。
6.一种离线检测PowerShell恶意软件的系统,包括:
数据预处理模块,用于检测PowerShell软件样本是否混淆,进行混淆去除,将样本的cmdlets、函数名称和参数统一编号实现样本的标准化;
特征提取模块,用于提取PowerShell软件的统计特征、结构特征和行为特征作为基础特征,利用距离相关系数对基础特征进行筛选,得到关键特征;其中,提取PowerShell软件的结构特征包括:构建PowerShell软件代码的抽象语法树,记录该抽象语法树的深度、宽度和节点个数,形成结构特征;提取PowerShell软件的统计特征包括:统计PowerShell软件代码的命令行个数、最大命令的长度、最大字符串长度、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;根据PowerShell软件代码是否中存在IP、URL内容,以及存在的IP、URL内容的声誉是善意还是恶意,进行相应赋值;通过上述统计和赋值,得到统计特征;提取PowerShell软件的行为特征包括:将PowerShell软件代码中的cmdlets、函数及该二者的参数进行如下编号:将PowerShell软件内部cmdlets从1-813编号,将cmdlets参数从814-1457编号,将函数从1458-2347编号,将函数参数从2348-2629编号;统计各个cmdlets、函数及该二者的参数在PowerShell软件代码中出现的次数,形成行为特征;
MRF模块,包括基于多变量决策树的随机森林检测模型MRF,其多变量决策树由Bagging算法、支持向量机和基尼系数构造成,该MRF模块用于检测PowerShell恶意软件;
模型训练模块,用于利用关键特征训练得到基于多变量决策树的随机森林检测模型MRF;训练包括以下步骤:1)在关键特征集F2中利用Bagging算法有放回地随机选择多个样本,共选K次,形成K个子训练集T;2)针对K个子训练集T,从关键特征集F2中抽取对应特征向量,形成K个子特征集F3;3)在子特征集F3中的每个子特征集中无放回地随机选择M个特征属性,形成m/M组特征属性组合F4,其中m为每个特征向量的维度;4)利用支持向量机训练特征属性组合F4,得到各个特征属性组合F4的最佳线性组合F4 *;5)将最佳线性组合F4 *作为构造多变量决策树的特征属性,利用基尼系数在最佳线性组合F4 *中选择最优的新特征属性作为节点的分裂点,递归构造一个多变量决策树;6)对形成的K个子训练集T,重复步骤3)至5),训练得到K个多变量决策树作为随机森林的弱分类器;7)将K个多变量决策树组合,形成基于多变量决策树的随机森林检测模型MRF;
外部接口调用模块,用于通过其检测接口调用数据预处理模块、特征提取模块完成输入PowerShell软件预处理;在检测时通过其检测接口调用MRF模块进行监测,通过其检测结果处理接口输出PowerShell软件检测结果。
CN201910478849.2A 2019-06-03 2019-06-03 一种离线检测PowerShell恶意软件的方法与系统 Active CN110362996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910478849.2A CN110362996B (zh) 2019-06-03 2019-06-03 一种离线检测PowerShell恶意软件的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910478849.2A CN110362996B (zh) 2019-06-03 2019-06-03 一种离线检测PowerShell恶意软件的方法与系统

Publications (2)

Publication Number Publication Date
CN110362996A CN110362996A (zh) 2019-10-22
CN110362996B true CN110362996B (zh) 2021-03-09

Family

ID=68215431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910478849.2A Active CN110362996B (zh) 2019-06-03 2019-06-03 一种离线检测PowerShell恶意软件的方法与系统

Country Status (1)

Country Link
CN (1) CN110362996B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111310186A (zh) * 2020-03-17 2020-06-19 优刻得科技股份有限公司 混淆命令行检测方法、装置及系统
CN111447215A (zh) * 2020-03-25 2020-07-24 深信服科技股份有限公司 数据检测方法、装置和存储介质
CN111797394B (zh) * 2020-06-24 2021-06-08 广州大学 基于stacking集成的APT组织识别方法、系统及存储介质
CN112926054B (zh) * 2021-02-22 2023-10-03 亚信科技(成都)有限公司 一种恶意文件的检测方法、装置、设备及存储介质
CN112632423B (zh) * 2021-03-10 2021-06-29 北京邮电大学 Url提取方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803038A (zh) * 2016-12-28 2017-06-06 北京安天网络安全技术有限公司 一种检测PowerShell恶意代码的方法及系统
CN107908963A (zh) * 2018-01-08 2018-04-13 北京工业大学 一种自动化检测恶意代码核心特征方法
CN109063477A (zh) * 2018-07-18 2018-12-21 成都链安科技有限公司 一种自动化的智能合约代码缺陷检测系统和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273909A (zh) * 2016-04-08 2017-10-20 上海市玻森数据科技有限公司 高维数据的分类算法
US11038905B2 (en) * 2017-01-25 2021-06-15 Splunk, Inc. Identifying attack behavior based on scripting language activity
US11314862B2 (en) * 2017-04-17 2022-04-26 Tala Security, Inc. Method for detecting malicious scripts through modeling of script structure
CN108804916B (zh) * 2017-12-19 2022-01-28 安天科技集团股份有限公司 恶意文件的检测方法、装置、电子设备及存储介质
CN108804921A (zh) * 2018-05-29 2018-11-13 中国科学院信息工程研究所 一种PowerShell代码的去混淆方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803038A (zh) * 2016-12-28 2017-06-06 北京安天网络安全技术有限公司 一种检测PowerShell恶意代码的方法及系统
CN107908963A (zh) * 2018-01-08 2018-04-13 北京工业大学 一种自动化检测恶意代码核心特征方法
CN109063477A (zh) * 2018-07-18 2018-12-21 成都链安科技有限公司 一种自动化的智能合约代码缺陷检测系统和方法

Also Published As

Publication number Publication date
CN110362996A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110362996B (zh) 一种离线检测PowerShell恶意软件的方法与系统
Aljawarneh et al. Anomaly-based intrusion detection system through feature selection analysis and building hybrid efficient model
Zhu et al. OFS-NN: an effective phishing websites detection model based on optimal feature selection and neural network
Hansen et al. An approach for detection and family classification of malware based on behavioral analysis
Bartos et al. Optimized invariant representation of network traffic for detecting unseen malware variants
Shibahara et al. Efficient dynamic malware analysis based on network behavior using deep learning
CN112738015B (zh) 一种基于可解释卷积神经网络cnn与图检测的多步攻击检测方法
Lin et al. Malicious URL filtering—A big data application
US9237161B2 (en) Malware detection and identification
CN113315742B (zh) 攻击行为检测方法、装置及攻击检测设备
Wang et al. Machine learning based cross-site scripting detection in online social network
Krishnaveni et al. Ensemble approach for network threat detection and classification on cloud computing
CN112492059A (zh) Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质
Ebrahimi et al. Binary black-box evasion attacks against deep learning-based static malware detectors with adversarial byte-level language model
WO2018066221A1 (ja) 分類装置、分類方法及び分類プログラム
Bolzoni et al. Panacea: Automating attack classification for anomaly-based network intrusion detection systems
CN110362995A (zh) 一种基于逆向与机器学习的恶意软件检测及分析系统
Lo et al. Towards an effective and efficient malware detection system
McGahagan et al. A comprehensive evaluation of webpage content features for detecting malicious websites
Hussain et al. Recognition based segmentation of connected characters in text based CAPTCHAs
Xiang et al. Design of mnitiple-level tree classifiers for intrusion detection system
CN111104670B (zh) 一种apt攻击的识别和防护方法
Kumar et al. Detection of malware using deep learning techniques
CN116668054A (zh) 一种安全事件协同监测预警方法、系统、设备及介质
CN115795466A (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