一种离线检测PowerShell恶意软件的方法与系统技术方案

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

A method and system for off-line detection of PowerShell malware

【技术实现步骤摘要】
一种离线检测PowerShell恶意软件的方法与系统
本专利技术涉及计算机终端安全领域及网络空间安全领域,可用于核查取证等领域,具体涉及一种离线检测PowerShell恶意软件的方法与系统。
技术介绍
安全领域攻防博弈至今,恶意软件制造者越来越趋向于利用目标计算机中已有的工具,PowerShell是其中最具代表性的一个。PowerShell是微软于2006年引入的一款基于.NET框架的脚本语言和命令行shell,2007年发布第一个版本,2009年发行2.0版本时微软将其默认安装于Windows7和WindowsServer2008R2,从此开始,PowerShell在其后的各Windows操作系统版本中均默认安装,2016年微软宣布PowerShell面向Linux和macOS操作系统开源,使得管理员可用一种语言管理不同设备。PowerShell的功能十分强大,包括:直接调用.NET和WindowsAPI、不将代码写入磁盘而直接运行于内存、从另一系统下载代码并执行、对系统函数包括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(MultivariableRandomForest),实现对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本文档来自技高网
...

【技术保护点】
1.一种离线检测PowerShell恶意软件的方法,包括以下步骤:利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除;提取PowerShell软件的统计特征、结构特征及行为特征作为基础特征;利用距离相关系数对基础特征进行筛选,得到关键特征;利用关键特征训练基于多变量决策树的随机森林检测模型MRF,用于检测PowerShell恶意软件;利用训练好的MRF离线检测PowerShell软件是否恶意,输出检测结果。

【技术特征摘要】
1.一种离线检测PowerShell恶意软件的方法,包括以下步骤:利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除;提取PowerShell软件的统计特征、结构特征及行为特征作为基础特征;利用距离相关系数对基础特征进行筛选,得到关键特征;利用关键特征训练基于多变量决策树的随机森林检测模型MRF,用于检测PowerShell恶意软件;利用训练好的MRF离线检测PowerShell软件是否恶意,输出检测结果。2.如权利要求1所述的方法,其特征在于,利用PowerShell软件的抽象语法树进行PowerShell软件静态混淆去除,包括以下步骤:去除PowerShell软件中存在的base64、ASCII、二进制、八进制、十进制及十六进制编码混淆;去除PowerShell软件中存在的字符串分割、字符串重排和字符串反序混淆;去除PowerShell软件中的抽象语法树混淆;去除PowerShell软件中存在的赋值语句重命名、类型描述及类型强制转换的基于抽象语法树的混淆;去除抽象语法树中分词存在的分割、重排、换行、喷射、随机大小写、随机空格和删除注释混淆。3.如权利要求1所述的方法,其特征在于,提取PowerShell软件的结构特征包括:构建PowerShell软件代码的抽象语法树,记录该抽象语法树的深度、宽度和节点个数,形成结构特征。4.如权利要求1所述的方法,其特征在于,提取PowerShell软件的统计特征包括:统计PowerShell软件代码的命令行个数、最大命令的长度、最大字符串长度、变量名平均长度、变量名大小写比例及连续数学操作的最大次数;根据PowerShell软件代码是否中存在IP、URL内容,以及存在的IP、URL内容的声誉是善意还是恶意,进行相应赋值;通过上述统计和赋值,得到统计特征。5.如权利要求1所述的方法,其特征在于,提取PowerShell软件的行为特征包括:将PowerShell软件代码中的cmdlets、函数及该二者的参数进行如下编号:将PowerShell软件内部cmdlets从1-813编号,将cmdlets参数从814-1457编号,将函数从1458-2347编号,将函数参数从2348-2629编号;统计各个cmdlets、函数及该二者的参数在PowerShell软件代码中出现的次数,形成行为特征。6.如权利要求1所述的方法,其特征在于,根据基础特征通过以下步骤得到基础特征集F1:将结构特征、统计特征及行为特征按照以下顺序形成一个2640维度的基础特征向量:软件代码中cmdlets、函数即二者的参数编码,抽象语法树的深度、抽象语法树的宽度、抽象语法树的节点个数;命...

【专利技术属性】
技术研发人员:姜荣霞刘宝旭姜政伟汪秋云江钧辛丽玲
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1