10个开发人员或系统管理员应了解的DevSecOps工具

devsecops是在devops生命周期的每个步骤中实施安全性的一种实践,使用devsecops工具。

在软件开发中,devops是特定开发活动与it运营的结合。这种组合旨在提高软件质量并实现持续交付。

如果我们将安全管理添加到devops中,它就变成了devsecops:一种将安全性作为it世界和软件开发世界之间的共同责任的学科。

在过去,安全性是一个专门团队的专属责任,他们在项目的最后阶段加入。在持续几个月或几年的开发周期中,这种方式效果很好。但在以周为单位的敏捷开发周期中,安全性实践必须从项目的开始到结束都要考虑,并且安全责任必须由整个开发和it团队共同承担。

为了使devsecops能够在不破坏敏捷方法的前提下进行工作,其集成必须是自动化的。这是确保devops工作流程在整合安全管理时不变得缓慢的唯一途径。这种自动化需要适当的机制来将开发工具(如集成开发环境)与安全功能整合在一起。

devsecops工具的类型

安全性和devops的结合可以采用多种形式。因此,存在不同类型的devsecops工具,可以概括如下:

  • 开源组件漏洞扫描:查找分析代码库中的开源代码组件和库以及它们的所有依赖项中可能存在的漏洞。
  • 静态和动态应用程序安全性测试(sast/dast):静态测试扫描开发人员的源代码以查找不安全的代码,以识别潜在的安全问题。动态测试在运行应用程序时进行安全测试,无需访问源代码。
  • 镜像扫描:在docker容器中搜索漏洞。
  • 基础设施自动化:检测和修复基础设施配置中的各种问题和漏洞,尤其是在云环境中。
  • 可视化:提供关键绩效指标和趋势的可见性,以便随时检测漏洞数的增加或减少。
  • 威胁建模:通过预测整个攻击面上的威胁风险,实现积极决策。
  • 警报:仅在识别和确定异常事件作为威胁时通知安全团队,以降低噪音水平和避免干扰devsecops工作流程。

下面的列表显示了一些可靠的devsecops工具,您可以依靠它们将“sec”一词纳入您的devops工作流程中。

invicti

invicti是一种工具,您可以将其整合到您的sdlc中,在保持开发过程的敏捷性的同时进行软件产品的安全管理。

invicti进行的分析是全面的,提供准确性,同时不牺牲sdlc管理的速度。

invicti提供的自动化选项避免了在执行安全任务时需要人工干预的需求,为您的团队节省了大量时间,每个月可达数百小时。

通过识别真正重要的漏洞并自动分配给最适当的资源进行修复,进一步增强了这些节省。

invicti还提供对正在开发的应用程序中的漏洞以及降低风险的努力的完全可见性。

sonarqube

sonarqube会自动检查您的代码是否存在漏洞,并嗅探可能成为威胁的错误。截至本文撰写时,它支持近30种不同的编程语言

sonarqube独特的qualitygates为在产品发布之前停止问题提供了一种简单的方法。它们还为开发团队提供了一个共同的质量视图,让每个人了解标准以及他们的开发是否符合这些标准。

sonarqube无缝集成到您的devsecops流水线中,确保所有团队成员都可以访问工具生成的报告和反馈。

通过简单安装,sonarqube可以清楚地指示您的提交是否干净,以及您的项目是否准备好发布。如果有问题,该工具将立即通知您问题所在以及解决方案。

aqua

aqua使您能够在软件产品的生命周期的每个阶段可视化和阻止威胁,从编写源代码到在云中部署应用程序。

作为云原生应用保护平台(cnapp)运行,该工具提供软件供应链安全检查、风险和漏洞扫描以及高级恶意软件保护。

aqua的集成选项使您能够确保应用程序的安全性,无论您用于开发和部署的平台和机制是云、容器、无服务器、ci/cd流水线还是编排器。它还与siem平台和分析工具集成。

aqua的一个独特之处在于,它通过kspm(kubernetes security posture management)在kubernetes容器中实现安全控制,并在kubernetes运行时提供高级保护。使用原生的k8s功能可以为容器中部署的应用程序的整个生命周期提供基于策略的保护。

prowlerpro

prowlerpro是一个专门用于在amazon web services(aws)开发环境中保持安全控制的开源工具。

prowlerpro的设计使您可以在几分钟内创建帐户并开始对开发流水线进行扫描,无论您所在的地区如何,都可以提供对基础架构的整体视图。其可视化工具允许您在单个窗口中查看所有aws服务的安全状态。

一旦创建了prowlerpro帐户并开始运行,您可以配置系统自动每24小时运行一系列建议的检查。prowlerpro的扫描并行运行以提高速度,以不会减慢您的devsecops工作流程。

扫描结果以一系列预定义的仪表板显示,您可以通过钻取进行直接洞察,查看您安全状态的任何详细级别。

probely

如果您已经有了devops工作流,并且希望将安全扫描集成到其中,probely可以在几分钟内实现这一目标,这要归功于其web应用程序漏洞扫描工具和api。

probely的方法是基于api优先的开发,这意味着工具的每个新功能首先通过api提供,然后添加到界面中。如果您需要将probely与工作流程或自定义软件集成,这种策略使得您始终可以使用其api。

您还可以注册webhooks,以便您的应用程序接收probely生成的每个事件的通知。

由于probely提供了许多现成的集成方案,您可能不需要使用其api将其与您的工具集成。如果您已经在工作流程中使用jira和jenkins,集成将是即时的。

probely将自动在您的ci/cd流水线中启动扫描,并将发现的漏洞注册为jira中的问题。一旦这些漏洞得到解决,它将再次测试它们,并在必要时重新打开未解决的链接中的问题。

checkov

checkov在部署软件产品之前扫描云基础架构的配置,以寻找配置缺陷。它使用一种通用的命令行界面,在不同的平台上进行扫描结果,例如kubernetes、terraform、helm、cloudformation、arm模板和serverless框架

checkov使用基于属性的策略方案,允许您在编译时扫描云资源,使用一个简单的策略即代码python框架检测属性的配置错误。除其他功能外,checkov还使用基于图形的yaml策略分析云资源之间的关系。

通过集成到ci/cd流水线和版本控制系统,checkov在目标存储库的上下文中执行、测试和修改运行参数。

由于具有可扩展的集成接口,其架构可以扩展以定义自定义策略、抑制术语和提供程序。它的界面还允许它与支持平台、构建流程和自定义发布系统集成。

faraday

使用faraday,您可以自动化漏洞管理和控制操作,将注意力集中在真正重要的工作上。其工作流允许您通过自定义事件触发任何操作,以避免重复任务。

faraday使您能够将安全工具标准化和集成到工作流程中,从80多个扫描工具获取漏洞信息。使用代理,扫描仪会自动集成到您的工作流程中,以最大程度地简化获取和归一化数据,并通过web界面查看结果。

faraday的一个显著而有趣的方面是它使用集中式存储库存储安全信息,这些信息可以轻松地被devsecops团队的不同成员分析和测试。

这带来了一个额外的好处,即能够识别和合并不同工具报告的重复问题。这减少了团队成员的工作量,避免他们多次关注同一个问题。

circleci

要将circleci与最受欢迎的devops安全工具集成,您必须在开发流水线中包含其众多合作伙伴之一。circleci的合作伙伴是多个类别的解决方案提供商,包括sast、dast、静态容器分析、策略执行、机密管理和api安全。

如果您需要在开发流水线中执行某些无法使用任何可用orb完成的操作,您可以利用orb是开源的这一事实。因此,向现有orb添加功能只是获得您的pr批准并合并它的问题。

即使您有一个在circleci注册表中可用orb集合之外的用例,您也可以创建一个并将其贡献给社区。公司发布了一份有关创建自动化orb编译和测试流水线的最佳实践列表,以简化您的操作。

为了保护您的流水线,消除内部开发的需要,让团队利用第三方服务。通过使用circleci orbs,您的团队只需要知道如何使用这些服务,而不需要学习如何集成或管理它们。

trivy

trivy是一个开源安全工具,具有多个扫描器,可以检测安全问题以及它可以找到此类问题的各种目标。trivy扫描的目标包括:文件系统、容器镜像、git仓库、虚拟机镜像、kubernetes和aws仓库。

通过扫描所有这些可能的目标,trivy可以发现已知漏洞、配置缺陷、机密信息或敏感信息,以及软件供应链中的问题,包括对正在使用的软件和操作系统软件包的依赖。

trivy可以集成的平台和应用程序可以在其生态系统页面找到。这个列表包括最流行的名称,如circleci、github actions、vs code、kubernetes或jetbrains。

trivy在apt、yum、brew和dockerhub中可用。它没有诸如数据库、部署环境或系统库之类的先决条件,其第一次扫描估计只需10秒钟即可完成。

gitleaks

gitleaks是一个具有命令行界面的开源工具,可以使用docker、homebrew或go进行安装,并且还提供了适用于最流行平台和操作系统的二进制可执行文件。您还可以将其直接部署到您的存储库中作为预提交钩子或通过gitleaks-action作为github分享。

它的命令界面简单而简洁。它只包含5个命令来检测代码中的机密信息、保护机密信息、生成脚本、获取帮助或显示工具的版本。检测命令允许扫描存储库、文件和目录。它可以在开发机器上以及ci环境中使用。

使用detect和protect命令完成gitleaks的大部分工作。它们在git存储库上操作,解析git log或git diff命令的输出,并生成补丁,gitleaks将使用这些补丁来检测和保护秘密。

保持竞争力和安全性

一方面,您的ci/cd流水线的灵活性和速度对确保快速上市至关重要,这反过来对软件开发人员来说是保持竞争力的关键。

另一方面,将安全工具纳入开发流程是不争的必要性。为了在不对软件开发生命周期时间表造成负面影响的情况下整合安全性,devsecops工具是答案。

类似文章