Bandit这款工具可以用来搜索Python代码中常见的安全问题,在检测过程中,Bandit会对每一份Python代码文件进行处理,并构建AST,然后针对每一个AST节点运行相应的检测插件。完成安全扫描之后,Bandit会直接给用户生成检测报告。
工具安装
Bandit使用PyPI来进行分发,建议广大用户直接使用pip来安装Bandit。
创建虚拟环境(可选):
virtualenv bandit-env
安装Bandit:
pip install bandit
# Or if you're working with a Python 3 project
pip3 install bandit
运行Bandit:
bandit -r path/to/your/code
用户还可以使用源码文件直接安装Bandit,先从PyPI下载原tarball,然后运行下列命令:
python setup.py install
工具使用
节点树使用样例:
bandit -r ~/your_repos/project
examples/目录遍历使用样例,显示三行内容,并只报告高危问题:
bandit examples/*.py -n 3 –lll
Bandit还能够结合配置参数一起运行,运行下列命令即可使用ShellInjection来对examples目录运行安全扫描:
bandit examples/*.py -p ShellInjection
Bandit还支持使用标准输入模式来扫描指定行数的代码:
cat examples/imports.py | bandit –
使用样例:
$bandit -h
usage:bandit [-h] [-r] [-a {file,vuln}] [-n CONTEXT_LINES] [-c CONFIG_FILE]
[-p PROFILE] [-t TESTS] [-sSKIPS] [-l] [-i]
[-f{csv,custom,html,json,screen,txt,xml,yaml}]
[--msg-template MSG_TEMPLATE] [-o[OUTPUT_FILE]] [-v] [-d] [-q]
[--ignore-nosec] [-x EXCLUDED_PATHS] [-bBASELINE]
[--ini INI_PATH] [--version]
[targets [targets ...]]
Bandit- a Python source code security analyzer
positionalarguments:
targets source file(s) or directory(s)to be tested
optionalarguments:
-h, --help show this help message and exit
-r, --recursive find and proces