渗透测试和边缘

电子说

1.3w人已加入

描述

渗透测试(渗透测试)由安全专业人员进行的模拟网络攻击组成,以确定测试人员是否可以通过设备漏洞访问目标。回想一下“不安全世界中的边缘安全”博客,联网设备的网络接口构成了其攻击面的很大一部分。边缘设备网络接口公开了许多网络端口,这些端口向互联网提供独特的协议。这些端口中的每一个都是黑客的潜在入口点——例如,在端口 80 或 8080 上公开的 HTTP 协议。了解在给定端口上公开的协议(和版本)可为黑客提供大量信息。

渗透测试过程

作为对黑客事件的模拟,渗透测试遵循类似于准黑客的过程。下面是一个尝试渗透网络系统的简单过程。测试过程包括:

目标选择

漏洞检测

利用匹配

利用尝试

对于目标选择,这只是被测试的授权设备。然后,漏洞检测器(例如端口扫描器)会探测目标,以评估设备的入口点以及有关这些入口点的其他信息(协议、版本等)。接下来是识别这些入口点的潜在攻击,最后一步是尝试攻击(图 1)。此过程忽略了自定义漏洞利用开发,这是一个相当复杂的过程。

模拟

图 1:渗透测试过程图。(来源:作者)

端口扫描

要识别设备上的潜在漏洞,最简单的方法之一是端口扫描器。端口扫描器是一种应用程序,它扫描设备的开放端口,然后通过与这些端口关联的端口号,识别可访问的网络服务。因为端口号可以表示 1 到 65535 范围内的数字,所以端口扫描可能是一个耗时的过程。

端口扫描以多种方式执行,但在最简单的情况下,端口扫描器会尝试连接到设备上的端口。如果设备确认连接请求(通常称为 TCP 的三向握手),则端口打开。否则,端口将被关闭或阻塞。

渗透测试通常可以通过端口号来识别网络服务。例如,如果端口扫描器在端口 80 或 8080 处发现一个开放端口,则 HTTP 协议可用。

设备和端口扫描器之间交换的底层数据包的详细信息也提供了丰富的信息。测试人员可以使用有关特定设备如何配置协议参数的信息,在称为设备指纹识别的过程中识别操作系统 (OS) 或协议栈。

图 2提供了网络映射器 (NMAP) 端口扫描器实用程序的示例输出。此特定请求使用隐蔽 SYN 数据包方法,并针对网络设备 192.168.1.4 请求开放端口的服务信息。如输出所示,NMAP 识别出大量打开的端口,甚至通过端口交换的信息识别设备。

模拟

图 2:图像显示了本地打印机的示例端口扫描。(来源:作者)

NMAP 是网络探索和发现的关键工具。了解网络设备的攻击面后,您就可以准备测试设备上的潜在漏洞。

测试设备上的潜在漏洞

了解设备的网络攻击向量是否包括潜在的漏洞利用是渗透测试的下一阶段。漏洞利用测试是一项复杂的工作,但 Metasploit 项目简化了这个过程。

Metasploit 项目

Metasploit 是一个通过支持漏洞匹配、执行和开发来创建渗透测试框架的项目。Metasploit 包括一个广泛的漏洞利用数据库(图 3中显示了一小部分) ,可以将其与被测网络设备进行匹配,然后调用。

模拟

图3: Metasploit 控制台的图像和 XP 漏洞列表。(来源:作者)

Metasploit 包括 shellcode 漏洞,用于通过目标上的有效负载执行代码来控制目标设备。Metasploit 允许渗透测试人员根据设备的指纹识别和对其可用攻击向量的了解,将漏洞利用与任何有效载荷混合使用。

Metasploit 框架是使用最广泛的渗透测试框架,为发现、漏洞匹配、执行以及漏洞开发提供了完整的环境。

卡利Linux

最后,还有一个专注于渗透测试的 Linux 发行版,由 Offensive Security Ltd. 开发。Kali Linux 源自 Debian Linux,可以安装在资源相对受限的计算机上,也可以从 CD/DVD 或 USB 记忆棒启动。它预装了 600 多种安全测试工具,包括 NMAP、Metasploit 框架、应用程序安全扫描器、Wireshark(用于数据包分析)、用于无线 LAN 笔测试的软件套件等等。Kali Linux 甚至可以在基于 ARM 的设备(例如Raspberry Pi2)和 Android PDA 设备(例如 Gemini PDA)上运行。

保护您的设备

虽然安全性通常是设备设计中的事后考虑,但您可以采取一些基本措施来保护边缘设备。从解决这些问题开始。

是否审查并最小化了设备的攻击面?

是否所有开放的端口都是必须的,还是可以在开发完成后关闭?

如果您的设备上运行的是 Linux,内核和软件包是否是最新的并且是否了解漏洞(例如通过漏洞利用数据库公布)?

您的代码是否经过审查(手动或通过源代码分析工具)?

这些是开发人员可以为保护他们的设备而做的基本事情,但这一切都始于对攻击面和渗透测试的理解。

结论

渗透测试的理念是在现场保护您的网络设备;您首先需要进攻性地考虑其安全性。渗透测试让您扮演想要利用您的设备的人的角色,这样当您的设备发布时,您可以确信您已经涵盖了操作系统或网络堆栈的已知漏洞。

M. Tim Jones 是一位资深的嵌入式固件架构师,拥有超过 30 年的架构和开发经验。Tim 是多本书籍和多篇文章的作者,涉及软件和固件开发领域。他的工程背景从地球同步航天器的内核开发到嵌入式系统架构和协议开发。 

审核编辑 黄宇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分