依赖数字服务的组织必须遵循 Web 应用安全最佳实践,定期且持续地检测其网站和应用中的漏洞。 安全测试帮助您及早发现并修复 Web 应用漏洞,防止被攻击者利用,同时验证安全机制和控制在真实环境中是否可靠有效。
阅读这篇博客,了解Web应用安全测试的主要类别,以及何时和如何应用它们。 我们提供Web应用安全测试工具的示例,并探讨Web应用安全的最佳实践。 文章以一份实用的Web应用安全检查清单结束,附有实际建议和指导。
网页应用安全测试主要分为三种类型。 静态应用安全测试(SAST)通过分析源代码来识别漏洞,而动态应用安全测试(DAST)则在应用运行时扫描外部攻击面(通常来自客户端/前端),以检测潜在漏洞。 在渗透测试(常称为 pen testing)中,网络安全专家模拟真实攻击,以深入了解可能存在的安全弱点。
SAST 无需执行程序即可分析应用程序的代码库,以便在软件开发生命周期的早期识别众所周知的漏洞和编码缺陷,这使其成为在应用投入生产之前捕获问题的理想选择。 SAST 检测到的常见漏洞包括缓冲区溢出,即数据超出分配的内存缓冲区,可能导致崩溃或代码执行。 SAST 还可以捕获 SQL 注入漏洞,即在数据库查询中使用未经清理的输入,从而允许攻击者操纵或访问数据。 它还可以检测跨站点脚本(XSS),其中恶意脚本被注入到其他用户查看的网页中。
与DAST不同,我们会在开发生命周期早期使用SAST工具,确保你遵循安全编码规范,此时修复错误更简单。 与渗透测试不同,SAST借助自动化工具完成,几乎无需人工干预,并通常集成在持续集成与持续交付(CI/CD)流程中。
SAST 工具针对特定编程语言开发,请选择支持您所用语言的工具。 全球开放应用安全项目 (OWASP) 提供了一份详细的SAST 工具名单供您参考。
DAST在应用运行时进行分析,帮助您发现源代码无法揭示的运行时漏洞。 DAST能识别仅在特定环境下出现的配置相关漏洞,并发现因与外部系统(如API、数据库和第三方服务)交互产生的安全风险。 DAST还能检测由恶意或异常用户行为触发的漏洞,比如输入操纵或会话滥用。
与 SAST 不同,我们在应用投入生产后期运行 DAST 工具。 DAST 通常在客户端探测和测试,且不访问源代码,模拟攻击者寻找并利用漏洞的行为。 DAST 在识别暂存或近似生产环境中的问题方面尤为有效,且有力补充了如 SAST 的代码级测试方法。 DAST 与渗透测试不同,我们用自动化工具执行,人工干预极少,并作为 CI/CD 流程的一部分持续进行
F5 通过F5 分布式云 Web 应用扫描提供 DAST 类解决方案,自动抓取、发现并映射暴露的 Web 资产,帮您准确梳理跨域的应用和服务清单,从而简化 Web 安全管理。 它自动执行渗透测试,识别常见漏洞和暴露(CVE)、过时软件等已知漏洞,以及包括OWASP Top 10和LLM Top 10威胁在内的未知漏洞。 这种主动的防护方式为您的网络资产提供全面保障。 OWASP 还维护着丰富的 DAST 工具列表。
渗透测试通常由经验丰富的网络安全专家手动进行,他们模拟复杂的真实攻击,发现并利用应用、系统或网络的漏洞。 渗透测试为您揭示攻击者可能如何利用弱点及其潜在影响,帮助您全面了解组织的安全态势。
渗透测试尤其擅长揭示自动化工具难以发现的复杂威胁,比如利用应用预设功能和流程的业务逻辑攻击。 它还能帮你识别社会工程攻击风险,即攻击者通过操纵个人实现未授权访问或信息获取。
与 SAST 和 DAST 不同,大多数组织会按计划进行渗透测试。 这项测试通常每年、每季度或每月执行一次,具体取决于预算和安全需求。
渗透测试利用多种专业工具模拟攻击,帮助您发现组织数字环境中的潜在漏洞,其中包括使用 Web 应用扫描器映射域名的外部攻击面并识别漏洞。 测试还涵盖网络嗅探器,用于监控和分析网络流量,识别未经授权的活动或数据暴露迹象;以及网页代理,用于拦截并检查浏览器与组织服务器间的流量,帮助发现数据传输不安全等问题。 密码破解工具用于评估密码哈希强度或发现存储不当的凭据安全隐患。
一些专业的测试产品,比如Burp 套件,提供了完整的渗透测试工具集,但大多数渗透测试人员会根据具体任务选择最适合的专业工具组合使用。 虽然某些工具声称能实现“自动化渗透测试”,且提供比手动渗透测试更实惠的替代方案,但预算允许时,偶尔还是请网络安全专家进行全面的手动渗透测试更为明智。同时,结合持续的自动测试解决方案,可以弥补手动测试之间的空白,确保安全防护的全面性。
此外,F5 提供免费的 Web 应用扫描服务,助您迈出评估和提升组织 Web 应用安全态势的第一步。 此交互式服务让您全面了解任一域名,成为强化安全防御的坚实基础。
为了确保您选用的 Web 应用安全测试工具发挥最佳效果,请务必遵循以下最佳实践。
将安全测试贯穿软件开发生命周期,及时且频繁地发现应用漏洞。
以下是一个实用清单,列出在进行 Web 应用安全测试时需关注的信息类型和漏洞,无论您使用的是 SAST、DAST 还是渗透测试。 如需详细内容,请参考OWASP Web 应用安全测试指南,其中提供了全面的分步操作指导,助您完成 Web 应用安全测试。
Category | 描述 |
---|---|
信息收集 |
绘制 Web应用框架、入口点和执行路径,并识别通过搜索引擎、Web 内容或元文件可能存在的信息泄露。 |
配置和部署管理 | 测试网络及应用平台配置、HTTP 方法、内容安全策略和文件权限。 |
访问权限管理 | 测试角色定义、账户配置流程和用户名策略。 |
验证 | 测试默认凭据、身份验证绕过、弱身份验证方法、锁定机制和密码更改功能。 |
授权 | 检查目录遍历、不安全的直接对象引用、权限提升以及OAuth漏洞。 |
会话管理 | 请检查会话管理方案和 cookie 属性,测试是否存在泄露的会话变量、会话劫持及跨站请求伪造风险。 |
输入校验 | 检测跨站脚本、数据注入(如 SQL 注入、LDAP 注入、代码注入等)以及服务器端请求伪造。 |
错误处理 | {"0":"确保错误处理不会让攻击者了解所使用的 API、映射各种服务集成,或引发拒绝服务(DoS)攻击。"} |
加密技术 | {"0":"测试传输层安全性薄弱、加密不足以及敏感信息通过未加密通道传输的风险。"} |
业务流程 | 测试业务逻辑数据验证、请求伪造能力、异常文件类型上传以及支付功能。 |
客户端 | 测试针对基于 DOM 的跨站点脚本、HTML 和 CSS 注入、客户端 URL 重定向、跨源资源共享以及跨站点闪烁的安全风险。 |
API | 执行 API 调查并测试对象级授权是否失效。 |
欲了解更多信息,阅读此解决方案概述。