9 种不同类型的渗透测试 [2021 年使用]
在当今的企业界,安全已成为最常见的问题。每天,我们都会听到有关攻击者如何入侵计算机系统并窃取所有重要信息的消息。
2019 年,美国报告的数据泄露事件为 1,473 起,泄露的敏感记录超过 1.64 亿条。 2020 年上半年,数据泄露事件达 540 起。——Statista 报告
为了检测安全弱点和漏洞,许多大公司在自己的系统上执行授权的模拟网络攻击。这就是我们所说的渗透测试(简称Pen Test)。基本上,目的是在网络黑客之前发现安全漏洞和弱点,并尽快修复它们。
更具体地说,渗透测试涉及模拟真实世界的攻击场景,以(以安全的方式)发现和利用安全漏洞,这些漏洞最终可能导致信息被盗、凭据泄露或其他有害的业务结果。
它可以通过渗透测试工具在内部执行,也可以外包给渗透测试提供商。该过程通常始于安全专业人员枚举目标网络以检测易受攻击的设备或帐户。这意味着扫描网络上的每台设备,寻找在其上运行服务的开放端口。
入侵的级别取决于安全测试人员想要在目标系统上探索什么样的操作。因此,测试人员必须熟悉最相关的渗透测试类型。
渗透测试可以根据它们的执行方式以及目标资产和组件进行分类。在这篇概述文章中,我们解释了设计为强度和侵入性的不同类型的渗透测试。
基于所用方法的渗透测试
1.黑盒测试
- 可以立即设计测试用例
- 可以检测某些类型的缺陷
在黑盒渗透测试中,测试人员无权访问客户端的应用程序、网络配置或任何类型的内部信息。他/她执行所有侦察以提取所需的信息。
这种类型的测试确定了可从网络外部利用的系统弱点。找到这些弱点依赖于对目标网络中当前运行的程序和系统的动态检查。
测试人员应该熟悉自动扫描软件和不同的手动渗透测试技术。由于没有系统配置或应用程序源代码的先验知识,黑盒渗透测试人员必须能够根据个人观察构建自己的目标网络地图。
有限的知识使测试人员无法找到系统中的所有漏洞。这是此类测试的主要缺点。如果测试人员无法突破所有边界,则内部漏洞仍未被发现。
但是,它可以发现某些类型的缺陷,例如服务器配置错误和输入/输出验证错误。为了取得成功(有效地检测和修复更多漏洞),黑盒测试方法应该与其他测试工具相结合。
市场上有很多工具可用于进行黑盒渗透测试。例如,Wapiti 通过注入临时数据来分析 Web 应用程序的潜在负债。
2.白盒测试
- 更全面
- 允许代码优化和检测隐藏的安全问题
顾名思义,白盒渗透测试与黑盒测试相反。测试人员可以完全访问架构文档、源代码和其他系统信息。
测试人员筛选大量可用数据以检测潜在的弱点。他们可以使用静态和动态代码分析器和调试器进行此类测试。
由于测试人员对系统有完整的了解,因此需要更多的时间来决定应该首先测试哪些模块以及应该使用什么特定的软件来进行测试。
JUnit、PyUnit、Selenium 是一些最流行的开源白盒测试工具。例如,Selenium 用于跨各种浏览器和平台验证 Web 应用程序。
3.灰盒测试
- 以更少的成本和精力识别更重要的漏洞
- 测试是从用户的角度而不是设计师的角度进行的
这是黑盒和白盒渗透测试的结合。灰盒渗透测试员对系统内部有一些了解,例如数据库和设计文档。有了这些有限的知识,他/她可以在准备测试计划的同时制作更好的测试数据和测试用例。
与黑盒评估相比,这种类型的测试提供了对系统安全性的更有效和更集中的评估。它可以识别由于应用程序使用不当或代码结构不当造成的缺陷。更具体地说,它通过专注于复杂系统的所有层来发现特定于上下文的错误。
灰盒测试更适合功能测试、Web 应用程序、Web 服务、安全评估和 GUI。 Burp Suite 是一种流行的灰盒测试工具,它通过攻击暂定的不安全点来利用应用程序漏洞。
这三种测试技术的区别
黑盒渗透测试 | 灰盒渗透测试 | 白盒渗透测试 |
无需了解系统内部工作 | 需要部分了解系统内部工作 | 需要对系统内部工作有完整的了解 |
很难发现隐藏的错误 | 难以发现隐藏的错误 | 简单发现隐藏错误 |
也称为闭箱测试或数据驱动测试 | 也称为半透明测试 | 也称为明盒测试、结构测试或基于代码的测试 |
耗时最少 | 部分耗时 | 最全面最耗时 |
最适合查找输入/输出验证错误 | 最适合测试数据域和系统设计 | 最适合测试算法、代码结构和内部边界 |
测试由最终用户、开发人员和测试人员进行 | 测试由独立的测试人员和开发人员执行 | 测试由测试人员和开发人员执行 |
基于目标组件的渗透测试
1.网络服务测试
- 防止网络和数据泄露
- 确保网络和系统安全
网络渗透测试过程涉及通过使用不同的恶意方法来检查网络的安全性来发现应用程序和系统中的安全漏洞。
通常,测试人员会识别可利用的网络、主机、系统和设备(例如交换机和路由器)以发现弱点。由于网络既有外部接入点,也有内部接入点,因此必须从外部世界远程执行测试,并在客户端本地执行测试。
这有助于测试人员了解组织正在处理的风险级别以及如何解决和修复安全漏洞。根据风险,他们可以在测试中针对不同的网络区域。例如,他们可以进行:
- 状态分析测试
- 防火墙配置测试
- 防火墙绕过测试
- DNS 攻击
在这些测试中调查的最常见的协议包括:
- 简单邮件传输协议 (SMTP)
- 文件传输协议 (FTP)
- 安全外壳 (SSH)
- MySQL 和 SQL Server
根据系统规模和复杂性,完成网络渗透测试可能需要一到四个星期的时间。测试人员只有在确定项目范围后才能提供详细的估算。
2.网络应用渗透测试
执行网络应用渗透测试的步骤
- 识别设计和配置中的漏洞
定位入侵者并阻止他们
由于许多 Web 应用程序保存敏感信息,因此必须始终确保它们的安全。一种方法是将网络应用渗透测试作为软件开发生命周期 (SDLC) 的一部分。
渗透测试可以轻松确定整个 Web 应用程序及其组件(包括其数据库、后端网络和源代码)的漏洞。这有助于开发人员查明并确定弱点和错误的优先级,并想出减轻它们的方法。
此类测试涉及收集有关目标 Web 应用程序的数据、绘制主机网络并检查所有可能的注入或篡改攻击点。进行网络应用渗透测试的最主要原因是:
- 检测未知漏洞
- 检查公开暴露的组件,例如路由器和防火墙
- 找到最容易受到攻击的路径
- 寻找可能导致信息被盗的漏洞
- 检查现有安全政策的有效性
市场上有大量工具可用于进行(手动和自动)Web 应用程序渗透测试。 Vega、Veracode 和 Zap 是执行快速测试最常用的一些。
3.无线笔测试
- 确定无线网络的实际安全状况
- 解决漏洞和安全政策/程序
无线渗透测试涉及检测和分析连接到企业 WiFi 的所有设备之间的连接。这包括笔记本电脑、智能手机、平板电脑、打印机和其他物联网 (IoT) 设备。
测试各种无线协议和无线接入点以发现安全漏洞。通常,这些测试在客户现场进行,因为测试人员需要在无线信号范围内才能访问设备。
在大多数情况下,由于缺乏 MAC 过滤和网络访问控制不足,在 wifi 接入点中会发现漏洞。为了在这些问题真正发生之前对其进行补救,测试安全态势的有效性以暴露意外弱点至关重要。
同样重要的是要记住,WiFi 并不是攻击者可以利用的唯一无线技术。有几种蓝牙设备、低功耗蓝牙设备和其他不太流行的技术,例如 Z-wave 和 DECT(无绳电话),可以在公共场合找到。
4.客户端渗透测试
- 检测客户端软件中的安全配置错误
- 允许适当控制入站和出站网络流量
这是一个内部渗透测试,测试人员利用客户端应用程序(如 Web 浏览器、Adobe Acrobat、电子邮件客户端、Macromedia Flash 等)中的漏洞进行测试。
虽然没有规定以特定时间间隔进行此类测试,但企业应在添加新 IT 基础架构或客户端应用程序或更改现有基础架构时进行渗透测试。
大多数客户端漏洞是由于笔记本电脑或台式机上安装的未打补丁的软件引起的。一些攻击者甚至拦截更新过程,在原始更新的同时发送恶意代码。
USB 设备也会感染恶意文件或可执行代码。一旦受害者将 USB 连接到他/她的机器,这些文件就会自动执行。跨站点脚本、表单劫持、点击劫持、HTML 注入和开放重定向是一些最常见的客户端安全攻击。
这就是为什么测试员工的易感性和网络识别和响应客户端攻击的能力很重要的原因。
5.外部笔测试
- 对公司周边系统的安全评估
- 包括应用层和网络层评估
外部渗透测试通常从攻击者的角度进行测试,无需事先访问目标系统或网络。这与内部渗透测试不同,在内部渗透测试中,攻击者已经在受感染的机器上立足。
在外部渗透测试中,测试人员试图通过利用在外部资产上发现的漏洞来访问内部网络。他/她对范围内资产进行侦察,收集范围内所有资产的数据。
这些数据可能包括开放端口、漏洞或用于密码攻击的员工信息。一旦边界被突破,就达到了外部渗透测试的目的,测试人员进行内部渗透测试。
阅读:面向开发人员的 30 个有用的错误跟踪工具
6.社会工程学
- 欺骗毫无戒心的员工危害公司的安全
- 利用人类心理获取机密数据
术语社会工程用于通过人类交互完成的各种恶意活动。由于它依赖于人为错误(而不是应用程序或网络中的弱点),因此与基于恶意软件的入侵相比,它的可预测性更差且更难检测。
这些类型的测试涉及试图通过诱骗公司员工透露敏感信息来获取机密数据。这可以通过远程测试或物理测试来实现。
阅读:15 种最佳测试数据生成工具
远程测试涉及向员工发送网络钓鱼电子邮件或使用虚假警报或虚构威胁轰炸他们的设备。相比之下,物理测试包括尾随、冒充、垃圾箱潜水、物理威胁等。
工业技术