谚语“一针九针”概括了Web 应用程序安全的核心。企业始终需要比攻击者和恶意行为者先一步识别 Web 应用程序中的漏洞、弱点和错误配置,并确保在攻击者找到并利用它们来策划攻击之前对其进行修补和/或修复。此类Web 应用程序安全解决方案的关键措施之一,除了漏洞扫描器、WAF 等安全工具外,就是 Web 应用程序测试或渗透测试。
渗透测试(笔测试)使企业能够通过在安全条件下模拟实时网络攻击来检查和了解Web 应用程序的安全强度。重要的是要注意渗透测试不能自动化。这是一个由经过认证的安全专家执行的手动过程。
每个 Web 应用程序都有多个组件和资产,这些组件和资产是公开的并且容易受到攻击。对于大多数企业和开发人员来说,弄清楚哪些应用程序参数和组件需要包含在渗透测试清单中以及如何着手进行是一个相当大的挑战。
Web 应用程序渗透测试清单指南:
1. 收集信息
渗透测试不能随机或盲目进行。您必须做的第一件也是最重要的事情是收集有关您的 Web 应用程序的所有可能信息、它的潜在威胁和涉及的弱点风险等。这是通过使用爬虫工具创建站点地图、手动打开页面、使用暴力访问网站上未链接的目录,从开发人员那里收集情报等。确保包括注释和元数据、应用程序上的第三方应用程序/服务、元文件和所有入口点,同时收集有关 Web 应用程序/目标的不同部分如何工作的情报。
2.漏洞扫描
如前所述,Web 应用程序由多个组件和漏洞组成,所有这些都不需要进行测试。使用Web 漏洞扫描器等自动化工具,您可以扫描已知漏洞,例如SQL 注入、XSS、文件包含和另一个OWASP 前 10 个漏洞. 使用 AppTrana 等服务后,您将能够根据您的业务的独特需求自定义扫描仪和调整策略。在可用的安全分析的帮助下,您将能够了解流量行为、攻击尝试的性质、攻击模式等。然后您可以验证扫描结果以查看可利用的内容和涉及的风险。利用渗透测试检查业务逻辑缺陷、用户/网络浏览器特定缺陷、未知漏洞以及漏洞扫描中未显示的其他错误配置。
3. 制定稳健的安全策略和渗透测试计划
根据收集的信息/情报和创建的站点地图,通过定义渗透测试的范围、目标和预期结果/可交付成果,确定关键问题领域和高风险组件的优先级,制定稳健的安全策略。应用程序中允许用户添加、删除或修改内容(评论部分、联系表等)、第三方服务托管、入口点等的部分应具有高优先级。
您还应该包括作为不同用户的测试——一个不可靠的外部源,具有最少或没有权限,一个用户具有所有可能的权限和授权。
您必须定义将用于执行 Web 应用程序测试的方法和工具。如果您不进行渗透测试并为其提供安全服务,请确保仅将其委托给值得信赖且经过认证的安全专家,他们将他们的智慧和技术技能与创造性思维和创新方法相结合,以维护最高水平的网络应用安全。您应该考虑像 AppTrana 这样的安全解决方案。
4. 实际利用:包括什么?
渗透测试必须用于测试以下内容。
- 网络、应用平台、框架、文件扩展等的部署和配置错误。
- 允许恶意行为者窃取敏感数据的访问控制、特权、身份验证、授权和身份管理中的漏洞。
- 渗透测试人员不断更改权限级别、访问控制等,以查看是否可以利用以及哪些漏洞可以被利用。他们还检查长时间访问和特权对系统和数据的影响。
- 会话管理弱点——注销功能、会话超时、CSRF、会话劫持等。
- 输入/数据验证缺陷,以查看应用程序是否允许来自用户的未经过滤的输入。
- 应用程序处理错误以查看网络攻击者是否能够收集足够的数据来编排攻击。
- 数据加密和数据传输漏洞
- 业务逻辑缺陷以及如何利用它们来操纵工作流
5. 结果分析与报告
仅仅进行渗透测试是不够的;最重要的是对测试结果进行详细分析。以安全人员可以微调 WAF 和其他安全措施的方式编译调查结果和分析,并且开发人员能够修复关键和高优先级漏洞。关键利益相关者必须了解已知和未知漏洞的性质、可访问的敏感数据以及渗透测试人员在系统中未被发现的时间跨度。