Center for Internet Security (CIS) 提供 Critical Security Controls(CIS Controls) ,以支持不断发展的网络安全领域。CIS Control 18 涵盖渗透测试(该主题在上一版本中由 Control 20 覆盖)。
渗透测试是为评估组织的安全性而有意发起网络攻击。专业的渗透测试人员会开展渗透测试,以突破系统安全,并揭示网站、应用程序或网络中的盲点。通过识别这些漏洞,渗透测试帮助企业保持对安全管理的掌控。
尽管这是安全领域的最佳实践,但渗透测试成本较高,因为它过程复杂,因此需要有经验且值得信赖的渗透测试人员,也称为“道德黑客”。测试可能会引入各种风险,包括不稳定系统的关机,以及数据损坏或被删除。输出报告同样存在风险,因为它概述了突破组织防御的步骤,因此必须妥善、谨慎地加以保护。
渗透测试常常与另一项重要(且往往是必需的)实践——漏洞扫描混为一谈,但两者的方法和目的不同。漏洞测试(CIS 控制 7)通过非侵入式扫描识别系统安全中的薄弱点,试图发现安全漏洞,但不加以利用。相反,渗透测试使用侵入式方法来测试网络攻击对组织可能造成的破坏程度。它模拟真实攻击,以精确发现攻击者可能访问哪些 IT 资产。将漏洞测试与渗透测试流程结合起来,可以全面了解安全方面的不足。
18.1 建立并维护渗透测试计划
成功的渗透测试计划有助于企业始终领先于黑客一步。渗透测试可以揭示安全体系中的漏洞,并展示窃取 IT 资产是多么容易。每个渗透测试计划的具体细节取决于组织的性质、规模、复杂性以及成熟度。以下是一些指导原则。
- 范围— 渗透测试计划应同时包含外部和内部部分。在两者之间,测试范围可能包括以下部分或全部内容:
- 网络
- 硬件
- Web 应用程序
- API
- Wi-Fi
- 对场地的物理访问
- 类型 — 根据你为预先测试提供的信息量不同,渗透测试分为三种类型:
- 黑盒: 测试人员在对内部系统一无所知的情况下进行测试。
- 白盒: 组织会提供有关目标的全面细节。
- 灰盒: 这些评估介于两者之间,组织会向测试人员提供部分信息。
- 限制 — 务必注明可能会阻碍测试有效性的限制,例如:
- 范围:由于资源或预算不足,组织可能会选择限制渗透测试的范围,从而在安全方面产生潜在盲区。
- 时间:尽管渗透测试人员会为每项测试设置结构化的时间框架,但对手没有时间限制,可能会在一次攻击中投入数周或数月。
- 方法:有些渗透测试方法可能会导致目标系统崩溃,因此在专业渗透测试期间,这些技术不予采用。
- 技能: 渗透测试人员可能只研究过某一种特定技术,这可能会限制其视角。
- 实验:渗透测试人员可能会拘泥于既定思路,只是按照他们被提供的结构和流程来执行。真正的对手在方法上可能更有创意。
- 频率 — CIS Controls建议组织定期同时进行外部和内部渗透测试——至少每年一次——并在基础设施或软件发生任何重大变更后进行。
- 联系人 — 只有少数特定人员应该知道渗透测试何时进行。对每次例行测试,在组织内部指定一名特定联系人,以便与渗透测试团队对接。如果在测试过程中出现任何问题,该人员可以及时响应相应的
- 整改与复测 — 测试完成后,组织应确定需要对哪些政策和技术措施进行调整,以提升安全性。采取这些措施之后,应重复进行渗透测试。
渗透测试项目的阶段
渗透测试流程包含七个阶段。前六个阶段根据范围不同,通常需要约 10 天。最后一步“修复(remediation)”往往耗时更长。
- 事前准备 — 流程从设定目标开始。组织与测试人员将确定哪些企业资产属于测试范围,以及将测试哪些安全方面。
- 侦察 — 测试人员会收集渗透测试行动范围内资产的信息。测试人员可以通过主动与网络直接交互来收集信息,或通过被动方式跟踪网络流量,并追踪操作系统(OS)和互联网足迹。
- 发现(Discovery) — 发现阶段包含两个部分。首先,测试人员可能会收集更多信息,例如主机名、IP 地址,以及应用程序和服务的详细信息。接下来,测试人员将进行漏洞扫描,以查找网络、应用程序、设备和服务中的安全缺陷。除诸如未打补丁系统之类的漏洞外,测试人员还可能发现策略安全方面的错误、安全协议中的薄弱点,以及与 PCI DSS、 等标准相关的合规问题。GDPR 或 HIPAA。尽管使用漏洞扫描软件效率更高,但聘请团队进行手动扫描能够更全面地洞察安全差距。
- 漏洞分析 — 接下来,测试人员会对已发现的漏洞进行优先级排序。尽管这种排序在一定程度上可能带有主观性,但资深渗透测试人员会使用 Common Vulnerability Scoring System (CVSS),这是一种获得全球认可的定量评级系统。
- 漏洞利用 — 测试人员会尝试利用这些漏洞来访问 IT 环境。他们会采用与黑客可能使用的相同技术,包括发送钓鱼邮件、社会工程学以及获取用户凭据等。一旦进入系统,测试人员将评估他们能够访问哪些资产。他们会记录访问范围的程度、维持访问的难易程度、该入侵在未被发现的情况下持续了多久,以及潜在的风险。
- 报告与建议 — 测试人员将提供一份关于已识别漏洞及其相关风险的详细报告,并附上修复(整改)建议。
- 整改与重新扫描 — 组织的 IT 团队会着手关闭漏洞并修复脆弱性。随后,渗透测试人员会对网络进行再次扫描,以评估整改工作的有效性。
18.2 定期开展外部渗透测试
外部渗透测试针对的是对贵组织系统的外围访问。具体而言,外部渗透测试会使用公共网络来突破系统并进行入侵。其目标是测试外部攻击者最多能够走到多远。通过模拟黑客行为,测试人员将从客观角度评估贵企业的韧性以及漏洞情况。外部渗透测试遵循与上文所述相同的七个阶段。
您与测试人员需要通过法律讨论来就渗透测试的范围达成一致。由于外部渗透测试的对象是外部可见的服务器,因此可能包括网站、应用程序、用户、API 以及整个网络。尽管有些测试可能只针对贵组织资产的某一个方面,但大多数测试会利用测试过程,获得对网络安全弱点更全面的了解。为符合 CIS Control 18 的要求,至少每年开展一次外部渗透测试。
18.3. 修复渗透测试发现的问题
渗透测试的最后一步是提升您的防御态势。对测试中提出的建议进行优先级排序,并选择要实施的项目,以降低漏洞风险并增强贵企业的安全态势。有些组织可能会选择不修复某些薄弱环节,尤其是当它们在 CVSS 上的评分较低,且修复起来困难或成本较高时。
18.4. 验证安全措施
在内部 IT 专家与渗透测试团队协作修复问题之后,至关重要的是对系统进行复测,以验证是否已实施充分的更改。请注意,该验证步骤可能需要调整扫描技术,以便最佳方式识别系统弱点。
18.5. 定期开展内部渗透测试
内部渗透测试的必要性源于这样一种潜在可能:恶意或粗心的员工、业务合作伙伴以及客户可能造成损害。它为外部渗透测试提供了关键的补充。内部渗透测试人员会利用对防火墙后方网络的内部访问权限,锁定并测试公司的系统。内部渗透测试有助于评估:一旦内部用户利用(或滥用)系统,可能对资产造成的潜在损害和风险。
与外部渗透测试类似,内部渗透测试也遵循前面列出的七个步骤,并且可以是黑盒、白盒或灰盒测试。测试人员将利用其内部访问权限,尝试绕过访问控制。团队还可能测试物理计算机系统、移动设备和安全摄像头,以及员工的行为和流程。此外,测试人员还可能尝试利用与外部渗透测试类似的范围,包括无线网络、防火墙以及入侵检测和防御系统,以揭示更强大的漏洞。
摘要
渗透测试是一项复杂且专业的工作。定期开展渗透测试是 数据安全最佳实践 的关键组成部分。将外部与内部的渗透测试结合起来,可以揭示 IT 系统中的关键弱点,生动展示数据和其他资产对入侵的脆弱程度,并指导开展有力的整改工作,从而强化网络安全。
分享到
了解更多
关于作者
Dirk Schrader
安全研究高级副总裁(VP)
Dirk Schrader 是 Netwrix 的常驻 CISO(EMEA)以及安全研究高级副总裁(VP)。他拥有 CISSP(ISC²)和 CISM(ISACA)等资质,是一位在 IT 安全领域拥有 25 年经验的老兵。Dirk 致力于以现代化的方式应对网络威胁,从而推动网络韧性的发展。Dirk 曾参与全球范围内的网络安全项目:职业初期从技术与支持岗位做起,随后在大型跨国公司和小型初创企业中分别担任销售、市场与产品管理等职务。他已发表大量文章,强调为实现网络韧性,需要重视变更管理与漏洞管理。