上篇文章,有同学私信想了解有哪些DevSecOps工具,这里整理出来,供大家参考(PS: 非专业安全人士,仅从DevOps建设角度,给出自己见解)

软件中的漏洞和弱点很常见:84%的软件漏洞都是利用应用层的漏洞。软件相关问题的普遍性是使用应用安全测试(AST)工具的主要动机。通过使用AST工具,企业可以在软件开发生命周期中快速地检测潜在的安全问题,提高应用程序的可靠性和安全性,降低安全风险。

随着越来越多的应用安全测试工具的出现,信息技术(IT)领导、开发人员和工程师可能会感到困惑——不知道哪些工具可以解决哪些问题。


如上图所示,从下往上,成熟度和实现难度依次增大。

静态应用程序安全测试

Static Application Security Testing (SAST),仅通过分析或者检查应用软件源代码或字节码以发现应用程序的安全性漏洞,侧重检查代码安全,如C/C++缓冲区溢出、身份认证与授权等, 避免产生可利用的弱点。
SAST 工具主要用于 SDLC 的编码、构建和开发阶段。

动态应用程序安全测试

Dynamic Application Security Testing (DAST),通过运行程序来检查应用软件的安全性问题,侧重从系统外部接口来进行针对性的测试,暴露应用程序接口的安全性漏洞。
DAST 是一种自动黑盒测试技术,测试这主要从外部进行测试, 它模仿黑客与您的 Web 应用或 API 交互的方式。它通过网络连接和检查应用的客户端渲染来测试应用,就像渗透测试工具一样。 DAST 工具不需要访问您的源代码或自定义来扫描堆栈。它们与您的网站交互,从而以较低的误报率发现漏洞。

交互式应用程序安全性测试

Interactive Application Security Testing (IAST),整合了SAST和DAST这两种方法,可以发挥各自的优势、降低误报率,发现更多安全漏洞,从而提高安全性测试效率。
交互式应用安全测试就是通过把安全工具的代理嵌入到应用程序里面,从而在测试应用程序的时候,这个安全代码能够监控到应用系统的网络内容,堆栈等信息,从而嗅探出系统在动态行为下的安全漏洞, 内容具体到发生漏洞的代码行。

软件构成分析

Software Composition Analysis (SCA),专门用于分析开发人员使用的各种源码、模块、框架和库,以识别和清点应用系统(OSS)的组件及其构成和依赖关系,并识别已知的安全漏洞或者潜在的许可证授权问题,把这些风险排查在应用系统投产之前,以加快确定优先级和开展补救工作。
此外,它们还可无缝集成到 CI/CD 流程中,从构建集成直至生产前的发布,持续检测新的开源漏洞。大白话,找出软件里面的“科技与狠活”

应用程序安全测试编排

Application Security Testing Orchestration (ASTO),随着数据中心规模的不断增大,网络以及安全服务数量也随之不断的增长,安全运维更是难上加难。面对越来越复杂的网络和安全场景,安全编排(Orchestration)工具应运而生,能够安全自动化和服务编排,如可以连接诸如Splunk、QRadar等安全数据分析工具,利用其提供的大量安全事件数据,通过自动化的脚本,采取一系列的方法进行安全事件的响应。

应用程序漏洞关联

ASTO 将软件开发生命周期内的安全工具进行整合,尤其在 DevSecOps中发挥举足轻重的作用,而AVC(Application Vulnerability Correlation,应用程序漏洞关联)工具是指工作流与流程管理工具,让软件开发应用漏洞测试和修复实现流线化。
这些工具将各种安全测试数据源(SAST、DAST、IAST、SCA 、渗透测试与代码审核)融入到一个中央化的工具中,AVC 工具能够将安全缺陷形成中心化数据,进行分析,对补救方案进行优先级排序,实现应用安全活动的协作。

上面5、6点,属于比较综合的方案,大白话,从“安全”的视角,去看看研发活动的产出 (代码,制品,环境等等资产)有没有安全漏洞风险,并且归类融合去重统一,实现思路上,有点像DevOps流水线,剑走偏锋。目前,国外类似的解决方案有一些,国内很少,我也在持续跟踪研究中。

安全测试工具适用阶段

如下图所示

  • SAST适用于应用程序开发早期或集成/构建阶段,提供代码级别的反馈;
  • IAST可以在应用程序的运行时进行安全测试,并提高漏洞的发现率;
  • DAST适用于应用程序发布前进行黑盒测试;
  • SCA可以检测应用程序依赖的第三方软件组件中的漏洞。

综合使用这些工具,可以在应用程序的开发、测试和部署阶段及时发现和纠正潜在的安全漏洞。

如何选择适合自己企业的安全工具

如下图所示,根据研发活动的过程,我对相关的安全工作做了领域和业务的划分,部分工具可能会贯穿多个阶段。

选型原则

  1. 你需要解决什么问题?哪些阶段是你关注的?
  2. 工具的成本,是否有资金支持采购商业软件?虽然开源的安全工具很多,不过“安全”是个严肃且专业的领域,商业软件还是有很多“硬核”实力
  3. 发现安全问题了,你是否能解决修复?这决定了,你是否会使用这些工具,更重要的是背后的运营流程,否则工具只是工具
  4. 你所在的行业的要求是什么?政府和机构的要求是什么?
  5. 选择的安全工具是否能融入DevOps流水线?是否周边生态插件丰富?是否支持二次开发?
  6. 是否有专业的安全人士,能够使用选中的工具,并驾驭?

个人看法

  • 从实践难易程度和成本最低来看, “ 编码阶段“ 应该是成本最低,工具最多(比如sonarqube 估计是下面图中,你最熟悉的,烂大街的),离开发人员最近的阶段。
  • 从”安全“左移的角度,在”编码阶段“进行实施安全活动,从DevOps角度,浪费也是相对较少的。唯一不足,就是代码阶段的扫描,误报率稍微高,见仁见智。
  • ”容器安全“,也是一个值得关注的,由于云原生普及,周边生态丰富,可以选择的余地会多些,对于”中小企业“来说,成本最低。
  • 如果你的组织不差钱,直接商业工具,这个不用质疑,你的甲方爸爸也不会差钱,他要的是放心。

最后,安全工具仅仅是个开始,如何把工具融于流程,并且落地得到切实的执行才是难点。”安全“是个即”严肃“,又”专业“,同时又容易”被忽略“的活动,任重而道远。

PS: 下面图目前是V1.0版本,后续会持续更新 (图中标记的工具,可以做些尝试,开源的;不差钱的,请直接商业工具,专业的人做专业的事情)

参考:

DevSecOps之应用安全测试工具及选型的更多相关文章

  1. Qtp自动测试工具

    QTP是基于GUI界面的自动化测试工具,用于系统的功能测试. QTP录制的是鼠标和键盘的消息.QTP录制回放时基于windows操作系统的消息机制.QTP在录制时监听应用程序的消息,监听到之后把消息放 ...

  2. API测试工具SoapUI & Postman对比分析

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 最近公司要引入API测试工具,经过调查和了解,最终决定在SoapUI ...

  3. 开源负载测试工具k6比JMeter更容易的5件事

    k6是GitHub上提供的开源负载测试工具.它是用Go编写的,并运行用JavaScript编写的测试脚本.它受到了开发人员,测试人员和DevOps团队的强烈兴趣,并拥有超过4400名GitHub明星. ...

  4. 【测试工具】http协议调试利器fiddler使用教程

    转自:http协议调试利器fiddler使用教程http://bbs.phpchina.com/thread-207418-1-1.html Fiddler真乃神器!它和市面上常见的很多web调试器. ...

  5. Kubernetes DevOps CD工具对比选型

    目录 Kubernetes DevOps CD工具对比选型 一.Flux 二.ArgoCD 三.Jenkins X 四.方案比较 Kubernetes DevOps CD工具对比选型 一.Flux 1 ...

  6. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  7. linux压力测试工具stress

    最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...

  8. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

  9. RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用

    最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip

  10. HTTP压力测试工具

    HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...

随机推荐

  1. docker部署gitlab CI/CD (一)第一篇:部署gitlab及汉化

    网上很多类似教程,但多少有点夹带私货,有的竟然拉取的第三方镜像,而且很多都要修改配置文件,完全不知道是为什么,于是结合其他人的博客和官方文档,知其然也要知其所以然,于2023年4月17日写下这篇. 官 ...

  2. JQuery的认识和安装

    jQuery 是一个 JavaScript 函数库. jQuery 是一个轻量级的"写的少,做的多"的 JavaScript 库. jQuery 库包含以下功能: HTML 元素选 ...

  3. ENVI5.3 安装教程,新手入门(超详细)附安装包和常见问题

    ENVI是一个完整的遥感图像处理平台,广泛应用于科研.环境保护.气象.农业.林业.地球科学.遥感工程.水利.海洋等领域.目前ENVI已成为遥感影像处理的必备软件,包含辐射定标.大气校正.镶嵌裁剪.分类 ...

  4. .NET7 中Autofac依赖注入整合多层,项目中可直接用

    一.配置Autofac替换内置DI 1.安装Nuget包:Autofac.Extensions.DependencyInjection 2.Program.cs中加上 builder.Host.Use ...

  5. 大数据实战手册-开发篇之spark实战案例:实时日志分析

    2.6 spark实战案例:实时日志分析 2.6.1 交互流程图 2.6.2 客户端监听器(java) @SuppressWarnings("static-access") pri ...

  6. 【笔试实战】LeetCode题单刷题-编程基础 0 到 1【三】

    682. 棒球比赛 题目链接 682. 棒球比赛 题目描述 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你 ...

  7. 永远拥抱开放生态 | Metaworld2.0能力发布

    ​ 回看过去的二十年,互联网从门户网站发布信息,用户只能获取阅读:到如今的人人生产内容,再借助各类平台设施上传投递给其他用户.这个过程中,内容生产力的分布从集中转为分散,恰似互联网从1.0走向2.0的 ...

  8. Codeforces Round #882 (Div. 2) A-D

    比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; int a[107]; int ...

  9. 《架构整洁之道》学习笔记 Part 2 编程范式

    计算机编程发展至今,一共只有三个编程范式: 结构化编程 面向对象编程 函数式编程 编程范式和软件架构的关系 结构化编程是各个模块的算法实现基础 多态(面向对象编程)是跨越架构边界的手段 函数式编程是规 ...

  10. 2021-7-7 Vue实现切换图片功能代码

    <!DOCTYPE html> <html> <head> <title> </title> </head> <body& ...