DevSecOps工具和检测即代码介绍

admin 2022年6月24日10:16:57评论53 views字数 6425阅读21分25秒阅读模式

写在前面:上一篇Gartner报告,介绍了主流的应用安全测试工具,但就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  

 

(完)

 

检测即代码的5个好处

 

       采用“检测即代码”这种现代、测试驱动的方法,来保护您的组织。

       在过去的十年中,威胁检测已经变得对业务至关重要,甚至更加复杂。随着企业迁移到云计算,人工威胁检测流程已经落伍。团队如何扩展自动化安全分析并解决威胁业务目标的挑战?答案在于将威胁检测当作软件或检测即代码。

       检测即代码:一个新的、有希望的范式检测,定义了分析安全日志数据的逻辑,以识别攻击者行为。当规则匹配时,将向您的团队发送警报以进行遏制或调查。

 

检测即代码(detection-as-code)是什么?

       检测即代码是一种现代、灵活和结构化的方法,编写检测规则,将软件工程最佳实践应用于安全。通过采用这种新范式,团队可以构建可扩展的流程,用于编写和强化检测,以在快速扩展的环境中识别复杂的威胁。

 

采用代码驱动工作流的好处

       针对特定环境和系统进行微调的威胁检测程序是最有效的。通过将检测视为编写良好的代码,可以进行测试、进入源代码控制和同行审查代码,团队可以产生高质量的警报,以减少报警疲劳并快速标记可疑活动。

1. 使用编程语言构建自定义、灵活的检测

       使用普遍认可的、灵活的、表达性强的语言(比如Python)编写检测,而不是使用有局限性限的领域特定语言(DSL),有好几个优点。使用Python等语言,您可以编写更复杂和定制的检测,以满足企业的特定需求。随着复杂性的增加,这些规则也更易于阅读和理解。

       这种方法的另一个好处是利用一组由安全社区开发的丰富内置或第三方库,用于与API交互或处理数据,这提高了检测的有效性。

 

2. 测试驱动开发(TDD)

       适当的检测代码质量保证可以使团队尽早发现检测盲点,覆盖错误警报的测试,并提高检测效率。TDD方法允许安全团队像攻击者一样思考,记录相关知识,并策划一个了解攻击者的生命周期内部仓库。

TDD的优势不仅仅是验证代码的正确性。编写检测的TDD方法提高了检测代码的质量,支持模块化、可扩展和更灵活的检测。工程师可以很容易地改变他们的检测,而不用担心拉响警报或妨碍日常操作。

 

3. 与版本控制系统协作

       当编写新的检测或修改它们时,版本控制允许团队快速、轻松地恢复到以前的状态。它还可以确认团队使用的是最新的检测方法,而不是引用过时或错误的代码。版本控制还可以帮助为触发警报的特定检测提供所需的上下文,或帮助确定检测发生更改的时间。

       随着时间的推移,新的和额外的数据不断进入系统,检测也必须改变。变更控制过程对于帮助团队根据需要处理和调整检测是至关重要的,同时确保所有变更都有详细的文档记录和仔细审查。

 

4. 实现可靠检测的自动化工作流

       持续集成/持续部署(CI/CD)管道对于长期以来希望将安全性进一步左移动的安全团队是有益的。使用CI/CD管道有助于实现以下两个目标:

  • 当团队在一个共同的平台上工作时,消除他们之间的隔离,检查彼此的代码,保持组织状态。

  • 为您的安全检测提供自动化测试和交付管道。团队可以通过专注于构建调优的检测来保持敏捷。而不是手动测试、部署、确保检测没有过度调优,这可能会触发错误警报。

 

5. 可重用代码

       最后但同样重要的是,“检测即代码”可以在大量的检测中,提高代码可重用性。随着时间的推移,团队编写了大量的检测,他们开始看到特定的特征出现。工程师可以重用现有代码,在不同的检测中执行相同或非常相似的功能,而无需从头开始。

       代码可重用性可能是检测编写的一个重要部分,它允许团队在检测之间共享功能,或者根据特定的用例修改和调整检测。例如,假设您需要在多个地方重复一组允许/拒绝列表(比方说访问管理)或特定的处理逻辑。在这种情况下,您可以使用Python等语言中的Helper来在检测之间共享函数。

 

Panther 介绍

       Panther是一个安全分析平台,旨在缓解传统SIEM的问题。Panther是安全工程师为安全工程师设计的。Panther并没有发明另一种专有语言来表达检测逻辑,而是为安全团队在云级别提供了一个Python规则引擎,用于编写表达性威胁检测,和自动化检测和响应。Panther的模块化和开放方法提供了简单的集成和灵活的检测,以帮助您构建现代安全运营管道。

 

DevSecOps工具和检测即代码介绍

Panther 中的检测即代码工作流

 

Panther提供了可靠且有弹性的探测,可以轻松实现:

  • 根据您的企业的需求,在Python中编写表达性和灵活的检测。

  • 将日志结构化并规范化到一个严格的模式中,该模式支持使用Python进行检测,使用SQL进行查询。

  • 对海量安全数据进行实时威胁检测和侦察。

  • 受益于200个预设检测,对应到特定威胁、可疑活动和MITRE ATT&CK等安全框架。 

在Panther 中检测的举例

       在Panther中编写检测时,从一个rule()函数开始,该函数标识要标识的特定行为。例如,假设您希望在怀疑使用暴力破解Okta登录时收到警报。以下检测使用panther可以帮助识别这种行为:

DevSecOps工具和检测即代码介绍

Panther 中 Okta 登录暴力破解规则

在上面的例子中:

  • rule()函数接受一个'event'参数,并返回一个布尔值。

  • title()函数控制生成的警告消息发送给分析人员。可以插入从事件中得到的值,以添加有用的上下文。

       可以在Panther 用户界面中直接启用和测试规则,或者使用Panther Analysis工具通过编程方式修改和上传规则,该工具允许您通过命令行界面(CLI)测试、打包和部署检测。为了帮助事件分类,Panther规则包含元数据,如严重性、日志类型、单元测试、操作记录等。

https://thehackernews.com/2022/05/5-benefits-of-detection-as-code.html

(完)


原文始发于微信公众号(安全行者老霍):DevSecOps工具和检测即代码介绍

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月24日10:16:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DevSecOps工具和检测即代码介绍http://cn-sec.com/archives/1139600.html

发表评论

匿名网友 填写信息