导语:Windows Defender ATP机器学习和AMSI:发掘基于脚本的攻击
脚本逐渐成为针对性攻击的武器,诸如JavaScript,VBScript和PowerShell之类的脚本引擎为攻击者提供了巨大的好处。它们是系统合法的软件,并且执行文件不落地在内存中加载。
强大的脚本引擎的开发出攻击工具不逊色于PE文件,脚本文件混淆容易,可以从远端或注册表加载执行,并且脚本的动态特性允许攻击者容易地逃避反恶意软件和类似的端点防护产品的检测与分析。
Windows 10通过反恶意软件扫描接口(AMSI)提供查杀脚本的功能,AMSI是一种通用的开放接口,使Windows Defender Antivirus能够以脚本解释程序的相同方式查看脚本内容 ,以未加密和未混淆的形式。在Windows 10 Fall Creators Update中,利用多年分析基于脚本的恶意软件的知识,我们向Windows脚本解释器本身添加了深度行为工具,使其能够捕获源自脚本的系统交互。AMSI将这些详细的交互信息提供给注册的AMSI提供商,例如Windows Defender Antivirus,使这些提供商能够对运行时脚本执行内容进行进一步的检查和审查。
通过Windows Defender Antivirus和Windows Defender Advanced Threat Protection(Windows Defender ATP)中的其他Windows 10 Fall Creators Update增强功能,可以进一步了解脚本行为的这种无与伦比的可见性。这两种解决方案都使用功能强大的机器学习算法来处理改进的光学系统,使用Windows Defender Antivirus提供增强的阻止恶意脚本的功能,Windows Defender ATP为恶意的违规后脚本活动提供有效的基于行为的警报。
在这篇文章中,我们探讨了Windows Defender ATP如何利用AMSI检测数据来表现出复杂和规避的基于脚本的攻击。我们来看看由高度熟练的KRYPTON活动组织所犯下的高级攻击,并探讨像Kovter这样的商品恶意软件如何滥用PowerShell来在磁盘上留下很少或没有任何恶意行为的痕迹。从这里,我们看看Windows Defender ATP 机器学习系统如何利用对脚本特性和行为的深入了解来提供极大改进的检测功能。
KRYPTON 强调基于脚本的攻击的韧性
检测潜在威胁传统方法是以文件为中心的。随着现代攻击朝着无文件方向靠拢,在相关的阻塞点处增加传感器是至关重要的。 除了在磁盘上没有文件,现代的基于脚本的攻击通常将加密的恶意内容与解密密钥分开存储。另外,最终的密钥在被用于解码实际的有效载荷之前经常经历多个过程,使得不能根据单个文件进行确定而不跟踪实际的脚本调用。即使是一个完美的脚本模拟器也会失败这个任务。 为了说明KRYPTON攻击,我们看一下由John Lambert和Office 365 Advanced Threat Protection团队确定的Microsoft Word文档。
KRYPTON不会丢弃或传播任何通常会触发反恶意软件警报的传统恶意二进制文件。相反,诱饵文档包含宏,并使用Windows脚本主机(wscript.exe)来执行JavaScript有效内容。此脚本Payload仅使用正确的RC4解密密钥执行,正如预期的那样,它将作为参数存储在计划任务中。由于只能按照正确的顺序引入正确的密钥才能触发,因此脚本有效负载能够抵御自动沙箱爆炸,甚至人工检查。
用AMSI检测脚本行为
AMSI通过在JavaScript API调用被解密并准备好由脚本解释器执行后克服了KRYPTON的规避机制。下面的屏幕截图显示了由AMSI捕获的KRYPTON攻击的部分暴露内容。
通过检查捕获的脚本行为对抗由人类专家建立的攻击指标(IoAs)以及机器学习算法,Windows Defender ATP轻松地将KRYPTON脚本标记为恶意。同时,Windows Defender ATP提供了有意义的上下文信息,包括脚本如何被恶意的Word文档触发。
由Kovter和其他商品恶意软件使用PowerShell
不仅像KRYPTON这样的高级活动组织正在从二进制可执行文件转移到回避脚本。Kovter恶意软件使用多个进程来最终执行恶意负载。此有效内容驻留在由JavaScript解码的PowerShell脚本(由wscript.exe执行)中,并作为环境变量传递给powershell.exe。
通过查看AMSI 捕获的PowerShell有效负载内容,有经验的分析师可以轻松地发现与PowerSploit(一种公开可用的一套渗透测试模块)的相似之处。虽然这样的攻击技术涉及基于文件的组件,但使用传统方法仍然非常难以检测到,因为恶意活动只发生在内存中。但是,这种行为很容易被Windows Defender ATP使用机器学习检测到,该机器学习将详细的AMSI信号与PowerShell活动产生的信号相结合。
AMSI的机器学习
虽然AMSI可以从捕获的脚本内容中提供丰富的信息,但恶意脚本的高度变体的性质仍然使其成为具有挑战性的检测目标。为了有效地提取和识别区分恶意脚本的新特征,Windows Defender ATP采用了先进的机器学习方法。 正如我们以前的博客所述,我们使用监督机器学习分类器来识别违规行为。我们根据在典型机器上的野外和正常活动中观察到的恶意行为来构建训练集,并利用来自受控爆炸恶意伪影的数据来增加训练集。下面的图表从概念上显示了我们如何捕捉进程树形式的恶意行为。
通过AMSI数据检测增加了工艺树 如过程树中所示,kill链从恶意文档开始,导致Microsoft Word(winword.exe)启动PowerShell(powershell.exe)。反过来,PowerShell执行严重混淆的脚本,该脚本将丢弃并执行恶意软件fhjUQ72.tmp,然后通过向注册表添加运行密钥来获得持久性。从流程树中,我们的机器学习系统可以提取各种功能,为注册表修改和文件创建等领域构建专家分类器,然后将其转换为用于决定是否提高警报的数字分数。 随着Windows 10 Fall Creators Update(版本1709)中添加了AMSI信号的仪器,Windows Defender ATP机器学习算法现在可以利用对未混淆的脚本内容的深入了解,同时不断参考与进程活动相关的机器状态更改。我们还构建了各种基于脚本的模型,用于检查已执行脚本的性质,如混淆层的数量,熵,混淆功能,ngram和特定的API调用等等。由于AMSI剥离了混淆层,Windows Defender ATP受益于对恶意脚本的一般结构中的API调用,变量名称和模式的可见性和洞察力的提高。虽然AMSI数据有助于提高人类专业知识和培养学习系统的能力,但我们的深度神经网络能够自动学习人类分析人员常常隐藏的特征。
JavaScript和PowerShell脚本的机器学习检测 虽然这些基于脚本的新型机器学习模型增强了我们的专家分类器,但我们也将新的结果与其他行为信息相关联。例如,Windows Defender ATP将来自AMSI的可疑脚本内容的检测与其他邻近行为(如网络连接)相关联。这个上下文信息被提供给SecOps人员,帮助他们有效地回应事件。
机器学习将来自AMSI的VBScript内容与跟踪的网络活动结合起来图9.机器学习结合了AMSI的VBScript内容和跟踪的网络活动
检测AMSI旁路尝试
通过AMSI提供对恶意脚本活动的强大洞察力,攻击更可能将AMSI旁路机制整合为三类: 旁观者是脚本内容的一部分,可以检查和提醒 篡改AMSI传感器基础设施,可能涉及更换系统文件或操纵相关DLL的加载顺序 AMSI仪器在内存中的修补 Windows Defender ATP研究团队主动为我们所有的传感器开发防篡改机制。我们已经设计了启发式警报,以便可能操作我们的光学系统,设计这些警报以便在旁路可以抑制它们之前在云中触发它们。
在涉及CVE-2017-8759的实际攻击期间,Windows Defender ATP不仅检测到恶意的开发后脚本活动,还检测到使用与Matt Graeber识别的代码,类似的代码来绕过AMSI的企图。
图10.基于AMSI旁路模式的Windows Defender ATP警报
AMSI本身在Windows Defender ATP云中捕获了以下绕过AMSI代码进行分析。
结论:Windows Defender ATP机器学习和AMSI提供了革命性的防御,防范高度回避的基于脚本的攻击
作为Windows 10上的开放式界面,反恶意软件扫描界面提供强大的功能,将恶意活动隐藏在隐藏在经常不写入磁盘的加密和模糊脚本中。这种使用脚本的方法正在变得司空见惯,并且正在被高技能的活动组织和商品恶意软件的作者使用。
AMSI通过查看被解释的脚本内容捕获恶意脚本行为,而不必检查物理文件或被混淆,加密或多态性阻碍。在端点上,AMSI可以使本地扫描器受益,从而提供必要的光学功能,从而即使是经过模糊处理和加密的脚本也可以检查恶意内容。Windows Defender Antivirus专门利用AMSI动态检查和拦截负责丢弃各种恶意负载(包括勒索软件和银行特洛伊木马)的脚本。
使用Windows 10 Fall Creators更新(1709),新添加的脚本运行时间检测为脚本行为提供了无与伦比的可视性,不管模糊处理如何。Windows Defender Antivirus使用这些关于恶意脚本的行为信息的宝库,在运行时提供预先防护的保护。为了提供违规后防御,Windows Defender ATP使用先进的机器学习系统从这些数据中获得更深入的洞察力。
除了查看特定活动和活动模式之外,Windows Defender ATP中的新机器学习算法还将查看脚本混淆层,API调用模式以及可用于有效识别恶意脚本的其他功能。Windows Defender ATP还将基于脚本的指示符与其他临近活动相关联,因此它可以提供有关疑似违规的更丰富的上下文信息。
为了受益于新的脚本运行时间检测以及Windows Defender Exploit Guard等其他强大的安全性增强功能,鼓励客户安装Windows 10 Fall Creators更新。