什么是渗透测试
渗透测试,英文全称叫penetration test。是对您的计算机系统的模拟网络攻击,以检查可利用的漏洞。在 Web 应用程序安全的上下文中,渗透测试通常用于增强Web 应用程序防火墙 (WAF)。渗透测试提供的见解可用于微调 WAF 安全策略并修补检测到的漏洞。渗透测试可能涉及尝试破坏任意数量的应用程序系统(例如,应用程序协议接口 (API)、前端/后端服务器)以发现漏洞,例如容易受到代码注入攻击的未清理输入。
渗透测试的工作原理
如何执行渗透测试
渗透测试对网络的安全性提出了挑战。鉴于企业网络的价值,企业在进行渗透测试之前必须咨询专家。专家可以确保测试不会损坏网络,还可以更好地了解漏洞。渗透测试专家可以在测试之前、期间和之后帮助企业获得有用和有益的结果。渗透测试与漏洞评估相同吗?
渗透测试和漏洞评估是不一样的。漏洞评估主要是对安全性的扫描和评估。但是渗透测试模拟网络攻击并利用发现的漏洞。渗透测试会破坏我的网络吗?
网络完整性是考虑渗透测试的企业的首要关注点。负责任的渗透测试团队将采取多种安全措施来限制对网络的任何影响。在渗透测试之前,企业与测试人员一起创建两个列表:排除的活动列表和排除的设备列表。排除的活动可能包括拒绝服务 (DoS) 攻击等策略。DoS 攻击可以完全摧毁网络,因此企业可能希望保证不会在渗透测试中完成。什么是道德黑客?
道德黑客是商业环境中渗透测试的同义词。基本上,在渗透测试中,组织在道德上被黑客入侵以发现安全问题。有些人将流氓个人出于政治原因的黑客行为称为道德黑客或黑客行动主义。但任何未经授权的黑客攻击都是恶意和非法的。渗透测试包括企业和测试人员之间的同意。渗透测试阶段
渗透测试过程可以分为五个阶段。1. 计划和侦察
第一阶段涉及:定义测试的范围和目标,包括要解决的系统以及要使用的测试方法。
收集情报(例如,网络和域名、邮件服务器),以更好地了解目标的工作原理及其潜在漏洞。
2. 扫描
下一步是了解目标应用程序将如何响应各种入侵尝试。这通常使用以下方法完成:- 静态分析 – 检查应用程序的代码以估计其在运行时的行为方式。这些工具可以在一次传递中扫描整个代码。
- 动态分析 – 检查处于运行状态的应用程序代码。这是一种更实用的扫描方法,因为它提供了应用程序性能的实时视图。
3. 获取访问权限
此阶段使用 Web 应用程序攻击,例如跨站点脚本、SQL 注入和后门,来发现目标的漏洞。然后,测试人员尝试利用这些漏洞,通常通过提升权限、窃取数据、拦截流量等来了解它们可能造成的损害。4. 维护访问权限
此阶段的目标是查看该漏洞是否可用于在被利用的系统中实现持续存在 — 足够长的时间让不良行为者获得深入访问。这个想法是模仿高级持续性威胁,这些威胁通常会在系统中保留数月,以窃取组织最敏感的数据。5. 分析
然后将渗透测试的结果汇编成一份报告,详细说明:- 被利用的特定漏洞
- 访问的敏感数据
- 渗透测试仪能够在系统中保持未被发现的时间量
渗透测试方法
外部测试
外部渗透测试针对在互联网上可见的公司资产,例如 Web 应用程序本身、公司网站以及电子邮件和域名服务器 (DNS)。目标是获得访问权限并提取有价值的数据。内部测试
在内部测试中,有权访问其防火墙后面的应用程序的测试人员模拟恶意内部人员的攻击。这不一定是模拟流氓员工。常见的起始方案可能是其凭据因网络钓鱼攻击而被盗的员工。盲测
在盲测中,测试人员仅获得目标企业的名称。这使安全人员能够实时了解实际应用程序攻击的发生方式。双盲测试
在双盲测试中,安全人员事先不了解模拟攻击。就像在现实世界中一样,在试图突破之前,他们没有任何时间加强防御。针对性检测
在这种情况下,测试人员和安全人员一起工作,并相互评估他们的动作。这是一项有价值的培训练习,可从黑客的角度为安全团队提供实时反馈。渗透测试和 Web 应用程序防火墙
渗透测试和 WAF 是排他性但互惠互利的安全措施。对于多种渗透测试(盲测试和双盲测试除外),测试人员可能会使用 WAF 数据(如日志)来定位和利用应用程序的弱点。最后,渗透测试满足安全审计程序的一些合规性要求,包括PCI DSS和SOC 2。某些标准(如 PCI-DSS 6.6)只能通过使用经过认证的 WAF 来满足。但是,这样做不会使渗透测试变得不那么有用,因为它具有上述好处和改进 WAF 配置的能力。反过来,WAF 管理员可以从渗透测试数据中受益。测试完成后,可以更新 WAF 配置,以防止测试中发现的弱点。