- 渗透测试教程
- 渗透测试 - 首页
- 渗透测试 - 简介
- 渗透测试 - 方法
- 测试与漏洞评估
- 渗透测试 - 类型
- 手动与自动化
- 渗透测试 - 工具
- 渗透测试 - 基础设施
- 渗透测试 - 测试人员
- 渗透测试 - 报告撰写
- 渗透测试 - 伦理黑客
- 渗透测试与伦理黑客
- 渗透测试 - 限制
- 渗透测试 - 补救措施
- 渗透测试 - 法律问题
- 渗透测试资源
- 渗透测试 - 快速指南
- 渗透测试 - 资源
- 渗透测试 - 讨论
渗透测试 - 快速指南
渗透测试 - 简介
什么是渗透测试?
渗透测试是一种安全测试类型,用于测试应用程序的不安全性。它旨在发现系统中可能存在的安全风险。
如果系统没有得到保护,任何攻击者都可以破坏或未经授权地访问该系统。安全风险通常是在软件开发和实施过程中发生的意外错误。例如,配置错误、设计错误和软件错误等。
为什么要进行渗透测试?
渗透测试通常评估系统保护其网络、应用程序、端点和用户免受外部或内部威胁的能力。它还试图保护安全控制并确保只有授权访问。
渗透测试至关重要,因为 -
它识别模拟环境,即入侵者如何通过**白帽攻击**攻击系统。
它有助于找到入侵者可以攻击以访问计算机功能和数据的薄弱环节。
它支持避免**黑帽攻击**并保护原始数据。
它估计对潜在业务的攻击规模。
它提供证据表明,为什么在技术安全方面增加投资很重要
何时执行渗透测试?
渗透测试是确保系统正常运行必不可少的要素,需要定期执行。此外,应在以下情况下执行 -
- 安全系统发现攻击者的新威胁。
- 您添加新的网络基础设施。
- 您更新系统或安装新软件。
- 您搬迁办公室。
- 您设置新的最终用户程序/策略。
渗透测试如何带来益处?
渗透测试提供以下好处 -
**管理系统的增强** - 它提供有关安全威胁的详细信息。此外,它还对漏洞的程度进行分类,并建议您哪些漏洞更严重,哪些漏洞不那么严重。因此,您可以通过相应地分配安全资源来轻松准确地管理您的安全系统。
**避免罚款** - 渗透测试使您组织的主要活动保持最新并符合审计系统。因此,渗透测试可以保护您免受罚款。
**防止财务损失** - 安全系统的简单漏洞可能会造成数百万美元的损失。渗透测试可以保护您的组织免受此类损失。
**客户保护** - 即使是单个客户数据的泄露也可能造成巨大的财务损失和声誉损害。它保护与客户打交道的组织并保持其数据完整。
渗透测试 - 方法
渗透测试是多种技术的组合,它考虑了系统的各种问题,并进行测试、分析和提供解决方案。它基于逐步执行渗透测试的结构化程序。
本章描述了渗透测试方法的各个步骤或阶段。
渗透测试方法的步骤
以下是渗透测试的七个步骤 -
计划与准备
计划和准备从定义渗透测试的目标和目的开始。
客户和测试人员共同定义目标,以便双方具有相同的目标和理解。渗透测试的常见目标是 -
- 识别漏洞并提高技术系统的安全性。
- 获得外部第三方确认的 IT 安全性。
- 增强组织/人员基础设施的安全性。
侦察
侦察包括对初步信息的分析。很多时候,测试人员除了初步信息之外没有太多其他信息,例如 IP 地址或 IP 地址块。测试人员从分析可用信息开始,并在需要时请求客户提供更多信息,例如系统描述、网络计划等。此步骤是一种被动渗透测试。其唯一目标是获取系统完整而详细的信息。
发现
在此步骤中,渗透测试人员很可能会使用自动化工具扫描目标资产以发现漏洞。这些工具通常拥有自己的数据库,其中包含最新漏洞的详细信息。但是,测试人员会发现
**网络发现** - 例如发现其他系统、服务器和其他设备。
**主机发现** - 它确定这些设备上的开放端口。
**服务探测** - 它探测端口以发现其上实际运行的服务。
分析信息和风险
在此步骤中,测试人员会在测试步骤动态渗透系统之前分析和评估收集的信息。由于系统数量庞大且基础设施规模庞大,因此非常耗时。在分析过程中,测试人员会考虑以下要素 -
渗透测试的既定目标。
对系统的潜在风险。
评估后续主动渗透测试的潜在安全漏洞所需的大致时间。
但是,从已识别系统的列表中,测试人员可能会选择仅测试那些包含潜在漏洞的系统。
主动入侵尝试
这是必须谨慎执行的最重要步骤。此步骤涉及在发现步骤中识别的潜在漏洞对实际风险的程度。当需要验证潜在漏洞时,必须执行此步骤。对于那些具有非常高完整性要求的系统,在进行关键清理程序之前,需要仔细考虑潜在漏洞和风险。
最终分析
此步骤主要考虑所有已执行的步骤(如上所述)以及对以潜在风险形式存在的漏洞的评估。此外,测试人员建议消除漏洞和风险。最重要的是,测试人员必须确保测试及其披露的漏洞的透明度。
报告准备
报告准备必须从整体测试程序开始,然后分析漏洞和风险。高风险和关键漏洞必须优先考虑,然后是较低级别的漏洞。
但是,在记录最终报告时,需要考虑以下几点 -
- 渗透测试的总体摘要。
- 每个步骤的详细信息以及在渗透测试期间收集的信息。
- 发现的所有漏洞和风险的详细信息。
- 系统清理和修复的详细信息。
- 未来安全建议。
渗透测试与漏洞
通常,这两个术语,即渗透测试和漏洞评估,被许多人互换使用,这要么是由于误解,要么是由于营销炒作。但是,这两个术语在目标和其他方面彼此不同。但是,在描述差异之前,让我们首先逐一了解这两个术语。
渗透测试
渗透测试复制外部和/或内部网络攻击者/者的行为,旨在破坏信息安全并入侵有价值的数据或扰乱组织的正常运作。因此,在高级工具和技术的帮助下,渗透测试人员(也称为**道德黑客**)努力控制关键系统并获取敏感数据的访问权限。
漏洞评估
另一方面,漏洞评估是在给定环境中识别(发现)和衡量安全漏洞(扫描)的技术。它是信息安全状况(结果分析)的全面评估。此外,它识别潜在的弱点并提供适当的缓解措施(补救措施),以消除这些弱点或降低风险水平。
下图总结了漏洞评估 -
下表说明了渗透测试和漏洞评估之间的基本区别 -
渗透测试 | 漏洞评估 |
---|---|
确定攻击范围。 | 在给定系统中创建资产和资源的目录。 |
测试敏感数据收集。 | 发现对每个资源的潜在威胁。 |
收集目标信息和/或检查系统。 | 为可用资源分配可量化的价值和意义。 |
清理系统并提供最终报告。 | 试图减轻或消除有价值资源的潜在漏洞。 |
它是非侵入性的,包括文档和环境审查和分析。 | 对目标系统及其环境进行全面分析和彻底审查。 |
它非常适合物理环境和网络架构。 | 它非常适合实验室环境。 |
它适用于关键的实时系统。 | 它适用于非关键系统。 |
哪个选项最适合实践?
这两种方法具有不同的功能和方法,因此取决于相应系统的安全状况。但是,由于渗透测试和漏洞评估之间的基本差异,第二种技术比第一种技术更有益。
漏洞评估识别弱点并提供修复它们的解决方案。另一方面,渗透测试仅回答“是否有人可以破坏系统安全性,如果可以,那么他可以造成什么危害?”
此外,漏洞评估试图改进安全系统并开发更成熟、集成的安全程序。另一方面,渗透测试仅能提供安全程序有效性的概况。
正如我们在这里看到的,与渗透测试相比,漏洞评估更有益且效果更好。但是,专家建议,作为安全管理系统的一部分,应定期执行这两种技术,以确保完美的安全环境。
渗透测试类型
渗透测试的类型通常取决于范围以及组织的意愿和需求。本章讨论了不同类型的渗透测试。它也称为**渗透测试**。
渗透测试类型
以下是重要的渗透测试类型:
- 黑盒渗透测试
- 白盒渗透测试
- 灰盒渗透测试
为了更好地理解,让我们详细讨论每个类型:
黑盒渗透测试
在黑盒渗透测试中,测试人员对将要测试的系统一无所知。他感兴趣的是收集有关目标网络或系统的信息。例如,在这种测试中,测试人员只知道预期的结果是什么,而不知道结果是如何产生的。他不会检查任何编程代码。
黑盒渗透测试的优点
它具有以下优点:
测试人员不一定是专家,因为它不需要特定的语言知识
测试人员验证实际系统和规范之间的矛盾
测试通常从用户的角度进行,而不是设计者的角度
黑盒渗透测试的缺点
它的缺点是:
特别是,这类测试用例难以设计。
可能不值得,如果设计人员已经进行了测试用例。
它不会进行所有测试。
白盒渗透测试
这是一项全面的测试,因为测试人员已获得有关系统和/或网络的全部信息,例如模式、源代码、操作系统详细信息、IP地址等。它通常被视为内部来源攻击的模拟。它也称为结构化测试、玻璃盒测试、透明盒测试和开放盒测试。
白盒渗透测试检查代码覆盖率并进行数据流测试、路径测试、循环测试等。
白盒渗透测试的优点
它具有以下优点:
它确保模块的所有独立路径都已执行。
它确保所有逻辑决策都已验证,以及它们的真值和假值。
它发现打字错误并进行语法检查。
它发现由于程序逻辑流与实际执行之间的差异而可能发生的設計错误。
灰盒渗透测试
在这种类型的测试中,测试人员通常会提供有关系统程序内部详细信息的部分或有限的信息。它可以被视为外部黑客的攻击,这些黑客已非法访问组织的网络基础设施文档。
灰盒渗透测试的优点
它具有以下优点:
由于测试人员不需要访问源代码,因此它是非侵入性和无偏见的
由于开发人员和测试人员之间存在明显的区别,因此个人冲突的风险最小
您无需提供有关程序功能和其他操作的内部信息
渗透测试的领域
渗透测试通常在以下三个领域进行:
**网络渗透测试** - 在此测试中,需要测试系统的物理结构以识别漏洞和风险,从而确保网络安全。在网络环境中,测试人员识别公司/组织网络设计、实施或操作中的安全缺陷。测试人员测试的设备可以是计算机、调制解调器,甚至是远程访问设备等
**应用程序渗透测试** - 在此测试中,需要测试系统的逻辑结构。它是一种攻击模拟,旨在通过识别漏洞和风险来揭示应用程序安全控制的效率。防火墙和其他监控系统用于保护安全系统,但有时需要重点测试,尤其是在允许流量通过防火墙时。
**系统的响应或工作流程** - 这是需要测试的第三个领域。社会工程收集有关人际互动的信息,以获取有关组织及其计算机的信息。测试相关组织防止未经授权访问其信息系统的能力是有益的。同样,此测试专为组织/公司的流程而设计。
渗透测试 - 手动与自动化
手动渗透测试和自动化渗透测试都用于相同的目的。它们之间唯一的区别在于它们执行的方式。顾名思义,手动渗透测试由人类(该领域的专家)执行,而自动化渗透测试由机器本身执行。
本章将帮助您了解这两个术语的概念、区别和适用性。
什么是手动渗透测试?
手动渗透测试是由人类执行的测试。在这种类型的测试中,机器的漏洞和风险由专家工程师进行测试。
通常,测试工程师执行以下方法:
**数据收集** - 数据收集在测试中起着关键作用。可以手动收集数据,也可以使用在线免费提供的工具服务(例如网页源代码分析技术等)。这些工具有助于收集诸如表名、数据库版本、数据库、软件、硬件,甚至有关不同第三方插件等信息
**漏洞评估** - 收集数据后,它有助于测试人员识别安全弱点并相应地采取预防措施。
**实际利用** - 这是专家测试人员用来对目标系统发起攻击的典型方法,并且同样降低了攻击的风险。
**报告准备** - 渗透完成后,测试人员会准备一份最终报告,描述有关系统的所有内容。最后分析报告以采取纠正措施来保护目标系统。
手动渗透测试类型
手动渗透测试通常分为以下两种方式:
**重点手动渗透测试** - 这是一种更集中的方法,用于测试特定的漏洞和风险。自动化渗透测试无法执行此测试;它仅由检查给定域内特定应用程序漏洞的人类专家完成。
**全面手动渗透测试** - 通过测试相互连接的整个系统以识别各种风险和漏洞。但是,此测试的功能更多是情境的,例如调查多个较低风险的故障是否会导致更易受攻击的攻击场景等
什么是自动化渗透测试?
自动化渗透测试速度更快、效率更高、更容易且更可靠,可以自动测试机器的漏洞和风险。这项技术不需要任何专家工程师,而是任何对该领域了解最少的人都可以运行。
自动化渗透测试的工具有Nessus、Metasploit、OpenVAs、backtract(系列5)等。这些都是非常有效的工具,改变了渗透测试的效率和意义。
但是,下表说明了手动和自动化渗透测试之间的根本区别:
手动渗透测试 | 自动化渗透测试 |
---|---|
需要专家工程师执行测试。 | 它是自动化的,因此即使是学习者也可以运行测试。 |
它需要不同的工具进行测试。 | 它集成了工具,不需要任何外部工具。 |
在这种类型的测试中,结果可能因测试而异。 | 它具有固定的结果。 |
此测试需要测试人员记住清理内存。 | 它不需要。 |
它非常详尽且耗时。 | 它更高效且快速。 |
它具有其他优点,即如果专家进行渗透测试,那么他可以更好地分析,他可以思考黑客会怎么想以及在哪里进行攻击。因此,他可以相应地设置安全措施。 | 它无法分析情况。 |
根据需要,专家可以运行多次测试。 | 它无法做到。 |
对于关键情况,它更可靠。 | 它不是。 |
渗透测试 - 工具
渗透测试通常包括信息收集、漏洞和风险分析、漏洞利用和最终报告准备。
了解渗透测试提供的各种工具的功能也很重要。本章提供有关这些功能的信息和见解。
什么是渗透测试工具?
下表收集了一些最重要的渗透工具并说明了其功能:
工具名称 | 用途 | 可移植性 | 预期成本 |
---|---|---|---|
Hping | 端口扫描 远程操作系统指纹识别 |
Linux、NetBSD、 FreeBSD、 OpenBSD、 |
免费 |
Nmap | 网络扫描 端口扫描 操作系统检测 |
Linux、Windows、FreeBSD、OS X、HP-UX、NetBSD、Sun、OpenBSD、Solaris、IRIX、Mac等。 | 免费 |
SuperScan | 运行查询,包括ping、whois、主机名查找等。 检测打开的UDP/TCP端口并确定哪些服务正在这些端口上运行。 |
Windows 2000/XP/Vista/7 | 免费 |
p0f | 操作系统指纹识别 防火墙检测 |
Linux、FreeBSD、NetBSD、OpenBSD、Mac OS X、Solaris、Windows和AIX | 免费 |
Xprobe | 远程主动操作系统指纹识别 端口扫描 TCP指纹识别 |
Linux | 免费 |
Httprint | Web服务器指纹识别SSL检测 检测启用 Web 的设备(例如,无线接入点、交换机、调制解调器、路由器) |
Linux、Mac OS X、FreeBSD、Win32(命令行和 GUI) | 免费 |
Nessus | 检测允许远程攻击者控制/访问敏感数据的漏洞 | Mac OS X、Linux、FreeBSD、Apple、Oracle Solaris、Windows | 免费到限量版 |
GFI LANguard | 检测网络漏洞 | Windows Server 2003/2008、Windows 7 旗舰版/Vista、Windows 2000 Professional、Business/XP、Sever 2000/2003/2008 | 仅试用版免费 |
Iss Scanner | 检测网络漏洞 | Windows 2000 Professional SP4 版、Windows Server 2003 Standard SO1 版、Windows XP Professional SP1a 版 | 仅试用版免费 |
Shadow Security Scanner | 检测网络漏洞,审核代理和 LDAP 服务器 | Windows,但扫描任何平台构建的服务器 | 仅试用版免费 |
Metasploit Framework | 开发和执行针对远程目标的漏洞利用代码 测试计算机系统的漏洞 |
所有版本的 Unix 和 Windows | 免费 |
Brutus | Telnet、ftp 和 http 密码破解器 | Windows 9x/NT/2000 | 免费 |
渗透测试 - 基础设施
计算机系统及其关联网络通常由大量设备组成,其中大多数设备在执行相应系统的全部工作和业务中发挥着重要作用。任何时间点、任何设备部件的微小缺陷都可能对您的业务造成巨大损害。因此,所有这些设备都容易受到风险的影响,需要妥善保护。
什么是基础设施渗透测试?
基础设施渗透测试包括所有内部计算机系统、关联的外部设备、互联网网络、云和虚拟化测试。
无论隐藏在您的内部企业网络中还是公开可见,攻击者始终有可能利用这些漏洞来损害您的基础设施。因此,最好提前做好安全防范,而不是事后后悔。
基础设施渗透测试的类型
以下是基础设施渗透测试的重要类型:
- 外部基础设施渗透测试
- 内部基础设施渗透测试
- 云和虚拟化渗透测试
- 无线安全渗透测试
外部基础设施测试
渗透测试针对外部基础设施,发现黑客可以通过互联网轻松访问您的网络并可能执行的操作。
在此测试中,测试人员通常会复制黑客可能使用的相同类型的攻击,方法是查找并映射外部基础设施中的安全漏洞。
利用外部基础设施渗透测试有各种好处,因为它:
识别防火墙配置中的可能被误用的漏洞
找出攻击者如何从您的系统中泄露信息
建议如何解决这些问题
准备一份全面报告,重点介绍边界网络的安全风险,并提出解决方案
确保业务的整体效率和生产力
内部基础设施渗透测试
由于一些小的内部安全漏洞,黑客在大型组织中非法进行欺诈。因此,通过内部基础设施渗透测试,测试人员可以识别安全风险的可能性以及该问题是由哪个员工引起的。
内部基础设施渗透测试的好处在于:
识别内部攻击者如何利用即使是最小的安全漏洞。
识别内部攻击者可能造成的潜在业务风险和损害。
改进内部基础设施的安全系统。
准备一份全面报告,详细说明内部网络的安全风险,并提供如何处理这些风险的详细行动计划。
云和虚拟化渗透测试
当您购买公共服务器或网络空间时,会大大增加数据泄露的风险。此外,在云环境中识别攻击者非常困难。攻击者还可以购买托管云设施以访问您的新云数据。
事实上,大多数云托管都是在虚拟基础设施上实现的,导致虚拟化风险,攻击者可以轻松访问。
云和虚拟化渗透测试的好处在于:
发现虚拟环境中的实际风险,并建议修复威胁和漏洞的方法和成本。
提供解决问题/问题的指南和行动计划。
改进整体保护系统。
准备一份关于云计算和虚拟化的全面的安全系统报告,概述安全漏洞、原因和可能的解决方案。
无线安全渗透测试
笔记本电脑和其他设备的无线技术提供了一种轻松灵活地访问各种网络的方式。易于访问的技术容易受到独特的风险,因为物理安全无法用于限制网络访问。攻击者可以从远程位置进行入侵。因此,无线安全渗透测试对于您的公司/组织来说是必要的。
以下是使用无线技术的原因:
查找无线设备造成的潜在风险。
提供如何防范外部威胁的指南和行动计划。
改进整体安全系统。
准备一份关于无线网络的全面的安全系统报告,概述安全漏洞、原因和可能的解决方案。
渗透测试 - 测试人员
存在保护组织最关键数据的难题;因此,渗透测试人员的角色至关重要,任何小错误都可能使双方(测试人员及其客户)面临风险。
因此,本章讨论了渗透测试人员的各个方面,包括其资格、经验和职责。
渗透测试人员的资格
此测试只能由合格的渗透测试人员执行;因此,渗透测试人员的资格非常重要。
合格的内部专家或合格的外部专家都可以执行渗透测试,前提是他们组织上独立于目标系统。这意味着渗透测试人员必须在组织上独立于目标系统的管理。例如,如果第三方公司参与目标系统的安装、维护或支持,则该方不得执行渗透测试。
以下是一些在聘用渗透测试人员时可以参考的指南。
认证
认证人员可以执行渗透测试。测试人员持有的认证是他技能和胜任能力的体现。
以下是渗透测试认证的重要示例:
认证道德黑客 (CEH)。
Offensive Security 认证专业人士 (OSCP)。
CREST 渗透测试认证。
通信电子安全小组 (CESG) IT 健康检查服务认证。
全球信息保证认证 (GIAC) 认证,例如,GIAC 认证渗透测试人员 (GPEN)、GIAC Web 应用程序渗透测试人员 (GWAPT)、高级渗透测试人员 (GXPN) 和 GIAC 漏洞利用研究员。
过去经验
以下问题将帮助您聘用一名有效的渗透测试人员:
渗透测试人员有多少年的经验?
他是独立的渗透测试人员还是在为某个组织工作?
他作为渗透测试人员为多少家公司工作过?
他是否为任何规模和范围与您相似的组织执行过渗透测试?
渗透测试人员拥有哪种类型的经验?例如,进行网络层渗透测试等
您还可以向他为其工作过的其他客户索取推荐信。
在聘用渗透测试人员时,评估他(测试人员)所工作组织过去一年的测试经验非常重要,因为它与他/她在目标环境中专门部署的技术相关。
此外,对于复杂的情况和典型的客户需求,建议评估测试人员在其/她之前的项目中处理类似环境的能力。
渗透测试人员的角色
渗透测试人员具有以下角色:
识别工具和技术的低效分配。
跨内部安全系统进行测试。
查明暴露点以保护最关键的数据。
发现整个基础设施中宝贵的漏洞和风险知识。
报告和优先排序补救建议,以确保安全团队以最有效的方式利用时间,同时保护最大的安全漏洞。
渗透测试 - 报告撰写
经验丰富的渗透测试人员不一定能写出一份好的报告,因为编写渗透测试报告是一门需要单独学习的艺术。
什么是报告编写?
在渗透测试中,报告编写是一项综合性任务,包括方法、程序、报告内容和设计的正确解释、测试报告的详细示例以及测试人员的个人经验。报告准备完成后,将与目标组织的高级管理人员和技术团队共享。如果将来出现任何此类需求,则此报告用作参考。
报告编写阶段
由于涉及到全面的写作工作,渗透报告编写被分为以下阶段:
- 报告计划
- 信息收集
- 撰写初稿
- 审查和定稿
报告计划
报告计划从目标开始,这有助于读者理解渗透测试的主要要点。此部分描述了为什么进行测试,渗透测试的好处是什么等。其次,报告计划还包括测试所需的时间。
报告编写的主要要素:
目标 - 描述渗透测试的总体目的和益处。
时间 - 包含时间非常重要,因为它提供了系统的准确状态。假设如果以后发生任何错误,此报告将保护测试人员,因为报告将在特定时间段内说明渗透测试范围内的风险和漏洞。
目标受众 - 渗透测试报告还需要包括目标受众,例如信息安全经理、信息技术经理、首席信息安全官和技术团队。
报告分类 - 由于它高度机密,包含服务器 IP 地址、应用程序信息、漏洞、威胁,因此需要妥善分类。但是,此分类需要根据具有信息分类策略的目标组织进行。
报告分发 - 工作范围应提及副本数量和报告分发方式。还需要说明可以通过打印数量有限的副本并附上副本编号和接收人姓名来控制纸质副本。
信息收集
由于流程复杂且冗长,渗透测试人员需要详细说明每个步骤,以确保在测试的所有阶段都收集了所有信息。除了方法之外,他还需要说明系统和工具、扫描结果、漏洞评估、发现的详细信息等。
撰写初稿
一旦测试人员准备好所有工具和信息,现在他需要开始撰写初稿。首先,他需要详细地撰写初稿——提及所有内容,即所有活动、流程和经验。
审查和定稿
报告起草完成后,首先需要由起草人本人审查,然后由协助他的上级或同事审查。在审查过程中,审查人员需要检查报告的每个细节,并找出需要纠正的任何缺陷。
渗透测试报告内容
以下是渗透测试报告的典型内容:
执行摘要
方法
详细发现
参考文献
|
渗透测试 - 伦理黑客
互联网的快速发展改变了每个人的生活方式。如今,大多数私人和公共事务都依赖于互联网。政府的所有秘密工作计划和行动都基于互联网。所有这些都使生活变得非常简单且易于访问。
但随着好消息的到来,这种发展也存在阴暗面,即犯罪黑客。这些犯罪黑客没有地理政治限制,他们可以从世界任何地方入侵任何系统。他们可以严重损害机密数据和信用记录。
因此,为了防止犯罪黑客,道德黑客的概念应运而生。本章讨论了道德黑客的概念和作用。
谁是道德黑客?
道德黑客是合法授权入侵计算机系统以保护系统免受犯罪黑客攻击的计算机专家。道德黑客识别系统的漏洞和风险,并建议如何消除这些风险。
谁是犯罪黑客?
犯罪黑客是指那些出于窃取数据、窃取金钱、损害他人信誉、破坏他人数据、勒索他人等目的入侵他人系统的计算机编程专家。
犯罪黑客能做什么?
一旦系统被入侵,犯罪黑客就可以对该系统为所欲为。以下两张由C.C. Palmer发布在pdf.textfiles.com上的图片,说明了一个被入侵页面的简单示例:
这是网页被入侵前的截图:
这是同一网页被入侵后的截图:
道德黑客有哪些技能?
专家级道德黑客拥有以下技能来以道德的方式入侵系统:
他们必须值得信赖。
无论在测试系统时发现什么风险和漏洞,他们都必须保密。
客户会提供有关其系统基础设施的机密信息,例如IP地址、密码等。道德黑客需要对这些信息保密。
道德黑客必须具备扎实的计算机编程、网络和硬件知识。
他们应该具备良好的分析能力,能够分析情况并提前推测风险。
他们应该具备管理能力以及耐心,因为渗透测试可能需要一天、一周甚至更长时间。
道德黑客做什么?
道德黑客在执行渗透测试时,基本上会尝试找到以下问题的答案:
- 犯罪黑客可以攻击哪些弱点?
- 犯罪黑客可以在目标系统上看到什么?
- 犯罪黑客可以使用这些机密信息做什么?
此外,道德黑客需要充分解决在目标系统中发现的漏洞和风险。他需要解释并建议避免措施。最后,准备一份他执行渗透测试期间所做和观察到的所有道德活动的最终报告。
黑客类型
黑客通常分为三类。
黑帽黑客
“黑帽黑客”是指精通计算机软件以及硬件,其目的是破坏或绕过他人互联网安全的人。黑帽黑客也被称为破解者或暗黑黑客。
白帽黑客
“白帽黑客”一词指的是道德计算机黑客,他们是计算机安全专家,专门从事渗透测试和其他相关的测试方法。他们的主要作用是确保组织信息系统的安全。
灰帽黑客
“灰帽黑客”一词指的是那些破解计算机安全系统,其道德标准介于纯粹的道德和纯粹的恶意之间的计算机黑客。
渗透测试与道德黑客
渗透测试与道德黑客密切相关,因此这两个术语经常互换使用。但是,这两个术语之间存在细微差别。本章深入探讨了渗透测试和道德黑客之间的一些基本概念和根本区别。
渗透测试
渗透测试是一个特定术语,仅专注于发现漏洞、风险和目标环境,目的是保护系统并控制系统。或者换句话说,渗透测试针对的是各自组织的防御系统,包括所有计算机系统及其基础设施。
道德黑客
另一方面,道德黑客是一个广泛的术语,涵盖所有黑客技术和其他相关的计算机攻击技术。因此,除了发现安全缺陷和漏洞以及确保目标系统安全之外,它还超越了入侵系统,但需要获得许可才能为了将来目的保护安全。因此,我们可以说,它是一个统称,而渗透测试是道德黑客的一个特征。
以下是渗透测试和道德黑客的主要区别,如下表所示:
渗透测试 | 道德黑客 |
---|---|
一个狭义的术语,仅专注于渗透测试以保护安全系统。 | 一个综合性术语,渗透测试是其众多特征之一。 |
测试人员实际上不需要全面了解所有内容,而只需要了解其进行渗透测试的特定领域。 | 道德黑客实际上需要全面了解软件编程以及硬件。 |
测试人员不一定需要成为优秀的报告撰写者。 | 道德黑客实际上需要成为专业的报告撰写专家。 |
任何具备一些渗透测试知识的测试人员都可以执行渗透测试。 | 它需要成为该领域的专业人士,并且必须拥有道德黑客的强制性认证才能有效。 |
与道德黑客相比,文书工作较少。 | 需要详细的文书工作,包括法律协议等。 |
执行此类测试所需的时间较少。 | 与渗透测试相比,道德黑客需要花费大量时间和精力。 |
通常,不需要访问整个计算机系统及其基础设施。访问权限仅限于测试人员执行渗透测试的部分。 | 根据情况,通常需要访问所有计算机系统及其基础设施。 |
由于渗透技术用于防止威胁,潜在攻击者也正在迅速变得越来越复杂,并在当前应用程序中发明新的弱点。因此,特定的单次渗透测试不足以保护被测试系统的安全。
根据报告,在某些情况下,在渗透测试后立即发现新的安全漏洞并发生了成功的攻击。但是,这并不意味着渗透测试毫无用处。它只意味着,虽然通过彻底的渗透测试,不能保证不会发生成功的攻击,但肯定的是,测试将大大降低成功攻击的可能性。
渗透测试 - 限制
由于信息和技术领域发展迅速,渗透测试的成功故事相对短暂。由于需要对系统进行更多保护,因此您需要更频繁地执行渗透测试,以将成功攻击的可能性降低到公司认可的水平。
以下是渗透测试的主要局限性:
时间限制 - 我们都知道,渗透测试并非完全不受时间限制的练习;然而,渗透测试专家为每个测试分配了固定的时间。另一方面,攻击者没有时间限制,他们可以计划一周、一个月甚至几年。
范围限制 - 许多组织由于自身限制,包括资源限制、安全限制、预算限制等,而不会测试所有内容。同样,测试人员的范围有限,他必须放弃系统中许多可能更容易受到攻击的部分,这些部分可能是攻击者完美的切入点。
访问限制 - 测试人员通常对目标环境的访问权限受到限制。例如,如果一家公司对其整个互联网网络的DMZ系统进行了渗透测试,但如果攻击者通过正常的互联网网关进行攻击会怎样呢?
方法限制 - 渗透测试期间目标系统可能会崩溃,因此某些特定的攻击方法可能会被专业的渗透测试人员排除在外。例如,产生拒绝服务洪水来转移系统或网络管理员的注意力,使其远离其他攻击方法,这通常是真正坏人的理想策略,但对于大多数专业的渗透测试人员来说,它可能会超出交战规则。
渗透测试人员技能限制 - 通常,专业渗透测试人员的技能有限,无论其专业知识和过去经验如何。他们中的大多数都专注于特定技术,并且对其他领域的知识很少。
已知漏洞利用限制 - 许多测试人员只了解那些公开的漏洞利用。事实上,他们的想象力不如攻击者。攻击者通常会超越测试人员的思维,发现可以攻击的漏洞。
实验限制 - 大多数测试人员都受到时间限制,并遵循其组织或上级已给予他们的指示。他们不会尝试新事物。他们不会超出给定的指示进行思考。另一方面,攻击者可以自由地思考、实验,并创建一些新的攻击途径。
此外,渗透测试既不能取代例行的IT安全测试,也不能替代通用的安全策略,而是补充已建立的审查程序并发现新的威胁。
渗透测试 - 补救措施
渗透测试工作——无论多么彻底——都无法始终确保详尽地发现安全控制有效性不足的每个实例。在一个应用领域识别跨站点脚本漏洞或风险,可能无法确定地暴露该应用中存在的此漏洞的所有实例。本章阐述了修复的概念和实用性。
什么是修复?
修复是指采取措施改进以取代错误并将其纠正。通常,在一个区域中存在漏洞可能表明流程或开发实践中的弱点,这些弱点可能在其他位置复制或导致类似的漏洞。因此,在进行修复时,测试人员务必仔细调查经过测试的实体或应用程序,并牢记安全控制无效的情况。
由于这些原因,相关公司应在原始渗透测试后的一段时间内采取措施修复任何可利用的漏洞。事实上,一旦公司完成了这些步骤,渗透测试人员应执行重新测试以验证新实施的能够减轻原始风险的控制措施。
在初始渗透测试后较长时间内进行的修复工作可能需要执行新的测试工作,以确保对最新环境的准确结果。此决定应在对自原始测试完成以来发生的变化程度进行风险分析后做出。
此外,在特定条件下,标记的安全问题可能说明相关环境或应用程序中的基本缺陷。因此,重新测试的范围应考虑测试中识别出的修复导致的任何更改是否被归类为重大更改。所有更改都应重新测试;但是,是否需要对整个系统进行重新测试将由对更改的风险评估确定。
渗透测试 - 法律问题
在允许某人测试敏感数据之前,公司通常会采取措施来维护数据的可用性、机密性和完整性。为了使此协议生效,法律合规性是组织的一项必要活动。
在建立和维护安全和授权系统时必须遵守的最重要的法律法规,在下面以实施渗透测试的上下文中呈现。
什么是法律问题?
以下是测试人员和客户之间可能出现的一些问题——
测试人员对客户一无所知——那么,他应该以什么理由获得敏感数据的访问权限?
谁来保证丢失数据的安全?
客户可能会将数据或机密性丢失归咎于测试人员
渗透测试可能会影响系统性能,并可能引发机密性和完整性问题;因此,这一点非常重要,即使是在由内部员工执行的内部渗透测试中,也必须获得书面许可。在开始测试之前,测试人员和公司/组织/个人之间应存在书面协议,以澄清有关数据安全、披露等的所有事项。
在进行任何测试工作之前,应起草一份**意向声明**,并由双方签署。应明确概述工作的范围,以及在执行漏洞测试时,您可能进行或不进行的操作。
对于测试人员来说,了解谁拥有正在请求进行工作的业务或系统,以及测试系统与其目标之间可能受渗透测试潜在影响的基础设施,这一点非常重要。其目的是确保;
**测试人员**拥有书面许可,并明确定义参数。
**公司**拥有其渗透测试人员的详细信息,并保证其不会泄露任何机密数据。
法律协议对双方都有利。请记住,法规因国家/地区而异,因此请随时了解您所在国家/地区的法律。在考虑相关法律后,再签署协议。