1.前言
从本文开始,我将开始介绍Python源代码审计,代码审计是检查源代码中的安全缺陷,检查源代码是否存在安全隐患,或者编码不规范的地方。通常使用自动化工具或者人工审查的方式,自动化工具效率高,但是误报率也高,并且发现的问题不够深入、全面;人工审查的方式可以全面深入的发现源代码中的安全缺陷,缺点是耗时较长。
2.Bandit安装
Python目前使用的范围很广,但是相关代码审计文章较少,本专栏将全面介绍Python代码审计,以供安全从业者、Python开发者参考,使得系统更加安全、健壮、稳定。
Bandit 是一款 Python 源码分析框架,可用于 Python 代码的安全性分析。Bandit 使用标准库中的 AST 模块,将 Python 源码解析成 Python 语法节点构成的树。Bandit 允许用户编写自定义的测试。测试完成后,Bandit 会生成针对源码的安全报告。
Bandit 安装需要Python环境支持,安装Python3后,执行以下命令:
pip install bandit
安装bandit完成后,执行以下命令:
bandit -r F:\\PythonSpace\\sm\\bank\\ -f html -o 1.html
其中:
F:\\PythonSpace\\sm\\bank\\ 为扫描的源码目录
-f html 指定生成html报告,工具支持多种格式,如csv,custom,html,json,screen,txt,xml,yaml。
-o 1.html 指定导出的文件名
3.Bandit使用案例
我们使用bandit扫描一个Python项目,看看它的效果如何。
bandit -r F:\\PythonSpace\\sm\\bank\\ -f html -o 1.html
扫描结果:
可以看到,工具扫到了密码硬编码和SQL注入漏洞,具体就不展开了,将放在下一篇文章中。