• 针对高级持续威胁攻击的EDR评估——An Empirical Assessment of Endpoint Detection and Response Systems against Advanced Persistent Threats Attack Vectors,从攻击用例看,感觉这个评估叫APT攻击远远不够!!!内含crowdstrike内存扫描的做法,进程注入数据采集


    https://www.mdpi.com/2624-800X/1/3/21/htm 软件翻译如下:


    针对高级持续威胁攻击向量的端点检测和响应系统的实证评估

     
     
    1
    比雷埃夫斯大学信息学系, 80 Karaoli & Dimitriou Str., 18534 Piraeus, Greece
    2
    信息管理系统研究所,雅典娜研究中心,Artemidos 6,15125 Marousi,希腊
    *
    收稿日期:2021 年 5 月 17 日 / 修订日期:2021 年 6 月 30 日 / 接受:2021 年 7 月 6 日 / 发布时间:2021 年 7 月 9 日

    摘要

    高级持续性威胁对蓝队来说是一项重大挑战,因为他们会长时间应用各种攻击,阻碍事件关联和检测。 在这项工作中,我们利用各种不同的攻击场景来评估 EDR 对检测和预防 APT 的功效。 我们的结果表明,由于最先进的 EDR 无法预防和记录这项工作中报告的大部分攻击,因此仍有很大的改进空间。 此外,我们还讨论了篡改 EDR 遥测提供者的方法,从而允许对手进行更隐蔽的攻击。

    一、简介

    网络攻击的复杂程度和规模都在不断发展,其程度已达到世界经济论坛认为未来十年对全球商业构成第二大威胁的风险 [ 1 ]。 已经创造出来的地下经济已经变得如此庞大,以至于可以与国民经济的规模相媲美。 与大多数具有“打了就跑”作案手法的网络攻击相反,我们有高级持续性威胁,最广为人知的是缩写 APT。 在大多数网络攻击中,威胁行为者会尝试利用单个漏洞或机制来破坏尽可能多的主机,并尝试尽快将滥用存储的信息和资源的行为货币化。 然而,在 APT 攻击中,攻击者选择保持低调,通过各种攻击向量利用更复杂的入侵方法,并延长对受感染主机的控制。 事实上,这种控制可能会持续数年,正如许多此类事件所表明的那样。
    由于它们的性质和影响,这些攻击受到了很多研究的关注,因为攻击向量的异质性给传统的安全机制带来了许多问题。 例如,由于其隐蔽性,APT 可以绕过防病毒软件; 因此,需要更先进的方法来及时检测它们。 端点检测和响应 (EDR) 系统为组织的安全提供了一种更全面的方法,因为除了签名之外,EDR 将跨组织的多个主机的信息和事件关联起来。 因此,收集、处理和关联来自可能低于雷达的端点的单个事件,使蓝队能够深入了解组织周边所面临的威胁。
    尽管进行了研究并通过 EDR 部署了先进的安全机制,但最近发生的事件表明,我们远不能被认为可以免受此类攻击。 由于 APT 攻击并不常见,而且并非所有细节都可以公开共享,因此我们认为有必要进行健全性检查以评估此类安全机制对此类攻击的准备情况。 因此,我们决定进行 APT 组模拟来测试企业防御的能力,尤其是 EDR。 为此,我们选择在受控环境中使用一组与这些攻击的典型作案相匹配的脚本攻击来模拟 APT 攻击。 因此,我们尝试使用鱼叉式网络钓鱼和恶意软件传递技术渗透到一个组织,然后检查 IOC 和 EDR 产生的响应。 我们已经创建了四个这样的用例场景,它们具有相当的指示性和多样性,足以说明几种外围安全机制的弱点,更准确地说是 EDR。
    基于上述,我们工作的贡献是双重的。 首先,我们说明,尽管在静态和动态分析方面取得了进步,以及最先进的 EDR 应用了多种日志收集机制,但威胁行为者可以通过多种方式发起成功的攻击而不引发怀疑。 正如将要讨论的,虽然一些 EDR 可能会记录攻击的片段,但这并不意味着这些日志会触发警报。 此外,即使触发了警报,也必须从安全运营中心 (SOC) 的角度进行考虑。 实际上,一个 SOC 会收到多个警报,每个警报具有不同的严重性。 根据此严重性对这些警报进行优先级排序和调查。 因此,严重性较低的警报可能会滑到雷达之外而不会被调查,尤其是当 SOC 中的警报数量很高时 [ 2 ]。 此外,我们讨论了 EDR 的遥测提供者如何被篡改,从而允许对手隐藏她的攻击和踪迹。 据我们所知,科学文献中没有对现实世界 EDR 的功效进行实证评估,也没有以系统的方式进行以统一的方式突出其潜在问题。 除了科学文献,我们认为最接近的工作是 MITRE Engenuity ( https://mitre-engenuity.org/ 最后访问时间:2021 年 7 月 8 日); 但是,从攻击者的角度来看,我们的工作提供了每个步骤的技术细节。 此外,我们与使用和修改现成工具的每个已知组报告的典型 APT 功能不同。 因此,这项工作是第一个进行此类评估的工作。 这项工作绝不应作为对任何特定 EDR 解决方案的安全投资的指导。 正如稍后将讨论的那样,这项工作的结果试图指出特定的代表性攻击向量,并且无法掌握 EDR 可以缓解的所有可能攻击的整体情况。 实际上,EDR 规则的定制可能会显着改变其效力; 然而,后者取决于处理这些系统的蓝队的经验。
    这项工作的其余部分安排如下。 在下一节中,我们概述了有关 EDR 和 APT 攻击的相关工作。 然后,我们展示我们的实验设置并详细介绍我们的四个攻击向量的技术方面。 在 第 4 节 中,我们评估了 11 个最先进的 EDR,并评估它们在检测和报告我们的四种攻击方面的功效。 接下来,在 第 5 节 ,我们介绍了对 EDR 遥测提供者的篡改攻击及其影响。 最后,本文总结了我们的贡献并讨论了未来工作的想法。

    二、相关工作

    2.1。 端点检测和响应系统

    端点检测和响应 (EDR) 一词,也称为端点威胁检测和响应 (ETDR),由 A. Chuvakin [ 3 ] 在 2013 年创造。顾名思义,这是一种端点安全机制,不包括网络。 EDR 从端点收集数据并将其发送到集中式数据库中进行存储和处理。 在那里,收集的事件、二进制文件等将实时关联,以检测和分析受监控主机上的可疑活动。 因此,EDR 提高了 SOC 的能力,因为它们发现并提醒用户和应急响应团队新出现的网络威胁。
    EDR 非常基于规则; 尽管如此,机器学习或人工智能方法已逐渐进入这些系统,以促进寻找新的模式和相关性。 EDR 扩展了防病毒功能,因为 EDR 一旦检测到异常行为就会触发警报。 因此,EDR 可以检测未知威胁并在它们因行为而变得有害之前阻止它们,而不仅仅是签名。 虽然行为模式听起来很适合检测恶意行为,但这也意味着许多误报,即被认为是恶意的良性用户行为,因为 EDR 优先考虑精度而不是召回。 因此,SOC 必须处理大量的噪音,因为收到的许多警报都是错误的 [ 4 ]。 这就是 Hassan 等人的原因。 最近介绍了战术来源图(TPG)[ 5 ]。 他们推断 EDR 的威胁警报之间的因果关系,并改进多阶段攻击的可视化。 此外,他们的系统 RapSheet 具有不同的评分系统,可显着降低误报率。 最后,EDR 可以针对特定威胁执行修复或删除任务。
    尽管 EDR 带来了安全性的显着提升,但组织的整体安全性在很大程度上取决于人为因素。 在蓝队的情况下,预计针对攻击的结果将在事件响应方面经过全面培训的团队与仅响应特定检测到的威胁并依赖于单个安全工具的输出的团队之间存在很大差异。 然而,预计这两个团队都将由 EDR 的遥测触发并随后对其进行调查。 由于蓝队的经验和能力取决于多种因素,超出了我们的工作范围,因此在本研究中,我们关注 EDR 的遥测、它们标记事件的重要性以及它们是否阻止了某些操作。
    尽管如此,我们强调并非所有 EDR 都允许相同数量的定制或实施相同的策略。 此外,蓝队无法拥有所有 EDR 的经验来适当地配置它们,因为由于对平台、营销甚至客户政策的熟悉,每个团队将专注于一组有限的解决方案。 此外,并非所有蓝队都面临相同的威胁,这可能会严重影响蓝队将在安装中包含的规则的优先级,更不用说客户的需求了。 以上构成了在这项工作的背景下无法研究的各种因素。 相反,我们应该期望选择所有可能的安全措施时的基线安全性在大多数 EDR 中应该或多或少相同。 此外,人们会期望,即使 EDR 未能阻止攻击,它也应该至少记录这些操作,以便以后可以处理它。 然而,我们的实验表明,通常情况并非如此。

    2.2. 高级持续威胁

    高级持续性威胁 (APT) 一词用于描述威胁行为者在受害者的计算基础设施上建立隐形、长期持久性的攻击。 通常的目标是在威胁参与者认为必要时泄露数据或中断服务。 这些攻击不同于典型的“打了就跑”的作案手法,因为它们可能跨越数月至数年。 这些攻击是由高技能团体发起的,这些团体要么是民族国家,要么是国家赞助的。
    正如陈等人所指出的那样。 [ 6 ],APT攻击包括六个阶段:(1)侦察和武器化; (二)交货; (3) 初始入侵; (四)指挥与控制; (5) 横向移动; (6) 数据泄露。 作为该模型的补充,其他工作 [ 7 , 8 ] 考虑攻击树来表示 APT,因为可以并行使用不同的路径来获得目标资源的立足点。 因此,信息流通常用于检测 APT [ 9 ],以及异常检测、沙盒、模式匹配和图形分析 [ 10 ]。 后者意味着 EDR 可以作为对抗 APT 攻击的绝佳手段。
    在许多此类攻击中,威胁参与者使用 无文件恶意软件 [ 11 ],这是一种特殊类型的恶意软件,当受害者在内存中运行时,不会在受害者的文件系统上留下任何恶意指纹。 这背后的核心思想是,受害者将被引诱打开一个良性二进制文件,例如,使用社会工程,这个二进制文件将被用来执行一组恶意任务。 事实上,Windows 中预装了许多二进制文件和脚本,或者稍后由操作系统下载,它们要么被数字签名,要么被操作系统列入白名单,从而可以执行一组可利用的功能。 由于它们由 Microsoft 进行数字签名,因此用户帐户控制 (UAC) 允许它们执行一组任务,而无需向用户发出任何警报。 这些二进制文件和脚本通常称为 Living Off The Land 二进制文件和脚本(以及库) ,或 LOLBAS/LOLBINS [ 12 ]。

    2.3. 网络杀伤链

    网络杀伤链是一种模型,它允许安全分析师将网络攻击(尽管其复杂性)解构为互不排斥的阶段 [ 13 ]。 每个阶段都与其他阶段相互隔离,这一事实允许人们单独分析攻击的每个部分,并创建缓解方法和检测规则,以促进针对有问题的攻击或类似攻击的防御机制。 此外,蓝队必须解决较小的问题,一次解决一个问题,这比面对一个整体的大问题要高效得多。 在网络杀伤链模型中,我们认为威胁行为者试图以一系列顺序、增量和渐进的步骤渗透计算机网络。 因此,如果攻击的任何阶段被阻止,那么攻击将不会成功。 因此,我们上面提到的小步骤对于应对网络攻击至关重要,而第一阶段越早设法阻止攻击,它产生的影响就越小。 虽然该模型相当灵活,但它已经进行了一些更新以适应更有针对性的用例,例如,内部网络杀伤链以解决内部恶意行为者的问题,例如心怀不满或不忠诚的员工。
    MITRE 的 ATT&CK [ 14 ] 是一个知识库和模型,它试图描述威胁参与者在从侦察和利用到持久性和影响的整个攻击生命周期中的行为。 为此,ATT&CK 提供了一种全面的方法来对对手的战术、技术和程序进行分类,从底层操作系统和基础设施中抽象出来。 基于上述,使用 ATT&CK 可以模拟威胁场景( https://attack.mitre.org/resources/adversary-emulation-plans/ 于 2021 年 7 月 8 日访问)或评估部署的防御机制针对常见对手技术的有效性。 最近,Pols 推出了统一杀戮链( https://www.unifiedkillchain.com/assets/The-Unified-Kill-Chain.pdf ,于 2021 年 7 月 8 日访问),它扩展并结合了 Cyber​​ Kill Chain 和 MITRE 的 ATT&CK。 统一杀戮链解决了网络杀戮链和 ATT&CK 未涵盖的问题,其中包括对超出组织范围、用户角色等的攻击者行为进行建模。

    3. 实验装置

    在本节中,我们详细介绍了我们对 EDR 进行的一系列实验的准备工作。 因为我们的目标是产生准确且可重现的结果,所以我们会在必要时提供必要的代码。 为此,我们专门设计并运行实验来回答以下研究问题:
    • RQ1: 最先进的 EDR 可以检测常见的 APT 攻击方法吗?
    • RQ2: 最先进的 EDR 有哪些盲点?
    • RQ3: EDR 报告了哪些信息,它们的重要性是什么?
    • RQ4: 如何降低报告事件的重要性,甚至阻止报告?
    使用 ATT&CK 作为知识库和模型,可以对我们模拟的威胁参与者的行为进行建模, 如图 1 所示 。 由于空间限制,我们选择使用标准 ATT&CK 矩阵的修改版本并使用径向圆形树状图。
    图1。 模拟威胁参与者的 ATT&CK 模型。
    在这项工作中,我们对 EDR 的安全性进行了实证评估。 选定的 EDR 是根据 Gartner 的 2021 年最新报告( https://www.gartner.com/en/documents/4001307/magic-quadrant-for-endpoint-protection-platforms 于 2021 年 7 月 8 日访问)选择的,因为我们包括市场上绝大多数领先的 EDR。 后者意味着我们覆盖了巨大且具有代表性的市场份额,这实际上推动了该行业的发展和创新。 在我们的实验中,我们选择使用最常用的 C2 框架 Cobalt Strikehttps://www.cobaltstrike.com/ 于 2021 年 7 月 8 日访问)。 它已被威胁参与者和“红队”用于渗透组织 [ 15 ] 的众多行动中。
    此外,我们使用了 成熟 域; 具有适当分类的过期域,将指向托管我们的 Cobalt Strike 团队服务器的 VPS 服务器。 这将减少怀疑,并有望绕过一些限制,因为以前的经验表明,停放域和过期域( https://blog.sucuri.net/2016/06/spam-via-expired-domains.html https:// unit42.paloaltonetworks.com/domain-parking/ 于 2021 年 7 月 8 日访问)。 为我们的 C2 通信颁发了有效的 SSL 证书, Let's Encrypt https://letsencrypt.org/ 以加密我们的流量图 2 说明了我们的领域及其分类。
    图 2。 指向我们的 C2 服务器的域 ( up ) 及其分类 ( down )。
    Cobalt Strike 在受害者上部署名为“信标”的代理,允许攻击者在受感染主机上执行多项任务。 在我们的实验中,我们使用了所谓的 可延展 C2 配置文件 https://www.cobaltstrike.com/help-malleable-c2 于 2021 年 7 月 8 日访问),因为它修改了信标的指纹。 这掩盖了我们的网络活动和恶意软件的行为,例如暂存过程; 中的清单 A1 附录 A 。 请注意,为了便于阅读,它已稍微格式化。
    Cobalt Strike deploys agents named ‘beacons’ on the victim, allowing the attacker to perform multiple tasks on the compromised host. In our experiments, we used the so-called malleable C2 profile (https://www.cobaltstrike.com/help-malleable-c2 accessed on 8 July 2021) as it modifies the beacon’s fingerprint. This masks our network activity and our malware’s behavior, such as the staging process; see Listing A1 in Appendix A. Please note that it has been slightly formatted for the sake of readability.

    3.1。 攻击向量

    我们构建了四种不同但真实的场景来执行我们的实验,这些场景模拟了野外威胁参与者使用的场景。 我们认为,对 EDR 的实证评估应该反映野外常见的攻击模式。 由于 APT 组最常用的攻击媒介是电子邮件,作为社会工程或鱼叉式网络钓鱼的一部分,我们选择使用恶意附件,诱使目标受害者执行它们。 此外,我们应该考虑到,由于 EDR 报告的误报噪声很大,因此必须考虑每个事件归因于的分数。 因此,在我们的工作中,我们试图在最详细的 EDR 设置中最小化我们行动的报告分数。 通过这种方法,我们保证攻击将在雷达之下通过。
    基于上述情况,我们假设的威胁行为者通过一些鱼叉式网络钓鱼电子邮件开始攻击,这些电子邮件试图引诱目标用户打开文件或点击将用于危害受害者主机的链接。 为此,我们制作了一些电子邮件,其中包含指向某些自定义恶意软件的云提供商的链接。 更准确地说,攻击向量如下:==》从下面的攻击看,感觉这个评估叫APT攻击远远不够!!!
    • .cpl 的上下文中可以通过双击执行的DLL 文件,该文件可以 rundll32 LOLBINS 该文件是使用 CPLResourceRunner https://github.com/rvrsh3ll/CPLResourceRunner 于 2021 年 7 月 8 日访问)。 为此,我们使用了一种使用内存映射文件 (MMF) [ 16 ] 的 shellcode 存储技术,然后使用委托触发它; 请参见清单 1。==》搜索 cpl mitre可以看到这种其实也算是无文件攻击
    • 将加载恶意 DLL 的合法 Microsoft (MS) Teams 安装。 在这方面,DLL 侧载( https://attack.mitre.org/techniques/T1574/002/ 于 2021 年 7 月 8 日访问)将导致自注入,从而使我们能够“生活”在已签名的二进制文件下. 为此,我们使用了 AQUARMOURY-Brownie https://github.com/slaeryan/AQUARMOURY ,于 2021 年 7 月 8 日访问)。
    • 一个未签名的 PE 可执行文件; 简称为 EXE ,它将使用AQUARMOURY的“ ”技术 werfault.exe 中。 为此,我们 explorer.exe 使用 PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY 以保护我们的恶意软件免受 的 Microsoft DLL 未签名 EDR 通常用于进程监控

    作用:防止恶意第三方DLL注入到进程的方法就是使用UpdateProcThreadAttribute,这个属性是PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY中一个我们可以自行设置的属性。 下面的代码段显示了如何使用MITIGATION策略来创建一个新的记事本进程,而这个进程将阻止任意非微软签名的代码注入其中。编译并执行下列代码后,将以进程缓解策略执行notepad.exe程序,并防止任意非微软签名的代码注入其中。

    • HTA 文件 。 一旦用户访问一个包含 IFrame 的无害 HTML 页面,他将被重定向并提示他运行一个注入了可执行 VBS 代码的 HTML 文件,该文件将加载清单 2 中提供的 .NET 代码并在 mshta 的上下文中执行自注入。 exe
    清单 1. 的 Shellcode 执行代码 CPLResourceRunner
    jcp 01 00021 i001
    在下文中,我们仅针对我们的攻击评估 EDR。 毫无疑问,在企业环境中,人们会期望更多的安全措施,例如防火墙、防病毒软件等。然而,尽管提高了组织的整体安全性,但它们的输出被认为超出了这项工作的范围。

    3.2. 代码分析

    在以下段落中,我们详细介绍了每个攻击向量的技术方面。

    3.2.1。 HTA

    我们使用 C# 和 Gadget2JScript https://github.com/med0x2e/GadgetToJScript 于 2021 年 7 月 8 日访问)工具生成将在内存中执行的序列化小工具; 请参见清单 2。 ETWpCreateEtwThread 用于通过避免常见的 API(例如 CreateThread() ) 。 请注意,在后台 RtlCreateUserThread https://twitter.com/therealwover/status/1258157929418625025 于 2021 年 7 月 8 日访问)。
    清单 2. 分配空间和执行 shellcode 的 EtwpCreateEtwThread
    jcp 01 00021 i002

    3.2.2. 可执行文件

    这种攻击背后的主要思想是一个相当简单的代码注入,在 main 方法之前使用 QueueUserAPC() API 执行我们的 shellcode。 它将启动一个 牺牲 进程并注入该进程。 该文件将在程序集中使用直接系统调用以避免挂钩函数。 应该注意的是,Windows 错误报告服务 ( werfault ) 是一个极好的注入目标,因为一旦进程崩溃,可能会出现子 werfault 进程,这意味着父进程可以是任意的。 这极大地阻碍了亲子关系的调查。 值得注意的是,一旦与正确的标志一起使用,它可以避免怀疑 [ 17 ]。 相关代码可以在清单 3 中找到。

    3.2.3。 DLL 侧载

    创建一个合法 DLL 的邪恶克隆, system32 并将其添加到 MS Teams 的文件夹中,以便在其进程下触发我们的加密 shellcode。 此外,由于 MS Teams 将自身添加到启动中,这为我们提供了对受感染主机的持久性。 请注意,EDR 有时倾向于忽略自我注入,因为他们认为它们不会改变不同的过程。
    在清单 4 中,我们说明了 shellcode 执行方法。 它是一个经典 CreateThread() 的基于本地注入 良性 二进制进程下启动 shellcode。 不幸的是,在这种情况下,唯一的问题是 DLL 没有签名,这可能会触发一些防御机制。 在提供的代码中,可以观察到 VirtualProtect() 。 这样做是为了避免直接分配 RWX 内存。 在清单 5 中,我们可以看到汇编系统调用的用法。
    最后,需要注意的是,对于测试,安装将手动放置在 Desktop 文件夹中并执行。 图 3 说明 MS Teams 允许 DLL 劫持。
    清单 3. 通过使用 Nt* API 的“EarlyBird”技术将 shellcode 执行到具有 CIG 和欺骗 PPID 的子进程中。
    jcp 01 00021 i003
    清单 4. 进行本地内存分配和 shellcode 执行 CreateThread()
    jcp 01 00021 i004
    清单 5. Assembly 中的直接系统调用示例。
    jcp 01 00021 i005
    图 3。 使用 Process Explorer 查找可劫持的 DLL。

    4. EDR 评估

    在下文中,我们针对我们的攻击评估了 11 个最先进的 EDR。 为此,我们简要概述了每个 EDR 及其功能。 然后,我们继续报告启用了哪些功能,并讨论了每个功能在攻击场景中的表现。 EDR 按字母顺序列出。

    4.1。 碳黑

    炭黑是领先的 EDR 解决方案之一。 它的真正强大之处在于它的遥测技术和广泛监控系统上执行的每个操作的能力,例如注册表修改、网络连接等,最重要的是,它提供了一个 SOC 友好的界面来对主机进行分类。 基于从传感器收集的遥测数据,与几个 IoC 进行比较。 后者将被汇总为一个分数,根据其值,将触发警报。 此外,在考虑 EDR 时,配置起着至关重要的作用。 因此,在这种情况下,我们有一个自定义 SOC 源,用于基于炭黑处理的 IOC 的检测。 此外,提要可以基于查询,这意味着将根据基于 Carbon Black 处理的事件(包括但不限于注册表修改、网络连接和模块加载)的搜索产生的结果生成警报。
    此 EDR 严重依赖内核回调,其许多功能驻留在其网络过滤驱动程序和文件系统过滤驱动程序中。 对于几个检测,还使用了用户模式挂钩。 例如,考虑内存转储 (DUMP_PROCESS_MEMORY) 的检测。 正如 Carbon Black 的文档中所提到的,用户态 API 挂钩被设置为检测进程内存转储。 另一个例子是检测加载到内存中的脚本解释器 ( HAS_SCRIPT_DLL )。 如文档中所述,驱动程序例程被设置为识别加载内存脚本解释器的进程。

    4.1.1。 启用设置

    Carbon Black Response 在逻辑和用例方面有所不同。 它的主要目的是提供遥测而不是主动采取行动。 此外,它的范围是在调查期间提供协助,因为它不包括阻止功能,而是一种对 SOC 友好的软件,可提供深入的可见性。 它的能力与控制台背后的人密切相关,因为除了对主机进行分类之外,它的检测依赖于可以定制并产生警报的提要。 在我们的案例中,我们使用了一些默认提要,例如 ATT&CK 提要和 Carbon Black 的社区提要,以及自定义企业提要。

    4.1.2. CPL

    如图 4 的名称、位置和使用异常,触发了警报 Shell32.dll 。 Carbon Black 非常清楚这种情况下的恶意 .cpl 文件,但它无法清楚地验证此活动是否确实是恶意的。 因此,该事件被报告为 低分 图 5 在右侧说明了被触发的 IOC。
    图 4。 使用炭黑生成的所有警报。
    图 5。 CPL 的 IOC 由炭黑生产。==》清晰的图如下,报的是mshta和rundll32!!!

    4.1.3。 HTA

    文件 检测到 .hta 是因为它的父进程可能是 CVE 并且加载了可疑的模块。 炭黑对 LOLBAS 和 LOLBINS 都有感知,并及时检测到, 见图 6
    图 6。 HTA 的炭黑发现。==》

    4.1.4。 EXE-DLL

    关于其他两个攻击媒介,没有发出警报。 尽管如此,尽管能够成功与我们的域进行通信,但它们的活动仍被正常监控并产生主机通信的遥测数据。 最后,应该指出的是,PPID 欺骗对炭黑没有成功。 可以看到的结果是 图7
    图 7。 Carbon Black 针对 EXE 和 DLL 攻击向量的发现。

    4.2. 众击猎鹰

    CrowdStrike Falcon 将一些最先进的行为检测功能与非常直观的用户界面相结合。 后者通过进程树和攻击指标提供了事件本身和攻击期间机器状态的清晰视图。 Falcon Insight 的内核模式驱动程序可捕获 200 多个事件和追溯事件所需的相关信息。 除了内核回调和用户模式挂钩的经典用法外,Falcon 还订阅了 ETWTi( https://www.reddit.com/r/crowdstrike/comments/n9to1b/interesting_stuff/gxq0t1t 于 2021 年 7 月 8 日访问)。
    不断检查 Windows API,例如 VirtualAllocEx NtMapViewOfSection 在扫描内存之前 一旦 Falcon 发现任何进程调用了这些中的任何一个,它就会快速检查分配的内存以及这是否是从远程进程创建的新线程。 在这种情况下,它会跟踪线程 ID,提取全部注入的内存并解析 .text 部分、 Exports 部分、PE 头、DOS 头并显示 PE 的名称、开始/停止日期/时间、不限于加载函数的导出地址。==》内存扫描的做法,CS的终于看到了!!!
    至于响应部分,它提供了广泛的实时响应能力,并允许基于进程创建、网络连接和文件创建等创建自定义 IOA。

    4.2.1。 启用设置

    对于此 EDR,我们使用了一种积极的策略,尽可能多地启用功能。 这是一项已经在企业环境中使用的策略,其目标是最大程度地保护和最小化干扰。

    4.2.2. DLL-CPL-HTA

    这三个攻击向量都没有产生任何警报,并允许 Cobalt Strike 信标被秘密执行。

    4.2.3。 EXE文件

    非常有趣的 EXE 是,虽然直接系统调用被用来绕过用户模式挂钩,但仍检测到 请注意,警报具有中等严重性。 另外,请注意 图 8
    图 8。 尽管使用了直接系统调用,但 CrowdStrike 仍捕获了“早鸟”注入。
    ==》

     

    可以看到进程注入检测主要就是这些API的调用。

    4.3. ESET PROTECT 企业版

    ESET PROTECT Enterprise 是一种广泛使用的 EDR 解决方案,它使用行为和信誉系统来缓解攻击。 此外,它使用云沙盒来防止零日威胁和全盘加密以增强数据保护。 EDR 使用从数百万个端点收集的实时反馈,其中包括内核回调、ETW(Windows 事件跟踪)和挂钩。 ESET PROTECT Enterprise 允许通过编辑 XML 文件和根据用户和组自定义策略进行微调。 为此,蓝队可能会使用文件名、路径、哈希、命令行和签名者来确定警报的触发条件。
    我们使用具有最大可用预定义设置的 ESET PROTECT Enterprise, 如图 9 所示 ,无需进一步微调。
    图 9。 ESET PROTECT Enterprise 设置。

    4.3.1。 启用设置

    对于此 EDR,我们使用了预定义的策略以获得最大的安全性,如 ESET 在控制台中所述。 这利用了机器学习、深度行为检查、SSL 过滤和 PUA 检测,我们决定对最终用户隐藏 GUI。

    4.3.2. EXE-DLL

    这两个攻击向量都成功执行,没有 EDR 阻止并报告任何警报; 见图 10
    图 10。 通过 EXE 和 DLL 攻击绕过 ESET PROTECT Enterprise。

    4.3.3. CPL-HTA

    ESET PROTECT Enterprise 正确识别并阻止了 CPL 和 HTA 攻击; 参见 图 11 图 12 。 应该注意的是,ESET 的内存扫描器正确识别了恶意存在,但错误地将威胁命名为 Meterpreter。
    图 11。 ESET PROTECT Enterprise 检测到 HTA 攻击。
    图 12。 ESET PROTECT Enterprise 检测到 CPL 攻击。==》检出了cpl文件,这个软件的易用性很差啊。。。

    4.4. F-Secure Elements 端点检测和响应

    F-Secure Elements EDR 从端点收集行为事件,包括文件访问、进程、网络连接、注册表更改和系统日志。 为此,EDR 使用 Windows 事件跟踪。 虽然 F-Secure Elements EDR 使用机器学习来关联信息,但通常使用网络安全专家的人工干预。 EDR 还具有内置的事件管理功能。 此外,在确认检测后,F-Secure Elements EDR 具有内置指南,可帮助用户采取必要步骤来遏制和修复检测到的威胁。

    启用设置

    在我们的实验中,所有功能都已启用,包括 DeepGuard。 我们还包括基于信誉的浏览控制,并且防火墙已启动并运行。 值得注意的是,所有发起的攻击都成功了,F-Secure Elements EDR 没有报告任何警报; 见图 13
    图 13。 F-Secure Elements EDR 控制台在启动我们的攻击后报告没有安全事件。

    4.5. 卡巴斯基端点检测和响应-KEDR

    卡巴斯基的 EDR (KEDR) 是一种高度可调的 EDR,可与其他端点保护系统(甚至来自不同供应商)协作。 这样,后者试图解决更广泛的攻击,而 KEDR 则专注于高级攻击。 除了传统的挂钩机制之外,此 EDR 还允许端点使用计算量更大的高级预处理和沙盒。 此外,它还具有用于事件调查、主动威胁搜寻和攻击响应的工具。 日志和事件被发送到中央节点,但在中央节点认为必要时会发送进一步的遥测数据,从而显着降低中央节点的整体网络和存储成本。 此外,KEDR 使用专门的管理程序使用内核挂钩。 这有几个缺点,因为它需要虚拟化支持( https://github.com/iPower/KasperskyHook 于 2021 年 7 月 8 日访问)。

    4.5.1。 启用设置

    在我们的实验中,我们在每个类别中启用了所有与安全相关的功能。 但是,我们没有为 Web 和应用程序控件使用任何特定配置。 更准确地说,我们创建了一个策略并启用了所有选项,包括行为检测、漏洞利用和进程内存保护、HIPS、防火墙、AMSI 和文件系统保护模块。 这些操作被设置为阻止和删除所有恶意工件和行为。

    4.5.2. CPL-HTA-EXE

    对于 CPL、HTA 和 EXE 攻击向量,KEDR 及时识别并阻止了我们的攻击; 见图 14 更准确地说,EXE 和 CPL 进程在执行后被杀死,而 HTA 一接触磁盘就被阻塞。
    图 14。 KEDR 的屏幕截图说明了它检测到并阻止的恶意活动。==》

    从这里看,还是用的签名和Av引擎。

    4.5.3. 动态链接库

    我们的 DLL 攻击成功发起,KEDR 没有记录遥测数据。

    4.6. 迈克菲端点保护

    McAfee Endpoint Protection 是最可配置且对技术用户解决方案最友好的解决方案之一,它允许对特定进程行为(即远程内存分配)做出反应,还可以通过减少攻击者基于少数选项的选项来主动消除威胁,例如阻止程序注册自动运行。 我们决定充分利用这种可配置性并挑战 McAfee,并仅禁用一条规则来阻止从常见文件夹(例如桌面文件夹)执行。 这种选择背后的基本原理是可用性,因为激活此规则会在日常环境中导致许多可用性问题。
    在我们的实验中,我们成功地使用我们的直接系统调用 dropper 绕过限制并远程分配内存并执行它。 后者表明遥测提供者和信息处理效率不高。

    4.6.1. 启用设置

    对于这个 EDR,我们决定挑战 McAfee,因为它为高级用户提供了大量的设置和许多选项,例如内存分配控制等。同样有趣的是,默认创建了一些策略来阻止可疑活动,比如我们HTA的执行。 我们选择无一例外地启用所有选项,除了从用户文件夹阻止执行并会在公司环境中导致问题的选项。
    显示了已启用设置的摘录 图 15
    图 15。 McAfee Endpoint Protection 中启用的设置摘录。

    4.6.2. HTA-CPL

    基于 HTA 和 CPL 的攻击均被识别并阻止。 但是,应该注意的是,由于应用了阻止所有 HTA 文件执行的策略,HTA 攻击被阻止了; 见图 16
    图 16。 McAfee Endpoint Protection 阻止 HTA 攻击。

    4.6.3. EXE-DLL

    基于 EXE 和 DLL 的攻击都成功执行,没有被 EDR 识别,也没有产生任何遥测数据。

    4.7. 哨兵一号

    Sentinel One 具有复杂的基于 AI 的行为分析功能,这使得隐形渗透和工具执行变得相当困难。 其中,哨兵一号收集 ETW 遥测数据并监控系统的几乎所有部分。 它使用内核回调来收集信息,例如进程创建、图像加载、线程创建、句柄操作和注册表操作。 它还生成详细的攻击路径和进程树图。
    我们的结果表明,哨兵一号在处理基于 PowerShell 的后期利用活动方面存在严重问题。 轻松运行诸如 PowerView 使用 Cobalt Strike 的 powershell 命令和一些 IEX 通讯座

    4.7.1. 启用设置

    对于这个解决方案,我们决定使用控制台中的按钮启用使用其引擎所需的所有功能,包括静态和行为 AI、脚本、横向移动、无文件威胁检测等(看来sentinel one专门宣传过无文件攻击检测)。此外,我们启用了 Deep Visibility 提供的所有功能除了全盘扫描和数据屏蔽。 我们还选择终止进程并隔离文件。

    4.7.2. EXE-HTA-CPL

    值得注意的是,这些攻击媒介都没有向哨兵一号发出警报。

    4.7.3. 动态链接库

    一旦安装了 MS-Teams 的文件夹接触到磁盘,就会触发警报,表明恶意 DLL 未签名,这可能是一个潜在风险。
    如图 17 所示 ,我们的 DLL 的高熵被检测为 IoC。 IoC 是正确的,因为我们的 shellcode 是 AES 加密的。 应该注意的是,先前使用低熵文件(使用 XOR 编码)对哨兵一号进行的实验没有任何问题通过了测试,这意味着实际问题是由于 DLL 的高熵造成的。
    图 17。 哨兵一号报告 DLL 攻击。==》居然是AI引擎检测的

    4.8. 带 EDR 的 Sophos Intercept X

    Sophos Intercept 是最知名和最受信任的 AV/EDR 之一。 它以前被用作用户模式钩子规避的测试用例( https://www.mdsec.co.uk/2020/08/firewalker-a-new-approach-to-genericly-bypass-user-space- edr-​​hooking/ 于 2021 年 7 月 8 日访问)。 EDR 版本提供了事件的完整视图和非常详细的遥测数据,以及带有洞察力图表的友好界面。 其部分功能 见图18
    图 18。 Sophos 的设置。

    4.8.1. 启用设置

    对于 Sophos,配置对用户来说简单直观。 因此,我们启用了所有提供的功能,这些功能提供了没有可用性问题的保护。

    4.8.2. EXE文件

    这是唯一能完美对抗 EDR 的向量。 事实上,由于它的不可信性质,因为它没有签名,所以只产生了一个小的亮点事件。 PPID 欺骗起作用了,没有产生任何警报,但是 werfault.exe ,例如,与我们域的连接。 参见 图 19
    图 19。 可执行文件能够运行 shellcode 并连接到 C2。

    4.8.3. 动态链接库

    不幸的是,无法加载恶意 DLL,但 EDR 没有发出警报。 有趣的是,应用程序在文件夹中没有 DLL 的情况下正常执行。 我们假设由于有效负载正常运行,EDR 的进程保护功能可能会存在一些干扰。

    4.8.4. CPL

    就会 .cpl 产生警报,阻止进程,并 图 20 创建 可以观察到,对系统活动产生了详细的遥测数据。
    图 20。 CPL 被 Sophos 阻止。 详细信息和图表。

    4.8.5。 HTA

    iexplore.exe 访问并下载了 hta 被阻止了,并且再次产生了详细的攻击遥测。 参见 图 21 图 22
    图 21。 HTA 被 Sophos 阻止。 详细信息和图表。==》威胁图支持过滤,溯源分析做得很好啊!
    图 22。 Sophos 记录的与我们域的网络连接。

    4.9. 赛门铁克端点保护

    Symantec Endpoint Protection 是一种众所周知的解决方案,并且是多个行业中最常用的解决方案之一。 它结合了高度复杂的静态检测引擎和模拟器。 后者考虑反规避技术,解决打包恶意软件混淆技术,并检测隐藏在自定义打包程序中的恶意软件。 Symantec Endpoint Protection 使用机器学习引擎通过学习过程确定文件是良性还是恶意。 Symantec 安全响应中心训练该引擎识别恶意属性并定义机器学习引擎的规则以进行检测。 赛门铁克利用其云服务来确认机器学习引擎所做的检测。 为了保护端点设备,它在启动时启动了一种特殊的反恶意软件机制,在第三方驱动程序初始化之前,通过 ELAM 驱动程序防止恶意驱动程序和 rootkit 的操作( https://docs.microsoft.com/en-us /windows-hardware/drivers/install/elam-driver-requirements 2021 年 7 月 8 日访问)。 EDR 高度可配置且易于适应日常企业生活,具有强大的 HIDS 和网络监控功能,使其能够识别和阻止基于网络的横向移动、端口扫描以及常见的恶意软件网络行为,例如,meterpreter 的默认 HTTPS沟通。==》可以检测加密C2????逗我???

    4.9.1。 启用设置

    我们使用默认保护级别启用了默认功能。 它们足以提供足够的保护而不会引起问题。

    4.9.2. HTA

    在我们的攻击中,Symantec Endpoint Protection 只成功识别并阻止了 HTA 攻击; 见图 23 。 但是,没有向用户发出警报。
    图 23。 识别并阻止来自 Symantec Endpoint Protection 的 HTA 攻击。

    4.9.3. CPL-EXE-DLL

    所有三种攻击媒介(CPL、EXE 和 DLL)都成功了,没有 EDR 识别、阻止它们或产生任何警报。

    4.10。 趋势科技 Apex 一

    Apex One 是一个著名的解决方案,在 Gartner 的榜单上名列前茅。 它的整体功能,除了基本的保护和防火墙功能外,还包括预测机器学习,还可以用于离线保​​护。 即使功能性 Internet 连接不可用,轻量级离线模型也有助于保护端点免受未知威胁。 安全客户端策略通过增强对可疑进程行为的内存扫描,提供针对最新无文件攻击方法的增强实时保护。 安全客户端可以在造成任何损害之前终止可疑进程。 增强的扫描功能可以通过识别常见行为和阻止通常与勒索软件程序相关的进程来识别和阻止针对在端点上运行的文档的勒索软件程序。 您可以将安全客户端配置为将包含先前未识别威胁的文件对象提交给沙盒平台以供进一步分析。 评估对象后,沙盒平台会将其确定包含未知威胁的对象添加到沙盒平台可疑对象列表中,并将列表分发给整个网络的其他安全客户端。 最后,行为监控会持续监控端点对操作系统和已安装软件的异常修改。
    根据我们的研究,Apex One 使用网络、内核回调和挂钩; 在内核和用户模式、ETW 和 AMSI 中执行行为检测。 更具体地说,对于 ETW,Apex One 使用名为 TMSYSEVT_ETW 的数据收集器。

    4.10.1。 启用设置

    在 Apex One 中,我们尽可能多地利用了策略编辑器中提供的功能,例如 EDR 的智能扫描方法、智能扫描、压缩文件扫描、OLE 对象扫描、智能陷阱(用于对抗恶意软件实时压缩的功能) )、勒索软件保护(针对勒索软件的行为保护,我们的测试不需要)、反漏洞保护、监控新遇到的程序、C&C 流量过滤,当然还有预测性机器学习。 最后,我们配置 EDR 以阻止所有恶意行为。

    4.10.2. EXE-DLL

    EXE 和 DLL 攻击均成功发起。 Apex One 没有识别或阻止它们,EDR 也没有发出警报。

    4.10.3. CPL-HTA

    在发起 HTA 攻击时,Apex One 识别了威胁并阻止了它; 但是,它没有引发任何警报, 如图 24 。 相反,CPL 攻击被检测、阻止并触发了适当的警报; 见图 25
    图 24。 针对 Apex One 的 HTA 攻击。
    图 25。 检测并阻止了针对 Apex One 的 CPL 攻击。

    4.11。 用于终结点的 Windows Defender (ATP)

    Windows Defender for Endpoints 很大程度上基于内核,而不是基于用户,这提供了强大的检测功能。 MDATP 的美妙之处在于,大多数检测功能都在 Windows 本身中,尽管除非机器被载入,否则它不会被使用。 对于这些测试,EDR 设置为阻止模式以防止而不是仅仅检测。 其遥测源包括 WdFilter.sys 微型筛选器驱动程序使用的内核回调。 如前所述,一旦满足某个条件(例如,当模块加载时),回调就会设置为“拦截”活动。 作为其中的一个例子,请考虑:
    • PsSetCreateProcessNotifyRoutine(Ex) - 进程创建事件。
    • PsSetCreateThreadNotifyRoutine - 线程创建事件。
    • PsSetLoadImageNotifyRoutine-Image(DLL/Driver) 加载事件。
    • CmRegisterCallback(Ex) - 注册操作。
    • ObRegisterCallbacks-处理操作(例如:进程访问事件)。
    • FltRegisterFilter-I/O 操作(例如:文件系统事件)。
    它们还包括内核级 ETW 提供程序,而不是用户模式挂钩。 这是一种检测恶意 API 使用的解决方案,因为由于内核补丁保护 (KPP) PatchGuard (PG) 不允许挂钩 SSDT(系统服务调度表)。 在继续之前,我们应该注意卡巴斯基采用的不同方法:为了挂钩内核,它使用了自己的管理程序。
    自 Windows 10 RS3 以来,NT 内核使用 EtwTi 函数检测各种 API,这些 API 通常被滥用于进程注入、凭证转储等,以及可通过安全 ETW 通道 ( https://blog.redbluepurple.io/windows- security-research/kernel-tracing-injection-detection 于 2021 年 7 月 8 日访问)。 因此,MDATP 严重依赖 EtwTi,在某些情况下甚至完全依赖于遥测。
    作为 ETWTi 传感器的示例,请考虑 图 26 。 这是通过在主机上运行我们的 EXE 有效负载产生的警报,表明 ATP 处于被动模式。 请注意,尽管我们的有效负载使用直接系统调用,但我们的注入会被检测到。
    图 26。 ATP 捕获 APC Early-Bird 注入的示例,尽管使用了直接系统调用。==》从下图看,微软的进程注入检测做得很强啊!!!
     
    由于回调在内核级别(Ring 0)运行,攻击者需要在机器中执行高完整性级别的代码才能成功地使它们失明或使其无用。 攻击者可以选择以下三种技术中的任何一种来实现这一点:
    • 从存储所有地址的内核回调数组中将回调例程的地址清零。
    • 注册的回调例程 WdFilter.sys
    • 的回调例程 WdFilter.sys 使用 RET(0xc3) 指令
    由于 ETWTi 传感器遥测的性质,不可能从中等 IL 上下文中屏蔽源,并且需要管理员/高 IL 上下文。 一旦实现了这一点,攻击者就可以使用以下任何一种方法:
    • 通过在函数开头插入 RET/0xC3 指令来修补特定的 EtwTi 函数,以便它简单地返回而无需进一步执行。 不是 KPP 安全的,但攻击者可以通过在完成目标后立即恢复函数的原始状态来避免目标蓝屏死机。 理论上,Patch Guard 可能会在任何随机时间触发,但实际上,PG 在这个极短的时间间隔内准确触发的可能性极低。
    • 损坏 EtwTi 句柄。
    • 禁用 EtwTi 提供程序。

    4.11.1。 启用设置

    我们启用了所有基本功能,包括篡改保护、阻止模式选项和自动调查。 大多数都在后台处理,管理员能够配置与 intune 的连接,这超出了范围。 我们还使用将上传可疑文件并检查它们的云启用了文件和内存内容分析。

    4.11.2. CPL-EXE-HTA

    这些向量中的大多数在它们接触磁盘或被执行时就被检测到。 中找到相关警报 图 27
    图 27。 由 ATP 产生的警报总数。
    请注意,对于 .cpl 文件,尽管 EDR 检测到它,但它是通过功能齐全的信标会话执行的。 参见 图 28
    图 28。 有关从 ATP 生成的警报的详细信息。==》微软的ATP易用性还是不错的!
    在下方查找针对此 ATP 事件启动的相关自动调查,包括生成的所有警报。 请注意,在成功补救和全面判决之前,调查可能需要很长时间。 参见 图 29
    图 29。 ATP自动调查。

    4.11.3。 动态链接库

    DLL 侧载攻击是成功的,因为 EDR 没有产生任何警报或任何可疑的时间线事件。 图 30 说明了生成的遥测数据。 请注意与我们的恶意域的连接以及我们模块的不间断加载。
    图 30。 ATP 旁加载 DLL 的时间线事件。

    4.12。 汇总结果

    表 1 展示了我们研究结果的汇总概览。 显然,在发起的 20 次攻击中,有一半以上是成功的。 令人震惊的是,没有一个 EDR 能够检测到所有攻击。 更准确地说,10次攻击完全成功,因为它们成功完成,没有发出警报; 3次攻击成功,但发出低重要性警报; 1次攻击未成功,但未发出警报; EDR 检测到并正确报告了 6 次攻击。
    表格1。 每个 EDR 的攻击汇总结果。 符号:✓:攻击成功,•:攻击成功,引发轻微警报,☆:攻击成功,引发警报∘:攻击不成功,未引发警报,✗:攻击失败,引发警报。

    5. 篡改遥测提供者

    除了为每个 EDR 找到“盲点”外,还可以选择通过以各种方式篡改遥测提供者来“盲点”它们。 解除用户模式挂钩并利用系统调用来逃避检测只是冰山一角 [ 18 ]。 大多数 EDR 的核心在于内核本身,因为它们利用微型过滤器驱动程序来控制文件系统操作和回调来拦截活动,例如进程创建和模块加载。 作为攻击者,一旦实现了高完整性,就可以通过各种方式有效地攻击 EDR,包括修补 Defender for Endpoints 的 ETWTi 功能和删除 Sophos Intercept X 的回调以执行黑客工具并保持不间断。 请注意,我们在以下 POC 中的目标不是在 EDR 控制台中发出任何警报,这已成功实现。

    5.1。 攻击端点的防御者

    在下文中,我们介绍了两种攻击,均使用 WinDBG 手动执行。 为了规避 Patch Guard 保护机制,我们快速执行所有操作以避免引入 噪声 可能触发 EDR 的 请注意,此测试的 EDR 处于被动模式,因为我们只对静音产生的警报感兴趣。

    5.1.1。 手动修补回调以加载未签名的驱动程序

    在这种情况下,我们的进程将手动修补 PspLoadImageNotifyRoutine 全局数组的一些内容,该数组存储所有已注册的用于图像加载的回调例程的地址。 通过修补名为 SecPsLoadImageNotify 中注册, mssecflt.sys 就驱动程序的加载而言,我们实际上是在屏蔽 EDR。
    重要的是要注意 EDR 如何检测驱动程序签名强制 (DSE) 是否被禁用。 奇怪的是,一旦加载了未签名的驱动程序,就会触发有关可能禁用 DSE 的警报。 因此,ATP 假定,由于已加载未签名的驱动程序,因此 DSE 已被禁用。 参见 图 31
    图 31。 ATP 发出 DSE 警报。 Telemetry Sourcerer 驱动程序检测。
    然后,在回调修补后,我们将 g_CiOptions 全局变量清零,默认值为 0x6 ,表示 DSE 已打开。 然后,我们使用 OSR 驱动程序加载实用程序加载我们的驱动程序。 之后,我们重置 g_CiOptions 变量和补丁回调以避免 Patch Guard 可能进行的错误检查,从而导致我们的系统崩溃。 参见 图 32
    图 32。 删除必要的回调。

    5.1.2. 手动修补 ETWTi 函数以在不发出警报的情况下转储 LSASS

    在这个 POC 中,我们手动修补 EtwTiLogReadWriteVm 函数,参见 图 33 ,它负责 NtReadVirtualMemory 系统调用的遥测,该系统调用从 MiniDumpWriteDump 许多本地安全机构子系统服务 (LSASS) 转储工具都使用该函数。 我们正在使用 Outflank-Dumpert 工具 [ 19 ] 转储使用直接系统调用的 LSASS 内存,这可能会规避大多数常见的 EDR,但不能规避 ATP; 参见 图 34
    图 33。 修补 ETWTi 功能是必要的。
    图 34。 Dumpert
    在下面找到我们为实现“卧底”LSASS 转储而遵循的过程。 注意我们如何将虚拟地址转换为物理地址以成功执行我们的补丁。 这是因为这是我们要写入的只读页面,任何强行写入都会导致 蓝屏死机 。 但是,我们可以在物理地址上写,没有任何麻烦。 值得注意的是,虽然很可能会产生时间线事件,但不会触发任何警报,让 SOC 进一步调查它。

    5.2. 攻击 Sophos Intercept X

    对于这个 EDR,我们的方法完全不同。 我们使用了一个合法且签名的驱动程序,该驱动程序易受攻击,并且通过利用它,我们可以访问内核并加载自定义的未签名驱动程序。 我们将使用的工具将是 TelemetrySourcerer https://github.com/jthuraisamy/TelemetrySourcerer 于 2021 年 7 月 8 日访问),它将为我们提供未签名的驱动程序,该驱动程序实际上会为我们抑制回调,我们将进行沟通通过一个为我们提供 GUI 的应用程序以及 gdrv-loader( https://github.com/alxbrn/gdrv-loader 于 2021 年 7 月 8 日访问)将利用 Gigabyte 的易受攻击的驱动程序并加载我们的司机。 除了 Sophos Intercept X, TelemetrySourcerer 还可以用于本工作中提到的其他 EDR,但是,为了简单明了,我们在这里仅将它用于此 EDR 用例。请注意,对于这些测试,EDR 处于块模式,但我们设法绕过它并在没有发出任何警报的情况下完成了我们的任务; 参见 图 35 图 36
    图 35。 通过 gdrv-loader 加载
    图 36。 通过 Telemetry Sourcerer 的 UI 删除 Sophos 的回调。
    一旦我们抑制了 sophosed.sys 驱动程序的所有回调,EDR 就无法监控进程创建和文件系统活动等。 因此,可以在没有 EDR 识别的情况下轻松地在工具上执行任意代码,例如,可以启动 Mimikatz 并保持不间断,清楚地表明 EDR 无法“看到”它; 参见 图 37
    图 37。 不间断地运行 mimikatz。
    尽管如此,用户模式挂钩仍然存在。 因此,用于 Cobalt Strike 的工具,如 AQUARMOURY Shellycoat Unhook-BOF https://github.com/rsmudge/unhook-bof 最后访问时间:2021 年 7 月 8 日)可能会针对特定流程或信标的当前流程移除它们; 见图 38
    图 38。 Sophos 的用户模式 ​​API 挂钩。

    6。结论

    在整个工作中,我们经历了高级威胁参与者用来渗透组织的一系列攻击媒介。 使用它们,我们评估了最先进的 EDR 解决方案,以评估它们的反应以及产生的遥测。 在此背景下,我们概述了每个 EDR 以及用于检测和响应事件的措施。 令人震惊的是,我们说明没有 EDR 可以有效地检测和阻止我们部署的四种攻击向量。 事实上,DLL 侧载攻击是最成功的攻击,因为大多数 EDR 都无法检测到,更不用说阻止它了。 此外,我们表明,可以通过攻击 EDR 的内核来有效地使 EDR 失明,该内核位于内核级别的驱动程序中。 在未来的工作中,我们计划评估不同 EDR 产生的阳性、假阴性和假阳性结果,以衡量蓝队在现实世界场景中面临的噪音。 此外,将测量 EDR 的响应时间,因为一些 EDR 可能会报告具有巨大延迟的攻击,即使它们已经减轻了攻击。 这些方面可能会对蓝队的工作产生重大影响,并且尚未在文献中得到所需的报道。
    除了卡巴斯基的挂钩解决方案之外,供应商可能会选择其他 https://github.com/rajiv2790/FalconEye 可能存在稳定性问题 但是,大多数供应商更喜欢使用云沙箱进行分析,因为这可以防止计算开销。 应该注意的是,攻击者可以使用签名的驱动程序和管理程序(例如卡巴斯基的)来发起攻击并挂钩内核,而不会在 rootkit 中出现问题。
    不幸的是,没有解决方案可以为组织提供完整的安全性。 尽管网络安全取得了重大进展,但组织需要部署各种工具来保持安全,而不仅仅依赖于一种解决方案。 此外,需要手动评估安全日志和事件的整体概览,以防止网络攻击,尤其是 APT。 由于后者的性质,必须强调人为因素 [ 20、21、22 ] 许多情况下是安全链中最薄弱的环节,通常被用来获得对组织的初始访问权限。 组织必须更多地投资于他们的蓝队,以便他们不依赖于单一工具的输出,并学会对有限的特定威胁做出响应。 这将提高他们的能力并提高足够的标准,以防止许多威胁参与者渗透他们的系统。 此外,通过增加对用户意识活动和有关威胁行为者作案手法的培训的投资,组织的整体安全性将显着提高。 最后,在安全领域引入机器学习和人工智能有望改善平衡,有利于蓝队减轻网络攻击,因为研究人员已经采取了重要步骤。 高级模式识别和关联算法正在安全解决方案中找到自己的方式,尤其是 EDR,可以在早期阶段检测甚至阻止许多网络攻击,从而降低其潜在影响。
    当前 EDR 中机器学习和人工智能的更紧密集成必须伴随着可解释性和可解释框架的使用。 后者可以使研究人员和从业者都了解误报背后的原因并有助于减少误报。 此外,这些信息作为数字证据的潜在用途,在法庭上经过适当的论证,将在不久的将来促使更多的研究人员在这方面投入更多的努力。 最后,恶意人工制品的有效收集是一个挑战,因为除了必须处理的数据的准确性之外,它们的数量和速度意味着对监控机制的进一步限制。 安全机制不仅必须及时应用,而且还必须以无缝方式制作,以免妨碍正在运行的应用程序和服务。 因此,研究人员必须找到更好的采样和特征提取方法来装备 EDR,以允许他们收集必要的输入,而不会妨碍受监控系统的可用性和操作。

    附录 A. Cobalt Strike Malleable C2 Profile

    清单 A1。 Cobalt Strike 可锻 C2 型材。
    jcp 01 00021 i006
    jcp 01 00021 i007
    jcp 01 00021 i008

    参考

  • 相关阅读:
    第六章类(十一)构造函数4对象初始化器和集合初始化器
    第六章类(十)构造函数3new
    第六章类(九)构造函数2默认构造函数
    Javascript---- 练习八(字符串操作)
    图解CSS3----white-space空白符处理
    图解CSS3----word-break单词断行
    图解CSS3----word-wrap(单词换行)
    图解CSS3----text-overflow(文本溢出属性)
    图解CSS3----vertical-align(文本垂直对齐方式)
    Javascript---- 练习五(函数,事件绑定)
  • 原文地址:https://www.cnblogs.com/bonelee/p/16185828.html
Copyright © 2020-2023  润新知