红队模拟软件供应链攻击的实用思路
红队的目的是模拟真实对手,以测试组织的技术安全控制和非技术控制(例如响应程序、DFIR手册等)。四年前,我发布了一个关于红队如何/应该部署多阶段C2基础设施的建议。现在,我将重点讨论大多数公司面临的另一个日益增长的威胁。
无论是国家行为体、共享库、黑客活动家还是其他任何形式,软件供应链入侵正受到广泛关注。因此,如果你是一名红队成员,并且正在寻找模拟这些攻击的思路,这里有一些建议。
为什么要这样做?嗯,通过对客户能否有效保护(或至少检测)供应链威胁进行实际评估,为客户提供更多价值。
内部代码库
假设你获得了开发人员、管理员、工程师等端点的访问权限,修改内部代码库中的代码或配置,以传播到更多系统/网络。例如,检查你的“用户”是否可以访问:Git仓库、CI/CD流水线、配置管理(Saltstack、Ansible、Terraform、Puppet、Cfengine、JAMF、Rudder、Chef、SCCM等)、云部署工具、容器镜像等,并尝试通过这些方式推送植入程序或扩展访问权限。
水坑式供应链
在某些时候,几乎可以肯定你会获得比端点更多的东西的访问权限。它可能是一个文件服务器、一个内部Web应用服务器、一个云/第三方服务、一个运行某些小服务的容器或其他任何东西。那么,与其通过“传统手段”进行横向移动,为什么不修改该系统提供的服务,向任何使用它的人推送植入程序或采取行动以增加你的访问权限呢?
内部软件包/软件
你可能会偶然发现一些(开源或专有)软件,这些软件要么在内部仓库中镜像,要么出于某种业务原因进行了定制,并托管在文件服务器、软件包仓库或类似的东西中。在这里,你可以尝试对这些软件进行木马化,并等待它们传播。
软件更新解决方案
组织拥有自动化或半自动化的软件更新解决方案并不罕见。如果你能修改这些更新以包含植入程序,你就可以非常有效地模拟供应链传播。提示:其中一些系统依赖于本质上不安全的协议(例如FTP、TFTP、SMTP、HTTP等),因此,如果你能够访问它们传递的链接,你甚至可以在网络级别劫持/MiTM/木马化它们。
设备管理
与上一个类似,即使是小型组织也会依赖一个(或多个)设备管理解决方案,如果你成功获得访问权限,或多或少就像为你预先配置了一个不错的C2。那么,为什么不利用这一点来扩展你的访问权限呢?
预授权访问
作为工作声明(SoW)的一部分,你可能会获得一些有限的访问权限。如果你的目标是评估该组织的供应链能力,你可以请求访问一些内部应用程序,或者更好的是,访问组织依赖的第三方系统/应用程序/服务,并将其作为你的起点。这意味着,参与的前提是假设这个第三方已经被攻破。
我相信,根据目标组织的不同,红队可以利用的概念还有很多。但希望以上内容能给你一些思路,以相对可控但现实的方式评估供应链威胁。