在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容器。

  1. 检查目录中没有任何内容:

    ls | grep html
    
  2. 选择要扫描的存储库

    repo=https://github.com/openstack/bandit.git
    
  3. 运行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
    
  4. 验证owasp html报告是否存在

    ls | grep html
    owasp-report-2018-01-10-20-21-18.html
    
  5. 清理Docker容器

    docker stop owasp-jenkins; docker rm owasp-jenkins
    owasp-jenkins
    owasp-jenkins
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我们应该在测试java代码时模拟黄瓜测试吗。我们应该在多大程度上使用黄瓜?   Hibernate Weblogic 10.3.4 java。lang.NoSuchMethodError:javax/persistence/spi/PersistenceUnitInfo。getValidationMode()Ljavax/persistence/ValidationMode;   java如何在main()中访问私有静态实例变量   java JMockit无法模拟类的公共final字段   java是否可以返回特定控制器操作的输出(html)?   java如何返回正确类型的列表?   rest-OpenUI/Swagger-java-to-API   java组织。springframework。豆。工厂NoSuchBeanDefinitionException或加载ApplicationContext失败   java使用POST将参数从JSP发送到Servlet   java如何监听特定的按钮按下和主视图用户交互?   java如何让gradle在本地maven repo中覆盖库?   如何在Java中“合并”两个URI?   java如何制作一个方法来移动数组中的字符?   使用来自java的命令启动powershell窗口   java垃圾收集器和匿名类   java如何为CellTable(GWT 2.4)中的ImageResourceCell创建PanelPopup?