本章解释了什么是渗透测试及其各个组成部分。我们将讨论执行渗透测试所涉及的各个步骤,以及定义所需的法律、监管和软技能。我们还将讨论标准在定义和执行渗透测试时的作用。因此,以下是本章将涵盖的主要主题:
-
什么是渗透测试?
-
利益相关者
-
道德、法律和监管要求
-
管理和执行渗透测试
-
使用网络攻击杀伤链
-
渗透测试中的标准
-
报告撰写
渗透测试是一种旨在评估计算机系统、网络或应用程序安全性的安全评估方法。渗透测试的主要目标是在恶意黑客利用之前识别和分类系统防御中的漏洞和弱点。值得注意的是,渗透测试既可以是内部的,也可以是外部的。
渗透测试涉及模拟真实世界的攻击,以发现攻击者可能利用的潜在安全漏洞。通常遵循一个系统性的循环过程,包括以下步骤:
-
规划和侦察:渗透测试人员收集有关目标系统或网络的信息,如其架构、操作系统、应用程序和潜在漏洞。
-
扫描:测试人员使用各种工具和技术扫描目标系统的开放端口、服务和其他潜在入口点。
-
获取访问权限:一旦漏洞被识别出来,渗透测试人员会尝试利用它们来获取未经授权的系统访问权限。这可能涉及利用配置错误、弱密码或其他安全漏洞。
-
维持访问:如果成功获取访问权限,测试人员会尝试在系统内保持立足点,以评估妥协的程度并识别其他漏洞。
-
分析和报告:测试人员记录和分析发现的结果,包括发现的漏洞、它们可能产生的影响以及推荐的补救措施。通常会向被测试的组织提供详细报告,概述漏洞和改进安全性的建议。
渗透测试通常由具有识别和利用漏洞专业知识的网络安全专业人员执行。它有助于组织识别安全弱点,验证安全控制的有效性,并优先考虑改进整体安全状况的补救工作。通过主动识别和解决漏洞,渗透测试有助于组织预防潜在的安全漏洞并保护敏感数据。
在渗透测试的背景下,利益相关者指的是那些对渗透测试结果和成果有利害关系或受到影响的个人或团体。通常,他们是组织内部委托或参与测试过程的个人或实体,以及那些可能负责实施推荐的安全措施的人。
以下是渗透测试中一些利益相关者的例子:
-
客户/组织:请求渗透测试的客户或组织是主要利益相关者。他们有兴趣识别并解决其系统、网络或应用程序中的安全漏洞。其利益相关者可能包括公司高层、管理层或安全团队。
-
IT/安全团队:被测试组织的内部 IT 或安全团队也是一个重要的利益相关者。他们负责实施安全控制、解决漏洞,并确保系统的整体安全性。渗透测试结果帮助他们了解系统中的弱点,并指导他们在提升组织安全态势方面的努力。
-
合规官员:在受监管的行业中,合规官员作为利益相关者发挥着至关重要的作用。他们负责确保遵守相关的行业标准、法律要求和合规框架。渗透测试帮助他们评估安全控制的有效性,并识别不合规的领域。需要注意的是,监管机构也可以被视为利益相关者。
-
开发团队:如果渗透测试包括应用程序,开发团队是一个利益相关者。他们负责设计、开发和维护软件或网页应用程序。测试结果提供了代码中的漏洞信息,帮助提升应用程序的安全性。
-
企业所有者/经理:组织内的企业所有者和经理在渗透测试过程中有着重要的利益关系。他们有兴趣了解潜在的运营风险、声誉损害或成功攻击带来的财务损失。渗透测试的结果帮助他们在风险管理和资源分配方面做出明智的决策。
-
第三方服务提供商:在组织依赖第三方服务提供商提供关键服务或基础设施的情况下,这些服务提供商也可能是利益相关者。他们有责任确保其服务符合安全标准,并且潜在的漏洞不会影响其客户。
在渗透测试过程中,与利益相关者的有效沟通至关重要。这包括对齐期望、讨论范围、分享进度更新以及提供最终的测试结果和建议。与利益相关者的互动有助于确保测试目标的达成、结果的理解以及采取必要的行动来解决识别出的漏洞。
在渗透测试的背景下,道德、法律和监管要求是指指导渗透测试人员在评估活动中的道德行为、法律边界和合规义务的原则、法律、法规和准则。我们将更详细地探讨它们:
-
道德要求:在渗透测试中,道德考虑至关重要,确保活动在不对被测试系统造成伤害或损害的情况下负责任地进行。道德要求通常包括从目标组织获得适当授权、尊重隐私和保密性,以及遵守职业行为规范和标准。渗透测试人员必须以道德的方式行事,并优先考虑客户和利益相关者的最佳利益。
-
法律要求:渗透测试人员必须在法律框架内进行操作,以避免任何法律后果。渗透测试的法律法规可能因司法管辖区而异。了解并遵守与计算机犯罪、未经授权的访问、数据保护、隐私和知识产权相关的适用法律至关重要。测试活动必须获得适当授权,并尊重法律的限制和要求。
-
监管要求:监管要求是指行业或领域特定的法规,组织必须遵守。渗透测试人员需要了解这些法规,如数据保护法(例如欧盟的 GDPR)、行业特定的合规框架(例如支付卡行业的 PCI DSS)或医疗保健相关法规(例如 HIPAA)。理解这些要求有助于确保渗透测试过程符合被测试组织的监管义务。一些监管机构可能有关于渗透测试何时以及多频繁进行的要求。
通过考虑伦理、法律和监管要求,渗透测试人员可以以负责任和合规的方式进行评估。这包括获得适当的授权、尊重参与的界限、保护敏感数据,并遵守相关法律和规定。遵守这些要求有助于在行业内保持信任、专业性和诚信,并确保测试过程有助于提高安全性,同时不会造成法律或声誉上的损害。
关于伦理黑客或渗透测试的法律环境在不同国家和地区可能有所不同。虽然我可以提供一些概括性的信息,但重要的是要咨询各个司法管辖区的法律专业人士或相关部门,以获取准确且最新的信息。以下是英国、美国和欧洲伦理黑客法律框架的简要概述:
-
英国(UK):在英国,《1990 年计算机滥用法》是主要的立法,涵盖了未授权访问、计算机黑客攻击及相关犯罪。该法案列出了如未经授权访问计算机系统、擅自修改计算机资料以及创建或分发黑客工具等犯罪行为。该法案区分了在适当授权下进行的合法渗透测试与非法黑客活动,后者是违法的。国家网络安全中心(NCSC)提供了进行合法且负责任的渗透测试的指南和最佳实践。
-
美国(USA):在美国,伦理黑客的法律框架包括多项联邦和州法律。计算机欺诈与滥用法(CFAA)是一项重要的联邦法律,涉及未授权访问计算机系统和网络。它定义了与计算机欺诈和黑客攻击相关的各种犯罪行为。此外,数字千年版权法(DMCA)禁止绕过技术手段访问受版权保护的作品,这可能对渗透测试活动产生影响。不同的州可能有额外的法律或规定,影响伦理黑客行为,因此需要同时考虑联邦和州的相关立法。
-
欧洲:欧洲由多个国家组成,每个国家都有其自身的法律框架。然而,欧盟(EU)有一些共同的法规适用于所有成员国。通用数据保护条例(GDPR)是欧盟的重要法规,涉及数据保护和隐私。它对处理个人数据的组织提出了义务,要求采取适当的安全措施来保护数据。伦理黑客活动必须遵守 GDPR,确保保护个人的个人信息。此外,欧盟成员国可能有自己的特定法律和规定,涉及网络犯罪、计算机滥用和未授权访问等问题。
需要注意的是,法律环境可能发生变化,具体细节和解释也可能有所不同。进行道德黑客或渗透测试的组织和个人应咨询法律专业人士或当地当局,以确保遵守其所在司法管辖区内的相关法律、法规和指南。
管理和执行渗透测试是一个关键过程,需要仔细的规划、协调和技术专长。一个管理得当并且正确执行的渗透测试可以帮助组织识别漏洞,评估其安全态势,并做出明智的决策来加强防御。以下是管理和执行渗透测试的关键步骤:
-
定义目标:首先要明确渗透测试的目标。确定要测试的系统、网络或应用程序,并确定参与的范围和限制。考虑目标,如识别漏洞、测试特定控制措施或评估事件响应的有效性。目标还应定义测试将根据哪些参与规则进行。需要注意的是,在任何渗透测试开始之前,应从所有必要的利益相关者那里获得书面许可。
-
组建团队:组建一支具有渗透测试和道德黑客专长的专业团队。根据测试的复杂性和范围,团队可能包括渗透测试人员、网络专家、应用安全专家和事件响应专业人员。确保团队成员具备适当的认证和进行渗透测试的经验。
-
规划与准备:制定详细的计划,概述将使用的测试方法、工具和技术。创建测试时间表,考虑可能对生产系统的影响。获得客户组织的必要许可和法律授权。建立沟通渠道和协议,用于共享测试结果、进度更新和事件处理。
-
侦察:从侦察开始,收集有关目标系统、网络或应用程序的信息。这包括被动地收集数据,如 DNS 记录、公开可用的信息或社交工程技术。目标是更好地了解目标环境,并识别潜在的进入点。
-
扫描与枚举:执行主动扫描和枚举,识别开放端口、服务和潜在漏洞。使用端口扫描仪、漏洞扫描仪和网络映射工具来识别目标环境中的弱点。这一步有助于识别潜在的攻击向量并优先进行后续测试。
-
漏洞利用:一旦发现漏洞,尝试利用它们以获得未授权的访问权限或提升权限。此步骤涉及使用已知的漏洞利用程序、自定义脚本或手动技术来利用已识别的弱点。在利用漏洞时,必须小心谨慎,尽量减少对目标系统的影响。
-
获取访问权限并保持持久性:在成功利用漏洞后,在目标环境中建立立足点,并保持访问权限以进行进一步测试。这包括创建后门、植入木马或建立远程访问机制。目标是模拟现实世界攻击者,并展示被攻陷系统的影响。
-
后期利用与横向移动:通过横向移动、提升权限和扩展对其他系统或网络的访问,进一步探索目标环境。此步骤有助于识别分段、用户访问控制或系统配置中的潜在弱点。记录所使用的技术和到达关键系统或敏感数据的路径。
- 数据分析与报告:分析渗透测试过程中收集的数据,包括漏洞、漏洞利用情况和被攻陷的系统。准备一份全面的报告,记录发现、潜在风险和建议的修复措施。报告应简洁、可操作,并面向技术和非技术利益相关者。
-
测试后活动:与客户组织进行汇报会议,讨论测试结果,解答任何问题,并提供修复工作的指导。与相关团队分享测试过程中获得的知识,以改善他们的安全实践。考虑进行后续合作,验证已实施的安全措施的有效性。
在整个过程中,确保渗透测试团队、客户组织和利益相关者之间的清晰沟通与协调。严格遵守道德准则、法律要求和保密协议。定期更新和完善渗透测试方法,以跟上不断变化的威胁和技术。
通过有效管理和执行渗透测试,组织可以深入了解其安全弱点,并采取主动措施提高整体网络安全性。
由洛克希德·马丁公司开发的网络杀伤链,是一个系统化的模型,概述了从初始侦察到攻击者实现目标的各个阶段。它为理解攻击者在入侵过程中可能采取的不同步骤提供了结构化框架,使组织能够提升其网络安全防御。在渗透测试中,网络杀伤链被作为指导原则,用于评估和加强组织系统和网络的安全性。在使用网络杀伤链时,还会结合 MITRE 框架来详细描述所执行的动作。
在渗透测试过程中,伦理黑客,也称为渗透测试人员或“白帽”黑客,模拟现实世界的网络攻击,以识别组织防御中的漏洞和弱点。网络杀伤链作为一种方法论,用来复制潜在攻击者入侵系统的步骤:
-
侦察:在第一阶段,渗透测试人员收集目标组织的基础设施、员工以及在线存在的信息。这有助于他们了解潜在的入侵点。
-
武器化:在这个阶段,测试人员创建或获取漏洞、恶意软件或其他恶意工具,用于危及系统的安全。
-
交付:测试人员通过各种攻击向量,如钓鱼邮件、社会工程学或利用未打补丁的软件,传送武器化的有效载荷。
-
利用:在此阶段的目标是利用已识别的漏洞,获得在目标系统中的立足点。
-
安装:一旦成功利用漏洞,渗透测试人员会安装后门、木马或其他恶意软件,以在系统中建立持续存在。
-
指挥与控制:测试人员创建通信渠道,以维持对被攻陷系统的控制。
-
目标行动:在最后阶段,测试人员尝试实现他们的特定目标,这些目标可能包括访问敏感数据、提升权限或造成系统中断。
通过遵循网络杀伤链模型,渗透测试人员可以有效评估组织的安全态势。他们提供了有价值的洞察,帮助识别潜在的弱点,并协助制定适当的对策,加强整体网络安全防御。渗透测试的结果能够帮助组织优先考虑其安全投资,并实施必要的改进,防止真实攻击者利用类似技术成功发起网络攻击。最终,渗透测试是积极主动的网络安全策略中的一个关键组成部分,确保组织在不断变化的威胁环境中始终领先于恶意攻击者。
有几个与渗透测试相关的标准和框架:
-
渗透测试执行标准 (PTES):PTES 是一个全面的框架,指导渗透测试的执行。它提供了一个结构化方法,涵盖了预约前、情报收集、威胁建模、漏洞分析、利用、后利用和报告阶段。PTES 强调方法论测试,确保对安全措施进行彻底的检查。通过明确的步骤和方法,它促进了一致和有效的渗透测试实践。遵循 PTES 有助于组织识别和减轻漏洞,增强其整体网络安全姿态,提高抵御恶意攻击的能力。
-
NIST SP 800-115:国家标准与技术研究所 (NIST) 的特别出版物 800-115 提供了执行信息安全测试和渗透测试的指南。它提供了关于渗透测试过程、方法论和报告的详细信息。 -
ISO/IEC 27001:这是一个广为认可的国际标准,用于信息安全管理系统 (ISMSs)。它包括要求进行风险评估和渗透测试,以识别和解决组织信息安全中的漏洞。 -
OWASP 测试指南:开放 Web 应用安全项目 (OWASP) 提供了一个全面的测试指南,涵盖了 Web 应用安全的各个方面,包括渗透测试方法论和技术。
-
开放源代码安全测试方法论手册 (OSSTMM):OSSTMM 是进行安全测试的框架,包括渗透测试。它强调测量安全性的重要性,并提供了在结构化和一致性方式下执行测试的指南。
-
PCI DSS:PCI DSS 是一组旨在确保信用卡交易安全的要求。第 11.3 条特别涉及合规性渗透测试。 -
ENISA 渗透测试框架:欧洲网络与信息安全局 (ENISA) 发布了一个框架,为各种类型的系统执行渗透测试提供指导。
注意,标准和框架可能会随时间演变和更新。因此,建议查看最新版本和渗透测试领域的任何新添加,以确保符合最新的实践。
分析和报告是渗透测试过程中跟随主动测试阶段的关键组成部分。一旦渗透测试人员完成了扫描、获取访问权限和任何其他利用活动,他们就会过渡到分析和报告阶段。该阶段侧重于组织、解释和记录在评估过程中得出的发现和观察结果。以下是渗透测试中分析和报告阶段的关键方面:
-
发现分析:渗透测试员全面审查在评估过程中收集的数据,包括漏洞扫描结果、利用日志及其他相关信息。他们分析这些发现,以了解妥协的程度、对目标系统的影响以及与已识别漏洞相关的潜在风险。所有漏洞必须进行分类并优先排序。我们可以通过使用 CVSS 评分系统来实现这一点。分析还应包括如何修复已识别的漏洞。
-
风险评估:测试员评估发现漏洞的严重性和潜在影响。这包括评估漏洞被利用的可能性、对系统或组织的潜在损害以及攻击者利用这些漏洞所需的努力程度。通过分配风险等级或分数,测试员帮助根据漏洞的重要性对已识别的漏洞进行优先级排序。
-
建议:根据对发现结果和风险评估的分析,渗透测试员提供修复和缓解策略的建议。这些建议通常包括解决已识别漏洞、改进安全控制措施和增强组织整体安全态势的具体步骤。建议应当切实可行、具有可操作性,并与客户的目标和要求保持一致。
-
报告:分析和报告阶段的最后一步是编写一份详细而全面的报告。报告通常包括执行摘要、使用的方法、评估范围、发现总结、风险评估结果以及建议的修复措施。报告应该结构清晰、易于理解,并根据目标受众的需求进行定制,受众可能包括技术人员、管理层和相关方。报告的目的是提供对安全弱点的清晰理解,并为解决这些问题提供指导。
分析和报告阶段在确保渗透测试的发现能够有效传达给客户或相关方方面至关重要。它使组织能够理解安全漏洞,并就风险缓解和安全改进做出明智的决策。
清晰简洁的报告对于促进建议的修复措施的高效实施以及维持安全环境至关重要。在这一阶段,渗透测试员与客户之间的定期沟通和合作有助于澄清任何问题或疑虑,并确保对评估结果的共同理解。
最终,分析和报告阶段帮助组织识别需要改进的领域,优先考虑安全投资,并增强其整体网络安全态势。它提供了关于发现的漏洞和弱点的宝贵见解,从而使得采取积极的措施以加强安全防御并防范现实世界中的攻击成为可能。
在本章中,我们定义并讨论了执行渗透测试时所需的法律、道德和软件技能。我们讨论了在渗透测试的各个阶段,不同利益相关者可以扮演的角色,并介绍了构成渗透测试的各个阶段。我们探索了使用网络杀链(cyber kill chain)进行渗透测试的技术执行阶段,同时定义了各类标准和法律框架所起的作用。
下一章提供了使用 PowerShell 进行编程的简短技术介绍。本章并不打算从基本原理上介绍 PowerShell,而是概述了我们将在接下来的章节中使用的 PowerShell 各个组件。