信息技术已成为几乎所有公司不可或缺的一部分。存储在IT系统中的关键和机密数据量持续增长,企业对所用IT系统不间断运行的依赖性也日益加深。因此,针对企业网络的攻击、对系统可用性的破坏以及其他对公司造成重大损害(例如勒索软件攻击)的手段变得越来越普遍。通过安全漏洞和网络攻击获取的重要公司信息可能被出售给竞争对手、在公共论坛上泄露或用于其他恶意目的。
渗透测试 是一项经过授权的、有组织的模拟攻击,旨在测试IT基础设施及其防御机制,以评估其对IT安全漏洞的敏感性。渗透测试采用真实攻击者所使用的相同方法和技巧。作为渗透测试人员,我们应用各种技术和分析方法来评估特定漏洞或漏洞链可能对组织IT系统和数据的机密性、完整性和可用性产生的影响。
渗透测试的目标是发现并识别受测系统中的所有漏洞,并提升这些系统的安全性。而其他评估,如红队评估,可能基于特定场景,并且仅关注用于达成特定最终目标所必需的漏洞。
风险管理
通常,渗透测试也是公司风险管理的一部分。IT安全风险管理的主要目标是识别、评估和减轻任何可能损害组织信息系统和数据机密性、完整性、可用性的潜在风险,并将总体风险降低到可接受的水平。这包括识别潜在威胁、评估其风险,并采取必要步骤来减少或消除它们。然而,我们无法消除所有风险。即使组织已采取所有合理措施来管理风险,安全漏洞固有的固有风险依然存在。公司可以通过多种方式接受、转移、规避或减轻风险。
在渗透测试期间,我们会编写详细的文档,记录所采取的步骤和取得的结果。但是,纠正已发现的漏洞是客户或其系统运营方的责任。我们的角色是作为值得信赖的顾问,报告漏洞、提供详细的重现步骤和适当的修复建议,但我们不会直接去打补丁或修改代码等。重要的是,渗透测试并非对IT基础设施或系统的持续监控,而是对安全状态的一个瞬时快照。这一点应在我们的渗透测试报告交付物中明确说明。
漏洞评估
漏洞分析是一个广义术语,可以包括漏洞(或安全)评估和渗透测试。与渗透测试相比,漏洞或安全评估主要依赖纯自动化工具来执行。通过运行Nessus、Qualys、OpenVAS等扫描工具,根据已知问题和安全漏洞对系统进行检查。在大多数情况下,这些自动化检查无法使攻击适应目标系统的配置。
另一方面,渗透测试结合了自动化和手动测试/验证,通常是在广泛的、多数情况下是手动的信息收集之后进行。它是根据被测系统量身定制的。渗透测试中使用的工具的计划、执行和选择要复杂得多。无论是渗透测试还是其他安全评估,都必须在签约公司与雇佣渗透测试员的组织双方达成一致后方可进行。
成功的渗透测试需要大量的组织和准备工作。必须有一个我们可以遵循的清晰流程模型,同时又能适应客户的需求,因为我们遇到的每个环境都不同,且有各自的细微差别。
原则上,员工不会被告知即将进行的渗透测试。但是,管理人员可能会决定告知员工。作为渗透测试员,我们可能会发现个人信息,我们有责任保护这些信息的私密性。
测试方法
测试过程的一个基本方面是我们执行渗透测试的起始点。每次渗透测试可以从两个不同的视角进行:
外部渗透测试
许多渗透测试是从外部视角进行的,即作为互联网上的匿名用户。大多数客户希望确保其外部网络边界尽可能得到保护,免受攻击。我们的最终目标是访问面向外部的主机、获取敏感数据或获取内部网络的访问权限。
内部渗透测试
与外部渗透测试相比,内部渗透测试是指我们从企业内部网络内部执行测试。此阶段可能在通过外部渗透测试成功渗透企业网络之后执行,或者从一个假设的假定入侵场景开始。内部渗透测试也可能涉及测试那些完全没有互联网访问的隔离系统,这通常要求测试人员物理上出现在客户现场。
渗透测试类型
无论我们如何开始测试,渗透测试的类型都扮演着重要角色。类型决定了向我们提供多少信息。我们可以将这些类型归纳为以下几种:
| 类型 | 提供信息 | 说明 |
|---|---|---|
| 黑盒测试 | 最少 | 仅提供基本信息,如IP地址和域名。 |
| 灰盒测试 | 扩展信息 | 提供额外信息,如特定URL、主机名、子网等。 |
| 白盒测试 | 全部信息 | 向我们披露所有内部信息,使我们能够利用内部视图准备攻击。 |
| 红队测试 | 可变 | 可能包括物理测试和社会工程学等,可与上述任何类型结合。 |
| 紫队测试 | 可变 | 可与上述任何类型结合,但侧重于与防御方紧密合作。 |
提供的信息越少,测试方法通常所需的时间就越长,也越复杂。
测试环境类型
除了测试方法和测试类型,另一个考虑因素是测试对象是什么,可以总结为以下类别:
网络、Web应用程序、移动应用、API、胖客户端、物联网、云环境、源代码、物理安全、人员、主机、服务器、安全策略、防火墙、入侵检测/防御系统。
需要注意的是,这些类别常常是混合的。根据要执行的测试类型,可能包含所有列出的测试组件。





