Sourcegraph 发布 Deep Search:规模化检测依赖供应链攻击的新范式
背景:LiteLLM 投毒事件引发的安全危机
2026 年 3 月 24 日,威胁组织 TeamPCP 在 PyPI 上发布了被篡改的 LiteLLM 版本(1.82.7 和 1.82.8)。这些恶意包能够自动抓取安装机器的云凭证、SSH 密钥及 Kubernetes 秘密。此次攻击的核心在于依赖版本约束(Version Constraints)的误用:未锁定具体版本或仅使用范围约束(如 litellm >= 1.0.0)的仓库极易被攻击。相比之下,明确锁定安全版本(如 litellm==1.80.5)的仓库则安然无恙。
面对此类大规模供应链攻击,传统的静态扫描往往难以实时响应,而 Sourcegraph 团队利用其最新推出的 Deep Search 和 Code Search 功能,演示了一套高效的自动化排查与修复流程。
核心突破:Deep Search 的自动化排查能力
Deep Search 的核心价值在于将复杂的代码审计转化为自然语言对话。在 LiteLLM 事件中,团队首先向 Deep Search 提出了两个关键问题:
- 确认风险:是否有仓库使用了恶意版本(1.82.7 或 1.82.8)?
- 评估防护:哪些仓库通过版本锁定规避了风险?哪些存在漏洞?
自动化排查结果
Deep Search 在两步内完成了初步分诊(Triage):
- 确认安全:未发现任何仓库直接锁定在恶意版本
==1.82.7或==1.82.8。 - 识别防护:自动识别出已采取防御措施的仓库,例如
microsoft/graphrag锁定在1.82.6,datahub-project/datahub锁定在1.80.5,以及microsoft/agent-framework设置了litellm<1.82.7的上限约束。 - 标记高危:精准定位出存在风险的仓库,如
microsoft/data-formulator仅声明了litellm而无版本约束,或datahub-project/datahub的测试目录使用了litellm>=1.0.0的范围约束。
这种能力极大地缩短了响应时间,让团队迅速掌握了全局态势。
技术实践:从概览到全量扫描
Deep Search 提供了宏观视图,但为了彻底消除隐患,团队进一步利用 Code Search 编写了针对性的查询,对全量代码库进行穷举式扫描。以下是实战中的五个关键查询策略:
1. 检测恶意版本直接安装
litellm==1.82.7 OR litellm==1.82.8 file:(requirements.txt OR pyproject.toml OR setup.py OR Pipfile OR poetry.lock)
结果:零匹配。确认无人直接安装恶意版本。
2. 识别受保护的仓库
通过查找特定安全版本或上限约束,验证防御措施是否生效。 示例:
litellm<1.82.7
结果:成功定位到 agent-framework 等已设置上限约束的仓库。
3. 发现脆弱模式(范围约束与未锁定)
这是风险最高的两类模式:
- 范围约束:
litellm>=1.0.0会接受任意高于 1.0.0 的版本,包括恶意包。 - 未锁定:仅写
litellm无任何约束,CI/CD 会默认安装最新(即恶意)版本。
4. 追踪传递性暴露
某些仓库并未直接依赖 LiteLLM,而是通过其他包间接引入。Code Search 支持全局上下文搜索:
context:global litellm
这有助于发现嵌入框架、测试依赖或内部工具中隐藏的间接依赖。
5. 综合防御查询
Sourcegraph 还提供了一种高级查询,结合 -content 过滤器,一次性找出所有依赖声明宽松但未锁定到安全版本的仓库:
file:(requirements|setup|pyproject|Pipfile) /litellm([>~]=?)/ -content:/litellm[<!=]=.*1\.82\.[0-6]/
此查询能精准捕获所有可能解析为易受攻击版本的依赖声明。
实际价值与启示
此次事件表明,供应链攻击无需复杂的逻辑即可造成严重破坏,其突破口往往在于简单的版本控制疏忽。Sourcegraph 的解决方案为开发者提供了标准化的应对范式:
- 快速响应:利用 Deep Search 的自然语言交互,在几分钟内完成全量代码库的风险初筛。
- 精准定位:利用 Code Search 的语法能力,将初筛结果转化为可执行的修复指令。
- 持续防护:通过查询结果,开发者可以立即更新
requirements.txt或pyproject.toml,将范围约束改为精确锁定,或添加上限约束。
正如 Sourcegraph 团队所言,"Supply chain attacks don't need to be sophisticated to work."(供应链攻击不需要高深莫测,简单的疏忽足以致命)。Deep Search 与 Code Search 的组合,正是对抗此类威胁最有力的武器。