G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

admin 2022年5月20日03:00:10评论208 views字数 2167阅读7分13秒阅读模式

今天我们跟大家分享的是来自奇安信星图实验室投稿并发表在DSN 2022上的关于PowerShell代码反混淆的相关研究论文——“Invoke-Deobfuscation: AST-Based and Semantics-Preserving Deobfuscation for PowerShell Scripts”,该项工作由奇安信星图实验室研究人员与中科院信工所团队合作完成,作者分别为:柴华君、应凌云、段海新、查达仁。

G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

PowerShell脚本由于功能强大、易于编写和混淆、Windows系统默认自带等特点,被攻击者大量应用于攻击活动中,成为当前网络攻击检测和防御工作的一大挑战。这项研究工作提出了一项针对PowerShell脚本的自动化反混淆方法,并实现了名为Invoke-Deobfuscation的反混淆工具。该工具能够有效地处理空白字符插入等字符随机化混淆、逆序和拼接等各种字符串相关混淆、Base64等各种编码方式混淆等十多种混淆方式,对目前绝大多数的PowerShell混淆技术都有很好的还原效果。为了全面地评估工具的效果,作者从真实的网络环境中收集了超过200万个PowerShell脚本,从中筛选出了39,713个不同家族、结构各异的恶意PowerShell脚本。作者从中挑选了部分脚本来比较Invoke-Deobfuscation和前人反混淆工具的效果,实验结果表明Invoke-Deobfuscation在反混淆能力,反混淆的效率、反混淆前后脚本的行为一致性以及去混淆程度几方面都明显优于其他工具,可以更好地帮助安全人员分析PowerShell的恶意混淆脚本。

混淆不仅能够改变脚本原有的文本特征,而且可以改变其抽象语法树(AST)结构和Token表示。目前的杀毒软件多基于深度学习模型来对脚本进行恶意检测,而混淆对于脚本特征的破坏使得混淆后的恶意样本可以有效规避杀软的检测。

G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation


前人的反混淆工作多依赖正则表达式来定位匹配脚本中的混淆片段,其忽略了PowerShell的句法规则以至于经常匹配到不合法的语句片段。预定义规则和直接执行是两类常见的反混淆手段,预定义规则只能针对部分简单的混淆技术,不具备鲁棒性。而上下文缺失的问题,使得直接执行的方法无法处理包含变量的混淆语句。

作者针对前人工作中存在的不足,提出了基于AST的语义保持的反混淆工具—Invoke-Deobfuscation。它利用混淆语句往往可以通过执行还原为字符串的特点,提取了PowerShell脚本的AST上可还原节点对应的语句片段,并使用变量追踪补全混淆片段的上下文,然后通过直接执行得到反混淆结果。

G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

Invoke-Deobfuscation主要分为3个模块:

  • 词法解析  通过对PowerShell脚本进行词法解析得到一系列Token,并逆序遍历每一个Token。对于Token中存在的大小写随机、别名等混淆,作者使用规范的Token来替代混淆Token,最终得到一个Token上没有混淆的PowerShell脚本。

  • 基于AST的还原模块  如上图,利用AST上可还原节点来识别定位可能的混淆语句片段,并利用变量追踪记录出现在脚本中每一个变量的值及作用域。对于提取到的混淆语句片段,作者尝试通过直接执行的方法得到其还原结果,并将成功还原的语句替换AST中对应节点的内容。作者使用后序遍历处理AST上的节点,当遍历到根节点时,其对应的内容即为最终的还原结果。

  • 重命名和重排版  作者将脚本中随机命名的函数名和变量名用规范化命名替换,并去除脚本中随机插入的白空格,通过重新排版的方式让反混淆结果更加易读。 

各个模块的实际反混淆效果如下图所示:

G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

为了全面地评估工具的效果,作者从真实的网络环境中收集了超过200万个PowerShell脚本,从中筛选出了39,713个不同家族、结构各异的恶意PowerShell脚本。作者从中挑选了部分脚本来比较Invoke-Deobfuscation和前人反混淆工具的效果,并分别从反混淆能力、反混淆效率、行为一致性和混淆缓解4个方面与前人的工作进行了对比。实验结果表明,Invoke-Deobfuscation在各个方面表现都明显优于其他工具。

G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

Invoke-Deobfuscation几乎可以处理所有目前常见的混淆技术。在混淆缓解程度方面,经过Invoke-Deobfuscation处理得到的反混淆样本,其混淆评分相对于原样本有显著的降低,总体下降比例达到了46%。Invoke-Deobfuscation反混淆得到的结果还原了大量的关键信息,并且均保持了与原样本相同的行为,有助于安全分析人员分析代码意图和行为。

=====

投稿作者介绍:

星图实验室  奇安信

星图实验室隶属于奇安信技术研究院,专注于软件与系统安全的核心技术研究与系统平台研发,对外出“天穹”软件动态分析沙箱、“天问”软件供应链分析平台、“天象”软件漏洞挖掘系统等核心能力和工具系统。

目前星图实验室正在招聘,工作地点覆盖北京、南京、上海、成都等城市,详情请参见:https://research.qianxin.com/recruitment/


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscation

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月20日03:00:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-05-19 Invoke-Deobfuscationhttp://cn-sec.com/archives/1024861.html

发表评论

匿名网友 填写信息