长期以来,威胁行为者一直利用拼写错误作为诱骗毫无戒心的用户访问恶意网站或下载诱杀软件和软件包的手段。
这些攻击通常涉及注册域名或软件包,其名称与合法域名或软件包略有不同(例如,goog1e.com 与 google.com 域名或软件包)。
以跨平台开源存储库为目标的攻击者依靠开发人员的打字错误,通过 PyPI、npm、Maven Central、NuGet、RubyGems 和 Crate 发起软件供应链攻击。
云安全公司 Orca 的最新调查结果显示,即使是持续集成和持续交付 (CI/CD) 平台 GitHub Actions 也无法幸免于威胁。
“如果开发人员在他们的 GitHub 操作中犯了与拼写错误者的操作相匹配的拼写错误,则应用程序可能会在开发人员甚至没有意识到的情况下运行恶意代码,”安全研究员 Ofir Yakobi 在与 The Hacker News 分享的一份报告中说。
这种攻击是可能的,因为任何人都可以通过使用临时电子邮件帐户创建 GitHub 帐户来发布 GitHub Action。鉴于操作在用户存储库的上下文中运行,因此可以利用恶意操作来篡改源代码、窃取密钥并使用它来传递恶意软件。
该技术涉及的只是让攻击者创建名称和名称与流行或广泛使用的 GitHub Actions 非常相似的组织和存储库。
如果用户在为其项目设置 GitHub 操作时无意中犯了拼写错误,并且该拼写错误的版本已经由对手创建,则用户的工作流程将运行恶意操作,而不是预期的操作。
“想象一下,一个操作会泄露敏感信息或修改代码以引入细微的错误或后门,从而可能影响所有未来的构建和部署,”Yakobi 说。
“事实上,受感染的操作甚至可以利用您的 GitHub 凭证将恶意更改推送到组织内的其他存储库,从而放大多个项目的损害。”
Orca 表示,在 GitHub 上搜索后发现,有多达 198 个文件调用了 “action/checkout” 或 “actons/checkout” 而不是 “actions/checkout” (注意缺少的 “s” 和 “i”),使所有这些项目都处于危险之中。
这种形式的拼写抢注对威胁行为者很有吸引力,因为它是一种低成本、高影响的攻击,可能会导致强大的软件供应链泄露,同时影响多个下游客户。
建议用户仔细检查操作及其名称,以确保他们引用的是正确的 GitHub 组织,坚持使用来自可信来源的操作,并定期扫描其 CI/CD 工作流以查找拼写错误问题。
“这项实验强调了攻击者利用 GitHub Actions 中的拼写错误是多么容易,以及保持警惕和最佳实践在防止此类攻击方面的重要性,”Yakobi 说。
“实际问题更令人担忧,因为这里我们只强调公共仓库中发生的情况。对私有存储库的影响仍然未知,因为相同的拼写错误可能会导致严重的安全漏洞。