secpipw:避免 PyPI 供应链攻击,最好用也最省事的方式。

$

不用学习,

不用配置,

不用改变使用习惯,

不用承受明显性能损失,

装上 secpipw,添加 pip 的别名为 spip,像原来的 pip 一样用,

但会远比原版 安全

本项目目前尚处于 pre-release 阶段,不建议在生产环境下使用。

现在,本项目积极欢迎任何可能的贡献。GitHub

为什么选择 secpipw?

解决了什么问题

供应链投毒一直是网络安全里永恒的话题。现在市面上对此的解决方案,有成熟却性能开销大的 GuardDog,也有完全依赖付费 socket API 的 sfw。它们的问题在于:成熟如 GuardDog 的太笨重,不适合进入 CI 反而适合安全研究员静态解析。若对每一个 pip install 的下载产物(包括各种依赖)都跑一次 GuardDog 无疑会拖慢安装进度;而 sfw 虽然轻量,却是完全依靠付费的 socket API 完成,对于日常开发者而言,无疑又是一次经济负担。

secpipw 解决了这个问题。它通过给 pip 的安装器上钩子,将安全检查融合到了 pip install 的下载和安装流程中去。最新 GitHub Actions benchmark 会比较默认 spip installpip install 在多个目标包上的完整下载和安装流程。主要中位数是 x-- 的 pip 时间。secpipw 完全免费提供给所有人。

当代,很多独立开发者的 CI 服务器被攻击导致 secret key 泄露,造成严重后果。如果安装了 secpipw,这样的风险会大大降低,同时不需要付费,不需要额外的性能开支,也不需要学习和配置。只有一次的 pip install secpipw 再设置一次别名,你就可以接着用 pip,却在无形中获得一层至关重要的保护网。

secpipw 的优势

  • 轻量。你感受不到它的存在。
  • 0 迁移或学习成本。你不需要任何配置,开箱即用。
  • 免费。secpipw 在 MIT 协议下开源。任何人都可以使用,修改或再分发。
  • 强大。经过测试可以完美防御如 LiteLLM,colorama 等知名攻击事件。
  • 多样化包管理器支持。保护 pip 以及常见的 pipx、poetry、uv 加包工作流。

多样化包管理器支持。

secpipw 不再只覆盖直接使用 pip 的场景。它可以先保护开发者常用的 加包流程,再把实际环境更新交还给原始工具完成。

阅读包管理器说明

spip install requests

使用 pip 自身解析器和安装器的受保护安装流程。

spipx install black

保护 installinjectrun 的预检查流程。

spoetry add requests

保护 addself add 的预检查流程。

suv pip install requests

保护 pip installaddtool 的预检查流程。

基准测试结果。

最新 GitHub Actions benchmark 会用本地 wheelhouse 比较默认 spip installpip install 在 opencv-python、scipy、uv 三个目标包上的安装流程。

目标包 pip 中位数 spip 中位数 倍率 中位数开销
opencv-python -- -- x-- --
scipy -- -- x-- --
uv -- -- x-- --

Runs: --。 更新时间:--打开 GitHub Actions benchmark job

开始安装

先安装 secpipw,再用 spip 命令。最好把 pip 变成 spip 的别名,这样你原来的工作流完全不用变。

cmd(Windows)

pip install secpipw
doskey pip=spip $*

Bash(Linux)

pip install secpipw
echo "alias pip='spip'" >> ~/.bashrc
source ~/.bashrc

Zsh(macOS)

pip install secpipw
echo "alias pip='spip'" >> ~/.zshrc
source ~/.zshrc

你的 PyPI 供应链安全就这样搞定

现在当你输入 pip install 的时候,会安全很多 :)

阅读我们的文档

GitHub