6大优势、2种类型,一文吃透动态应用安全测试(DAST)
在在上篇文章中中,我们了解了 SAST 的概念、优劣和使用的工具,并在文章里提到了另一个软件安全领域里的重要技术 DAST。本文将会详细介绍 DAST 的概念、重要性及其工作原理。
DAST(Dynamic Application Security Testing)是在应用程序处于生产阶段时发现安全漏洞的过程,它包括使用各种测试工具进行手动和自动化测试。
这是一种黑盒测试的类型,测试者无需了解架构、网络或者代码,而是从一个恶意攻击者的角度来测试应用程序。应用程序依赖于输入和输出运行,这意味着如果用户的输入有疑点,在响应上会有反馈。
DAST 测试可以在正式投入使用之前帮助你在软件中发现漏洞。它不是为特定软件而设计的,而是在易受攻击的应用层上工作。
为什么动态应用安全测试(DAST)如此重要?
根据 Internet Live Stats 的数据,全球有超过17亿个网站,因此安全漏洞的数量在不断增加也就不足为奇了。CNBC 的一项研究显示,超过75%的应用程序在某种程度上存在漏洞,而这些漏洞不会很快消失,这就是应用程序安全测试(AST)的用武之地。
南半球的蝴蝶扇动一下翅膀就能在北半球引发一场台风,开发人员轻微的安全错误(例如,用户输入验证不当、服务器版本泄露和使用易受攻击的软件库等)也有可能导致重大的安全问题。
而采用 DAST,可以让开发人员在构建应用程序时不必完全依赖自己的知识和过往经验。通过在软件开发生命周期(SDLC)中执行 DAST,开发人员可以在软件公开部署之前捕获应用程序中的漏洞。如果不检查这些漏洞而直接部署应用程序,可能会导致数据泄露,进而造成重大的经济损失和损耗品牌声誉。在软件开发生命周期(SDLC)的某个阶段,人为错误将不可避免,而在 SDLC 中越早发现漏洞,修复的成本就越低。
当 DAST 成为 CI/CD 流水线的一部分时,DevSecOps 就诞生了。对 Fortify on Demand(FoD)漏洞数据的分析显示,在超过11000个网络应用程序中,94%的程序含有安全功能的漏洞,而代码质量和 API 滥用问题在过去4年里大约增加了一倍。

DAST 的2种类型
大部分人认为DAST是一个自动化的方式,但事实并非如此。在广泛意义上,动态应用安全测试被分为两类:
- 手动 DAST: 当涉及到保护应用程序的安全时,软件漏洞扫描工具和渗透测试工具可以在很大程度上发挥作用,但它们也会存在疏漏。这就是手动 DAST 施展拳脚的地方,他们可以利用自己的经验和相关知识来发现自动扫描工具可能会忽略的漏洞。手动测试包括安全专业团队测试应用程序的漏洞,这些漏洞通常被自动漏洞扫描工具所遗漏。
- 自动 DAST: 自动化动态测试包括使用软件测试应用程序并为其提供所需数据。这种类型的测试包括使用爬虫、Fuzzer 和 Regex 等方法来寻找和替换重要的关键词,模拟一次真正的攻击从而导致不同类型的漏洞,如SQL注入、跨站脚本攻击和服务器端请求伪造等。
DAST 工作原理
DAST 扫描工具会在正在运行的应用程序中查找漏洞,然后在发现了 SQL 注入攻击、跨站脚本(XSS)攻击的漏洞时自动发送告警。因为 DAST 工具具备在动态环境中运行的能力,它们可以检测到 SAST 工具无法识别的运行时缺陷。
假如应用程序是一栋大楼,那么 DAST 扫描工具可以被认为是一个保安。并且这个保安不仅仅是确保门窗已锁好,还会身体力行地测试各种闯入大楼的方法,例如撬开门锁或打破窗户。完成这项检查后,保安会向大楼经理汇报并解释他是如何闯入大楼的。
DAST 会测试所有种类的 endpoint,包括隐藏的 endpoint,并触发不同种类的攻击以发现安全漏洞。DAST 的自动化测试工具通过模拟对应用程序的恶意攻击识别出漏洞,这是在日常使用过程中难以发现的。
由于 DAST 可以对应用进行端到端的测试,而无需进入源代码,所以不需要事先了解所使用的编程语言。这使得 DAST 使用起来十分方便。其他应用程序安全测试方法并未涵盖广泛的漏洞测试。此外,DAST 在运行时查找源代码中的漏洞,这意味着 DAST 不需要重新构建一个应用程序来测试漏洞。
将 DAST 集成到 SDLC 中
软件开发生命周期(SDLC)是软件开发中的一个术语,这是一个统一了整个软件或应用程序开发流程的框架。无论所开发的软件类型是什么,一个预先构建好的软件开发生命周期对成功至关重要。
将 DAST 工具集成到 SDLC 中,也是构建一个安全的应用程序的关键。
DAST 的主要关注点是在 SDLC 早期阶段识别出漏洞,从而使开发团队能够在问题变得更严重之前解决它们。DAST 被引入到软件开发生命周期(SDLC)中, 可以让开发人员在黑客利用漏洞之前将漏洞修复。
开发者、测试者以及项目经理在整个软件开发生命周期期间采用不同的扫描技术。而在 DAST 解决方案兴起之前,对于团队而言将扫描结果集成到开发生命周期中是十分困难的。将 DAST 整合到 SDLC 过程中的企业比那些没有整合的组织更具竞争优势。动态应用安全测试是一个全面的应用安全计划的重要组成部分,它可以检测和防止漏洞被引入到软件应用中,也可以检测现有的漏洞。

DAST 的6大优势
DAST 是一种相对较新的测试实践,它侧重于在运行时评估软件应用程序的安全性,它可以在生产环境中进行测试,因此它有以下6大优势:
1、 无需掌握应用程序的语法知识
DAST 几乎不需要了解应用程序的编程语言,市面上的自动扫描工具可以根据输入和输出测试应用程序。换言之,DAST 工具并不与特定的语言绑定,这使得它成为比人工代码审查或渗透测试更敏捷的测试方法。
2、 误报率低
与其他应用安全测试方法相比,DAST 扫描工具导致的误报非常少,因为无论组件、语言和平台如何,都是端到端测试。
3、可以对复杂架构进行扫描
随着微服务和函数式编程的兴起,应用程序架构和代码库变得更加复杂。单一的单体应用的时代已经成为“过去式”。现代的应用程序由多个组件和系统组成,这些组件和系统是由不同团队或是不同公司构建的。由于 DAST 使用其 Web 界面运行应用程序和服务,因此它可以测试所有这些组件和系统相互交互的结果,并且可以在不需要对每个组件有太多深入了解的情况下发现漏洞。
4、模拟现实世界的安全攻击
DAST 扫描工具并不是为在局域网内部工作而设计的,所以它们的方法与典型的外部攻击一致。它模拟了现实世界的攻击,在黑客试图攻击应用程序之前就为其构筑安全的城墙。
5、集成到 SDLC
企业在 SDLC 中引入 DAST,以减少其应用程序在 CI/CD 流水线阶段的漏洞和安全风险,从而降低安全漏洞可能造成的损失。
6、设置简单且持续扫描
DAST 可以轻松设置并且会持续不断地进行扫描以检查安全漏洞,这使得开发和管理团队无需提心吊胆。
总 结
当提到安全,没有比测试更重要的维护安全的方式了。动态应用安全测试可以帮助你在漏洞酿成大祸之前发现并修复它。通过本文,我们对 DAST 有了基本的了解,那么在未来的文章中我们会继续介绍软件安全领域的相关内容,保持关注吧!
6大优势、2种类型,一文吃透动态应用安全测试(DAST)的更多相关文章
- Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型
转自:https://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 概述 LOB 代表大对象数据,包括 BLOB 和 CL ...
- JDBC驱动的四种类型
Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥.本地API驱动.网络协议驱动和本地协议驱动. JDBC驱动类型一.JDBC-ODBC桥 JDBC-ODBC 桥 是sun公司提供的, ...
- Go语言的9大优势和3大缺点, GO语言最初的定位就是互联网时代的C语言, 我为什么放弃Go语言
Go语言的9大优势和3大缺点 转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时.今年 Stream 团队的主要编程语言从 Python 转向了 Go.本文解释了其背后的九大原因 ...
- linux系统中文件的几种类型
Linux系统是以文件的形式来进行管理的.Linux文件类型常见的有:普通文件.目录.字符设备文件.块设备文件.符号链接文件等,如果想了解这方面知识的弟兄,就进来了解了解. Linux系统不同于win ...
- 跟我一起学Redis之看完这篇比常人多会三种类型实战(又搞了几个小时)
前言 对于Redis而言,很多小伙伴只关注其关键的五大基础类型:string.hash.list.set.sorted set(有序集合),其实还有三种特殊类型在很多应用场景也比较适合使用,分别是:b ...
- HTML之DocType的几种类型 -转载
HTML之DocType的几种类型转载 doctype类型详细doctype的几种类型html之doctype 分类: 前端文摘 在默认情况下,FF和IE的解释标准是不一样的,也就是说,如果一个网页 ...
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...
- Linux 文件的几种类型
文件的几种类型: 1.普通文件 普通文件就是一般意义上的文件,它们作为数据存储在系统磁盘中,可以随机访问文件的内容.Linux系统中的文件是面向字节的,文 件的内容以字节为单位进行存储与访问 ...
- HTTP状态码通常分为5种类型
HTTP状态码通常分为5种类型,分别以1-5五个数字开头,由3位整数组成: -------------------------------------------------------------- ...
随机推荐
- 时间盲注——AS别名让盲注不盲
用处 页面存在时间盲注,注入成功了,你啥也看不到. 这只是为了能够查看到注入后的结果 网站部分源代码 <?php $conn = mysqli_("127.0.0.1",&q ...
- 如何使用 python 爬取酷我在线音乐
前言 写这篇博客的初衷是加深自己对网络请求发送和响应的理解,仅供学习使用,请勿用于非法用途!文明爬虫,从我做起.下面进入正题. 获取歌曲信息列表 在酷我的搜索框中输入关键词 aiko,回车之后可以看到 ...
- 2021.08.05 P1738 洛谷的文件夹(树形结构)
2021.08.05 P1738 洛谷的文件夹(树形结构) P1738 洛谷的文件夹 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.树!! 题意: 给出n个网页路径,求 ...
- 简单了解AndroidManifest.xml文件
AndroidManifest.xml:资源清单文件 <?xml version="1.0" encoding="utf-8"?> <mani ...
- Dom基础(一):attribute和properrty的区别
properrty:修改对象属性不会体现到html结构中,针对DOM节点自带属性(id,className,style) attribute:修改html属性,会改变html结构,大多可以添加自定义属 ...
- Spring Security实现基于RBAC的权限表达式动态访问控制
昨天有个粉丝加了我,问我如何实现类似shiro的资源权限表达式的访问控制.我以前有一个小框架用的就是shiro,权限控制就用了资源权限表达式,所以这个东西对我不陌生,但是在Spring Securit ...
- css的过渡transition和动画animation
过渡 过渡(transition)是CSS3中具有颠覆性的特性之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时元素添加效果.过渡动画:是从一个状态 ...
- XCTF练习题---MISC---stage1
XCTF练习题---MISC---stage1 flag:AlphaLab 解题步骤: 1.观察题目,下载附件 2.打开附件后发现是一张图片,初步判断是图片隐写,上Stegsolve进行转换,得到一张 ...
- 【Python爬虫案例】用Python爬取李子柒B站视频数据
一.视频数据结果 今天是2021.12.7号,前几天用python爬取了李子柒的油管评论并做了数据分析,可移步至: https://www.cnblogs.com/mashukui/p/1622025 ...
- UDP协议,多道技术,进程,同步与异步,阻塞与非阻塞
UDP协议 简介 UDP叫做用户数据报协议,是OSI七层参考模型中传输层使用的协议,他提供的是不可靠传输,既它在传输过程 中不保证数据的完整性! 端口号 UDP使用IP地址和端口号进行标识,以此将数据 ...