跳转至

风险等级

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 列表。