一种PowerShell代码的去混淆方法及装置制造方法及图纸

技术编号:19425925 阅读:28 留言:0更新日期:2018-11-14 10:44
本发明专利技术提供一种PowerShell代码的去混淆方法及装置,所述方法包括:提供目标Office文档自动运行的虚拟环境;利用Hook机制从所述目标Office文档内混淆过的代码中提取出初步去混淆的PowerShell代码;分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码。本发明专利技术通过结合动静态解混淆方法,将混淆过的PowerShell代码从Office文档中提取出来并进行自动解混淆,可显著提高安全分析的效率。

【技术实现步骤摘要】
一种PowerShell代码的去混淆方法及装置
本专利技术涉及安全分析
,更具体地,涉及一种PowerShell代码的去混淆方法及装置。
技术介绍
由于反病毒技术的快速发展,可执行恶意程序的传播变得越来越困难,攻击者越来越倾向利用目标电脑中已经存在的工具来进行恶意行为,这种做法会留下更少的攻击痕迹,使检测更加困难。自从MicrosoftPowerShell被Windows系统默认安装,PowerShell就成为许多攻击小组攻击链中的一个理想工具。恶意PowerShell脚本通常扮演下载器的角色,最常利用的形式是捆绑Office宏进行入侵,攻击者通常会通过社会工程的伪装方法,欺骗用户打开Office文档(Word、Excel),并引导用户开启宏权限,用户一旦开启,嵌入的恶意PowerShell脚本会根据指令将远程服务器中托管的恶意文件下载至目标用户的设备之中,完成恶意行为。攻击者为了增强攻击活动的隐蔽性,往往会在PowerShell代码运行时进行混淆编码,又由于PowerShell具备脚本语言的特性,PowerShell代码非常容易被混淆,目前已统计20余种混淆方式,包括大写截断和转义字符混淆等,例如:PowerShell.exe-EncodeCommand命令被混淆成PowerShell.exe-^e^c^或PowerShell.exe-eNco等,所以传统的基于静态签名和文件哈希值的检测方法已经失效。研究表明,超过一半的PowerShell脚本是从命令行执行的,Windows也提供了一些执行策略来防止恶意PowerShell脚本启动,然而这些策略会被攻击者轻易绕过,比如使用Invoke-Expression命令,该命令会接受任何字符串输入并将它视为PowerShell代码。目前对于恶意PowerShell的检测还大多处于对Office宏的检测,一般情况下,嵌入PowerShell的Office宏中会出现Shell、VBA.Shell等命令,大多数杀毒引擎根据静态匹配关键字的方式来对Office文档性质作出判断。对于PowerShell的提取与去混淆则建立在人工分析基础上,通常是安全专家利用经验进行手动分析。但是,利用对Office宏的检测来替代恶意PowerShell的检测出现极高的误报率,因为正常文档同样会使用Shell命令对系统功能进行调用;目前对于恶意PowerShell脚本的提取仍然处于人工手动分析,随着利用恶意PowerShell的样本数量越来越多,混淆方式越来越复杂,单靠人工分析显然不能满足需求;对于文档中嵌入的混淆过的Powershell脚本,无法自动化获取原始Powershell进行深度分析。
技术实现思路
为了克服上述问题或者至少部分地解决上述问题,本专利技术提供一种PowerShell代码的去混淆方法及装置。根据本专利技术的一个方面,提供一种PowerShell代码的去混淆方法,包括:提供目标Office文档自动运行的虚拟环境;利用Hook机制从所述目标Office文档内混淆过的代码中提取初步去混淆的PowerShell代码;分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码。根据本专利技术的另一个方面,提供一种PowerShell代码的去混淆装置,包括:预处理模块,用于提供目标Office文档自动运行的虚拟环境;动态解混淆模块,用于利用Hook机制从所述目标Office文档内混淆过的代码中提取初步去混淆的PowerShell代码;静态解混淆模块,用于分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码。根据本专利技术的另一个方面,提供一种PowerShell代码的去混淆设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述第一方面的各种可能的实现方式中任一种实现方式所提供的方法。根据本专利技术的另一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行能够执行上述第一方面的各种可能的实现方式中任一种实现方式所提供的方法。本专利技术提出的一种PowerShell代码的去混淆方法及装置,通过结合动态和静态的解混淆方法,能够将混淆过的PowerShell代码快速地从Office文档中提取出来并进行自动解混淆,获取原始Powershell代码,便于安全人员作进一步分析,可显著提高安全分析效率,加快安全事件的响应速度。附图说明图1为本专利技术一实施例提供的一种PowerShell代码的去混淆方法的结构示意图;图2为根据本专利技术一实施例提供的混淆过的Office文档的宏代码的示意图;图3为根据本专利技术另一实施例提供的混淆过的PowerShell命令的示意图;图4为根据本专利技术另一实施例提供的解码后的Powershell代码的示意图;图5为根据本专利技术另一实施例提供的原始PowerShell代码的示意图;图6为根据本专利技术另一实施例提供的一种PowerShell代码的去混淆装置的结构示意图;图7为本专利技术另一实施例提供的一种PowerShell代码的去混淆设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术一实施例提供的一种PowerShell代码的去混淆方法的结构示意图,包括:101、提供目标Office文档自动运行的虚拟环境;恶意Powershell代码经过混淆编码嵌入在Office文档中,较大可能是混淆嵌入在Office文档的宏代码中,如图2所示,为混淆过的Office文档的宏代码的示意图。为了将嵌入在Office文档中的Powershell代码提取出来并进行去混淆,首先需要对目标Office文档进行预处理,提供目标Office文档(如Word、Excel)能够自动运行的虚拟环境,包括:利用已有公开的方法判断目标Office文档类型及版本,对于不同类型和版本的Office文档,需要相应的Office软件进行打开,还包括将该目标Office文档的宏安全性降到最低,断开互联网连接,模拟点击弹窗等,以直接触发恶意行为。102、利用Hook机制从所述目标Office文档内混淆过的代码中提取初步去混淆的PowerShell代码;由于PowerShell的脚本特性,攻击者往往会使用PowerShell本身所提供的各种参数选项来尽可能地增强攻击活动的隐蔽性,因此,对目标Office文档运行时的各种PowerShell相关的命令参数进行动态监控,可以获取到PowerShell的活动。Windows系统是建立在事件驱动机制上的,Hook(钩子)则是一种本文档来自技高网
...

【技术保护点】
1.一种PowerShell代码的去混淆方法,其特征在于,包括:提供目标Office文档自动运行的虚拟环境;利用Hook机制从所述目标Office文档内混淆过的代码中提取出初步去混淆的PowerShell代码;分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码。

【技术特征摘要】
1.一种PowerShell代码的去混淆方法,其特征在于,包括:提供目标Office文档自动运行的虚拟环境;利用Hook机制从所述目标Office文档内混淆过的代码中提取出初步去混淆的PowerShell代码;分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码。2.根据权利要求1所述的方法,其特征在于,所述利用Hook机制从所述目标Office文档内混淆过的代码中提取出初步去混淆的PowerShell代码的步骤,具体为:利用Hook机制监控所述目标Office文档运行时的PowerShell.exe进程和cmd.exe进程,获取命令参数;对所述命令参数进行正则化匹配处理,获得初步去混淆的PowerShell代码。3.根据权利要求1所述的方法,其特征在于,所述分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码的步骤,具体为:判断所述初步去混淆的PowerShell代码中是否包含Split函数或ASCII编码;若所述初步去混淆的PowerShell代码中包含Split函数,则根据所述Split函数的功能对所述初步去混淆的PowerShell代码进行处理;和/或,若所述初步去混淆的PowerShell代码中包含ASCII编码,则对所述ASCII编码进行解码;对剩余部分的初步去混淆的PowerShell代码进行拼接和格式化处理。4.根据权利要求2所述的方法,其特征在于,所述对所述命令参数进行正则化匹配处理的步骤,具体为:利用\-[Ee^]{1,2}[NnCcOoDdEeMmAa^]+[A-Za-z0-9+/=]{5,}对所述命令参数进行正则化匹配。5.根据权利要求4所述的方法,其特征在于,所述对所述命令参数进行正则化匹配处理的步骤之后,还包括:若匹配到-EncodeCommand命令,则保留-EncodeCommand命令后面的有效参数字段;相应地,所述分析所述初步去混淆的PowerShell代码的混淆特征,并根据所述混淆特征对所述初步去混淆的PowerShell代码进行解混淆,获取原始PowerShell代码的步骤,具体为:对所述有效参...

【专利技术属性】
技术研发人员:喻民刘超夏彬姜建国黄伟庆
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1