风险等级¶
pipguard 会基于静态 AST 分析结果,为每个包分配以下五个等级之一。
CRITICAL¶
处理:立即阻断,退出码 1,不提示确认。
| 触发条件 | 为什么是 CRITICAL |
|---|---|
.pth 中存在可执行 Python 代码 |
.pth 会在解释器启动时自动执行,风险极高 |
任意文件出现 eval(base64.b64decode(...)) |
典型混淆恶意载荷模式 |
setup.py/安装钩子中发生网络调用 |
安装期联网通常无正当必要 |
| 安装钩子执行 shell/subprocess 命令 | 攻击者常用执行原语 |
CRITICAL 永不降级
--allow 与内置 allowlist 都不会降低 CRITICAL 风险。
HIGH¶
处理:阻断安装,退出码 1。
常见场景:
- 同形异义(homoglyph)包名
- 安装阶段读取敏感文件(如
~/.ssh、~/.aws) - 可疑命令执行模式
MEDIUM¶
处理:默认提示确认;--yes 时继续。
示例:运行期网络访问、敏感环境变量读取、二进制-only wheel 等。
LOW¶
处理:提示确认或按策略继续。
示例:动态导入、混合型二进制扩展等弱风险信号。
默认输出中,LOW 只显示包名和命中数量;加 --verbose 才展开文件级明细。
CLEAN¶
处理:计入摘要并继续安装。
未命中任何风险规则。
默认不会逐条列出 CLEAN 包;加 --verbose 可显示完整 CLEAN 列表。