​缓解路由器中的安全漏洞的实用指南 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com

​缓解路由器中的安全漏洞的实用指南

walker 资讯 2022-07-12 12:00:00
收藏

导语:本文对于在项目中严重依赖远程连接并希望确保其路由器得到保护的嵌入式软件开发和测试团队非常有用。

可靠和安全的路由器是任何组织正常工作的关键。如果这些设备没有得到很好的保护,它们可能会使企业网络面临黑客攻击、数据泄露、工业间谍活动和其他网络安全风险。

了解针对路由器的主要攻击媒介以及保护它们的最佳实践。我们还将分享我们使用 FACT 发现小米路由器固件0 day漏洞的经验。

本文对于在项目中严重依赖远程连接并希望确保其路由器得到保护的嵌入式软件开发和测试团队非常有用。

为什么要关心路由器固件的安全性?

路由器是黑客攻击的首要目标之一,因为它们是任何组织网络的基础。恶意行为者滥用路由器固件漏洞并破解这些设备以绕过组织的安全系统并窃取组织或其最终用户的敏感数据。

路由器黑客攻击的最常见原因是未修补的固件漏洞。黑客和安全研究人员不断发现新的路由器固件安全问题。但它们通常未被设备制造商或用户打补丁,他们可能不会安装包含修复的固件更新。 

我们经常看到有关路由器漏洞和负面安全后果的新闻。以下是最近发现的漏洞的一些示例以及利用它们的可能后果:

· IoT Inspector 的研究人员在九种流行的路由器模型中发现了226 个潜在漏洞。研究人员专注于在私人用户和小型组织中流行的设备。发现的漏洞使得使用默认凭据连接到路由器、提取加密密钥、访问硬编码凭据等成为可能。

· 微软报告了 Netgear 路由器固件中的漏洞,这些漏洞在中小型组织中很流行。利用三个关键弱点,恶意行为者可以绕过身份验证,访问路由器管理页面,并读取存储在这些页面上的任何信息。

· 思科为其小型企业 RV 路由器系列的多个设备发布了易受攻击的固件。这些路由器最严重的漏洞允许黑客绕过路由器身份验证,安装未签名的固件更新,甚至以 root 权限执行代码。该公司在发现这些漏洞后迅速修补了这些漏洞。

如您所见,路由器嵌入式软件中的漏洞可能导致危险的黑客活动和安全事件。此类事件可能使组织面临以下风险:

image.png

易受攻击的路由器如何损害您的组织

恶意行为者可以通过利用常见的路由器固件漏洞给组织带来这些风险。在下一节中,我们将研究黑客通常如何破坏路由器。

关键路由器攻击向量

了解路由器如何受到威胁是提高其安全性的第一步。黑客通常会寻找已知或常见的路由器安全漏洞以进入组织的网络。以下是路由器攻击的关键向量:

image.png

关键路由器攻击向量

· 固件漏洞。如上面的思科示例所示,流行设备型号的制造商在准备发布时可能无法注意到路由器中的安全漏洞。这通常是由于人为错误和缺乏安全测试而发生的。恶意攻击者会仔细检查新的固件版本以找到方法。

· 凭证黑客。使用默认或弱路由器凭据是一种常见的不良安全做法。一些组织不会费心更改默认密码或设置易于记忆的密码。这种粗心大意允许黑客暴力破解凭据或简单地使用默认凭据来访问路由器配置。

· 滥用设备配置错误。大多数流行的路由器制造商将安全配置留给最终用户。例如,用户可以启用Wi-Fi 保护设置(WPS),以尝试使路由器更快地工作。网络安全最佳实践要求禁用此类路由器功能,因为它们可以帮助恶意行为者获得对路由器配置的访问权并监听流量。

· 过时技术的漏洞。控制路由器的固件可以基于旧库、安全检查和其他架构元素。这些过时的元素可能具有黑客可以滥用的已知安全漏洞。修复这些漏洞需要路由器制造商彻底改造固件,这既昂贵又复杂。这种攻击向量对于使用数年的设备更为常见。

· 内部威胁。组织内的特权用户可以访问路由器配置,并且可能会意外或出于恶意目的削弱设备安全性。此类活动可能会在组织的安全性中产生额外的漏洞。管理员也可以在安全系统的雷达下飞行,因为配置的更改是由受信任的用户进行的。

好消息是,您可以在将设备添加到网络之前发现并修复路由器安全问题。在下一节中,我们将看一个检测路由器固件0 day漏洞的实际示例。 

如何发现固件漏洞:一个实际的例子

在谈论搜索漏洞时,我们通常指的是发现第一天漏洞——已经发现和报告的安全问题。报告的0 day漏洞的详细信息有助于制造商为其产品发布补丁,也有助于恶意行为者破解受影响的软件。尽管您经常听说0 day漏洞,但寻找它们是一个充满挑战的试错过程,因为漏洞仍然未知。

搜索0 day漏洞首先要发现路由器固件中的库。您需要收集库名称和版本,然后在漏洞数据库中查找有关这些库的漏洞报告。

image.png

如何验证发现的漏洞

然后,查看您的固件是否有报告的漏洞,重新创建它们,然后修复它们。

我们在之前的一篇文章中详细描述了此过程,因此请务必查看:

在本文中,我们决定通过检查小米路由器 4A 千兆版的固件,向您展示寻找0 day漏洞的真实过程。我们将使用固件分析和比较工具(FACT) — 一种用于自动固件分析和搜索漏洞报告的工具。

我们在嵌入式开发和逆向工程项目中经常依赖 FACT,因为它通过自动执行部分漏洞搜索来节省大量时间。FACT 可以分析基于 Linux 的固件,发现其中的库,并在国家漏洞数据库中找到相应的漏洞报告。

在这次漏洞搜索过程中,我们使用了从官方下载并按照说明安装的 FACT 的 d6fd7d8ace1f222062ccc8ee239e796c2b1633bd 修订版。我们将它安装在具有 Linux Mint 18 x64、8 GB RAM 和 4 个 CPU 内核的虚拟机上。

当我们用 7zip 打开固件文件时,我们看到它是一个 SquashFS 镜像,里面有 rootfs:

image.png

图 1. 小米路由器 4A 千兆版固件内容

FACT 可以处理 SquashFS 图像,所以我们可以简单地使用这个 .bin 文件作为我们的输入。让我们使用以下命令启动该工具:

~/FACT_core/start_all_installed_fact_components

我们将等到控制台消息流停止,然后启动浏览器并通过http://localhost:5000访问该工具。我们看到这个欢迎页面:

image.png

图 2. FACT 欢迎页面

现在,我们从上面的菜单中选择上传来上传我们要分析的固件。上传固件的表单如下所示:

image.png

图 3. FACT 固件上传表格

我们使用浏览按钮选择我们之前下载的固件文件。接下来,我们指定设备类、供应商、设备部件和版本。除 Device Part 外的所有字段仅用于帮助我们识别要分析的固件。设备部分帮助 FACT 了解如何解析上传的文件——在我们的例子中,它是 rootfs 文件。

我们还需要以下面的形式标记这些附加设置:

image.png

图 4. 固件分析的附加设置

我们只需要勾选CVE 查找选项即可进行漏洞搜索,其中 CVE 代表常见漏洞和暴露。其余选项可帮助我们搜索其他固件详细信息。让我们标记我们需要的选项并单击提交:

image.png

图 5. 文件成功上传到 FACT

FACT 确认上传成功,并为我们提供了漏洞扫描报告的链接。该工具将在扫描文件时将其发现添加到报告中。同时,我们将在启动 FACT 的控制台中看到快速活动:

image.png

图 6. 控制台中的漏洞搜索

在这里,我们对关于队列长度的黄线感兴趣。它表示未处理元素的队列。在这个文件中,有 1645 个未处理的元素,我们需要等到这条黄线中的数字下降到 0/0。之后,我们可以打开报告的链接:

image.png

图 7. 漏洞搜索结果报告

让我们点击左侧的 CVE 查找选项卡,查看固件中的路由器漏洞列表:

image.png

图 8. 固件中发现的漏洞

此选项卡列出了固件中包含漏洞的文件。我们可以选择一个文件并查看其中包含的漏洞列表,以及指向国家漏洞数据库(NVD) 中的描述的链接。

image.png

图 9. 在单个固件文件中发现的漏洞

我们可以从 FACT Web 界面下载分析文件,而不是自己拆卸固件:

image.png

图 10. 从分析的固件下载文件

现在,我们需要验证发现的漏洞是否确实会影响我们的固件版本。

例如,FACT 指出 libcurl.so.4.3.0 库包含发现漏洞CVE-2016-8618的 curl v7.33.0 库。参考咨询、解决方案和工具部分中对该漏洞的描述将引导我们了解cURL 网站上描述的技术细节。在那里我们可以找到修复这个问题的补丁。

我们在这里的工作是查看 libcurl.so.4.3.0 是否已经打过补丁。该补丁更改了位于 /lib/mprintf.c 中的alloc_addbyter()函数。让我们将 libcurl.so.4.3.0 上传到 Interactive Disassembler ( IDA ) 以检查其源代码。在这里我们可以看到一些导出函数,但没有alloc_addbyter()的迹象。

然后,让我们下载 curl v7.33.0 源代码,看看 curl_mvaprintf() 导出 API 使用了 alloc_addbyter()。让我们在上面运行反编译器:

image.png

图 11. 反编译 curl_mvaprintf() API

现在,让我们将其与源代码进行比较:

image.png

图 12. curl_mvaprintf() 源代码

这里我们看到 sub_1F2F4 对应于 alloc_addbyter() 函数。我们继续分析反编译后的代码:

image.png

图 13. 反编译 alloc_addbyter() API

这是需要修补的realloc函数调用:

image.png

图 14. 存在漏洞的未修补代码

在 curl v7.33.0 库的未修补版本中,从 infop->alloc*2 调用realloc作为第二个参数。我们的固件使用的库也是如此:Curl_crealloc(v3, 2 * v7)。

这意味着我们发现并验证了路由器固件中的0 day漏洞。有了这个特殊的漏洞,我们可以通过简单地应用 cURL 的补丁来解决这个问题。但情况并非总是如此。因此,让我们来看看缓解路由器中的安全漏洞并改善其保护的一些最佳实践。

保护路由器固件的 7 个最佳实践

在将新设备插入组织的网络之前,您需要确保它受到良好的保护,并且不会因为为某些恶意活动打开大门而危及网络。以下是保护路由器嵌入式固件的方法:

image.png

保护您的组织免受路由器漏洞影响的 7 种方法

1. 应用固件更新。这种做法听起来有点明显,但许多开发人员无视它,并将他们的设备和网络置于风险之中,原因很容易避免。在开发新版本的固件时,设备制造商通常旨在提高设备的性能并修复新发现的安全问题。

2. 搜索0 day漏洞。我们上面描述的过程是避免投资于保护不佳的路由器并将您的网络暴露于已经发现的安全问题的好方法。主要设备制造商通常会将固件文件上传到他们的网站,因此您可以在购买路由器之前下载并反向工程这些文件。

3. 更改默认凭据和 SSID。制造商可能会设置较弱的安全参数,以帮助最终用户快速安装新路由器,并建议尽快更改它们。然而,许多人忽略了这个建议,并将他们的设备暴露在凭证黑客和不受保护的恶意访问之下。默认凭据允许黑客连接到路由器。默认服务集标识符 (SSID) 通常包含设备型号的名称。有了它,黑客可以快速搜索设备固件中的0 day漏洞并滥用它们。

4. 禁用不需要的配置。现代路由器为用户提供多种生活质量改进:远程访问协议、通用即插即用 ( UPnP )、Telnet、WPS等。这些协议和功能简化了路由器的安装和连接。但它们也可能帮助黑客破坏设备,因为所有这些协议都发现了漏洞。

5. 管理对设备配置的访问。确保只有授权用户才能访问和更改路由器设置。如果任何用户可以更改设备和网络设置,您将无法控制网络的入口点,并使您的组织面临内部威胁。为避免这种情况,请创建一个需要管理路由器的用户列表(IT 管理员、DevOps 工程师、紧急帐户等),以安全的方式管理他们的凭据,并确保您可以审核他们并撤销访问权限。

6. 强制 WPA3 加密。WPA3 是 2018 年发布的最新 Wi-Fi 加密标准。它使用 192 位密码学和SAE方法对通过 Wi-Fi 传输的数据进行加密,并缓解 WPA2 的安全漏洞。2018 年以后生产的大多数设备都支持最新标准,并且只有它们可以连接到 WPA3 网络。

7.进行渗透测试。渗透测试可帮助您发现路由器固件中的0 day漏洞,因为它模拟了外部黑客攻击。由独立第三方进行的黑帽渗透测试是对组织安全状况的公正评估。它还向您展示了恶意行为者如何滥用您的路由器以及如何保护它们。

这些做法将帮助您确保组织的 Wi-Fi 路由器的安全性,并确保您的网络免受外部攻击。

结论

带有易受攻击固件的路由器可能会使组织面临安全事件和数据丢失。这就是为什么您需要在将每台设备插入公司网络之前仔细检查它的原因。

本文翻译自:https://www.apriorit.com/dev-blog/771-cybersecurity-vulnerabilities-in-routers如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论