上篇文章,有同学私信想了解有哪些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. 各种版本的Linux 镜像下载网址

    今天发现Linux 镜像下载网址感觉很不错,分享给有需要的小伙伴们 访问地址 Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debia ...

  2. Linux,会这些就够了

    在测试当中,其实对Linux的要求不高,我们在工作中需要记住常用的一些命令,不常用的实际用到的时候再查在记即可,最重要我们要使用命令可以查看日志,定位bug   目录篇: 可用  pwd  命令查看用 ...

  3. docker升级gitlab

    昨天在家部署了gitlab,版本居然是15.10,公司版本却是14.6,升级一波. 官方文档: https://docs.gitlab.com/ee/update/#upgrading-without ...

  4. CSharp初体验

    入门 初来乍到了解一门新的语言,它可能和熟悉的c/c++有不小差别,整体上需要首先了解下语法文件的整体结构.例如,源文件整体结构如何. 乍看CSharp源文件(compile unit)的结构,官网主 ...

  5. Vue3从入门到精通(一)

    Vue3简介 Vue3是Vue.js的最新版本,于2020年9月18日正式发布.Vue3相比Vue2有很多改进和优化,包括但不限于: 更快的渲染速度:Vue3通过使用Proxy代理对象和优化虚拟DOM ...

  6. CANoe_ Trace 和 Graphics 窗口的介绍和使用

    Canoe是一款用于汽车网络分析和仿真的工具,其中包括Trace和Graphics两个窗口,用于显示和分析CAN网络数据.以下是对Canoe的Trace和Graphics窗口的简要介绍和使用说明: 1 ...

  7. CMake个人理解和使用

    前言 CMake是一个构建工具,通过它可以很容易创建跨平台的项目.通常使用它构建项目要分两步,通过源代码生成工程文件,通过工程文件构建目标产物(可能是动态库,静态库,也可能是可执行程序).使用CMak ...

  8. 基于DSP的设备振动信号的采集技术方案综述

    前记  在能源领域,由于很多地方都是无人值守,设备故障检测是一个必须面对的问题.笔者通过几个行业案例了解到,由于很多设备发生故障时候会产生特定频谱的声音,所以该行业对振动监测的需求特别强烈,由于涉及到 ...

  9. 讯飞离线语音合成新版(Aikit)-android sdk合成 demo(Java版本)

    前言:科大讯飞的新版离线语音合成,由于官网demo是kt语言开发的,咱也看不懂kt,搜遍了全网也没看到一个java版的新版离线语音demo,现记录下,留给有缘人参考!!!!!毕竟咱在这上面遇到了不少的 ...

  10. 2023-07-03:讲一讲Redis缓存的数据一致性问题和处理方案。

    2023-07-03:讲一讲Redis缓存的数据一致性问题和处理方案. 答案2023-07-03: 数据一致性 当使用缓存时,无论是在本地内存中缓存还是使用 Redis 等外部缓存系统,会引入数据同步 ...