跳到主要内容

动态安全测试 (DST) 是 Web 应用程序安全的重要组成部分。它是一种测试方法,可自动执行在软件应用程序中发现漏洞和评估风险的过程。通过本指南,我们将讨论如何使用动态安全测试以及 DST 实施的一些最佳实践。

什么是动态测试,它是如何工作的?

动态测试是在受控环境中执行 Web 应用程序并识别漏洞的自动化过程。

动态测试的工作原理是向服务器发送请求,然后使用 Acunetix 或 Netsparker 等漏洞检测引擎分析其响应。动态应用安全测试与静态应用安全测试

动态安全测试 (DST) 与静态代码分析 (SCA) 相似但不同。DST 在运行时分析应用程序——它模拟真实的用户操作并监控这些操作如何影响内存或数据存储等系统资源;而 SCA 仅扫描软件的源文件以查找已知错误/漏洞。

动态安全测试初学者指南
动态安全测试初学者指南

动态方法可能非常有效,因为它们不仅仅关注表面可见的东西:它们分析而不是专注于应用程序的各个组件。

动态安全测试是发现在静态代码分析中难以检测到的漏洞的好方法,例如 XSS 和SQLi,只有当用户在易受攻击的应用程序上实际执行时才能检测到这些漏洞。

动态应用程序安全测试工具如何工作?

动态漏洞检测引擎不是简单的端口扫描器或协议“嗅探器”。与防病毒软件一样,它们是使用人工智能 (AI) 研究的先进技术设计的,具有识别针对 Web 应用程序的新攻击类别的独特功能:

要了解动态分析比传统方法更好的原因,让我们看看它是如何工作的——从抓取网站到设置服务器和配置虚拟机,一直到实际的动态分析引擎本身。

  • 抓取网站:动态分析工具首先抓取 Web 应用程序,以了解它们的结构以及它们使用的技术/语言——这些包括动态应用程序安全测试、Web 安全测试、静态代码分析 (SCA)、通过自动化的渗透测试扫描仪和手动测试仪等。他们还发现所有需要保护的资产,然后将其用于报告目的或启动动态测试会话时。爬虫只访问每个 URL 一次,除非它检测到其源代码中的更改——这使您可以避免由代理或浏览器缓存上的缓存问题引起的潜在误报。
  • 设置服务器和虚拟机:动态分析工具不是在本地安装,而是使用虚拟机 (VM) 和沙箱从远程位置运行——这些是模仿用户工作环境的隔离环境。动态分析工具在不同的虚拟机中同时运行多个测试以加快流程,同时也使多个测试人员/研究人员可以同时处理 Web 应用程序的不同部分,甚至可以设置私有动态分析沙箱服务器。
  • 动态应用程序安全测试引擎:动态安全测试需要先进的引擎,这些引擎不仅可以通过查找数据库中现有的签名来识别漏洞。他们必须能够理解应用程序的工作原理,使用符号执行等推理技术对其进行推理并回答复杂的问题,例如“如果我更改此参数会发生什么?” 例如,攻击向量可能仅在值设置为“admin”时存在,并且动态分析引擎必须能够在之前未查看该数据的情况下对其进行推理。动态分析还需要一个引擎,该引擎可以模拟真实用户在与 Web 应用程序交互时执行的操作,例如填写表单、单击菜单和按钮,甚至更改输入框中的值。

为什么要在您的业务中使用这种类型的测试?

动态分析比静态代码分析 (SCA) 更准确,因为它可以跟踪用户的操作、识别新的攻击向量以及推理应用程序以发现漏洞。

动态安全测试还需要高级引擎,这些引擎可以做的不仅仅是在其数据库中查找现有签名。

动态分析工具在不同的虚拟机中同时运行多个测试以加快流程,同时让多个测试人员/研究人员可以同时处理Web 应用程序的不同部分,甚至可以设置私有动态分析沙箱服务器。

结论:
动态安全测试不会取代其他类型的测试,而是与它们一起工作——根据您要实现的目标,为不同的目的使用不同的工具。例如,动态分析有其局限性:它对没有任何有价值资产/敏感用户数据的“玩具”应用程序毫无用处;而静态代码分析可能会给出误报,因为它实际上并没有在浏览器中执行代码。动态应用程序安全测试在内存和处理能力方面也非常耗费资源,这意味着它不能用于每个项目——但是当在生产应用程序中发现安全问题时,动态分析通常会提供最准确的结果。

回到顶部