背景
近期女猎手(huntress)公司发表了一篇关于Defense Evasion(防御规避)的科普文章,该文章结合了一些安全一线人员在现实中碰到的对抗案例,对于一线的防守人员进行应急响应和威胁狩猎会有一定的启发。我们决定对本文进行翻译解读…
导读
正文
Defense Evasion(防御规避)是编号为TA0005的ATT&CK战术,用来描述对手试图避免被发现的攻击概念知识。
防御规避包括了攻击者在整个攻击过程中,使用的避免被安全检测发现的各类规避技术,如卸载/禁用安全软件,混淆/加密数据和恶意荷载等。攻击者还可能利用受信任的流程,来隐藏和伪装他们的恶意软件。
防御规避战术还包含了一系列的TTPs子技术,接下来将会用七个案例来进行解读:
案例一:削弱防御
黑客会一直使用能用的东西,直到它没用。在Huntress,我们看到攻击者通过简单地按下各种内置按钮来“逃避”防御,这破坏了解决方案的安全视野。在ATT&CK中被分类为T1562.001,黑客可以使用安全工具的合法功能来削弱其效用。
在最近的一次网络研讨会上,安全研究员 Matt Anderson 详细介绍了一个案例,黑客使用了一个大型 PowerShell 恶意脚本。此 PowerShell 脚本在开头利用 Defender 的内置功能来修改 Defender 会发出告警以及不会发出告警的路径、进程和文件类型。
并不是说 Defender 在这里被关闭了。相反,黑客恳请 Defender 关注所有活动,除了那些有利于他们黑客进攻的活动。
我们可以深入地了解下Defender的这种操作,使用带有特权的PowerShell可以非常简单粗暴地重新配置用户将看到的安全告警内容
这不仅仅是 Defender 的问题。排除选项是所有安全解决方案的默认功能,系统管理员出于多种原因必须合法地使用它们。
武器化这种排除功能对攻击者来说很有效,因为安全解决方案的某些功能在表面上看是有效的,但在对抗恶意攻击者的阴谋诡计时,它显然被滥用了。黑客善于利用我们自己的工具来对付我们,有选择性地戳瞎本应是我们全景哨兵的阿古斯的眼睛(全视之眼)。
案例二:通过关闭设备破坏防御能力
在 Huntress,我们从对抗活动中收集了大量的遥测数据。我有时对敌人攻击移动的惊人技术和速度感到敬畏。但有时,我也对我们的敌人的愚蠢摇头——就像这次。
我们有一个案例,黑客试图操纵和破坏 Huntress 客户端。他们成功地执行了我们客户端的部分卸载过程。
黑客没有使用任何枚举命令来识别失陷终端存在哪些安全解决方案。相反,他们直接向我们开枪。很高兴知道我们让敌人感到了恐惧!
面对这样的情况,我感到既有趣又紧张。在这里,我将向您展示我在这种极限场景下的现场快照:
在这种情况下,黑客在进行了大部分恶意活动后试图使Huntress失效。试图卸载我们的客户端,是他们在主机上做的最后的事情之一。这很愚蠢,就像你在犯罪之前会先把监视器从墙上砸下来吗?
在另一个例子中,黑客在他们的早期活动中就有破坏安全解决方案的意识,黑客利用一个特别阴险的工具Backstab来屏蔽安全解决方案的特定关键部分。具体来说,Backstab 使用 SysInternals 工具套件中的合法组件来杀死 AV 和 EDR 这样的“受保护”进程,从而为黑客提供一台失去安全监控能力的机器。
Backstab 不是一个特别隐蔽的黑客工具,也不是“杀死”edr和AVs进程的好方法……但攻击者有时确实是这样简单粗暴。
我就上述问题咨询了首席产品负责人Sharon Martin的建议:
试图禁用安全产品,使其在系统上发出告警并干扰其安全人员的操作,是复杂攻击者的标志性动作。拖慢防御者的反应,即使只是几分钟,也有助于增加黑客达成关键目标的机会,如从网络中渗漏数据或发起大规模的勒索软件攻击。
…
案例三:混淆,制造麻烦
一些黑客非常有创意。他们以防御者无法想象的方式颠覆和推动恶意工具。
我们在 Huntress 经常遇到的一种颠覆防御的方法,涉及令人难以置信的混淆恶意脚本 – 属于T1027技术(Obfuscated Files or Information)。这种技术剥夺了威胁狩猎观察者和安全解决方案读取恶意脚本意图的能力,它部署了一种编码、加密和规避层的噪点,以增加我们防御的成本,他们有时会很烦人~
在这种情况下,我们有一个毫无意义的PowerShell,防守者乍一看也只能耸耸肩,这种混淆的 PowerShell 试图逃避防御者及其安全工具来分析他们的恶意操作。
解开混淆后,我们看到了一个相对简单的任务,即通过一些基本的 AMSI 规避将恶意用户添加到域中(在案例 5 中会详细介绍):
在其他情况下,有问题的恶意文件部署了如此多的混淆层,以至于作为防御者去拆解分析脚本是非常困难的,几乎无法集中精力用聪明的方法工作。在下面的这个例子中,解码这个脚本实际上是不值得的。
相反,我们可以在沙箱中动态执行脚本——这表明该脚本是 ASYNCRAT 的字节的变种,它试图访问new50[.]noip[.]me
为了省事,我们可以看看脚本的最后四行,这并没有被混淆,并且aspnet_compiler.exe行是 AsyncRAT 的一种已知技术,用于在恶意可执行文件落地目标计算机 ( T1027.004 技术) 后对其进行编译。
我的同事约翰•哈蒙德(John Hammond)对这种晦涩难懂的剧本颇有鉴赏力。我向约翰咨询了他的想法:
拆解恶意脚本往往是一种静态和动态分析的平衡行为:你阅读代码,寻找地雷并绕过它们,去发现恶意软件的下一层或下一阶段。解除引线,可以运行代码片段,让脚本自己将自己解开。
案例四:LNK转EXE
我喜欢进攻性安全。作为蓝队的一员,我感谢我的红队同事,推动和创新新的模拟攻击技术来挑战我们。我喜欢的一种特殊攻击性安全技术,涉及隐藏在 LNK 文件( T1036技术 ) 中的可执行文件。
我在推特上讨论了关于这个技术的拆解和检测的细节,但这项技术的迷人之处在于它接近于我们在第一期中谈到的认知和技术操作。
在最初的审查中,这是一个很好的老式快捷方式——如果它出现在用户的桌面上,图标被替换为 Chrome 或 Spotify,那为什么用户不点击他们认为熟悉和安全的东西?
但仔细观察,就会发现这里有些地方不太对劲。我们在这里看到的是@x86matthew在防御雷达下飞行的出色技术,通过在此快捷方式中嵌入可执行文件,并将其伪装成合法且无害的。
在人的眼中和安全解决方案下,这种技术可能会成功规避防御。
在这个 LNK -> EXE 的文件包含技术中,例如一些轻量级的 XOR 加密 ( T1140 技术),它加密然后解密 EXE 的字节,以逃避检测。但对我来说,这项技术最有趣的是它诱骗了用户。它通过利用快捷方式和特定图标来诱使他们执行 ( T1204.001 ) ,从而使他们陷入一种虚假的安全感。
用户正忙于为组织机构分配给他们的工作任务,而黑客正好利用这一点,知道具有安全意识的人肯定会注意来自电子邮件的威胁,而不是来自他们自己桌面上的快捷方式?!我和Huntress的客户主管梅根·布鲁姆(Megan Broom)谈论这个狡猾的技巧:
频繁的点击应用程序让人几乎成为了机器人。作为现代的远程工作者,需要利用各种新的平台来完成我们的工作。
案例五:屏蔽安全视野
红队的另一项引人入胜的技术涉及完全规避用于监控的安全基础。
Windows 事件跟踪 (ETW) 和反恶意软件扫描接口 (AMSI) 是 Windows 提供的现代安全架构的主要能力(ETW 并不严格致力于安全性,也用于诊断日志记录目的)。有一系列对抗性技术试图绕过这些安全组件并破坏其安全视野。
在这种特定的技术中,一个 PowerShell 提示符是不受 AMSI 和 ETW 约束的,可以运行特定的恶意程序,可以关闭安全功能和安全日志。
在Twitter的一个帖子中,我分析了这种技术,并提供了一些关于检测这些技术的注意事项。但这种防御规避技术的有趣之处在于,它必须将可执行文件落地到磁盘上才能工作——因此,为了运行不受约束的、规避的 PowerShell,黑客必须能够运行本身也必须被免杀的恶意可执行文件!
防御规避的一个幸运之处在于——就像攻击者活动的任何阶段一样——存在监控、检测和警报的区域。对于像这样能够阻止和破坏基本安全设施(ETW 和 AMSI)的高级技术,代价将是您可以捕获一个初始化的可执行文件,如果您拥有了安全视野的高级能力,您将捕获该技术的其他东西。
案例六:第八层攻击
你知道 OSI 模型吗?当您开始从事 IT 工作时,他们会教您根据各个层面对于问题进行故障排除。从第一层到第八层。你知道什么是第八层么?
第八层是用户层,即人员层。就像一些IT支持服务只致力于解决第八层问题(用户问题)一样,也有黑客将他们的攻击瞄准了第八层——针对用户。这些是骗局、网络钓鱼电子邮件、伪装成您期望的发票恶意附件。所有这些都是针对用户的。
我们有一个合作伙伴提请我们注意的案例。黑客入侵了一台机器,植入了许多阴险的持久化来源,比如伪装成他们的会计软件 QuickBooks……最终会以弹出窗口结束:
多么的迷人,黑客一直在世界上做各种各样的事情——破坏域控制器,安装挖矿程序(或者也许现在是加密货币的糟糕时机),甚至在网络上使用勒索软件。这一次,他们决定使用一个不断弹出的伪装窗口来进行社会工程学。
我们的合伙人进行了一些初步调查,经证实,阴险的“quickbooks”程序是用证书签名的,但这不是合法的 QuickBooks 签名者,而是这个明显荒谬的 @Gmail 域伪装的。
这种防御规避方法完全是面向用户的(T1204),与我们之前谈到的 LNK / 快捷方式案例类似,你绝对想不到这种虚假的 QuickBooks 都是试图在“QuickBooks”无法加载时,是引导用户去拨打攻击者所控制的手机号码。
我和这个案子的调查员,我的同事Cat Contillo谈过:
这绝对是一个骗局。它没有任何QuickBook程序的任何东西….,当文件执行时,它是一个即时警报,在它只是不断地来回提示….。我可以想象一个用户
如何打电话(被骗)去摆脱这个烦人和愚蠢的提示。我会尽可能多的警惕观察,但总的来说,它是如此的烦人。
案例七:反射加载
我问马特安德森他对一些特别狡猾和酷的东西的看法。他分享了这个案例:
避免检测的另一种方法是将已知的良好应用程序武器化来完成肮脏的工作。这样,即使您看到进程正在运行,它看起来也不会很糟糕,因为它是正常的。
有许多不同的方法可以完成此操作,我们经常看到反射加载技术( T1620 ),其中恶意软件启动合法的Windows二进制文件,并利用此可执行文件的内存空间交换恶意负载。
在 Huntress 最近看到的一个案例中,一个有效荷载被注入到CasPol.exe——一个合法的、受信任的二进制文件中。这意味着通常不会触发警报,也不会使用受信任的Microsoft二进制文件引起注意——这是对手使用的一种诱饵和转换技巧。下面的恶意软件摘录显示了攻击者如何具体命名他们想要启动的文件 ( CasPol.exe )。
下面来自Sysinternals Process Monitor的进程树直观地展示了注入CasPol.exe内存的恶意荷载的影响。
恶意活动包括建立 TCP 连接,从而暗示某种 C2,以及在主机上删除文件,如 .BAT 脚本。
反射式加载与进程注入一样,利用已经为进程分配的内存。这些类型的任务保留在“内存中”,没有“触摸磁盘”或在文件系统上留下嘈杂的痕迹——这使得蓝队的监控和检测变得更加复杂。
安全解决方案在内存监控方面越来越好,但与此同时,黑客仍在创新和滥用我们机器的RAM来对付我们。
确实有压力
防御规避可以是深度的技术问题,也可以是认知和社会工程学,甚至针对心理学对抗上的规避。但是通过这里的案例,我试图传达蓝队还有希望!
Mandiant网络威胁情报分析师核心能力框架【解读】
2022年您应该关注的 22 个网络安全重要人物
原文始发于微信公众号(赛博攻防悟道):防御规避机制解读(The Mechanics of Defense Evasion)