什么是渗透测试?

什么是渗透 (Pen) 测试?

渗透测试 (pen testing),即“penetration testing”的简称,是一种网络安全实践。在此实践中,获得授权的个人或公司会模拟对计算机系统、网络和应用程序进行网络攻击,以识别恶意黑客可能会利用的漏洞。渗透测试旨在发现系统安全措施中的薄弱环节,以避免真正的攻击者利用它们。

渗透测试(penetration testing,也称为“pen testing”或“pentesting”)是一个深度过程,旨在暴露系统安全对策和控制措施中隐藏的薄弱环节。渗透测试通常由获得授权的外部人员执行,用于模拟对系统所有组成部分执行不同类型的攻击。其目的是发现系统创建者以及安全团队可能已忽略的漏洞。

谁执行渗透测试?

渗透测试几乎总是由未参与目标系统创建的人员执行。通常情况下,渗透测试人员(或团队)往往完全独立于构建系统的实体。这样做的原因有以下几点。首先,开发、QA/测试和安全团队的成员过于熟悉他们所构建的系统。这些系统可能会存在安全漏洞,而这些漏洞只有没有先入之见并以全新视角审视系统的人员才会发现。

此外,渗透测试是一种独特的技能组合,通常需要使用专门构建的工具。这项工作需要测试人员像黑客一样思考。事实上,一些渗透测试人员以前就是“黑帽”或恶意黑客,他们后来决定改邪归正,将自己的技能用于正途。俗话说的好,知己知彼,保站不动。渗透测试人员也可能接受过特殊培训并获得了相关认证。在大多数情况下,构建系统的企业的员工并不具备这些资质。

渗透测试人员有时被称为“道德黑客”,但这两种角色有所不同。从根本上来说,渗透测试人员是以道德黑客的方式对目标进行模拟攻击。他们获得了发动“攻击”的许可,可以找出安全漏洞,但同时承诺不会对这些漏洞进行利用。

两者的区别部分是结构性的。渗透测试通常遵循一系列预设的流程,并采用严格的方法来识别和记录安全问题。相比之下,道德黑客攻击往往更具开放性。例如,道德黑客可能会参与“漏洞赏金”计划,并因发现先前未知的漏洞而获得奖励。但是,这与进行全面的渗透测试并记录测试过程中发现的问题并不相同。

渗透测试的各个阶段

渗透测试方法通常包括五个阶段:

  1. 侦察。这是测试人员开始渗透测试过程之前进行的信息收集步骤。测试人员会了解目标系统的各项参数并制定相应的攻击计划。
  2. 扫描。测试人员会对目标进行扫描,以确定其信息安全系统将如何应对违反其控制措施和对策的企图。扫描过程几乎总是在自动化渗透测试工具的帮助下完成。它可以发现开放端口、已启用默认管理员帐户的服务器、存在漏洞的错误配置以及其他进入目标系统的隐藏途径。
  3. 访问。现在,渗透测试人员可以根据扫描阶段发现的信息进入目标系统。这可能涉及使用 SQL 注入 (SQLi) 等技术检索(理论上安全的)数据库中的管理用户凭据。在进入系统中后,渗透测试人员将开始评估攻击者利用这种级别的访问权限能够造成多大的损害。例如,如果渗透测试人员能够从初始目标进行横向移动,穿透网络基础架构,并获得对生产应用程序或敏感数据的访问权限,那么他或她会报告称攻击者同样可以入侵该系统。
  4. 维持访问权限。如果渗透测试人员已成功完成其工作,那么他们将能够维持对目标系统的访问权限。这模拟了非常普遍的现实情况,即恶意攻击者会在受害者的网络中逗留数月之久。通过维持访问权限,渗透测试人员还可以模拟高级持久威胁 (APT)。
  5. 分析与掩盖。在结束测试时,渗透测试人员会将其在目标系统中留下的所有痕迹都彻底抹去。再次强调,这是对一次真实网络攻击的模拟——测试结束后,不可能留下任何可被检测到来的可执行文件或日志事件。随后,测试人员会准备一份详细的报告,其中记录了所使用的方法、发现的漏洞、漏洞影响预测以及其他可供安全团队参考的重要信息。

渗透测试类型

使渗透测试计划与企业中的所有相关系统类型保持一致是一种明智的风险管理实践。由于任何已连接的设备、应用程序或数据源都可能成为攻击面的一部分,因此使用渗透测试来评估它们遭受入侵的脆弱性是明智之举。一般来说,只对 Web 应用程序进行渗透测试,而不对移动应用程序进行测试,这是不合理的。对恶意攻击者来说,这两种应用程序都可能成为一条网络安全攻击路径,攻击媒介涵盖从网络钓鱼到社会工程等多种形式。

渗透测试分为六大类:

应用程序。渗透测试人员使用自动化工具和手动测试来查找应用程序和所连接数据库中的漏洞。这可能意味着要检查应用程序二进制文件本身或授权流程、加密、发生 SQLi 的可能性以及类似的攻击方法。

网络。作为企业的安全边界(至少在理论上如此),需要对网络进行严格的渗透测试。该过程通常涉及对管理访问控制、安全套接字层 (SSL)、加密传输协议、证书、网络分段等进行系统化研究。

云。对于云,渗透测试人员需要检查系统配置、应用程序编程接口 (API)存储。测试人员可能还会查找在未实施标准策略的情况下设置的云实例。这种情况的普遍程度超出了人们的认知。一个出于好意但缺乏相关认知的开发人员,可能会在未应用安全控制措施,甚至未将此云实例的存在告知任何人的情况下,将应用程序和数据库部署到云平台。

软件开发流程。DevOps 工作流和持续集成/持续部署 (CI/CD) 管道是风险点,开发人员会在无意中将缺陷和编码错误嵌入软件中的这些地方,从而导致应用程序容易遭到入侵。对 DevOps 和 CI/CD 管道进行自动渗透测试后,测试人员可能会发现静态代码扫描无法检测到的隐藏漏洞。渗透测试人员也会尝试进入开发人员工作流程,并测试他们是否可以将恶意代码插入代码库中。他们将对 Docker 等容器采取类似的操作。

设备。与网络或应用程序一样,硬件也容易遭到入侵。渗透测试人员会尝试利用设备的应用程序二进制文件、固件和操作系统软件中的漏洞来进行入侵。渗透测试人员经常会在未安装安全补丁的设备中发现薄弱环节。

API。渗透测试人员会将手动和自动 API 测试流程相结合,以确定 API 是否存在任何开放全球应用程序安全项目 (OWASP) 十大 API 安全漏洞(例如,对象级授权失效 (BOLA)),同时还将分析 API 是缺少速率限制还是会造成用户身份验证问题。

渗透测试的好处

渗透测试提供了其他安全测试模式无法提供的各种好处。这不会降低执行单元测试、功能测试等测试的重要性和必要性。但是,渗透测试可以发现其他流程根本无法发现的安全漏洞。

此外,渗透测试还可以显示整个攻击链,即攻击者如何发现、利用漏洞,以及获取和维持访问权限。因此,渗透测试使安全团队能够修复在其他情况下无法发现的系统性问题。有效的渗透测试也会显示出某项控制措施或对策的真实强度。考虑到企业必须遵守 PCI DSSGDPR 等法规,这一点显得尤为重要。

渗透测试方法

渗透测试所采用的方法各不相同,具体取决于漏洞利用目标的数量和性质、测试人员可用或收集的信息水平,以及测试人员可支配的工具、技能和资源。各种渗透测试方法包括几种不同的盒式测试法:

黑盒渗透测试:采用黑盒(即闭盒或单盲)方法进行渗透测试时,测试人员事先不了解目标系统,并且仅从外部角度对其进行测试以模拟真实攻击。他们尽其所能地利用最有创造性且最客观的策略,并且不作任何假设。

白盒渗透测试:在白盒(即开放盒或透明盒方法)中,测试人员会预先获得授权,能够访问公司的安全信息。因此,他们是在充分知情的情况下进行测试的。这种方法可以节省测试人员进行猜测所花费的时间,从而有可能让他们识别出更多风险。它还提供了有关目标系统的大量信息,包括架构图、源代码和功能。这种方法使测试人员能够进行全面且详细的分析,从而发现那些在信息有限的情况下可能无法发现的更深层次的漏洞。

灰盒渗透测试:在灰盒方法中,黑客团队可以获知公司系统的部分相关信息。因此,他们更有可能识别高风险漏洞并优先进行修复。

隐蔽法(或双盲法)是指包括 IT 人员在内的日常用户并不知道测试正在进行测试。此方法用于测试 IT 人员对入侵作出实时响应的能力。此类测试可能需要事先通知执法部门,以免引发任何误报。

渗透测试可保障业务连续性

渗透测试是一项重要的漏洞评估,可帮助在任何企业中保持强大有效的网络安全防护。它们可以帮助企业:

  • 检测并解决安全问题,避免外部黑客利用它们
  • 确定 IT 基础架构中的高风险领域,并明智地分配安全预算
  • 提高内部 IT 和安全人员的告警级别并缩短响应时间
  • 消除数据隐私和安全合规性方面的差距
  • 在泄露事件实际发生时减轻其影响

因此,适当的渗透测试对于保护 IT 工作负载和客户数据以及确保业务平稳运行至关重要。

常见问题

企业必须熟悉不同的安全测试工具,包括漏洞扫描和渗透测试。

漏洞扫描是识别网络中潜在漏洞和易受攻击区域的过程。这可能包括探查整个路由器、系统设置、服务器和任何可能已部署的防火墙。攻击媒介在漏洞扫描更为常见,因为它本质上是用于入侵某个企业的潜在方法地图。

而渗透测试更为深入,并且主动性更高。进行渗透测试时,道德黑客会实施入侵,以暴露潜在的安全违规事件和/或漏洞。渗透测试人员将确定从哪个攻击面切入能获得最佳结果。对于希望详细了解其当前系统遭受入侵的风险和安全性的用户来说,渗透测试是理想之选。

渗透测试每年应至少进行一到两次,以识别安全漏洞。在某些情况下,您可能需要更频繁地执行渗透测试,具体取决于企业的规模和业务范围。随着所有行业的网络攻击和安全事件日益增加,企业必须针对数字漏洞采取主动措施并定期进行渗透测试。

渗透测试通常需要一到两周才能完成,具体取决于您当前的设置、API 安全措施和您的运营规模。但是,完成渗透测试所需的时间将因您的设备、防火墙和您要测试的网络而异。

客户为什么选择 Akamai

Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。

相关博文

借生成式 AI 之力,加速实现 Zero Trust 成果,第 1 部分:AI 标记
本系列博文由四部分组成。在第 1 部分中,我们将重点介绍 Akamai 的全新功能 AI 标记,该功能依托生成式 AI 技术,可加快 Zero Trust 目标的实现。
借生成式 AI 之力,加速实现 Zero Trust 成果,第 2 部分:Guardicore AI
本系列博文分为四个部分,第二部分将重点介绍如何利用 Guardicore AI 实现 Zero Trust 目标,以及无需任何人工操作即可完成微分段。
实现 Zero Trust 的 5 个步骤
Akamai Guardicore 平台提供了实用且有效的 Zero Trust 实施方法。继续阅读,了解实现 Zero Trust 的 5 种方法。

探索 Akamai 的所有安全解决方案

开始免费试用,了解全球规模超大且值得信赖的云交付平台带来的改变。