什么是渗透测试?

渗透测试是一种安全测试,它发动模拟的网络攻击,旨在寻找计算机系统中的漏洞。

渗透测试人员是精通道德黑客技艺的安全专业人员,他们使用黑客工具和手段来修复安全弱点,而不是造成伤害。 企业聘请渗透测试人员,对其应用、网络和其他资产发起模拟攻击。 通过发动虚假攻击,渗透测试人员帮助安全团队发现关键的安全漏洞,从而改善整体安全状态。“道德黑客”和”渗透测试”这两个术语有时可以互换使用,但两者还是存在一些差异。 道德黑客属于更广泛的网络安全领域,包括使用黑客技能以改善网络安全的任何情况。 渗透测试只是道德黑客使用的方法之一。 道德黑客还可能提供恶意软件分析、风险评估和其他服务。(文章内容限用于学习和研究目的)

为什么企业要进行渗透测试

企业进行渗透测试主要有三个原因。

渗透测试比仅进行漏洞评估更全面。 渗透测试和漏洞评估都可以帮助安全团队发现应用、设备和网络中的弱点。 然而,这两种方法的目的略有不同,因此许多组织同时使用这两者,而不是二选其一。 

漏洞评估通常是重复的自动扫描,搜索系统中的已知漏洞并将它们标记出来以供审查。 安全团队使用漏洞评估是为了快速检查常见的漏洞。

渗透测试则更进一步。 当渗透测试人员查找漏洞时,他们会发起模拟攻击,以模仿恶意黑客的行为。 这样,安全团队就可以更深入地理解实际的黑客如何利用漏洞访问敏感数据或破坏运营。 安全团队可以使用这些知识,设计网络安全控制措施,以应对现实世界的网络威胁,而不是试图猜测黑客可能会做什么。

由于渗透测试人员会同时使用自动化流程和人工流程,因此能够发现各种已知和未知的漏洞。 由于渗透测试人员积极利用所发现的弱点,因此他们不太可能发出假警报;如果他们可以利用缺陷发动攻击,那么网络犯罪分子也可以。 而且由于渗透测试服务通常由第三方安全专家提供,他们从黑客的视角攻击系统,因此渗透测试通常可以发现内部安全团队可能错过的缺陷。 

网络安全专家建议进行渗透测试。 许多网络安全专家和权威机构建议将渗透测试作为一种前瞻性的安全措施。 例如,2021 年,美国联邦政府(链接位于 IBM.com 外部) 敦促企业使用渗透测试来抵御日益猖獗的勒索软件攻击。 

渗透测试支持法规合规性。 《健康保险可移植性和责任法案》(HIPAA) 以及《通用数据保护条例》(GDPR) 等数据安全法规要求实施某些安全控制措施。 渗透测试可以确保这些控制措施按预期的方式发挥作用,帮助企业证明自己遵守这些法规。

还有一些法规明确要求进行渗透测试。 适用于处理信用卡的组织的《支付卡行业数据安全标准》(PCI-DSS) 专门要求定期进行“外部和内部渗透测试”(链接位于 IBM.com 外部)。

渗透测试还可以支持遵守一些自愿性的信息安全标准,例如 ISO/IEC 27001(链接位于 IBM.com 外部)。

渗透测试的类型

所有渗透测试都包括针对企业计算机系统的模拟攻击。 然而,不同类型的渗透测试针对不同类型的企业资产。

应用渗透测试

应用渗透测试寻找应用和相关系统中的漏洞,包括 web 应用和网站、移动和物联网应用、云应用以及应用编程接口 (API)。

渗透测试人员通常首先搜索“开放 web 应用安全项目”(OWASP) 榜单前 10 名 中列出的漏洞(链接位于 IBM.com 外部)。 OWASP 榜单前 10 是 Web 应用中最严重漏洞的清单。 该清单会定期更新,以反映不断变化的网络安全形势,但常见的漏洞始终包括恶意代码注入、错误配置和认证失败。 除了 OWASP 榜单前 10 外,应用渗透测试还会寻找较为少见的安全缺陷和漏洞,它们往往是应用所特有的。

网络渗透测试

网络渗透测试攻击企业的整个计算机网络。 网络渗透测试分为两大类:外部测试和内部测试。

在外部测试中,渗透测试人员模拟外部黑客的行为,寻找面向互联网的资产(比如服务器、路由器、网站和员工计算机)中的安全问题。 这称为”外部测试”,因为渗透测试人员尝试从外部攻入网络。

在内部测试中,渗透测试人员模拟恶意内部人员或窃得凭证的黑客的行为。 其目标是发现人们可从网络内部利用的漏洞 — 例如,滥用访问特权以窃取敏感数据。 

硬件渗透测试

这些安全测试寻找连接到网络的设备中的漏洞,设备包括笔记本电脑、移动设备和物联网装置以及运营技术 (OT)。

渗透测试人员可能会寻找软件缺陷,例如使黑客能远程访问终端的操作系统漏洞。 他们可能会寻找实体场所的漏洞,例如保护不当的数据中心,恶意人员能够轻松溜进去。 测试团队还可能会评估黑客如何从被黑的设备进一步入侵网络的其他部分。

人员渗透测试

人员渗透测试寻找员工网络安全措施方面的弱点。 换句话说,这些安全测试负责评估一家公司在社会工程攻击面前的脆弱程度。

人员渗透测试者使用网络钓鱼、语言网络钓鱼和短信网络钓鱼攻击,诱骗员工泄露敏感信息。 人员渗透测试还可能评估实体办公室的安保状况。 例如,渗透测试人员可能会伪装成快递小哥,尝试溜进建筑。 这种方法称为”尾随”,是现实世界中的犯罪分子常用的一种手段。

渗透测试流程

在渗透测试开始之前,测试团队和企业会设定测试范围。 这个范围规定将测试哪些系统、何时进行测试以及渗透测试人员可以使用的方法。 范围还确定渗透测试人员可以提前获得多少信息:

  • 黑盒测试中,渗透测试人员没有关于目标系统的任何信息。 他们必须依靠自己的研究,制定攻击计划,就像现实世界中的黑客一样。
     
  • 白盒测试中,目标系统对渗透测试人员完全透明。 企业会分享诸如网络图、源代码、凭证之类的详细信息。
     
  • 灰盒测试中,渗透测试人员会获取一些信息,但不多。 例如,企业可能会分享网络设备的 IP 范围,但渗透测试人员必须自行探测这些 IP 范围以便找到漏洞。

设定范围后,测试开始。 渗透测试人员可能采用若干渗透测试方法。 常用的方法包括 OWASP 的”应用安全测试指南”(链接位于 IBM.com 外部)、“渗透测试执行标准”(PTES)(链接位于 IBM.com 外部)以及美国国家标准技术学会 (NIST) 的 SP 800-115 标准(链接位于 IBM.com 外部)。

无论测试团队使用哪种方法,流程通常都会遵循相同的总体步骤。

1. 侦察

测试团队收集有关目标系统的信息。 渗透测试人员根据目标使用不同的侦察方法。 例如,如果目标是应用,渗透测试人员可能会研究它的源代码。 如果目标是整个网络,渗透测试人员可能会使用数据包分析器来检测网络流量。

渗透测试人员通常还会利用开源情报 (OSINT)。 通过阅读公开的文档、新闻报道,甚至员工的社交媒体和 GitHub 帐户,渗透测试人员可以收集有关其目标的宝贵信息。

2.目标发现与开发

渗透测试人员利用他们在侦察步骤中所获得的信息,确定系统中可以加以利用的漏洞。 例如,渗透测试人员可能会使用 Nmap 等端口扫描器,寻找可用于发送恶意软件的开放端口。 对于社会工程渗透测试,测试团队可能会编造一个虚假的故事或者”借口“,在网络钓鱼电子邮件中使用这些信息以窃取员工的凭证。

在这个步骤中,渗透测试人员可能会检查安全功能如何对入侵做出反应。 例如,他们可能会将可疑的流量发送到企业的防火墙,看看会发生什么。 渗透测试人员将使用他们了解到的信息,在测试余下的过程中避免被检测到。

3. 攻击

测试团队开始发动实际的攻击。 渗透测试人员可能会尝试各种攻击,具体取决于目标系统、他们发现的漏洞以及测试的范围。 一些最常测试的攻击包括:

  • SQL 注入:渗透测试人员通过在输入字段中输入恶意代码,尝试让网页或应用披露敏感数据。
     
  • 跨站脚本:渗透测试人员尝试在企业的网站中植入恶意代码。
     
  • 拒绝服务攻击:渗透测试人员尝试传入巨大的流量,让服务器、应用和其他网络资源下线。
     
  • 社会工程:渗透测试人员使用网络钓鱼、诱饵、借口或其他手段,诱骗员工泄露网络安全机密信息。
     
  • 蛮力攻击:渗透测试人员通过运行脚本以生成和检验可能的密码直至成功,尝试破解系统。
     
  • 中间人攻击:渗透测试人员解读两个设备或用户之间的流量,以窃取敏感信息或植入恶意软件。

4. 升级

渗透测试人员利用漏洞侵入系统之后,他们会尝试扩大战果,访问更多资源。 这个阶段有时称为”漏洞链”,因为渗透测试人员从漏洞移至漏洞,更深入地侵入网络。 例如,他们可能首先在员工的计算机上植入击键记录器。 通过使用击键记录器,可以捕获员工的凭证。 使用这些凭证,他们可以访问敏感的数据库。

在这个阶段,渗透测试人员的目标是保持访问和提升特权,同时规避安全措施。 渗透测试人员所做的这一切都是在模仿高级持久性威胁 (APT),这种攻击在被捕捉到之前可在系统中潜伏数周、数月甚至数年。

5. 清理和报告

在模拟攻击结束时,渗透测试人员会清除他们留下的所有痕迹,例如植入的后门木马或更改的配置。 这样,现实世界中的黑客就无法利用渗透测试人员的漏洞来入侵网络。

然后,渗透测试人员准备有关攻击的报告。 报告通常会概述他们发现和利用的漏洞、有关如何规避安全功能的详细信息,以及他们在系统内部所执行操作的描述。 该报告还可能包括有关漏洞补救措施的具体建议。 内部安全团队可使用这些信息,加强针对现实世界攻击的防御。

渗透测试工具

渗透测试人员使用多种工具,开展侦察,检测漏洞,并自动执行渗透测试流程的主要部分。 一些最常用的工具包括:

专用操作系统大多数渗透测试人员都使用专为渗透测试和道德黑客设计的操作系统。 最流行的是 Kali Linux,这是一种开源 Linux 分发版,预装了各种渗透测试工具,例如 Nmap 、Wireshark 和 Metasploit。

凭证破解工具这些程序通过破解加密或发动蛮力攻击以发现密码,它们使用机器人或脚本,自动生成和测试可能的密码,直至成功。 例子包括 Medusa、Hyrda、Hashcat 和 John the Ripper。

端口扫描器端口扫描器支持渗透测试人员远程测试设备,以发现可用于侵入网络的开放和可用的端口。 Nmap 是使用最广泛的端口扫描器,但 masscan 和 ZMap 也很常用。

漏洞扫描器漏洞扫描工具搜索系统以寻找已知漏洞,帮助渗透测试人员快速发现目标的潜在入口。 例子包括 Nessus、Core Impact 和 Netsparker。

web 漏洞扫描器属于漏洞扫描器的范畴,用于评估 Web 应用和网站。 例子包括 Burp Suite 和 OWASP 的 Zed Attack Proxy (ZAP)。

数据包分析数据包分析器,也称为数据包嗅探器,支持渗透测试人员捕获和检测数据包以分析网络流量。 渗透测试人员可以确定流量来自哪里,去往何处,在某些情况下还能确定其中包含什么内容。 Wireshark 和 tcpdump 是最常用的数据包分析器。

MetasploitMetasploit 是具有一系列功能的渗透测试框架。 最重要的是,Metasploit 支持渗透测试人员自动发动网络攻击。 Metasploit 具有一个内置库,其中包含预先编写的漏洞代码和有效内容。 渗透测试人员可以选择一个漏洞,向其提供要发送到目标系统的有效内容,接下来的事情都可交给 Metasploit 处理。

网络安全

DC-1靶场思路演练

2024-6-1 13:30:14

网络安全

网络信息安全之APT攻击

2024-5-24 16:00:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索