acm-header
登录

ACM通信

BLOG@CACM

选择DAST解决方案:需要注意什么


当今大多数Web应用程序都包含危险的漏洞.要分析它们的安全性,就不能没有动态扫描仪。DAST动态应用程序安全测试工具允许您快速检测和评估安全问题。让我来告诉你在选择这样的工具时应该注意什么。

根据各种研究,70%的漏洞与代码中的错误有关。利用您的web应用程序代码中的漏洞,黑客可以分发恶意软件,启动cryptojacking攻击,使用网络钓鱼并将用户重定向到恶意网站,远程入侵手机,或者利用社会工程技术窃取个人数据。

是的,当然,不可能创建完全安全的软件,但减少漏洞数量并提高产品安全级别是很有可能的。要做到这一点,你可以依靠DevSecOps-连接开发和安全的过程,在软件创建的每个阶段都要检查和测试漏洞。

DevSecOps流程是庞大的;它可能包括许多信息安全工具。在这篇文章中,我想谈谈DAST以及如何为动态应用程序分析选择正确的扫描程序。我们将一起找出您需要注意的工具特性和参数,以及目前市场上有哪些产品类型。

什么是DAST,它是如何工作的?

动态应用程序安全测试是一种安全发展对已部署和运行的应用程序进行自动化分析的实践。动态扫描程序通过HTTP检查所有接入点,使用常见漏洞模拟外部攻击,并模拟各种用户操作。该工具确定服务具有哪些api,发送验证请求,并在可能的情况下使用错误的数据(引号、分隔符、特殊字符等)。

动态扫描器发送并分析大量的请求。通过分析发送的请求和接收到的响应,以及将它们与常规请求进行比较,可以发现不同的安全问题。

大多数扫描仪都有类似的功能和操作方法。它们的主要组件是一个爬虫程序和一个分析器。

爬虫遍历它能到达的每个页面上的每个链接,检查文件的内容,按下按钮,并遍历可能的页面名称字典。这个过程允许您估计攻击面的大小和可能性攻击向量,考虑到与应用程序交互的所有方式。

分析程序直接检查应用程序。它可以在被动或主动模式下工作。在第一种情况下,分析程序只研究爬虫程序发送给它的信息。在第二种情况下,分析器将带有错误数据的请求发送到爬虫找到的点,以及发送到当前页面上不存在但可以在应用程序中使用的其他地方。然后,它根据服务器的响应推断出漏洞的存在。

在选择DAST工具时应该注意什么?

  • 扫描质量

这是发现和遗漏漏洞的比率。不可能立即了解扫描仪的分析效果。为此,您至少应该大致了解可能存在哪些漏洞,并将您的估计与扫描结果进行比较。有几种方法来评估一个工具:

  1. 如果你有一个应用程序,并且已经通过bug赏金程序检查了它的漏洞渗透测试,您可以将这些结果与扫描仪的结果进行比较。
  2. 如果还没有应用程序,您可以使用其他预先易受攻击的软件,这些软件通常是为训练而创建的。您需要找到一个在技术堆栈方面接近您的开发的应用程序。

的数量假阳性在评估扫描质量时起决定性作用。误报太多会影响结果。此外,真正的错误可能会被忽略。要确定该工具的扫描效果如何,您应该分析报告、解析响应,并计算误报的数量和比例。

  • 爬行

如果没有关于应用程序的信息,并且需要从头开始分析它,那么了解可以收集多少路径和转换是很重要的;也就是说,爬行有多准确。为此,您可以查看DAST产品设置。您需要了解它是否可以监视从前端到后端的请求;比如,解析,昂首阔步WSDL应用程序;或者在HTML或JS中找到链接。获得应用程序信息的过程也值得研究。例如,在扫描之前,您可以找出使用了哪些api。这将帮助您了解执行完整程序扫描所需的工具。在选择扫描器时,列出每个工具可以导入的内容,并查看它是否可以内置到开发过程中,这是很有帮助的。

  • 扫描速度

这个参数也很重要,特别是当检查集成到开发过程中时。扫描会减慢这个过程,结果导致时间和金钱的浪费。扫描速度很大程度上取决于应用程序对请求的响应速度,它可以处理多少同时连接,以及其他几个因素。因此,为了比较不同DAST工具的速度,您需要在大致相同的条件下使用相同的软件运行它们。

  • 高级设置

自动分析工具必须有详细的设置。它们将允许您删除不必要的请求并限制扫描区域。这将提高过程的质量和分析的速度。要为工具适当地设置任务,必须拥有所有可用选项和设置。

有一些“智能”扫描器可以适应应用程序,但这些工具仍然需要手动配置,因为检查的目标是不同的。例如,有时您需要以多种方式扫描应用程序,从全面扫描开始,以表面分析结束;在这种情况下,手动模式肯定会派上用场。

在选择工具时,您需要注意可能参数的总数,以及配置它们的容易程度。为了比较不同工具的工作,您可以在每个工具中创建多个扫描配置文件:用于初始分析的快速和浅,用于成熟分析的完整和最大。

  • 集成

为了使动态分析尽可能有效,值得将此实践集成到开发过程中,并在构建期间定期运行扫描器。有必要对所使用的内容形成一个列表CI / CD提前进行加工,并拟定一个大概的工具启动计划。

这将帮助您了解将其集成到开发过程中有多容易,以及使用其API是否方便。

  • 技术

在选择扫描仪时,您应该考虑您的公司在开发中使用的技术。为此,您可以分析应用程序并创建所使用的技术、语言和框架的列表。这个清单可以很长,特别是如果公司很大的话。因此,只选择几个关键参数作为评估扫描仪的标准是合适的:

  1. 工具涵盖的技术和框架的数量。
  2. 支持公司在关键服务中使用的关键技术的能力。
  • 登录顺序记录

记录登录顺序对于动态扫描器非常重要,因为进入应用程序需要身份验证。在这个过程中有很多陷阱,例如哈希密码在发送之前,在前端用共享密钥加密,等等。因此,您必须事先检查该工具是否能够处理所有这些细微差别。为此,您需要选择尽可能多的不同应用程序,并查看扫描器是否可以在每个应用程序中完成登录阶段。

检查注销时工具的行为也是很好的。扫描器在分析过程中发送大量请求。作为对其中一些问题的响应,服务器可以将用户“抛出”系统。该工具应该注意到这一点,并重新进入应用程序。

  • 工具更新

技术在不断发展,因此在选择工具时,考虑其更新或签名/模式或分析规则的新版本的发布频率是至关重要的。在产品网站上研究这些信息或向供应商索取这些信息是值得的。这将显示开发人员是否紧跟趋势,以及您的检查数据库是如何更新的。

您需要了解您是否能够影响产品的开发,以及开发人员如何处理新功能的请求。这将显示您需要的功能将多快出现在产品中,以及作为选项更新的一部分如何安排与供应商的通信。

选择哪种工具?

市场上有很多类似Netsparker、Acunetix、Nessus、Rapid7、AppScan等公司提供的工具。让我简单描述一下我使用的两种工具。

BurpSuite企业:

这个工具是由PortSwigger.该产品有一个成熟的REST API,用于交互和管理扫描、发送报告等等。扫描代理是经典的BurpSuite。它以“无头模式”启动,但有局限性。例如,您只能通过来自头部门户的控制命令与它交互,并且您将无法加载插件。通常,如果工具配置正确,它可以提供出色的结果。

ZAP (Zed Attack Proxy)

流行的工具是由OWASP社区,所以它是完全免费的。它为不同的编程语言提供了不同的sdk和api。您可以使用OWASP选项或您自己的插件。该产品为各种CI/CD工具提供了扩展。它可以在不同的模式下运行,并通过编程进行控制。您可以轻松地将该工具插入到开发过程中。同时,扫描仪也有它的缺点。由于它是一个开源的解决方案,扫描的质量低于企业解决方案。此外,该工具的功能不是很广泛和深入,但可以扩展和改进。

结论

在选择动态分析仪时,您可以使用本文中提到的标准,但必须正确应用这些标准。每个公司都是独一无二的,有自己的细微差别和特点——所有这些都必须与所有的选择标准结合起来考虑。提前定义您的需求并理解您希望从工具中得到什么结果也是很好的。建议对各种选项进行全面测试,相互比较,并选择最佳解决方案。

亚历克斯Vakulov是一名网络安全研究员,拥有超过20年的恶意软件分析经验和强大的恶意软件删除技能。


没有找到条目

登录全面存取
忘记密码? »创建ACM Web帐户
Baidu
map