Skip to content
「黑色十月」之后:从 Chainstack 等安全事件看开发团队如何预防凭证泄露

「黑色十月」之后:从 Chainstack 等安全事件看开发团队如何预防凭证泄露

图片由xAI Grok生成
20 分钟阅读
0
0 条评论
8 次浏览

2026 年 10 月以来的一连串安全事件说明:开发团队的凭证,往往不是在自己手里丢的,而是在托付它的平台、依赖的软件上丢的。我们无法阻止供应商被入侵,但可以提前决定泄露之后损失有多大。

导语

2026 年 10 月以来的一连串安全事件说明:开发团队的凭证,往往不是在自己手里丢的,而是在托付它的平台、依赖的软件上丢的。我们无法阻止供应商被入侵,但可以提前决定泄露之后损失有多大。

11 月 3 日,区块链节点服务商 Chainstack 向客户发出安全通知。攻击者经由第三方组件进入其基础设施,可能获取了客户的组织名、账户持有人姓名、成员邮箱和密码哈希;存放节点凭证的系统也被访问过。Chainstack 要求所有客户修改密码、轮换节点凭证、重新生成 Platform API Key,并警惕钓鱼邮件。

这不是孤立事件。同一个月里,至少 9 家 AI 开发平台相继披露被入侵,安全公司 Wiz 称之为「黑色十月」;Chainalysis、WorkOS 也确认遭到 AI 驱动的攻击;LiteLLM 的发布流程、Cursor 插件市场里的 Claude Code 扩展、Polymarket 的第三方前端脚本先后被投毒。

本文先回顾这些事件和它们的共同模式,再按「账户与身份、密钥与凭证、软件供应链、监控与演练」四个层面,整理开发团队和中小企业可以提前落实的预防措施。

一、事件回顾:一个月内的 8 起事件

从 10 月上旬到 11 月 3 日,AI 开发平台、Web3 基础设施和开发工具接连出事。下表按时间倒序,列出与开发团队关系最大的 8 起。

日期(2026)事件发生了什么暴露或损失
11/3Chainstack攻击者 10/26 经第三方组件进入开发环境,随后进入部分生产环境;10/31 被发现并切断组织名、账户持有人姓名、成员邮箱、密码哈希;节点凭证所在系统被访问,按已泄露处理
10/30Chainalysis外部攻击者用「进攻性 AI 代理技术」进入内部系统与工具;11/2 起 Reactor 等产品暂时下线用户 ID、姓名、邮箱、组织角色;未发现明文密码、MFA 密钥、会话令牌被访问
10/30WorkOS10/30 发现入侵,范围限于销售与客户关系系统,被关联到 ARTEX 框架CRM 联系人、客户往来记录、销售与支持对话摘要;生产系统未受影响
10/6–10/30「黑色十月」至少 9 家 AI 开发平台披露入侵:Fireworks AI、Andromeda、Zeabur、Lightning AI、OpenCode、Railway、Warp、CommandCode、Northflank;之后 Brev(NVIDIA)和 Trigger.dev 也有报告攻击者专门搜寻平台上保存的环境变量;Wiz 追踪的两把被盗企业 Bedrock 密钥,按标价产生超过 10 万美元用量;Zeabur 宣布关停
10/29Polymarket第三方性能监控服务 DebugBear 的脚本被替换,恶意脚本借用户已登录的会话卖出持仓、转走资金约 270 万美元、700 多个钱包;平台连同停盘损失共返还 390 万美元。这是它今年第二次因第三方前端代码被盗
10/29Claude Code 扩展(Cursor 插件市场)被篡改的 2.1.313 版本在 Cursor 插件市场上架约 11 小时,可经自动更新安装最多 5,000 名用户;写入攻击者 SSH 公钥、建立反向隧道和开机自启,卸载扩展无法清除;微软官方扩展市场未受影响
10/21LiteLLM发布流程被攻破,恶意 1.107.0 版本在 PyPI 上存在约 1 小时 45 分钟,Docker 镜像(含 latest 标签)约 2.5 小时每次启动 Python 都会运行的窃密程序加远控后门,目标包括云凭证、AI 工具令牌、.env、SSH 密钥、浏览器数据
10/17 起ARTEX 攻击框架多代理 AI 渗透框架,原为开源、现已闭源;CrowdStrike 称一个国家级团伙用它同时攻击 200 多家机构其中 9 家确认进入后渗透阶段;手法之一是用 2022 年后从未轮换的认证密钥伪造管理员令牌

截至 2026 年 11 月 4 日,多数事件仍在调查中,以上信息以各公司公告和安全媒体报道为准。

二、共同模式:攻击者要的是你的凭证

这些事件的入口各不相同,目标却高度一致:拿到能直接调用付费服务或转移资产的凭证,并在受害者察觉之前用掉它。

模式事件中的表现对应措施
攻击者要的是凭证,不是代码「黑色十月」各平台被专门搜寻环境变量;LiteLLM 窃密程序扫描 .env、云凭证和 AI 工具令牌;被篡改的扩展回传主机上疑似密钥的环境变量名预防二
入口在第三方Chainstack 经第三方组件被入侵;Railway 初步判断是构建基础设施提权;Warp 指向第三方依赖;Polymarket 是监控脚本被替换预防三
从泄露到滥用只有几十分钟Wiz 观察到,被盗密钥在供应商侧泄露后 30 分钟内就被首次调用,几天后进入转售渠道被批量使用预防二、四
越旧的凭证越好用ARTEX 案例中,攻击者用 2022 年后从未轮换的密钥伪造管理员令牌,又用 2024 年一次邮件泄露中的 VPN 密钥进入内网预防二
数据泄露之后是钓鱼Chainstack、Chainalysis 泄露的姓名、邮箱和组织信息足以支撑精准钓鱼;AI 生成的仿冒登录页还能截获验证码和会话预防一

AI 让攻击变快、变便宜。CrowdStrike 指出,ARTEX 让一个小团队就能同时推进大量入侵,某条路走不通会自动换路。防守方靠人工发现再手工补救,节奏已经跟不上,所以本文强调事前设置:让凭证权限小、寿命短,被滥用时能自动报警。

三、预防一:账户与身份

账户层的目标有两个:一次泄露只影响一个账户,钓鱼拿到的东西用不了。

  1. 每个服务一个独立密码,由密码管理器生成。 Chainstack 泄露的是密码哈希。足够长的随机密码很难被离线破解;弱密码或复用的密码一旦被破解,就会被拿去尝试登录你的其他服务。
  2. 能用 Passkey 或 FIDO2 安全密钥就用。 它们与网站域名绑定,在仿冒域名上不会响应。短信或验证器 App 的六位验证码,可以被实时代理的钓鱼页转发出去,Passkey 不会。
  3. 在组织层面强制开启双重验证。 Chainalysis 在给客户的通知里,也专门建议尚未开启的组织立即开启。
  4. 定期清理成员与权限。 离职员工、结束合作的外包成员当天移除;按角色给最小权限;共用账号改为个人账号,出事时才能追溯是谁的凭证。
  5. 收到「安全通知」时,按固定流程核实。
    • 不点邮件里的链接,自己在浏览器输入官方网址登录。
    • 到官网公告、状态页或可信的安全媒体确认事件确实存在。
    • 检查邮件头:在 Gmail 中打开邮件,点右上角 ⋮ → Show original,确认 SPF、DKIM、DMARC 均为 PASS,发件域名是官方域名。
    • 正规服务商不会通过邮件索要密码、令牌、API Key 或助记词,凡是索要的一律视为钓鱼。
    • 对意料之外的密码重置邮件和登录确认提示保持警惕,不是你本人发起的就不要点「批准」。

四、预防二:密钥与凭证

假设交给第三方平台的每一把密钥终有一天会泄露,提前把它能造成的损失压到最小。这是本文最重要的一节。

1. 先做一张密钥清单

Chainstack 一次通知就要求轮换三类凭证。如果不知道每把密钥用在哪,轮换就会变成全公司翻配置文件。建议每个团队维护一张表,至少包含以下列:

密钥用途存放位置权限范围负责人上次轮换轮换步骤
区块链节点 RPC 凭证生产 RPC 读取Secrets Manager单个节点后端负责人2026-09-01生成新凭证 → 更新应用 → 停用旧凭证
Bedrock 调用凭证AI 客服IAM 角色(无长期密钥)指定模型、us 区域后端负责人不适用无需轮换

2. 最小权限:限制模型、区域和用途

Wiz 追踪的两把被盗 Bedrock 密钥,权限设置不同,结果差别明显:

  • 案例 A:密钥允许 global.* 跨区域推理,30 小时内被调用约 80 万次,只有约 6% 被限流。
  • 案例 B:密钥只允许 us.* 推理配置。转售方用 global.* 发起的数千次请求全部失败,之后的流量又撞上区域配额,失败的调用几乎都是被限流。

权限限制没能完全挡住滥用,案例 B 仍有超过 100 万次调用成功,但它拖慢了攻击,压低了上限。以 AWS Bedrock 为例,调用凭证只授予业务实际用到的模型和推理配置(示意,模型 ID 与区域按实际调整):

1{ 2 "Version": "2012-10-17", 3 "Statement": [{ 4 "Sid": "InvokeApprovedModelOnly", 5 "Effect": "Allow", 6 "Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"], 7 "Resource": [ 8 "arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.<model-id>", 9 "arn:aws:bedrock:us-*::foundation-model/<model-id>" 10 ] 11 }] 12}

原则:不授予 bedrock:* 这类通配权限;开发、测试、生产各用一把;云服务商或 API 平台支持按 IP、来源或项目限制密钥时,能限就限。

3. 能不用长期密钥就不用

  • CI/CD:GitHub Actions 通过 OIDC 换取 AWS IAM 角色或 GCP Workload Identity Federation 的短期凭证,仓库 Secrets 里不再保存长期 Access Key。
  • 云服务器:使用实例角色或服务账号,并强制 IMDSv2。ARTEX 的一个案例正是借 XXE 漏洞访问云实例元数据服务、拿到角色凭证;IMDSv2 要求先用 PUT 取令牌,能挡住这类只能发 GET 请求的利用。
  • 加密资产私钥:不要放进 PaaS 的环境变量。社交媒体上有用户称,攻击者利用 Railway 上保存的加密密钥盗走约 37 万美元(Wiz 引述,未经证实)。签名交给 KMS、HSM 或 MPC 方案,热钱包设额度上限,大额走多签。

4. 给每把密钥设上限

  • 为云账户和 AI 服务设置预算告警(AWS Budgets、GCP 预算提醒),在服务商允许的地方设置硬性支出上限。
  • 把服务配额调到业务实际需要的水平。案例 B 说明,配额本身就是一道止损线。

5. 轮换要能在 30 分钟内完成

攻击者在泄露后 30 分钟内就开始验证密钥,如果轮换需要一天,就等于没有防线。

  • 零停机轮换:让新旧两把密钥同时有效一段时间,应用切换完再停用旧的。Chainstack 在 11 月 2 日为节点凭证上线的正是这种机制。
  • 集中读取:应用在运行时从 Secrets Manager、Secret Manager 或 Vault 读取密钥,不把密钥打进镜像或写死在构建配置里,轮换时只改一处。
  • 定期轮换:设定固定周期;任何供应商发出安全通知时,立即轮换相关密钥,不等调查结论。

6. 不让密钥进入代码库和日志

  • 在 pre-commit 和 CI 中运行 gitleaks 或 trufflehog,并开启 GitHub 的 Secret scanning push protection。
  • 禁止在日志和报错中打印环境变量;CI 日志开启敏感值遮罩。

五、预防三:软件供应链

供应链事件里,受害者往往只是正常地装了一个包、更新了一个扩展、加载了一个监控脚本。防线是让「新东西进来」这一步变慢、可控、可追溯。

1. 锁定版本和哈希,不用 latest

LiteLLM 事件中,Docker 的 latest、main-stable 等标签在约两个半小时内指向了恶意镜像;锁定版本的团队则完全在影响窗口之外。

1# Python:生成带哈希的锁文件,安装时强制校验 2pip-compile --generate-hashes requirements.in 3pip install --require-hashes -r requirements.txt 4 5# Node:CI 中只按锁文件安装 6npm ci 7 8# Docker:生产环境按 digest 引用镜像,而不是可变标签 9docker pull ghcr.io/your-org/app@sha256:<digest>

2. 新版本先「冷却」几天

恶意的 LiteLLM 1.107.0 在 PyPI 上只存在了不到两小时,安全公司在发布后几分钟内就发现了它。依赖更新设一个最短发布时长,就能避开绝大多数这类投毒:Renovate 的 minimumReleaseAge,或 uv 的 --exclude-newer,都可以做到。紧急安全补丁再单独放行。

3. IDE 扩展和开发者电脑

开发者电脑上的凭证往往最多,也最少被管控。

  • 只从可信市场安装扩展,并弄清楚你的编辑器用的是哪个市场:Cursor 等 VS Code 衍生编辑器使用自己的或开源的扩展市场,不是微软官方市场。
  • 关闭扩展自动更新,有计划地升级:在 VS Code 或 Cursor 的设置中加入 "extensions.autoUpdate": false。定期清理不用的扩展。
  • 不在终端的 shell 配置里长期存放生产密钥;改用 aws sso login 这类短期会话,或用密码管理器的 CLI 在运行时注入。
  • 不需要远程登录的 Mac,在 System Settings → General → Sharing 中关闭 Remote Login;定期检查 ~/.ssh/authorized_keys 里有没有不认识的公钥。被篡改的 Claude Code 扩展,正是靠写入公钥和 SSH 服务来留后门。

4. 网站上的第三方脚本

Polymarket 被盗,不是因为智能合约有漏洞,而是页面上一个第三方监控脚本被换掉,借用户已登录的会话操作资金。

  • 盘点网站加载的所有第三方脚本。登录、支付、提现、钱包签名页面,原则上不加载统计、监控类第三方脚本。
  • 固定版本的脚本加上 SRI,内容被改就拒绝执行;用 CSP 限制脚本来源和外发连接。
<script src="https://cdn.example.com/lib@1.2.3/lib.min.js" integrity="sha384-<hash>" crossorigin="anonymous"></script>
Content-Security-Policy: script-src 'self' https://cdn.example.com; connect-src 'self' https://api.example.com
  • 注意它们的局限:有安全专家指出,这次恶意脚本连接的是供应商自己的域名,放行该域名的 CSP 拦不住;监控类脚本更新频繁,也很难用 SRI 固定。对这类脚本,要么自行托管经审查的副本,要么让它远离敏感页面。
  • 在服务端兜底:提现、修改收款地址等高风险操作要求重新验证身份或二次确认,单凭一个被劫持的会话无法完成。

六、预防四:监控与演练

前三层总会有漏网之鱼,最后一层是尽早发现,并按事先写好的预案处理。

1. 盯住「谁在用你的密钥」

Wiz 的两个案例里,被盗密钥平时主要从被入侵供应商的服务器调用;被盗后第一次调用来自一个住宅 IP,随后几天每天只有十几到一百多次的「保活」调用,然后才是洪水般的滥用。这几天正是发现的窗口。

  • 开启云服务商的 API 审计日志(如 AWS CloudTrail)和 AI 模型调用日志。
  • 对这些信号设告警:调用来源 IP 或网络不在预期范围内、出现从未用过的模型或区域、调用量或费用突增。
  • 预算告警之外,再设一个按日的用量告警,别等月底账单。

2. 订阅供应商的安全公告

把用到的每个平台的状态页、安全公告页和官方账号列进清单,指定专人关注。供应商的通知邮件可能延迟,也可能被误判为垃圾邮件,多一个信息来源就多一分提前量。

3. 定期检查开发机和服务器的持久化痕迹

被篡改的 Claude Code 扩展会写入 SSH 公钥,并在 macOS 上安装启动项、在 Linux 上添加开机 cron、在 Windows 上创建计划任务。可以定期检查:

1# 不认识的 SSH 公钥 2cat ~/.ssh/authorized_keys 3# macOS 启动项 4ls ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons 5# Linux 定时任务 6crontab -l

4. 写好一页纸应急预案,每季度演练一次

收到供应商安全通知后,按以下顺序处理:

  1. 通过官方渠道确认通知真实性(见「预防一」第 5 条)。
  2. 在密钥清单中找出受影响的全部凭证。
  3. 按轮换步骤逐一轮换,目标 30 分钟内完成。
  4. 从供应商公布的入侵开始时间起,检查调用日志和账单有无异常。以 Chainstack 为例,应从 10 月 26 日查起。
  5. 提醒团队成员警惕接下来的钓鱼邮件。
  6. 记录处理过程,更新清单和预案。

演练时随机挑一把生产密钥,计时完成一次完整轮换。做不到 30 分钟,就说明清单或轮换机制还有缺口。

七、今天就能做的 10 件事

  1. 确认自己是否是 Chainstack、Chainalysis、WorkOS 或「黑色十月」各平台的用户;是的话,按官方要求处理。
  2. 用密码管理器,把重要服务的密码换成独立的随机密码。
  3. 为云控制台、代码托管、域名注册商和工作邮箱开启 Passkey 或双重验证。
  4. 建一张密钥清单,先列出生产环境里最重要的 10 把。
  5. 停用通配权限的 API 密钥,按模型、区域、项目重新签发。
  6. 为云账户和 AI 服务设置预算告警和按日用量告警。
  7. 检查 CI/CD 里的长期 Access Key,能换成 OIDC 短期凭证的就换。
  8. 生产镜像改为按 digest 引用,依赖安装开启锁文件哈希校验。
  9. 关闭编辑器扩展自动更新,删除不用的扩展。
  10. 盘点网站登录、支付、提现页面加载的第三方脚本。

ソラナリンク株式会社(SolanaLink Co., Ltd.)是一家位于东京的 IT 服务公司,提供云解决方案、Web 与移动开发、IT 运维和 AI Agent 落地。如果你的团队需要密钥盘点、云权限收紧或供应链加固方面的协助,欢迎通过 info@solanalink.jp 联系我们。

参考资料

评论

评论 (0)