开发者生态
morning
我们在 25 分钟内获得了 Baseten 生产 GitHub 的管理员访问权限
2026-09-16
1 阅读
约6分钟阅读
bearsyankees
字号:
我们将自己和客户的数据托付给 Baseten。因此,为了安全起见,我们首先运行 Strix 以确保它们的安全。大约 25 分钟后,它获得了一个实时 GitHub 令牌,对内部 Baseten 存储库具有存储库级管理权限。我们构建了 Strix,一个自主黑客代理,这当然意味着我们需要(廉价且快速)推理。我们正在探索我们的选择,Baseten 是显而易见的选择之一。这是一款很棒的产品,价值 130 亿美元,许多严肃的公司都依赖它们。但是...我们是一家保安公司。在我们向第三方提供数据、模型或代码之前,我们会对其进行扫描。我们更愿意在开始依赖该服务之前找到问题并帮助解决它(我们与几乎所有供应商都这样做,并且发现严重问题的比率很高)。所以...我们将 Strix 指向 *.baseten.co 并让它在没有凭据或源代码的情况下运行。它返回了一个用于 Basetenbot 的活跃 GitHub 个人访问令牌。该令牌具有对 Baseten 主要产品存储库、驱动其集群的 GitOps 存储库及其 Homebrew tap 的管理和推送访问权限,以及对其他私有存储库(包括每个客户的特定存储库)的读/写访问权限。该镜像的构建日期为 2023 年 3 月,当我们在 2026 年 7 月发现它时,该令牌仍然有效。但在我们深入了解细节之前,让我们先向 Baseten 的安全团队表示敬意。他们确认问题严重,锁定了注册表项目,并在第二天下午之前轮换了代币。他们很专业,而且处理起来非常迅速(在这些情况下通常情况并非如此)。 Strix 实际上是如何发现的 Strix 以任何优秀的渗透测试的方式开始:侦察。很多时候,您的基础设施上最严重的漏洞可能出现在您忘记的子域上的服务上(这就是为什么我们总是建议在使用代码访问进行测试的同时进行黑盒测试)!因此,Strix 枚举了主机,查看了证书日志,映射了整个表面。最终,它在 gcp-us-east4-zlw.registry.baseten.co 找到了 Harbor 注册表。 Harbor 存储容器镜像并将存储库分组到项目中。其中一个项目是公开的。无需任何令牌或身份验证,Strix 就可以列出存储库、获取匿名拉取令牌并下载实际的图像清单和 blob。其中包括一个名为 baseten/baseten-app 的图像。此时,可以很容易地报告暴露的注册表并继续。但公司确实有意发布图像,而 Strix 从来不想报告误报。重要的问题是曝光的图像会产生什么影响。 Strix 决定提取图像并看看里面有什么。以下是 Strix 中出现的运行部分(是的,由于显而易见的原因,特工自己的写作听起来像人工智能): Harbor Exposure 影响审查思考 如果这些 Harbor 项目不打算公开,那么这是真正的暴露,而不是元数据噪音。链才是最重要的:枚举公共项目,读取工件元数据,创建范围为repository:baseten/baseten-app:pull的匿名服务/令牌,拉取清单,然后通过签名的存储重定向获取blob。这证明了真正的匿名拉取访问。让分类认真对待的方法是从拉取的映像中证明一件事:专有代码、内部二进制文件、硬编码凭据或内部主机名。第一个有希望的打击是 baseten/baseten-app 中的一对 AWS 密钥。 Strix 尝试了只读 sts:GetCallerIdentity 调用,该调用会告诉您凭据属于哪个帐户。响应是 InvalidClientTokenId 。那把钥匙已经死了,所以斯特里克斯继续寻找。然后,一个真正起作用的令牌它拉动各层,运行 TruffleHog(向我们的开源安全朋友们大声喊叫!),并直接检查图像配置。就在那里:一个经典的 GitHub 个人访问令牌,位于 History[].created_by 中。我不是 Docker 运行时专家,但幸运的是 Strix 是(因为它拥有几乎所有的人类知识)。所以它知道该字段记录了如何创建构建步骤。在本例中,它包含一个 RUN 命令,并且 GITHUB_TOKEN 的值直接扩展到其中。 Strix 使用该令牌向 GitHub 发出只读 GET /user 请求,然后……VOILÀ。 200,账户名为basetenbot。 Docker 构建历史记录中的令牌,随后 GitHub 将其标识为 basetenbot。凭证已被编辑。打开全尺寸图像。注意在哪里找到令牌。据我所知,Docker 映像具有文件系统层,但它也有一个配置,其中包含有关映像及其构建历史记录的信息。该配置可与图像一起下载。如果构建历史记录仍然包含令牌的另一个副本,那么清理凭证文件并没有帮助。而这个方法在三年多后仍然有效。好吧,basetenbot 能做什么?实时令牌很有趣,但显然权限很重要。该令牌可能有 0 个权限,因此影响为 0。所以 Strix 检查了该帐户及其组织
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱