前言
Spectrum的最新研究表明,Python在今年排名第一。
我们相信python核心代码是安全的,但是第三方模块(开发应用程序的方式)却不一定,这就是我们使用安全扫描工具寻找漏洞的原因。有许多全面的在线安全扫描工具可以在线测试,但是它们无法检测特定于平台的漏洞,比如 Python,Node.js等等 。
下面是一些用于发现Python应用程序中的安全漏洞的扫描工具推荐
PYT
这是一个开源静态分析工具,可检测Python Web
应用程序中的命令注入,比如跨站点脚本,SQL注入,目录遍历攻击等。
项目地址:
Bandit
Bandit是Open Stack的开源项目,旨在发现python代码中的常见安全风险。它处理每个python文件以构建AST,最后会生成扫描报告。
我们可以使用pip安装它。Bandit的用法可以自定义。例如,默认情况下会针对所有配置文件进行测试,但是,如果我们只想检查ShellInjection,则可以尝试以下操作
bandit samples/*.py -p ShellInjection
同时,我们还可以设置严重性(低,中或高)级别来生成报告。
项目地址:
Pyntch
Pyntch仅支持Python 2.x,是一种静态代码分析器,用于检测运行时可能出现的错误。这个工具并不是完全可以发现风险,但是对于运行时的异常发现很有作用,因为异常发生的时候,有可能会泄漏敏感信息。
这个工具的效率不错,它能够在一分钟内扫描几千行。
项目地址:
http://www.unixuser.org/~euske/python/pyntch/index.html
Spaghetti
一个基于python的开源扫描程序,用于发现配置错误,不安全的文件以及支持像CherryPy,CakePHP等Web框架的扫描。
Spaghetti 能够发现各种攻击,包括:
- 暴力破解
- 信用卡、电子邮件、IP 等敏感信息
- HTML/SQL/LDAP/XPATH/XSS注入
- ShellShock, Crime, Struts-shock 等
- 匿名密码
RATS
RATS 能够对于 Python,PHP,Perl,C ++等代码进行粗略分析,并突出显示与安全相关的错误,包括:
- 检查时间
- 使用时间
- 缓冲区溢出
项目地址:
https://code.google.com/archive/p/rough-auditing-tool-for-security/
Acunetix
这是一个比较全面的漏洞扫描平台,可以测试网络和Web应用程序。Acunetix会检测被测站点上是否存在5000多个漏洞,并提供详细的报告以及修复方案。
如果我们的Python Web应用程序暴露在Internet上,并且正在寻求深入的安全分析,可以尝试使用Acunetix。
项目地址:
Requires
这款工具不是扫描程序,而是利用Requires.io监视Python依赖关系的安全性,并在发现过时或易受攻击时通知扫描者。
项目地址:
Safety
Safety 是 python依赖项检查器,可以扫描本地虚拟环境,需求文件以及 stdin 输入中的安全性问题。
项目地址:
结论
希望上面列出的工具可以帮助大家发现Python应用程序中的安全风险
注:本文翻译自https://geekflare.com/find-python-security-vulnerabilities/