这是一篇面向开发者和安全工程师的文章,不讲黑客教程,只讲防守思路。我们从一个现实中常见的攻击链出发,逐步拆解它是如何从“包被投毒”一路延伸到“主机被提权”,再反过来看看——作为工程师,我们该在每一环节做什么。

一、攻击链全景:看似无害的依赖,往往是第一道门
一个 Python 项目,从安装依赖、构建镜像、部署上线,每一步都可能成为攻击入口。
攻击链通常是这样的:
-
PyPI 投毒:攻击者上传了与热门库名字极相似的恶意包(比如
reqeusts、urlib3),或者攻陷了某个维护者账号发布被注入的更新。 -
构建环境感染:CI/CD 在构建时自动安装依赖,没有做签名校验,恶意包就被执行。
-
运行时回连:恶意包的安装脚本中内置命令(
setup.py、__init__.py)尝试访问外部服务器,收集环境变量、SSH Key、凭证。 -
横向扩散:凭证被用来访问更多服务器、私有仓库或云服务。
-
本地提权:攻击者利用不安全的文件权限或临时文件漏洞,从普通用户提升到更高权限。
这条链条,往往从一个 pip install 开始。
二、供应链投毒:从一行安装命令开始的隐患
问题场景
开发者运行:
pip insta
Python攻击链与防御实践

最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



