• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回python栏目

108 - 第三方库 - bandit - 代码审计

作者:

贺及楼

成为作者

更新日期:2024-10-28 10:21:52

bandit代码审计

Bandit库的简介

Python 的 bandit 是一个用于 Python 代码安全分析的工具,由 OpenStack 安全项目开发。它通过静态代码分析,自动检测代码中的安全漏洞和潜在风险,帮助开发者提高代码的安全性和质量。以下是 bandit 的一些主要作用和特点:

静态代码分析:无需运行代码,直接分析源代码文件,快速发现潜在的安全问题。
检测常见漏洞:检测常见的安全漏洞,如不安全的加密、硬编码密码、潜在的代码注入等。
生成详细报告:提供详细的扫描结果报告,帮助开发者理解和修复安全问题。
易于集成:可以与 CI/CD 流程集成,自动化进行安全检查。
支持自定义规则:允许用户根据项目需求自定义扫描规则,忽略特定的规则或添加自定义扫描规则。
多种报告格式:支持生成多种格式的报告,包括文本、JSON、HTML等,方便不同场景的使用。

Bandit是一款Python源码分析框架,可用于Python代码的安全性分析。
Bandit使用标准库中的AST模块,将Python源码解析成Python语法节点构成的树。
测试完成后,Bandit会生成针对源码的安全报告。

安装代码安全性分析库 bandit 命令

  1. pip install bandit
  1. (venv) (base) iMac:test2 chu$ pip install bandit
  2. Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
  3. Collecting bandit
  4. Downloading https://mirrors.aliyun.com/pypi/packages/9e/9c/491231d973d54f6465002812b4cadc663f208436407745be473254725f55/bandit-1.7.10-py3-none-any.whl (130 kB)
  5. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 130.8/130.8 kB 925.2 kB/s eta 0:00:00
  6. Collecting PyYAML>=5.3.1
  7. Downloading https://mirrors.aliyun.com/pypi/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl (184 kB)
  8. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 184.2/184.2 kB 4.2 MB/s eta 0:00:00
  9. Collecting stevedore>=1.20.0
  10. Downloading https://mirrors.aliyun.com/pypi/packages/ec/50/70762bdb23f6c2b746b90661f461d33c4913a22a46bb5265b10947e85ffb/stevedore-5.3.0-py3-none-any.whl (49 kB)
  11. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.7/49.7 kB 725.1 kB/s eta 0:00:00
  12. Collecting rich
  13. Downloading https://mirrors.aliyun.com/pypi/packages/ab/71/cd9549551f1aa11cf7e5f92bae5817979e8b3a19e31e8810c15f3f45c311/rich-13.9.1-py3-none-any.whl (242 kB)
  14. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 242.1/242.1 kB 6.3 MB/s eta 0:00:00
  15. Collecting pbr>=2.0.0
  16. Downloading https://mirrors.aliyun.com/pypi/packages/1d/44/6a65ecd630393d47ad3e7d5354768cb7f9a10b3a0eb2cd8c6f52b28211ee/pbr-6.1.0-py2.py3-none-any.whl (108 kB)
  17. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.5/108.5 kB 731.3 kB/s eta 0:00:00
  18. Collecting markdown-it-py>=2.2.0
  19. Downloading https://mirrors.aliyun.com/pypi/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
  20. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 4.2 MB/s eta 0:00:00
  21. Collecting typing-extensions<5.0,>=4.0.0
  22. Downloading https://mirrors.aliyun.com/pypi/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl (37 kB)
  23. Collecting pygments<3.0.0,>=2.13.0
  24. Downloading https://mirrors.aliyun.com/pypi/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl (1.2 MB)
  25. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 9.6 MB/s eta 0:00:00
  26. Collecting mdurl~=0.1
  27. Downloading https://mirrors.aliyun.com/pypi/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl (10.0 kB)
  28. Installing collected packages: typing-extensions, PyYAML, pygments, pbr, mdurl, stevedore, markdown-it-py, rich, bandit
  29. Successfully installed PyYAML-6.0.2 bandit-1.7.10 markdown-it-py-3.0.0 mdurl-0.1.2 pbr-6.1.0 pygments-2.18.0 rich-13.9.1 stevedore-5.3.0 typing-extensions-4.12.2

pip安装bandit
可以看见除了bandit还有不少依赖typing-extensions, PyYAML, pygments, pbr, mdurl, stevedore, markdown-it-py, rich, bandit

包名 包中文名 释义 连接
typing-extensions / 提供了对Python类型提示系统的扩展,允许在旧版Python上使用新引入的类型特性,并支持对新类型系统PEPs的实验性使用 /
PyYAML YAML文件的解析 PyYAML是Python库,用于处理YAML文件的解析和生成。 /
pygments / Pygments 是一个 Python 库,用于语法高亮,支持多种编程语言,常用于代码显示和编辑器插件。 /
pbr pbr 是一个 Python 库,用于简化 setuptools 的打包过程,提供自动化版本管理、作者列表生成等功能 /
mdurl / mdurl 是一个 Python 库,用于处理 Markdown 文件中的 URL。 /
stevedore / stevedore 是一个用于管理 Python 应用程序中的动态插件的库。 /
markdown-it-py / markdown-it-py 是一个 Python 库,它是流行的 JavaScript markdown 解析器 markdown-it 的 Python 实现。 /
rich 终端美化 Rich 是一个用于在终端中输出富文本的 Python 库,支持颜色、样式、表格、进度条、Markdown 等高级内容的显示。 /

查看有无安装成功

  1. bandit -h

bandit安装成功
有内容打印出来表示安装成功

使用 - .py文件

cd 到目标文件夹

  1. bandit xxx.py
  2. bandit *.py -o test_bandit.txt -f txt

第一条是:单个文件 + 输出到控制台
第二条是:所有文件 + 输出到txt

使用 - 文件夹扫描

cd 到目标文件夹

  1. bandit -r ./ -f html -o bandit_result.html
  2. bandit -r . -f html -o test_bandit.html

得到的结果是一个test_bandit.html文件