Bandit:Python 代码安全审计工具

Bandit 在 GitHub 上已经拿到 8,080 个 Star。

PyCQA 组织维护了这个项目,专门做一件事:扫描 Python 代码里的常见安全问题。它能解析源码生成 AST,再对每个节点运行检测插件,最后输出一份安全报告。

正文顶部截图

1、这工具是干嘛的

Bandit 的定位很明确,就是一个安全 linter。它不做代码风格检查,也不做类型推断,只关注代码里可能被利用的安全漏洞。

输入一段 Python 代码,Bandit 会逐个文件解析,构建抽象语法树(AST),然后让各种安全检测插件遍历 AST 节点。扫描完成后生成报告,告诉你哪里有风险、属于什么级别、建议怎么修复。

它最早由 OpenStack 安全团队开发,后来移交给了 PyCQA 社区维护。采用 Apache 2.0 协议开源。

README区域截图

2、能发现哪些问题

Bandit 内置了大量安全检测规则,覆盖 Python 开发中常见的风险点。比如硬编码密码、不安全的反序列化、SQL 注入风险、子进程调用漏洞、弱哈希算法使用等。

每个问题都会标注严重等级:Low、Medium、High。报告会指出具体文件、行号、涉及的代码片段,以及该问题对应的安全知识点说明。开发者可以根据等级决定优先修复哪些项。

3、安装和使用

安装很简单,直接走 pip:

pip install bandit

命令行扫描单个文件:

bandit -r ./my_project

也可以指定输出格式,支持 JSON、XML、YAML 等。CI 流水线里可以配置阈值,发现 High 级别问题直接中断构建。

对于已经在维护的项目,Bandit 提供了 badge 机制。把安全状态徽章加到 README 里,一眼就能看出项目是否通过了安全扫描。

4、容器化部署

Bandit 也提供了官方容器镜像,托管在 ghcr.io,支持 amd64、arm64、armv7、armv8 四种架构。

拉取镜像:

docker pull ghcr.io/pycqa/bandit/bandit

镜像由 GitHub Actions 自动构建,并用 sigstore cosign 签名。可以通过 cosign 命令验证镜像来源,确认是从官方仓库构建出来的版本。

5、适合哪些人用

  • 需要给 Python 项目做安全基线检查的团队
  • 在 CI 流水线里想加一道自动化安全门禁的开发者
  • 维护开源项目,想通过 badge 展示安全扫描状态的人
  • 做代码审计、需要批量扫描 Python 仓库的安全工程师

Bandit 不是万能的安全扫描器,它只覆盖 Python 代码层面的已知风险模式。真正的安全防护还需要结合依赖漏洞扫描、运行时防护、代码审查等多层手段。但对于 Python 项目的静态安全检测这一环,Bandit 已经做得很扎实了。

赖漏洞扫描、运行时防护、代码审查等多层手段。但对于 Python 项目的静态安全检测这一环,Bandit 已经做得很扎实了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐