theme: healer-readable
这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战
渗透测试也称为渗透测试, 旨在检测系统中的漏洞,并帮助确保采取适当的安全措施来保护数据并确保功能。
什么是渗透测试?
渗透测试是一种黑盒测试方法,它建议进行授权尝试以破坏系统、应用程序、网络或数据库的安全性和完整性。它旨在在黑客之前发现并记录系统中可能破坏系统的所有安全漏洞。
虽然它有很多名字,但“Pen Testing”是最普遍的。它的目标是通过暴露系统内部的薄弱环节或安全漏洞来智取黑客。此外,进行渗透测试的人称为渗透测试员或渗透测试员。
或者,您可以将其归类为一种安全测试,它可以回归系统或应用程序的薄弱环节。它旨在识别目标系统中的安全漏洞。
渗透测试的阶段
- 侦察—— 这是在部署任何真正的攻击之前收集信息的过程。
- 枚举—— 这是识别目标系统可能的入口点的过程。
- 漏洞分析—— 定义、定位和分类计算机、网络或应用程序中的安全漏洞的过程。
- 漏洞利用—— 这是使渗透测试人员能够破坏系统并暴露于进一步攻击的过程。
- 报告—— 这是记录导致测试期间成功攻击的所有步骤的过程。
此外,现在让我们了解一些您应该知道的主要渗透测试参数。
什么是漏洞?
漏洞是软件、硬件或操作系统中的安全缺陷,它使系统容易受到攻击。弱点可能像弱密码一样简单,也可能像缓冲区溢出或 SQL 注入一样复杂。
什么是漏洞利用?
漏洞利用是一种软件程序或服务,旨在将漏洞转化为获得未经授权进入的机会。它使黑客能够访问目标系统。大多数漏洞利用形成有效载荷以渗透目标系统并授予入侵者访问权限。
什么是有效载荷?
有效载荷是一段代码,它允许在漏洞利用的帮助下未经授权访问计算机系统。
它作为漏洞利用的一部分传播,稍后将其解包并发起攻击。
Metasploit 是最流行的渗透测试工具,它使用称为 Meterpreter 的有效负载。一旦有效载荷闯入系统,它就可以发起各种攻击。例如,从系统上传/下载文件、捕获屏幕截图和窃取密码哈希值。它甚至可以让您完全控制受影响的系统。
为什么需要渗透测试?
渗透测试验证系统保护其网络、应用程序、端点和用户免受内部或外部威胁的能力。
此外,它旨在保护系统控制并避免任何未经授权的访问尝试。
这里有几点强调渗透测试的必要性。
- 在它的帮助下,我们可以识别攻击者可以用来破坏系统安全的环境。
- 在执行渗透测试时,测试人员可以了解易受攻击的应用领域。
- 它旨在防止黑帽攻击并保护原始数据。
- 恶意攻击可能会损坏关键数据,进而导致收入损失。因此,如果您能预测业务的潜在损失,这是您将获得的回报之一,那就太好了。
- 渗透测试的结果有助于推动改进现有安全标准的投资决策。
什么是不同类型的渗透测试?
我们可以将渗透测试分为三类:黑盒、白盒和灰盒。
黑盒测试
由于黑客要知道公司基础设施的确切拓扑结构是不切实际的,因此发起全力以赴的蛮力攻击是他或她试图找出系统中可能存在的漏洞的最好办法。
同样,在这种类型的渗透测试中,测试人员不了解 Web 应用程序的内部结构,也不了解源代码或系统设计。因此,这种类型的测试可能需要比预期更长的时间才能完成。
但是,通过自动化,他可以减少一些开销并专注于发现弱点和漏洞。“反复试验”也是这种方法的另一个流行名称。
黑盒专家
- 在开始之前,它需要一些细节。
- 执行行为类似于真正的攻击者。因此,很有可能找到真正的问题。
黑盒缺点
- 测试人员不会像真正的攻击者那样有足够的时间来计划攻击
- 它不会涵盖所有方面
- 执行会导致高成本
- 不是 PCI 合规性的工具
白盒测试
白盒假设测试人员对应用程序代码及其架构有深入的了解。并且由于他了解应用程序的来龙去脉,因此他可以比黑盒测试更快地执行它。或者,测试也将更加全面。
但是,它会带来一些挑战,作为测试人员必须解决这些挑战。例如,详细的系统知识可能是决定区域或组件专注于运行测试和分析的约束。此外,测试需要使用高级工具,如静态代码分析器、调试器和网络嗅探器。
白盒优点
- 它比黑盒方法要准确和详细得多。
- 用这种方法进行规划很容易。而且执行速度更快。
白盒缺点
- 需要大量时间来了解系统并准备数据进行分析。
- 先进的工具执行会导致成本上升。
灰盒测试
它混合了黑盒和白盒测试技术。此外,在这种类型的测试中,测试人员只需要具备 Web 应用程序内部结构的高级知识。因为即使是这种有限的知识也足以让他接触到源代码和系统设计。
灰盒方法促进了手动和自动测试的使用。此外,在执行过程中,渗透测试人员可以首先选择已知的应用程序领域。这将使他专注于利用现有的漏洞。因此,灰盒测试可确保定位甚至难以发现的安全漏洞。
灰盒优点
- 与其他类型的测试相比,成本低。
- 渗透测试仪可以达到与白盒测试相同的覆盖水平。
灰盒缺点
- 依赖客户提供信息以开始渗透测试。
总结——渗透测试或渗透测试
作为测试人员,您有责任生成无错误的软件工件。因此,您必须了解软件测试(如渗透测试)中的所有基本概念。