如今,为了全面保护软件的安全,相关企业必须考虑整个攻击面。这意味着除了传统的静态应用安全测试 (SAST) 和软件组成分析 (SCA) 之外,还对 Web、移动和 API 应用实施持续的动态应用安全测试 (DAST),在开发和生产中能验证web应用程序的安全性。
独立技术和市场研究公司Forrester发布的《2022年度应用程序安全状况报告》显示,应用程序是最常见的攻击媒介,“Web 应用程序漏洞利用”是最常见的攻击之一。有鉴于此,新思科技建议企业以恶意攻击者的视角去测试其运行的 Web 应用程序,以便在被黑客发现和利用之前识别并修复漏洞。
新思科技软件质量与安全部门软件工程师Rui Paquete介绍道:“动态应用安全测试 (DAST) 运行的 Web 应用程序是否存在 SQL 注入和跨站点脚本等漏洞(换句话说,如果一个应用程序正在运行,它就是动态的)。这些在生产应用程序中被利用的常见漏洞在源代码中并不存在;它们只有在部署到生产环境后才会出现。这使得 DAST成为任何应用安全测试计划的重要组成部分。测试过程是通过HTTP请求和响应进行的。DAST通常也被称为‘黑盒’测试。”
虽然有许多方法可用于测试应用代码的安全和质量,但 DAST 适用于应用已启动到生产中的场景。因此,DAST 可以评估尚未识别和/或修复的潜在软件风险。
DAST可以在应用生命周期的最后阶段执行。虽然仍然可以添加或修改新功能,但应用程序的总体范围已经定义。基于此,DAST 工具可以成为开发团队在应用程序维护方面的强大盟友。如果执行得当,DAST 测试可以显著减少重复工作或技术债务。
DAST的作用类似于拼写检查器。而且,随着时间的推移,默认情况下,DAST还可以被视为更安全的开发实践的教育工具,启发开发人员了解什么方法有效,什么无效。
Rui Paquete指出,编写代码的方法有很多种,加固代码的方法也有很多种。持续执行DAST测试,随着时间推移,这种强化代码过程变得越来越高效,因为模式变得更加明显。例如,您的底层代码中可能存在特定问题,允许Javascript恶意运行。从表面上看,问题在哪里或如何发生可能并不明显。但当使用 DAST 扫描时,您可以清晰地掌握这些信息,并快速确定根本原因——而不是在很长一段时间内单独评估这些问题。这样一来,企业就能够将更多资源投入到其它领域,以不断提高生产力。
企业的首席信息安全官(CISO)应该了解DAST并将其视为编程增强器。企业构建的软件是否安全?测试机制是否贯穿于整个软件开发过程? DAST就是这个过程中不可或缺的环节。它不仅能识别现有软件产品中存在的漏洞类别,而且还可以弥补在软件开发过程早期进行的其它测试的不足。DAST 是一种可以连续自动运行的测试方法。团队可以轻松、持续构建应用程序,并一直维护它们。
值得注意的是,人们对静态应用安全测试 (SAST) 、软件组成分析 (SCA) 及DAST 的功能和应用感到困惑。由于测试方式存在根本差异,SAST、SCA以及DAST的扫描结果不尽相同。因此,大多数企业在开发过程的不同阶段采用了这三种技术。
当开发人员编写代码时,SAST 在软件开发生命周期的早期处理专有代码; SCA 解决开源代码中的质量、安全和许可证合规性问题。 DAST 涵盖应用程序中通过 HTTP 请求和响应传输的信息,是一种有针对性的测试方法。在软件开发过程的各个阶段应用不同工具解决方案是创建强大安全态势的关键。
新思科技中国区软件应用安全技术总监付红勋表示:“软件驱动创新,现在几乎所有业务都基于软件进行。但这些不断演变的应用和系统也可能包含漏洞,不法分子可以利用它们来破坏和窃取关键数据。幸运的是,我们可以通过强大的安全流程来降低大部分风险,并确保新功能和更新得到正确测试。通过将DAST纳入安全流程,企业可以对其生产环境进行彻底和安全的扫描。这使他们能够在功能和安全之间取得平衡,并能够在不影响安全的情况下向客户提供全新特性和功能。”
现在互联网上有超过 20 亿个网站,而且还在不断增多。DAST在大规模测试中大有可为,能随着安全测试需求的变化而快速扩展。DAST为开发团队提供不拖慢开发速度的关键测试能力,以提高代码的安全性和质量。