在jenkins docker容器中自动进行owasp分析,该容器预先配置为使用ansible扫描和报告潜在的python安全问题,然后再部署到生产环境中。
owasp-jenkins的Python项目详细描述
Docker中的Owasp Jenkins
想使用最新的owasp安全工具链和nist国家漏洞数据库(nvd)自动测试web应用程序和rest api服务层吗?
此存储库使用ansible创建一个docker容器来保存一个自动配置的jenkins应用程序,该应用程序带有owasp依赖项检查器 owasp依赖项检查器 , nist nvd , python owasp zap ,以及 openstack bandit 已安装。所有Jenkins作业都在这个Docker容器中运行,并使用自签名的SSL证书托管。
希望这将使您的应用程序的安全性变得更容易,方法是使用 owasp top 10 application security risks-2017
使用owasp快速分析任何存储库
下面是如何扫描存储库中的安全问题。这将下载最新的容器。请注意:由于要测试的已知漏洞太多,磁盘上的容器膨胀到大约 4.4gb 的大小。
在本例中,我正在测试bandit存储库https://github.com/openstack/bandit.git" rel="nofollow">https://github.com/openstack/bandit.git,并在删除c容器。
检查目录中没有任何内容:
ls | grep html
选择要扫描的存储库
repo=https://github.com/openstack/bandit.git
运行owasp分析并生成html报告
docker run --name owasp-jenkins -p 8443:8443 -v $(pwd):/opt/reports -it -d jayjohnson/owasp-jenkins:latest && docker exec -it owasp-jenkins git clone $repo /opt/scanrepo && docker exec -it owasp-jenkins ansible-playbook -i inventories/inventory_dev run-owasp-analysis.yml -e owasp_scan_dir="/opt/scanrepo" -e owasp_report_file="/opt/reports/owasp-report-$(date +'%Y-%m-%d-%H-%M-%S').html"
这将记录如下:
d9d9c4e1945b7c0822f29aaae4db48842454ed693e1cc40d041f8362cd49cb12 Cloning into '/opt/scanrepo'... remote: Counting objects: 5975, done. remote: Compressing objects: 100% (26/26), done. remote: Total 5975 (delta 5), reused 21 (delta 0), pack-reused 5949 Receiving objects: 100% (5975/5975), 1.39 MiB | 0 bytes/s, done. Resolving deltas: 100% (4104/4104), done. [WARNING]: log file at /opt/owasp/ansible/"/tmp/owasp-jenkins.log" is not writeable and we cannot create it, aborting PLAY [Running OWASP Analysis] ************************************************** TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [set_fact] **************************************************************** ok: [localhost] TASK [Checking if this is a rebuild_nvd=0] ************************************* skipping: [localhost] TASK [Building OWASP Arguments] ************************************************ ok: [localhost] TASK [Running OWASP Report depchecker=/opt/tools/depcheck/dependency-check-cli/target/release/bin/dependency-check.sh owasp_args= -n --enableExperimental true --out /opt/reports/owasp-report-2018-01-10-20-21-18.html --scan /opt/scanrepo -P /opt/owasp/ansible/roles/install/files/initial-pom.xml --project analyze-this-code --data /opt/nvd] *** changed: [localhost] TASK [Checking if the OWASP Report=/opt/reports/owasp-report-2018-01-10-20-21-18.html exists] *** ok: [localhost] TASK [Verifying OWASP Report=/opt/reports/owasp-report-2018-01-10-20-21-18.html was created] *** skipping: [localhost] PLAY RECAP ********************************************************************* localhost : ok=12 changed=1 unreachable=0 failed=0
验证owasp html报告是否存在
ls | grep html owasp-report-2018-01-10-20-21-18.html
清理Docker容器
docker stop owasp-jenkins; docker rm owasp-jenkins owasp-jenkins owasp-jenkins