作者 | Sudip Sengupta 策划 | 田晓旭 在今天的文章中,我们将共同探讨 DevOps 领域中应用最为广泛的安全工具与方法。

从策略层面来讲,安全测试工具可以融入 DevOps 工作流之内,并从本质上构成一套 DevSecOps 模型,借此在提高生产效率的同时最大程度降低软件开发成本。此类工具使您可以在整个软件开发生命周期(SDLC)以及软件交付之后的运行及维护阶段内,对包括潜在漏洞在内的各类问题进行测试与修复。启用 DevSecOps 模型将确保开发人员拥有安全的开发与交付周期,而不致因“强行塞入安全性”而影响 SDLC 并拖累生产效率。

在之前的文章中,我们曾经讨论过微服务为何易受攻击,以及如何将 DevSecOps 模型视为持续保障安全实践的明智方法。

DevSecOps 范式本身一直在不断发展,而且随着独特安全工具的出现,组织现在已经可以对软件开发及交付内的不同阶段进行分别测试与保护。DevSecOps 安全工具通常被分为静态应用程序安全测试(SAST)与动态应用程序安全测试(DAST)两种基本思路。在今天的文章中,我们主要讨论最常用的安全工具及方法。

1 静态应用程序安全测试(SAST)

SAST 模型提供包含多种形式的源代码分析、二进制分析以及白盒测试技术。乍看之下,SAST 工具似乎主要负责在代码被推送至生产环境之前,对应用程序的源代码进行安全漏洞检查。SAST 源代码分析主要关注静态代码中是否存在易受攻击的缺陷,例如竞争条件、输入验证、数字错误等。另一方面,二进制分析则强调对已构建及编译完成的代码进行缺陷测试。我们需要同时使用多种 SAST 工具,有些仅负责测试源代码、有些测试已编译代码,有些则同时对这两类代码做出测试。

以下是几款知名度较高的 SAST 工具:

LGTM.com

LGTM 是一套开源代码平台,可通过变体分析检查代码中的常见漏洞与披露(CVE),同时支持几乎所有主要编程语言,包括 C/C++、Go、Java、JavaScript/TypeScript、C# 以及 Python 等。LGTM 首先使用 CodeQL 技术识别问题、解决问题,并扫描类似的代码模式以避免出现进一步威胁。凭借多种 repo 系统提供的开源项目,LGTM 得以高效执行自动代码审查,借此识别源代码中的公开内容。

作为一套开源平台,LGTM 还充分运用安全专家的知识,即使用数据科学与语义代码搜索等技术编写出可检测现有及新代码漏洞查询的自动化方案。

SonarQube

SonarQube 是最著名的静态代码分析工具之一,旨在清理并保护 DevOps 工作流及代码。通过对代码质量的持续分析,SonarQube 会定期检查以检测出 bug 及安全问题。SonarQube 宣称可以扫描使用 27 种编程语言编写的代码,包括 Java、Python、C#、C/C++、Swift、PHP、COBOL 以及 JavaScript 等,因此其非常适合拥有不同编程背景或者需要在多个平台上运行应用程序的团队。更重要的是,SonarQube 可以在 GitHub、Azure DevOps 忣 BitBucket 等 repo 中直接分析您的代码,并在代码审查期间提供即时反馈。

SonarQube 社区版是开源自由软件,也被普遍视为入门级 CI/CD 安全 DevOps 的完美选项。另一方面,其开发者、企业以及数据中心版则更为复杂精妙,适用于规模更大的部署场景。

Reshift

Reshift 的核心目标是在不影响开发速度的前提下发现安全问题,这也使其成为推广 DevSecOps 模型的重要选项之一。Reshift 与集成开发环境(IDE)相融合,因此非常适合识别漏洞并实时加以修复。作为一大核心功能,Reshift 允许用户在代码审查、编译时以及持续集成的过程中不断保护应用程序安全。Reshift 被众多技术专家视为完美的轻量化 DevOps 安全测试解决方案,适用于中小型企业、以及希望将安全保障整合至软件开发生命周期当中的各类初创软件公司。

Insider CLI

Inside 是根据 OWASP Top 10 设计的另一款开源 SAST 工具,用于简化各类编程语言的安全自动化流程,适用于.NET 框架、JavaScript(Node.js)、Java(Android 与 Maven)、Swift 以及 C# 等。Insider 源代码分析工具是一款社区驱动型方案,通过在源代码层级扫描漏洞以支持敏捷且高效的软件开发方法。

借助 Inside Application Security,您可以通过自由、集成的 GitHub 操作直接在 GitHub 目录上保护代码,让整个安全保障体系变得易于实施。

2 动态应用程序安全测试 (DAST)

DAST 工具也被称为黑盒测试或漏洞扫描工具。这些工具将从局外人的角度测试应用程序,而不仅限于其并不熟悉的源代码本体。DAST 工具会模拟攻击向量的行为,在运行时测试应用程序以发现潜在的安全漏洞。这些工具无需人工干预即可运行,因此建立起一整套自动化测试流程。DAST 工具能够适应的漏洞相当广泛,包括内存破坏、跨站点请求伪造、远程文件包含、缓冲区溢出以及拒绝服务等。

下面,我们将一起了解几款重要的商业及开源 DAST 工具。

Crashtest Security

CrashtestSecurity 是一款漏洞评估工具,具有高级爬网功能,可无缝集成至开发管道以检测应用程序内的漏洞。CrashtestSecurity 将行业标准的高级扫描功能与用户友好型界面相结合,供您轻松进行安全测试。Crashtest 还能够对基于 JavaScript 的应用程序进行单页分析以识别漏洞模式,并采用基于文档的应用程序编程接口(API)扫描建立起一套全面的安全平面。

OWASP ZAP

开源 Web 应用安全计划(OWASP)推出的 Zed Attack Proxy(ZAP)是一款免费的开源渗透测试工具,专门用于测试 Web 应用程序。ZAP 将充当“中间人”攻击载体,以模拟方式对测试者浏览器与网络应用程序之间的通信加以拦截。ZAP 可以被安装在所有主要操作系统以及 Docker 之上,用户亦可选用 ZAP 市场中的各类附加组件进一步增强安全测试功能。

NPM Audit

Node Package Manager(NPM)Audit 平台提供庞大且不断增长的工具注册表,并在全球范围内托管着数量庞大的共享 JavaScript 软件包。凭借着对平台及各类软件包的广泛支持,如果大家希望保护由远程分布式团队支持的 DevOps 管道,那么最好的配套选项无疑就是 NPM。NPM CLI 可用于配置软件包、审查实时应用程序源代码,同时访问 repo 以改善功能。这套解决方案能够自动识别并管理依赖项中的冲突,帮助您实时修复安全漏洞。

Arachni

Arachni 是一款基于 Ruby 框架的免费高性能测试工具。其发行版中包含多个可移植软件包,您可以立即进行部署以评估应用程序安全性。您可以根据需求将其部署为 Ruby 库、CLI 扫描器、WebUI 或者分布式系统。通过 REST API,Arachni 能够轻松与大多数现代平台相集成,借此提供丰富的漏洞分析检查功能,同时由此获得最高水平的弹性、准确性与可靠性支持。Arachni 可以扫描 NoSQL 注入、代码注入、XSS 以及文件包含变体等漏洞,并为基于 JavaScript 框架的 Web 应用程序提供其他跟踪优化。这一切,使得 Arachni 成为具有多种功能且高度自动化的分布式渗透测试平台。

3 总结

将安全测试整合至 DevOps 当中,要求我们找到一种不仅能够保护管道安全、同时亦可跨多个业务层级实现扩展的强大方法。有了正确的安全测试工具,我们对源代码及编译后代码的自动分析将成为 SDLC 中的一大基本要素,帮助开发团队高效处理各类漏洞。正确的工具将帮助我们在实现协作、管理管道以及推进测试自动化的同时,不致于牺牲掉系统性能、时间以及其他成本资源。更重要的是,将安全测试集成至 DevOps 之内还能够显著减少修复工作所涉及的编码量,由此降低软件开发成本。

原文链接

https://dzone.com/articles/an-overview-of-security-testing-tools-in-devops

今日推荐文章

使用 Prometheus 与 Grafana 为 Kubernetes 集群建立监控与警报机制

活动推荐

作为一名架构师,在做软件研发、架构设计的时候,你遇到的最困难的问题是什么?是要具体解决系统的某个缺陷,还是要提升某段代码的运行性能?跟随周志明一起深入探讨:如何构建一个可靠的分布式系统,70 讲免费领!

点个在看少个 bug ?

安全测试工具_选型必看:DevOps中的安全测试工具推荐相关推荐

  1. lpc2000 filash utility 程序烧写工具_重点必看 | 取证小程序开发之第四届美亚杯硬盘信息快速解题...

    告别金秋十月,迎来仲冬十一月,同时迎来的是首届电子数据取证小程序大赛.随着投稿截止时间的一天天到来,越来越多的用户参与到本次小程序大赛,用自己的力量参与取证知识创新,为营造良好的取证技术生态赋能. 上 ...

  2. 2018年家用计算机推荐,【小白必看】2018年各价位笔记本电脑推荐!

    原标题:[小白必看]2018年各价位笔记本电脑推荐! 转眼就8月初了,马上就是一年一度的大学新生入学季了. 对于即将踏入大学校门的学生来说,笔记本电脑可以说是大学生活必不可少的电子产品. 但目前的笔记 ...

  3. html5如何快速选择工具,Photoshop教程:在PS中如何使用快速选择工具建立有效选区...

    Photoshop软件中有很多操作工具.小编接下来要介绍的是关于PS中的5个快速选择工具建立有效选区的内容. 1:魔棒工具 那是成立选区最简朴的方式,但只要正在布景色为杂色时才会比较有用. 是以,当要 ...

  4. 测试工程师必读经典好书,自动化测试和测试开发的同学必看

    软件测试入行容易进阶难.在持续交付体系背景下,要成为测试开发高手意味着非常系统综合的知识储备.广泛阅读经典好书是快速成长的必要方式. 测试开发从入门到进阶经典书籍 [测试入门基础] 夯实软件测试基础技 ...

  5. cad 怎么显示块句柄_新手必看的CAD小技巧,老师傅精选汇总,三分钟教你学习用处多多...

    零基础新手必看的CAD绘图小技巧,这里分享给你,都是老师傅精选汇总,实实在在用得上,希望能够给你带去帮助! PS:其实CAD入门并不难,难在坚持,如果真的想要入这个行业,一定要你坚持哦! 废话不说了直 ...

  6. 计算机辅助测试普通话考试流程,必看!普通话考试全流程详解!

    原标题:必看!普通话考试全流程详解! 2019 普通话考试指南 现在距离11月9号普通话考试只有3天了,但是小伙伴们,你们知道考试流程和检测的方式吗?所以今天我就来为第一次参加普通话考试的同学来科普一 ...

  7. 职业选择测试发型软件,发型师必看的10条职业经验

    原标题:发型师必看的10条职业经验 作为一个有志向的发型师,你是不是也梦想有一天能成功?将下面提到的这10个要点铭记于心并用在实际工作中,你就能在你的职业生涯上更进一步并且更快乐. 在这里,收集记录了 ...

  8. mysql+数据库连接标识_新人必看!连接到MySQL数据库的两种方法

    原标题:新人必看!连接到MySQL数据库的两种方法 使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysq ...

  9. 至强cpu型号列表_装机必看——CPU型号参数详解

    装机必看--CPU型号参数详解 --装机个人练习生-海 在初步解了电脑构成后,我们DIY装机首先要看的就是如何选CPU,今天就带大家详细学习CPU的各类数据. 说到CPU,我们先来介绍下生产CPU的两 ...

最新文章

  1. Science:最新发现哈希可能是大脑的通用计算原理!
  2. [转] 鼠标移入/移出颜色渐变
  3. 使用Swoole服务搭建简易聊天室
  4. int转string的3种方法
  5. 浅析Hadoop的三个作业调度器
  6. MS SQLService中的*= 及 =*
  7. Virtools脚本语言(VSL)教程 - 枚举
  8. 英雄联盟服务器维护3月17,英雄联盟将于3月17日凌晨2点开始进行全区停机维护...
  9. 【转载保存】修改IK分词器源码实现动态加载词典
  10. Spring Cloud Consul 基础使用介绍
  11. realsense d435i 跑 vins-fusion
  12. mysql线上问题之Lock wait timeout exceeded; try restarting transaction
  13. e: 无法定位软件包 python-pip_关于Sony镜头不同系列定位的最全面分析
  14. 共享OrCAD9.2pSpice9.2+multisim下载地址
  15. 手把手教你学会用C语言编写井字棋小游戏
  16. C语言文件指针,如何对文件进行操作,文件指针FILE,指向文件指针
  17. docker network create
  18. 约瑟夫环c语言单链表的解题思路,太透彻了:约瑟夫环的三种解法
  19. curl发送请求简单实践
  20. DICOM之常用Tag

热门文章

  1. jquery城市选择案例
  2. 米范 - 为新媒体和电商从业者提供的酷导航
  3. zabbix-自定义键值监控网卡IN、OUT流量
  4. 关于xendesktop外部SQL数据库连接设置的问题
  5. android 如何开发出一款知名应用:构思篇
  6. android 9.0打开wifi,Android9.0 SystemUI 屏蔽打开wifi时不显示4G图标的逻辑
  7. requests库post方法如何传json类型的data
  8. Django内置数据表
  9. python21天打卡Day12--for循环,列表推导式-构建列表
  10. 使用 Python+Selenium + 第三方库实现的简单的 web 自动化测试框架 源码