用开源工具搭建DevSecOps完全指南

VSole2023-05-29 10:58:18

随着“安全左移”的深入,企业开发安全已经进入深水区,DevOps已经不局限于开发和运营部门,企业越来越关注商业价值端到端交付的全生命周期管理,敏捷开发正在融入敏捷业务和敏捷企业的核心业务流程,在这个“敏捷内生”的过程中,“天生敏捷”的开源工具正发挥着越来越重要的作用。

以下我们将介绍如何用流行开源工具搭建完整的DevSecOps流程,内容概要如下:

  • 顶级开源工具列表
  • 关键步骤与代码示例
  • DevSecOps管道的最佳实践
  • DevSecOps的高级技术

DevSecOps的主流开源工具

随着黑客攻击技术变得越来越复杂,无论是开发工程师还是开发团队负责人,都迫切需要在自动化流程中加入更多的防御机制,如工具、库、服务等。

DevSecOps的生命周期和主要产品工具 

虽然工具整合是大势所趋,但在对DevSecOps工具链进行平台化整合(了解哪些商业或开源工具是无效的甚至是有害的)之前,企业首先需要尽可能扩充工具链(了解哪些工具有助于加强DeSecOps流程)。以下是目前主流的DevSecOps开源工具(每个分类的TOP5):

1.CI/CD工具

Jenkins、Travis CI、CircleCI、GitLab CI/CD、Concourse

2.版本控制工具

Git、SVN(颠覆)、Mercurial、Bazaar、Fossil

3.机密扫描工具

GitSecrets、TruffleHog、Gitleaks、BlackBox、SOPS

4.SCA(源成分分析)

OWASP依赖性检查、WhiteSource Bolt、OpenSCA、Black Duck Hub、CycloneDX

5.静态应用程序安全测试(SAST)工具

SonarQube、Snyk、Semgrep、Bandit、FindBugs

6.动态应用程序安全测试(DAST)工具

OWASP ZAP、Wapiti、Dastardly、Vega、Nikto、Arachni

7.容器化工具

锚引擎、Clair、Trivy、Twistlock、OpenSCAP

关键步骤与代码示例

以下是创建DevSecOps管道的通用步骤和基本组件(基于AWS,您可根据具体云环境和要求对其进行自定义): 

DevSecOps 自动化工具

第1步:需求收集和规划

  • 确定您的项目和行业的具体安全要求和合规性标准。
  • 定义DevSecOps管道的范围和目标。
  • 确定涉及的主要利益相关者和团队,包括开发、运营和安全。

第2步:基础设施配置

  • 配置您的开发和生产环境,利用Terraform、AWS CloudFormation或Azure等云计算服务的资源管理器模板等基础设施即代码工具。
  • 确保按照行业最佳实践和安全准则安全配置基础设施。

第3步:版本控制和协作

  • 使用Git之类的版本控制系统安全管理你的代码库。
  • 建立协作工作流,使开发人员能够协同工作并有效地管理代码更改。

第4步:持续集成(CI)

  • 设置一个CI服务器,例如Jenkins或GitLab CI/CD,以自动构建、测试和打包您的应用程序代码。
  • 将CI服务器配置为在提交代码更改时自动触发构建。

第5步:静态代码分析和安全测试

  • 将SonarQube或Checkmarx等静态代码分析工具集成到CI管道中,以识别代码质量问题、错误和安全漏洞。
  • 配置工具以实施安全策略、编码标准和安全编码实践。

第6步:依赖管理和软件组合分析(SCA)

  • 利用Maven或npm等依赖管理工具来管理和跟踪外部库和依赖项。
  • 结合软件组合分析(SCA)工具,如Black Duck、OWASP Dependency-Check或Snyk,以识别和修复第三方组件中的漏洞:

第7步:动态应用程序安全测试(DAST)

  • 将OWASP ZAP、Burp Suite或Netsparker等DAST工具集成到管道中,以模拟真实世界的攻击并识别应用程序中的安全漏洞。
  • 自动化DAST扫描作为CI管道的一部分或在开发过程中作为计划测试。

第8步:容器化和容器安全

  • 使用Docker或Kubernetes实施容器化,以跨环境一致地打包和部署应用程序。
  • 包括容器安全实践,例如图像漏洞扫描、运行时安全监控和使用Docker安全扫描或Clair等工具的安全容器配置。

第9步:持续部署(CD)

  • 使用Ansible、Chef或Kubernetes等部署工具自动执行部署过程,以实现无缝和可重复的部署。
  • 实施蓝/绿部署或Canary发布等部署策略,以最大限度地降低风险并确保在必要时顺利回滚。

第10步:持续监控和事件响应

  • 集成集中式日志记录和监控解决方案,如ELK Stack(Elasticsearch、Logstash、Kibana)、Splunk或Prometheus,以从应用程序和基础设施收集和分析日志和指标。
  • 实施实时警报机制,以便在发生安全事件或异常情况时通知相应的团队。

第11步:合规与治理

  • 在管道中实施合规性检查和审计,以确保遵守法规要求和安全标准。
  • 利用OpenSCAP或Chef Compliance等工具执行自动合规性扫描并生成报告。

请注意,上述代码示例经过简化,可能需要根据具体需要和工具进行调整。这些代码有助于帮你了解如何实施DevSecOps管道的不同组件。用户需要根据具体技术、基础设施和安全要求自定义和修改这些代码片段,这一点非常重要。

此外,请记住,构建DevSecOps管道需要配置大量工具并将它们集成到管道中,此外还需要建立必要的流程和工作流。上面提供的代码片段仅代表整体实现的一部分。

构建DevSecOps管道的最佳实践

要构建有效的DevSecOps管道,还需要考虑以下最佳实践:

1.安全即代码:将安全配置、策略和控制视为代码,并使用版本控制系统对其进行管理,以确保一致性和可重复性。

2.自动化:利用自动化工具在整个管道中实施安全检查和策略,减少人为错误并提高效率。

3.协作:促进开发、运营和安全团队之间的协作和沟通,以共享知识、识别风险并及时解决问题。

4.持续反馈:建立反馈循环,为开发人员提供可操作的安全信息,并鼓励持续改进的文化。

5.威胁建模:进行威胁建模练习以识别潜在的安全风险并在开发过程的早期设计适当的安全控制。

6.安全测试:实施各种安全测试技术,例如静态代码分析、动态应用程序安全测试(DAST)和渗透测试,以识别和修复漏洞。

7.安全配置:确保所有组件(如服务器、容器和数据库)均根据行业最佳实践进行安全配置,并针对已知漏洞进行强化。

DevSecOps管道的高级技术

1.基础架构即代码(IaC)安全性:在基础架构代码中实施安全检查和验证,以确保云资源的安全供应和配置。Terraform、AWS CloudFormation和Azure资源管理器模板等工具可用于安全地定义和管理基础设施。

2.容器安全:通过结合图像漏洞扫描、容器运行时安全和安全容器编排等技术来增强容器安全性。Docker Security Scanning、Clair和Kubernetes Security Contexts等工具可用于加强容器安全性。

3.安全编排、自动化和响应(SOAR):集成SOAR平台以自动化安全事件响应流程。这些平台有助于协调安全工作流程,实现自动化威胁响应,并促进安全团队与开发/运营团队之间的协作。

4.生产中的安全测试:实施Canary部署和蓝/绿部署等技术,以在类似生产的环境中测试应用程序安全性。通过逐渐向一部分用户公开新版本,可以在完整版本发布之前识别并解决安全漏洞。

5.威胁情报集成:将威胁情报馈入集成到安全监控系统中,以增强检测和响应能力。这允许主动识别新出现的威胁并迅速采取行动来减轻潜在风险。

6.不可变基础设施:构建和部署不可变基础设施,其中实例或容器在部署后永远不会被修改。这种方法可确保通过创建新实例或容器来解决任何更改或漏洞,从而降低因配置漂移或未修补软件而受到损害的风险。

7. 安全供应链管理:实施安全软件供应链实践,包括验证第三方库和依赖项的完整性和真实性、使用代码签名以及监控任何潜在的供应链攻击。

结论

DevSecOps是在整个软件开发生命周期中集成安全性的关键方法。通过DevSecOps实践,企业可以开发安全且有弹性的应用程序,同时又能保持DevOps的敏捷性和速度。利用开源工具建立有效的DevSecOps管道并实施先进技术,能帮助企业领先于安全威胁并在快速发展的环境中交付安全软件。

开放源代码容器技术
本作品采用《CC 协议》,转载必须注明作者和本文链接
笔者重点分析他们之间的关联关系及架构组成。Wrapper:表示一个 Servlet,它负责管理 Servlet 的生命周期,并提供了方便的机制使用拦截器。
当前,以数字经济为代表的新经济成为经济增长新引擎,数据作为核心生产要素成为了基础战略资源,数据安全的基础保障作用也日益凸显。伴随而来的数据安全风险与日俱增,数据泄露、数据滥用等安全事件频发,为个人隐私、企业商业秘密、国家重要数据等带来了严重的安全隐患。近年来,国家对数据安全与个人信息保护进行了前瞻性战略部署,开展了系统性的顶层设计。《中华人民共和国数据安全法》于2021年9月1日正式施行,《中华人
8月3日,在Black Hat USA 2020安全会议上,BlackBerry为网络安全社区发布了一种新工具。自上周起,该工具已在GitHub上开源,但8月3日标志着其正式发布。FireEye发布了Flashmingo,该应用程序可自动搜索Flash漏洞。FireEye发布了Crescendo,这是一个适用于macOS的实时事件查看器。FireEye发布了Capa,该工具可以分析恶意软件并检测恶意功能。NCC集团发布了全球首款针对蓝牙5的开源嗅探器Sniffle]。SpecterOps发布了Satellite,这是red-team运营的有效载荷和代理服务。
作为一只网安新人小白,在RCE方向上的求知经高人指点落脚在了Struts2上。
大家或许都发现了,开发人员愈发依赖开源代码来快速为其专有软件添加功能。据估计,开源代码占专有应用程序代码库的 60-80%。相伴而来的,除了更高的效率,还有更高的风险。因此,管理开源代码对于降低组织的安全风险至关重要。那么,如何管理开源代码呢? 软件成分分析(SCA)又是如何管理开源代码的呢?开发人员的任务是比以往更快地创建功能强大且可靠的应用程序。为了实现这一目标,他们严重依赖开源代码
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。
最全的Tomcat漏洞复现
2022-01-01 08:00:52
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳
当前,云计算已经成为新型基础设施的关键支撑技术。在疫情期间,推动了大量远程办公、政务防疫、百姓生活等SaaS应用和移动应用。要回答云计算未来数年的发展,则需要回顾云计算在过去的发展。需要注意到,云计算在国内发展总体可分为三个阶段。
在工业开发领域也有人提出了一种被称为 MLops 的新的开发范式,即机器学习时代的 Devops。Reproducible Machine Learning,顾名思义,即为可复现的机器学习。
VSole
网络安全专家