哪种类型的渗透测试适合您?

当需要验证安全协议的有效性时,渗透测试是企业理想的选择。

通过模拟真实的网络攻击,您的IT团队能够识别系统中的安全弱点,并利用这些弱点,从而获得修复这些安全隐患的知识。 如果您想深入了解渗透测试的具体步骤,可以参考我们关于渗透测试阶段的指南。

渗透测试会模拟各种攻击,不论是来自内部还是外部。外部攻击模拟远程攻击者尝试获取外部可访问信息的过程。而内部攻击则在外部攻击之后进行,旨在评估黑客通过内部网络访问系统后能够造成的潜在危害。

根据渗透测试的目的,测试人员可能对被测环境有一定的了解,也可能完全不了解。如果测试人员对系统有充分了解,则称为白盒测试。在其他情况下,渗透测试可能针对应用程序、网络服务、社交工程、无线网络甚至物理安全。

无论选择哪种类型的渗透测试,成功的渗透测试都应能发现安全漏洞,并帮助加固系统中的薄弱环节。然而,为您的组织选择合适的方案可能需要花费时间和精力,尤其是在需要评估多种方案时。

本文将概述不同类型的渗透测试,解释每种测试的含义,以及何时最适合采用特定的测试方案。最后,您将了解一些选择最符合您组织需求的渗透测试的技巧。

Web应用程序渗透测试

来源:Synopsys.com

此测试旨在暴露网站和Web应用程序的潜在安全风险,例如电子商务系统、客户关系管理系统和内容管理系统。

通过检查应用程序的安全性、定制功能以及核心逻辑功能,该测试揭示了如何消除漏洞、避免财务损失和身份盗窃。在测试开始之前,测试人员会获得多个待测试的应用程序、需要筛选的输入字段以及静态和动态页面的记录,以便评估设计和开发方面的缺陷。

Web应用程序中常见的漏洞包括跨站脚本攻击(XSS)、数据库注入和身份验证漏洞。 要深入了解网络安全,您可以查阅开放式Web应用程序安全项目(OWASP),这是一个非常有价值的资源库。它根据从数千个应用程序收集的数据,发布有关网络漏洞的频率和严重程度的信息。

如果您的公司拥有网络资产,那么进行Web渗透测试是十分必要的。在许多现代组织中,Web应用程序对于存储和传输信息至关重要。对于这样的运营模式,进行网络测试是必不可少的。统计数据显示,新冠疫情后网络犯罪有所增加

网络渗透测试

来源:Synopsys.com

网络渗透测试是对网络基础设施的安全审计,无论您的网络是在本地运行还是在云端运行。通过实施全面的检查,例如加密漏洞、缺少安全补丁和不安全的配置,这些测试可以验证企业关键数据的安全性。

在这种情况下,您可能需要进行内部或外部测试。 在外部测试中,测试人员对系统没有先验了解,并利用互联网来模拟黑客在攻击中使用的技术。如果是内部测试,重点在于获取对内部网络的访问权限。例如,测试人员可以利用面向互联网的系统中的漏洞,尝试访问信息或中断操作。

网络渗透测试有助于保护您的企业免受常见的网络攻击,例如防火墙配置错误和绕过、路由器攻击、域名系统(DNS)级别的攻击、数据库攻击和代理服务器攻击。如果您的公司业务涉及大量数据传输,那么网络测试将非常适合您。考虑到网络服务对企业的重要性,建议至少每年进行一次网络测试。

移动应用渗透测试

在移动应用程序中,渗透测试会检查不同操作系统(Android和iOS)上的应用程序及其与API的交互。成功的测试会对应用程序的源代码进行反编译,以获取尽可能多的信息。

在此类测试中,重点是应用程序架构——在执行手动测试之前解码架构,以发现不安全的设计和网络通信;检查数据如何传输、数据存储和隐私——以确保合规性,因为大多数应用程序都存储着密码和API密钥等敏感数据,通常存储在string.xml文件中。身份验证和会话管理——测试需要监控会话管理流程,例如会话结束、令牌有效性、密码更新以及多因素身份验证中的错误配置。

如果您的公司主要专注于开发游戏、金融服务和购物等移动应用程序,那么您可以在产品正式发布或推出新更新之前考虑进行渗透测试。

无线渗透测试

无线测试针对您组织的无线网络及其连接的设备。这些设备包括智能手机、平板电脑、计算机和其他物联网(IoT)设备。

通过渗透测试,您可以评估无线安全程序的安全级别,发现和利用漏洞,了解每个接入点存在的威胁,并制定数据驱动的策略来解决这些漏洞。

在进行测试之前,您应该通过建立访客网络和无线网络,并标识要访问的服务集标识符(SSID)来确定测试范围。虽然该过程主要基于硬件,但也可以使用Kali Linux等开源操作系统中的软件工具来完成。为了形成良好的安全文化,企业可以每年进行两次无线测试。

API渗透测试

API渗透测试(有时与微服务一起进行)用于识别API的弱点。目前,由于许多公司允许第三方访问他们的一些数据和服务,API渗透测试越来越受欢迎。

测试可以验证GraphQL、REST、Web服务和其他API的安全性,并针对已知漏洞进行交叉检查。测试API的过程与Web测试类似,因此可以使用类似的工具。但是,也可能会引入Postman和Swagger等新的工具。

如果您想了解更多信息,可以参考我们的API开发和测试工具清单。通常,这些工具会提供API的蓝图,然后对框架API请求进行建模,并向产品发出请求。

如果您的企业拥有带有API后端的Web或移动应用程序,那么频繁运行API测试有助于发现可能成为攻击者入口点的漏洞或不良编码设计。

社会工程渗透测试

与其他专注于技术缺陷的技术不同,社会工程利用人类心理来破坏组织的安全。

这些测试非常有益,因为它们可以识别漏洞、衡量安全意识、提高员工的警惕性、降低风险、改善事件响应、确保遵守法规、建立利益相关者的信任并确保成本效益高的风险管理。

最常见的攻击方法包括借口、网络钓鱼、媒体投放/物理策略和尾随。社会工程测试依赖于侦察时收集的信息;这里使用了开源情报。

测试人员可以构建准确的目标画像,以便根据适当的方法定制攻击。虽然社会工程测试不如网络测试常见,但它可以成为识别运营模式缺陷的绝佳方法。

物理安全渗透测试

物理安全测试需要访问设施的物理空间,以验证现有保护措施的效率并检查漏洞。 与其他类型的渗透测试不同,这些测试针对的是物理安全措施,例如警报系统、访问控制和包含敏感信息的不同区域。

要进行此测试,您可以使用物理旁路、尾随和社会工程等技术。然后,从测试中获得的结果将用于确定解决漏洞和增强现有安全措施的方法。

如果您的组织或企业有实体存在,例如存储数据和其他敏感信息,那么最好使用渗透测试来加强安全性。在这种情况下,许多团队都会受益,例如银行和金融机构、数据中心、政府服务机构、医院和医疗保健项目、零售商店和购物中心、制造工厂以及持有认证的组织。

云渗透测试

云渗透测试旨在识别和利用云解决方案(例如SaaS)、Microsoft Azure、Amazon Web Services (AWS)和Google Cloud Platform等应用程序和基础设施中的漏洞。

与其他测试不同,云渗透测试需要对云服务有深入的了解。 例如,AWS应用程序中的服务器端请求伪造(SSRF)漏洞可能会损害您的整个云基础设施。

使用其他云解决方案(包括Azure AD和AWS Cognito),您会遇到它们的问题和配置错误。常见的云漏洞包括不安全的API、弱凭据、服务器配置错误、过时的软件和不安全的编码实践。

如果您的公司提供云服务,那么云渗透测试可以提高云安全性。 由于大多数云服务商选择共享责任模式,云测试可以解决平台、网络和数据存储中的漏洞。

容器渗透测试

容器因其操作系统虚拟化分析而闻名。 它们可以运行微服务、软件进程,甚至大型应用程序。 除了从黑客的角度审视容器外,容器渗透测试还允许您部署自定义的测试环境。

扫描漏洞时,有两种选择。首先,静态分析扫描容器镜像中的漏洞。其次,动态分析检查运行时的容器行为。为了获得更好的效果,最好两者都执行。

容器的漏洞涵盖应用程序、配置、网络和镜像操作系统。如果您的DevOps围绕Docker展开,那么渗透测试可以自定义容器,使用所有必要的工具增强它们,减少漏洞并简化整体功能。

数据库渗透测试

数据库对于企业来说是至关重要的。数据库保存着付款信息、客户信息以及产品和定价数据等敏感数据,一旦泄露,企业将面临风险。为了确保足够的安全性,在新产品数据库上线之前会进行测试,并定期对现有产品数据库进行测试。

通过像黑客一样尝试访问数据库,并使用最佳行业实践,数据库测试可以指导您如何处理实际的攻击。

常见的数据库威胁包括SQL注入、不受限制的权限、不良的审计跟踪、暴露的备份、错误配置、拒绝服务(DoS)和不良的数据管理。测试可以发现数据库中的漏洞,并确保所有敏感信息免受入侵者的侵害。这就是企业应该投资数据库安全的原因。

物联网渗透测试

物联网包括通过互联网进行通信和交换数据的网络设备的互连。 这些设备包括物理对象、车辆和建筑物,同时嵌入了软件、传感器、电子设备和网络连接。

随着物联网的普及,重点在于检查物联网网络和设备是否存在缺陷。 此外,安全测试不仅限于设备,还包括其通信网络,例如云计算平台。

物联网设备中的主要安全缺陷是未加密的数据、不安全的固件、弱密码以及较差的身份验证/访问控制。随着越来越多的组织采用物联网设备,物联网审计可以加强资产、性能和风险管理,并满足合规性要求。

白盒渗透测试

对于白盒测试,您需要对目标系统有深入的了解,包括应用程序架构、源代码、凭据、白名单、不同的帐户角色和文档。

通过采用这种方法,白盒测试可以节省交互成本。白盒测试非常适合需要高安全级别的复杂系统,例如金融企业和政府。 通过实施完整的代码覆盖率,您可以枚举内部错误。

如果发现了漏洞,白盒测试是检查应用程序安全、网络状态、物理安全和无线安全的最佳方法。在其他情况下,您可以考虑在软件的早期阶段和投入生产之前进行白盒测试。

黑盒渗透测试

通过黑盒测试,您对系统一无所知,而是采用黑客的思维方式。由于您无法访问源代码或架构图,因此您将采用局外人的方法来利用网络。这意味着测试依赖于目标网络中系统和运行程序的动态分析。

为了成功,您必须精通自动扫描工具和手动渗透测试方法。 您还必须根据您的观察结果创建目标地图。 这是一种运行测试的快速方法,所需时间取决于您发现和利用漏洞的能力。然而,如果您无法入侵系统,则无法发现漏洞。

尽管它是最具挑战性的测试之一,但它提供了评估系统整体安全性的最佳方法。 有时,它被称为“试错”。 但这需要高水平的技术专业知识。

红队测试

红队测试看起来类似于渗透测试,但它更进一步,采用真实黑客攻击的形式,且没有时间限制。 您可以结合这些测试中的工具、策略和技术来访问目标系统或数据。

其他渗透测试旨在暴露漏洞,而红队测试则评估防御者检测威胁和响应威胁的能力。 检测可以基于受损监控系统的指标、物理评估测试,甚至社会工程。与渗透测试不同,您可以将红队测试视为一个广泛的测试。

不利的一面是,红队测试不具备渗透测试的广度,它专注于访问系统或数据。一旦目标达成,他们就不会寻找其他弱点。对于渗透测试,您需要识别所有漏洞。

选择正确的渗透测试

如果您熟悉所有现有的模型,那么为您的组织选择正确的渗透测试将会更加容易。有了这些知识,您可以根据您的工作流程,将您的组织与最适合的渗透测试类型相匹配。

如果您运营Web应用程序,那么Web渗透测试将是最好的选择。如果您提供API和后端开发,那么API测试将是一个合适的选择。这个列表可以继续延伸,例如还有针对云服务商的云渗透测试。

上面的列表应该是一个很好的起点,它可以帮助您区分所有渗透测试类型,启发您了解它们,并最终了解每种渗透测试的最佳用例。通过这些知识和其他资源来拓展您的知识。

接下来,您还可以了解适用于Web应用程序的高级渗透测试软件。