一种基于机器学习的恶意PowerShell命令识别方法技术

技术编号:22330525 阅读:11 留言:0更新日期:2019-10-19 12:21
本发明专利技术公开了一种基于机器学习的恶意PowerShell命令识别方法,包括:获取需要执行的PowerShell命令,对命令信息进行统计特征提取;在进行过基本信息处理过后,基于提取的统计特征,将统计特征分为正常命令特征和恶意命令特征,使用机器学习的方法对统计特征进行训练,得到分类器;根据训练出的分类器作为评价器,当收到新的命令时,使用步骤1)的方法对其进行处理,然后将提取出的特征作为评价器的输入,若输出结果小于0,则表明该新命令为恶意命令。通过本发明专利技术方法能够有效识别恶意(包含混淆)PowerShell命令,防止用户计算机遭受破坏。

【技术实现步骤摘要】
一种基于机器学习的恶意PowerShell命令识别方法
本专利技术属于计算器安全防护领域,具体涉及一种基于机器学习的恶意PowerShell命令识别方法,用于筛选大量PowerShell命令中包含有恶意行为的命令。
技术介绍
近年来,微软代替CMD所推出的PowerShell已经成为Windows上命令行Shell的首选。它基于微软.Net框架,并且允许使用者访问操作系统服务。PowerShell拥有级高的权限,系统虽然会监控使用权限并限制某些权限的访问,但是攻击者依旧可以使用特殊手段绕过这些限制。攻击者往往将具有恶意攻击性质的代码进行混淆,使得防火墙往往不能轻易。Windows操作系统可以说是世界上使用最多的家庭操作系统之一,针对Windows操作系统的攻击与入侵从未停止过。因此,针对不断变化的攻击方式要提出相应的安全保护方法。微软在Windows平台推出新的Commder-lineshell——PowerShell,一种命令shell和脚本语言,由于灵活方便并且有强大的构造能力,可以直接使用其命令执行相关的脚本功能。已经涌现了不少新的命令攻击框架Powersploit,Empire,nishang,甚至有PSAttack这种可以绕过powershel.exe直接通过.NET框架来调用PowerShell,并且绕过用户提示直接进行敏感权限的使用。这种恶意攻击代码甚至可以嵌入到微软office套件中,直接运行恶意攻击命令,而使用者接收不到任何提示。因此,PowerShell在Windows平台上常常是犯罪者们选择的攻击方式的一部分。可能在使用用户不经意间获得较高权限,对主机进行破坏。恶意攻击脚本的传统检测方法为正则项匹配和大量的IF-Then规则,这种方法后期维护十分繁琐。且对于结合了混淆技术的恶意命令,其规则也很难有效的识别出恶意命令。混淆技术被用来隐藏恶意软件的存在,其目的为了使防御类的软件越来越难找到其混淆模式,同时使逆向工程师和分析师更难以破译并完全理解恶意软件正在做什么。
技术实现思路
针对现有技术中的问题,本专利技术提供了一种基于机器学习的PowerShell恶意命令检测方法,其目的在于有效识别恶意(包含混淆)PowerShell命令,防止用户计算机遭受破坏。为解决上述技术问题,本专利技术通过以下技术方案予以解决:一种基于机器学习的恶意PowerShell命令识别方法,包括以下步骤:步骤1):获取需要执行的PowerShell命令,对命令信息进行统计特征提取;步骤2):在进行过基本信息处理过后,基于步骤1)提取的统计特征,将统计特征分为正常命令特征和恶意命令特征,使用机器学习的方法对统计特征进行训练,得到分类器;步骤3):根据步骤2)训练出的分类器作为评价器,当收到新的命令时,使用步骤1)的方法对其进行处理,然后将提取出的特征作为评价器的输入,若输出结果小于0,则表明该新命令为恶意命令。进一步,步骤1)中,所描述的统计特征包含:字符频率直方图、命令的长度、命令字符串的信息熵和字符”PowerShell”出现的次数;所述字符频率直方图为当前字符串中每一个字符对应的ASCII码编码的十进制值的频率统计,即统计该字符在字符串中出现的次数。进一步,所述字符串的信息熵用来衡量信息量的大小,若不确定性越大,则信息量越大,熵越大,若不确定性越小,则信息量越小,熵越小。进一步,字符串的信息熵H(X)通过下式计算得到:其中,p(xi)表示第i个字符出现的频率,n为字符串的总长度。进一步,步骤2)中,使用Fisher线性判别方法进行数据训练,将正例X1设置为常规的PowerShell命令,负例X0设置为包含有恶意性质的PowerShell命令;设法将输入特征样例投影到低维的超平面上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离。进一步,步骤2)中,使用机器学习的方法对统计特征进行训练,具体步骤如下;步骤2.1)输入样例的投影:211)输入特征向量为Xi=(x1,x2,…,x131)T,Xi为第i类的向量为0或1;212)计算每个类别的平均值N为该类样本的总个数,x为Xi中的样本;213)定义投影后的特征向量Yi=(y1,y2,…,yd)T,其中d小于总数131,214)然后投影转换y=WTx,其中W为投影矩阵,y为投影过后的新样本;215)计算整个体系的类内散度和类间散度:类内散度:其中,第i类样本的类内散度,c为类别的总个数;其中其中,为第i类样本的均值;类间散度:其中,为第正例样本均值,为第负例类样本均值;步骤2.2)根据步骤2.1)得到的类间散度和类内散度,优化目标重写为:其中,w为投影矩阵;对目标使用拉格朗日乘数法进行目标优化:L(w,λ)=wTSbw-λ(wTSww-1)其中,λ为拉格朗日乘数;化简优化函数为w*是由的特征向量组成的,λ由的特征值组成;步骤2.3)对于步骤2.2)中求得的使用奇异值分解方法对其特征向量进行求解,求解后最大特征值对应的特征为投影矩阵w,投影矩阵w可以将输入的特征向量的长度缩短到1;步骤2.4)通过步骤2.3)将数据变成长度为1的数据以后,根据整体数据的分布情况,确定一个阈值z,根据阈值将正例和负例区分开来。进一步,步骤3)利用步骤2)中确定的投影矩阵w和阈值z,确定新输入数据的类别;当新的命令输入时,先按照步骤1)的方法将输入的字符串转换成特征,然后特征与投影矩阵w进行运算,将特征长度缩短为1,最后与阈值z进行比较,确定其是正例还是负例,即正常代码还是恶意代码。本专利技术具有以下有益效果:1)能够快速的对输入文本进行特征分析,精准提取出文本中的词频信息以及隐藏的字节代码。2)能够判别一段文本代码中是否包含有恶意“PowerShell”代码,有效的对数据流进行筛选,阻止恶意代码对计算机进行进一步侵害。附图说明为了更清楚地说明本专利技术具体实施方式中的技术方案,下面将对具体实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术的流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,作为本专利技术的某一优选实施例,一种基于强化学习的无人机集群分布式编队方法,包括以下步骤:步骤1):获取外部输入,分为正常使用的PowerShell命令作为正例和带有恶意攻击性质的命令作为负例。先将其进行数字特征化,然后进行统计特征处理。具体如下:步骤1.1)首先对其进行字符化处理,计算机中每一个英语字符都能在ASCII码表中对应一个十进制的数字。一个命令就是一个字符串,每一个字符串可以看成是一个字符数组,其中的元素即为字符,由于每个字符都对应一个ASCII的十进制数字,一个字符串就可以编码成由十进制数字组成的数组。步骤1.2)对于统计特征,就是一种能够描述字符串的信息分布情况的一种特征,其主要由命令字符本文档来自技高网
...

【技术保护点】
1.一种基于机器学习的恶意PowerShell命令识别方法,其特征在于,包括以下步骤:步骤1):获取需要执行的PowerShell命令,对命令信息进行统计特征提取;步骤2):在进行过基本信息处理过后,基于步骤1)提取的统计特征,将统计特征分为正常命令特征和恶意命令特征,使用机器学习的方法对统计特征进行训练,得到分类器;步骤3):根据步骤2)训练出的分类器作为评价器,当收到新的命令时,使用步骤1)的方法对其进行处理,然后将提取出的特征作为评价器的输入,若输出结果小于0,则表明该新命令为恶意命令。

【技术特征摘要】
1.一种基于机器学习的恶意PowerShell命令识别方法,其特征在于,包括以下步骤:步骤1):获取需要执行的PowerShell命令,对命令信息进行统计特征提取;步骤2):在进行过基本信息处理过后,基于步骤1)提取的统计特征,将统计特征分为正常命令特征和恶意命令特征,使用机器学习的方法对统计特征进行训练,得到分类器;步骤3):根据步骤2)训练出的分类器作为评价器,当收到新的命令时,使用步骤1)的方法对其进行处理,然后将提取出的特征作为评价器的输入,若输出结果小于0,则表明该新命令为恶意命令。2.根据权利要求1所述的一种基于机器学习的恶意PowerShell命令识别方法,其特征在于,步骤1)中,所描述的统计特征包含:字符频率直方图、命令的长度、命令字符串的信息熵和字符PowerShell出现的次数;所述字符频率直方图为当前字符串中每一个字符对应的ASCII码编码的十进制值的频率统计,即统计该字符在字符串中出现的次数。3.根据权利要求2所述的一种基于机器学习的恶意PowerShell命令识别方法,其特征在于,所述字符串的信息熵用来衡量信息量的大小,若不确定性越大,则信息量越大,熵越大,若不确定性越小,则信息量越小,熵越小。4.根据权利要求3所述的一种基于机器学习的恶意PowerShell命令识别方法,其特征在于,字符串的信息熵H(X)通过下式计算得到:其中,p(xi)表示第i个字符出现的频率,n为字符串的总长度。5.根据权利要求1所述的一种基于机器学习的恶意PowerShell命令识别方法,其特征在于,步骤2)中,使用Fisher线性判别方法进行数据训练,将正例X1设置为常规的PowerShell命令,负例X0设置为包含有恶意性质的PowerShell命令;设法将输入特征样例投影到低维的超平面上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远...

【专利技术属性】
技术研发人员:韩瑞冬马建峰
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1