对于依赖数字服务的组织而言,遵循Web应用安全最佳实践至关重要,其中包括定期、持续地测试网站和应用是否存在漏洞。安全测试有助于组织在攻击者利用Web应用漏洞之前及早发现并修复漏洞,还可对现有安全机制和控制措施进行压力测试,确保其在实际环境中按预期运行。
阅读这篇博客文章,了解Web应用安全测试的主要类别,以及何时、如何使用各类测试。文中提供了Web应用安全测试工具示例,并探讨了Web应用安全最佳实践。文章最后还附有一份实用的Web应用安全检查清单,提供可操作的建议和指导。
““安全测试可帮助组织及早发现并修复Web应用漏洞,避免攻击者利用这些漏洞。””
Web应用安全测试的类型
Web应用安全测试主要分为三种类型。静态应用安全测试(SAST)通过分析源代码来识别漏洞,而动态应用安全测试(DAST)则在应用运行期间扫描外部攻击面(通常从客户端或前端进行),以测试是否存在漏洞。在渗透测试(通常简称“渗透测试”)中,网络安全专家会模拟实时攻击,以更深入地了解潜在的安全弱点。
静态应用安全测试(SAST)
SAST无需执行程序即可分析应用程序的代码库,在软件开发生命周期的早期识别已知漏洞和编码缺陷,因此非常适合在应用程序投入生产环境之前发现问题。SAST通常可检测缓冲区溢出等漏洞。发生缓冲区溢出时,数据会超出分配的内存缓冲区,可能导致程序崩溃或代码执行。SAST还可发现SQL注入缺陷,即未经清理的输入被用于数据库查询,使攻击者能够操纵或访问数据。此外,SAST还可检测跨站脚本(XSS)漏洞,即恶意脚本被注入其他用户浏览的网页中。
与DAST不同,SAST工具通常在开发生命周期早期运行,以确保遵循安全编码实践,此时错误往往更容易修复。与渗透测试不同,SAST通常通过自动化工具执行,几乎不需要人工干预,并且通常作为持续集成和持续交付(CI/CD)流程的一部分运行。
SAST工具仅适用于特定语言,因此请务必选择支持所用编程语言的工具。开放全球应用安全项目(OWASP)维护着一份详尽的SAST工具列表。
动态应用安全测试(DAST)
DAST会在应用运行时对其进行分析,以识别源代码中可能不可见的运行时漏洞。DAST有助于检测仅在特定环境条件下出现的配置相关漏洞,并识别与API、数据库和第三方服务等外部系统交互所产生的安全风险。DAST还可以检测由恶意或意外用户行为触发的漏洞,例如输入操纵或会话滥用。
与SAST不同,DAST工具在开发生命周期的后期运行,此时应用已在生产环境中运行。DAST通常在无法访问源代码的情况下从客户端进行探测和测试,从而模拟攻击者查找并利用漏洞的行为。DAST对于发现预发布环境或类生产环境中的问题尤其有价值,可作为SAST等代码级测试方法的补充。DAST也不同于渗透测试,通常由自动化工具执行,只需极少的人工干预,并作为CI/CD流程的一部分持续运行。
F5通过F5 Distributed Cloud Web App Scanning提供DAST类解决方案。该解决方案可自动爬取、发现和映射暴露的Web资产,准确盘点跨域的应用和服务,从而简化Web安全防护。它可执行自动化渗透测试,并识别已知漏洞(例如常见漏洞与披露(CVE)和过时软件)以及未知漏洞,包括OWASP Top 10和LLM Top 10威胁。这种主动方法可为Web资产提供全面保护。OWASP还维护了一份很长的DAST工具列表。
渗透测试
渗透测试通常是由经验丰富的网络安全专业人员开展的手动安全评估。他们通过模拟复杂的真实攻击,识别并利用应用、系统或网络中的漏洞。渗透测试通过揭示攻击者可能如何利用薄弱环节及其可能造成的影响,为了解组织的安全态势提供有价值的洞察。
渗透测试尤其适合发现自动化工具可能遗漏的高级或复杂威胁,例如利用应用预期功能和流程的业务逻辑攻击。渗透测试还可以识别社会工程攻击的潜在风险。在此类攻击中,攻击者会操纵他人,以获取未经授权的访问权限或信息。
与SAST和DAST不同,大多数组织会按计划开展渗透测试。测试频率通常为每年、每季度或每月一次,具体取决于预算和安全要求。
渗透测试利用多种专用工具模拟攻击,并发现组织数字环境中的潜在漏洞。其中包括使用Web应用扫描器梳理域的外部攻击面服务并识别潜在漏洞。测试还会使用网络嗅探器监控和分析网络流量,查找未经授权的活动或数据暴露迹象;并使用Web代理拦截和检查浏览器与组织Web服务器之间的流量,帮助识别不安全的数据传输等问题。密码破解工具用于测试密码哈希的强度,或检测凭据存储不当的问题。
一些专业测试产品(例如Burp Suite)提供一整套渗透测试工具,但大多数渗透测试人员会针对不同任务选用最合适的专业工具。虽然有些工具声称可提供“自动化渗透测试”,并可作为成本更低的手动渗透测试替代方案,但在预算允许的情况下,仍建议定期由网络安全专家开展全面的手动渗透测试,同时结合持续自动化测试解决方案,弥补两次手动测试之间的空档。
此外,F5提供免费的Web应用扫描服务,可作为评估和改善组织Web应用安全状况的第一步。这项互动服务可帮助了解任何域的安全状况,为加强安全防御奠定良好基础。
Web应用安全测试最佳实践
为确保所选Web应用安全测试工具在测试中有效发挥作用,请务必遵循以下最佳实践。
将安全测试贯穿整个软件开发生命周期,以便尽早并持续发现漏洞。
- 综合运用多种测试技术和工具,以实现全面覆盖并减少盲区。
- 在CI/CD流水线中实现持续测试自动化,确保每次代码变更时都执行一致的安全检查。
- 定期开展深入的渗透测试,以发现复杂或被忽视的威胁。
- 确保安全测试工具和流程能够检测广泛的漏洞,从常见编码错误到复杂攻击向量,包括涉及OWASP API 安全十大风险和大语言模型的现代威胁。
Web应用安全测试检查清单
以下是一份实用的检查清单,列出了在使用SAST、DAST或渗透测试开展Web应用安全测试时需要检查的信息类型和漏洞。有关更多信息,请参阅《OWASP Web应用安全测试指南》。这是一份内容详尽的资源,提供了Web应用安全测试的分步说明。
类别 说明信息收集
梳理Web应用框架、入口点和执行路径,并识别通过搜索引擎、Web内容或元文件泄露的任何信息。配置和部署管理 测试网络和应用平台配置、HTTP方法、内容安全策略及文件权限。身份管理 测试角色定义、账户配置流程和用户名策略。身份验证 测试默认凭据、身份验证绕过、弱身份验证方法、账户锁定机制和密码更改功能。授权 检查目录遍历、不安全的直接对象引用、权限提升和OAuth弱点。会话管理 检查会话管理方案和Cookie属性,并测试会话变量暴露、会话劫持和跨站请求伪造。输入验证 测试跨站脚本、数据注入(如SQL注入、LDAP注入、代码注入等)和服务器端请求伪造。错误处理 确保错误处理不会让攻击者了解所使用的API、梳理各种服务集成关系或触发DoS。加密 测试弱传输层安全性、弱加密,以及通过未加密通道发送敏感信息的情况。业务逻辑 测试业务逻辑数据验证、伪造请求的能力、非预期文件类型上传和支付功能。客户端 测试基于DOM的跨站脚本、HTML和CSS注入、客户端URL重定向、跨源资源共享和跨站Flash攻击。API 执行API侦察,并测试对象级授权失效问题。
如需了解更多信息,请阅读此解决方案概述。
相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。
