渗透测试,也称为渗透测试,是一种针对您的计算机系统的模拟网络攻击,用于检查可利用的漏洞。在 Web 应用程序安全的上下文中,渗透测试通常用于增强 Web 应用程序防火墙 (WAF)。
渗透测试可能涉及尝试破坏任意数量的应用程序系统(例如,应用程序协议接口 (API)、前端/后端服务器)以发现漏洞,例如易受代码注入攻击的未净化输入。渗透测试提供的见解可用于微调您的 WAF 安全策略和修补检测到的漏洞。
渗透测试阶段
笔测试过程可以分为五个阶段。
1. 规划侦察
第一阶段包括:
- 定义测试的范围和目标,包括要解决的系统和要使用的测试方法。
- 收集情报(例如,网络和域名、邮件服务器)以更好地了解目标的工作原理及其潜在漏洞。
2. 扫描
下一步是了解目标应用程序将如何响应各种入侵尝试。这通常使用以下方法完成:
静态分析——检查应用程序的代码以估计它在运行时的行为方式。这些工具可以一次性扫描整个代码。
动态分析——检查处于运行状态的应用程序代码。这是一种更实用的扫描方式,因为它可以实时查看应用程序的性能。
3. 获取访问权限
此阶段使用 Web 应用程序攻击,例如 跨站点脚本、 SQL 注入 和 后门程序,来发现目标的漏洞。然后,测试人员尝试利用这些漏洞,通常通过提升权限、窃取数据、拦截流量等方式来了解它们可能造成的损害。
4. 维持访问
此阶段的目标是查看漏洞是否可用于在被利用系统中实现持久存在——足够长的时间让坏人获得深入访问。这个想法是模仿 高级持续威胁,这些威胁通常会在系统中保留数月,以窃取组织最敏感的数据。
5. 分析
渗透测试的结果被编入一份报告,详细说明:
- 被利用的特定漏洞
- 访问的敏感数据
- 渗透测试仪能够在系统中未被发现的时间
这些信息由安全人员分析,以帮助配置企业的 WAF 设置和其他应用程序安全解决方案,以修补漏洞并防止未来的攻击。
渗透测试方法
外部测试
外部渗透测试针对公司在 Internet 上可见的资产,例如 Web 应用程序本身、公司网站以及电子邮件和域名服务器 (DNS)。目标是获得访问权限并提取有价值的数据。
内部测试
在内部测试中,可以访问防火墙后的应用程序的测试人员模拟恶意内部人员的攻击。这不一定是在模拟流氓员工。一个常见的起始场景可能是一名员工的凭据因 网络钓鱼攻击而被盗。
盲测
在盲测中,测试人员只知道目标企业的名称。这让安全人员可以实时了解实际的应用程序攻击是如何发生的。
双盲测试
在双盲测试中,安全人员对模拟攻击没有先验知识。就像在现实世界中一样,他们没有任何时间在企图突破之前加强防御。
有针对性的测试
在这种情况下,测试人员和安全人员一起工作,并相互评估他们的动作。这是一项有价值的培训练习,可以从黑客的角度为安全团队提供实时反馈。
渗透测试和 Web 应用程序防火墙
渗透测试和 WAF 是排他性的,但互惠互利的安全措施。对于多种渗透测试(盲测和双盲测试除外),测试人员可能会使用 WAF 数据(例如日志)来定位和利用应用程序的弱点。反过来,WAF 管理员可以从渗透测试数据中获益。测试完成后,可以更新 WAF 配置以防止测试中发现的薄弱环节。
最后,渗透测试满足安全审计程序的一些合规性要求,包括 PCI DSS 和 SOC 2。只有使用经过认证的 WAF 才能满足某些标准,例如 PCI-DSS 6.6。但是,这样做并不会因为渗透测试的上述好处和改进 WAF 配置的能力而降低渗透测试的用处。