DevSecOps工具和检测即代码介绍
把安全嵌入开发的DevSecOps工具
由于DevOps敏捷、持续和快速的特性,安全是其不可缺少的一环,可是许多组织在这方面做得很吃力。这种困境通常是由于组织缺乏优先级文化,甚至是流程方面的挑战,但好的工具可以帮助企业将Sec放在DevOps中。这些工具让开发人员、运营团队和安全团队在风险管理方面保持一致,从而帮助企业把安全嵌入到DevOps内部。
由于自定义代码开发的快速扩张,对DevSecOps的需求正在增长,Emergent Research估计,到2028年,对DevSecOps工具的需求将从2020年的25.5亿美元增长到230亿美元以上。下面是DevSecOps核心分类中最重要的工具的总结。
DevSecOps报警
DevOps以敏捷见长,因此保护这些组织的能力必须同样迅速,对于无法阻止的情况必须快速响应。本节中的工具可以帮助开发人员、安全和运维团队及时对问题做出响应。
在DevSecOps工具中经常有很多交叉的地方,这就是为什么有些工具专注于报警,而其他工具可能提供额外的功能,如工作流跟踪和修复。重要的是找到适合组织的报警工具,管理在开发管道中出现的事件和发现漏洞报警。
Pagerduty
许多运营和开发团队已经依赖Pagerduty或类似的工具来管理环境中的事件。当涉及到DevSecOps时,Pagerduty可以将安全团队整合到管道内的安全相关事件闭环流程,并与其他安全工具集成,用于云、漏洞管理程序、安全信息和事件管理器,这些工具也可以监控更广泛的环境。这有助于使安全成为每个人的工作。
xMatters
自从第一个安全事件和入侵检测工具发出警报以来,安全与运营团队就收到了大量警报。像xMatters这样的工具努力分流大部分的数据来缓解警报疲劳。可以将阈值和触发器设置为过滤警报,让团队专注于对他们重要的通知。设置线程和触发器来过滤报警,某些报警能触发自动响应,某些事件的警报可以相互关联,这样一个事件就不会触发300个通知。
Alerta
DevSecOps团队需要来自任何地方的警报,像Alerta这样的工具可以接收常见警报源,如Syslog、SNMP、Prometheus、Nagios、Zabbix、Sensu、netdata,以及任何可以提交URL请求的工具,和通过Python等脚本。告警可以去重、关联和定制。
ElastAlert
ElastAlert是一个开源工具,它提供了一个框架,可以接收来自Elasticsearch数据的安全异常、峰值和其他特征的实时警报。它查询Elasticsearch并根据一组规则对数据进行比较。当匹配时,ElastAlert会发出带有建议操作的警报。
安全应用程序开发
DevSecOps的核心是将应用程序的安全性从构建应用程序之后(或者更糟的是,在应用程序交付生产之后)转移到开发过程中。这就要求开发人员对他们开发的代码的安全性承担更多的责任,安全团队在必要时帮助开发人员。在这方面取得成功需要正确的软件安全评估工具。
Checkmarx
Checkmarx静态应用程序安全测试(SAST)执行应用程序源代码扫描,帮助开发团队保持他们提交代码的安全。在开发管道中集成开发和应用程序发布编排工具,构建自动化,bug跟踪系统等等。不像许多传统的SAST工具,Checkmarx SAST可以分析新的或更改后的代码。
Veracode平台
Veracode平台提供了适合DevSecOps环境的应用程序安全工具。其中包括Veracode Static Analysis,它在代码编译之前对其进行审查,并帮助开发人员在集成开发环境(IDE)中正确地修复代码。另一个是Veracode软件成分分析,它帮助识别开源组件中的漏洞。
Burp Suite 企业版
PortSwigger的Burp Suite企业版可以跨应用程序执行自动的重复动态扫描。它为持续集成管道预先构建集成、支持Jira,API帮助开发人员在现有的软件开发过程中集成安全测试。
Synopsys
Synopsys提供了好几个应用程序安全测试工具,包括Coverity,自动化测试的SAST工具,并集成到持续集成/持续交付(CI/CD)管道中;Black Duck,软件成分分析(SCA)工具,用于检测和管理应用程序和容器中使用开源和第三方代码所带来的风险;Seeker IAST(交互式应用安全测试),发现可能暴露敏感数据的运行时安全漏洞;应用程序安全性测试的托管服务。
Parasoft
Parasoft提供自动化工具来执行应用程序开发安全测试。包括Parasoft C/ c++测试,用于在开发早期识别缺陷,Parasoft Insure++用于发现很难预测的编程和内存访问错误,Parasoft Jtest用于Java软件开发测试,以及Parasoft dotTEST,用于补充Visual Studio进行深度静态分析工具。
DevSecOps仪表板:持续开发管道的安全可视化
专用的DevSecOps仪表板能够从开发过程开始到生产过程中,图形化地查看和共享安全信息。虽然其他DevSecOps工具提供仪表板,但这些应用程序专门用于自定义生成仪表板,一些团队会发现它们很有价值。
Grafana
Grafana是一个开源分析平台,可以创建自定义仪表板来聚合相关数据,以便可视化和查询。如果决定从头开始构建一个仪表板很麻烦,那么在这个站点上有许多社区构建的仪表板。
Kibana
对于使用Elasticsearch的组织来说,开源Kibana将把成千上万的日志条目集成到统一的图形视图中,包括运营数据、时间序列分析、应用程序监控等等。
威胁建模:预测应用程序的威胁
威胁建模工具帮助安全团队定义、识别并希望准确地预测可能针对应用程序的威胁,并预测它们可能如何成为目标。通过这种方式,设计和开发团队可以在编写第一行代码之前避免潜在的高昂成本甚至是灾难性的安全后果。有些工具根据用户提供的有关系统和应用程序的信息自动构建威胁模型,然后生成可视化界面,帮助团队探索威胁及其潜在影响。
IriusRisk
IriusRisk是一个云或本地应用程序,自动化分析风险和需求。它还使用基于问卷的界面,设计威胁模型和技术安全需求,并帮助管理代码构建和安全测试阶段。
ThreatModeler
该自动化威胁建模系统基于可用的威胁情报,自动分析数据并识别整个攻击面中的潜在威胁。ThreatModeler提供可视化的攻击面、安全需求和减轻威胁的优先级步骤。
OWASP Threat Dragon
这个基于web的开源工具提供了系统示意图和规则引擎来自动建模和缓解威胁。Threat Dragon拥有一个易于使用的界面,并与其他软件开发生命周期(SDLC)工具无缝集成。
其他可以参考的DevSecOps工具
下列DevSecOps工具包括上述工具提供的某些特性和功能,但在许多方面又有所不同。
Chief Inspec
开源Chief InSpec在每个开发阶段自动进行安全测试,以帮助确保合规性、安全性和其他针对传统服务器、容器和云API的策略需求。
Gauntlt
另一个开源选择是Gauntlt,它是一个流行的测试框架,旨在简化安全测试及安全、开发和操作团队之间的沟通。GauntIt为测试提供了容易生成攻击的能力,并且能够轻松地嵌入到现有的工具和过程中。
Red Hat Ansible Automation
该工具包括三个模块:Ansible Tower,Ansible Engine和Red Hat Ansible Network Automation。每个应用程序可以单独使用,也可以自动使用并协同工作。虽然Ansible Automation并不是一个专门的安全工具,但它允许团队在他们的安全软件开发管道中定义安全规则。
StackStorm
开源StackStorm提供事件驱动的自动化,在检测到安全缺陷时提供脚本化修复和响应,以及持续部署、ChatOps优化等。
Aqua Security
Aqua旨在跨整个开发管道和运行时环境管理安全性,支持跨所有平台和云的容器及云原生应用程序。
GitLab
这个工具将DevSecOps架构搭建到开发过程中。GitLab承诺在提交后测试每一段代码,使开发人员能够在处理代码时修复安全漏洞,并提供所有漏洞的仪表盘。
Red Hat OpenShift
Red Hat OpenShift承诺为基于容器的应用程序提供内置的安全功能,例如基于角色的访问控制、SELinux隔离和在整个容器构建过程中的检查。
SD Elements
来自Security Compass的SD Elements是一个自动化平台,旨在收集有关软件的信息,识别威胁和对策,并强化相关的安全控制,以帮助企业实现其安全和合规性目标。
WhiteSource
WhiteSource旨在解决开源漏洞,无论使用哪种编程语言、构建工具或开发环境,都可以集成到构建过程中。WhiteSource使用不断更新的开源代码库信息,持续检查开源组件的安全性和许可。
https://www.csoonline.com/article/3398485/28-devsecops-tools-for-baking-security-into-the-development-process.html#tk.rss_all
