Skip to content

Latest commit

 

History

History
86 lines (55 loc) · 2.66 KB

扫描工具.md

File metadata and controls

86 lines (55 loc) · 2.66 KB

扫描工具

Safety

safety是一个依赖项安全扫描,主要是发现项目环境下的依赖模块是否是存在漏洞的版本。

pip install safety

扫描整个环境

safety check

仅检查当前项目的依赖项

safety check -r requirements.txt

检查某一个依赖项

echo "insecure-package==0.1" | safety check --stdin

但是需要一个漏洞库,官方免费的漏洞库是每一个月更新一次,需要最新最及时的可以选择购买一个月99$的服务。https://pyup.io/safety/

第一次运行的时候会自动请求,建议添加--cache参数来缓存数据库,避免每次扫描都需要联网查询。网络不好的话可以自己下载:https://github.com/pyupio/safety-db/tree/master/data。目录下insecure.json文件,使用的时候用参数`--db`来指定文件。

safety check --db="C:\Users\user\Desktop\python code audit\safetydata" -r requirements.txt --full-report

在线的检查依赖项:https://pyup.io/tools/requirements-checker/

一个关于漏洞依赖的小型展示网站:https://pyupio.github.io/safety-db/

safety的其他参数:https://github.com/pyupio/safety/blob/master/safety/cli.py

Bandit

静态代码扫描,食用简单,精准度一般。

bandit -r path/to/your/code

如果有漏洞存在,会显示类似如下情况

>> Issue: [B605:start_process_with_a_shell] Starting a process with a shell, possible injection detected, security issue.
   Severity: High   Confidence: High
   Location: .\code_audit\views.py:94
   More Info: https://bandit.readthedocs.io/en/latest/plugins/b605_start_process_with_a_shell.html
93              ip = request.GET.get('ip')
94              flag = os.system('ping -n 1 %s' %ip)
95              return HttpResponse('<p>%s</p>' %(flag))   #127.0.0.1&&whoami

项目地址:https://github.com/PyCQA/bandit

ShiftLeft Scan

面向现代DevOps团队的开源工具,可以快速扫描应用程序中的多种漏洞,比如凭据泄露,静态代码扫描,依赖审查等。

docker pull shiftleft/sast-scan

使用docker扫描python项目

docker run --rm -e "WORKSPACE=${PWD}" -v $PWD:/app shiftleft/scan scan --src /app --type python

运行后会在扫描的目录下生成一个report目录,里面有生成的报告。而且可以跟CI/CD集成。

HCL AppScan CodeSweep

AppScan CodeSweep是VSCode的一个代码扫描插件,每次保存文件的时候插件会根据规则检查代码是否符合安全标准。但是只会对当前文件扫描。

搜索CodeSweep安装,左侧活动栏就会出现一个新的图标,点击就可以查看检查到的问题和下面的代码规则。