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