如何检查我的 IoT 设备是否感染了 Mirai 蠕虫?

物联网 安全 联网 未来
2021-06-25 22:31:05

我最近听说了Mirai 蠕虫,它会用不安全的密码感染易受攻击的路由器、物联网设备和其他联网设备。Mirai 被怀疑是历史上一些最大的 DDoS 攻击的原因

Dyn 估计这次攻击涉及“100,000 个恶意端点”,仍在调查这次攻击的公司表示,有报道称攻击强度为 1.2Tbps。

问题我可以监控我的网络是否有恶意物联网设备活动吗?提供了一些有用的通用技巧,用于在我的 IoT 网络上发现恶意软件,但如何检查我的设备是否感染了恶意软件?Incapsula 提供了一个运行工具,可以扫描易受 Mirai 攻击的设备,但是有没有一种方法可以自动检查我网络上的任何设备是否受到感染(或提供实时保护),这样我就不必继续运行我记得时的工具?

4个回答

检测受感染的设备

除了偶尔的缓慢带宽外,这些由设备转变为僵尸网络的设备仍然可以为毫无戒心的所有者正常运行,并且它们的僵尸网络行为可能会无限期地被忽视。

Webroot.com:发布 Mirai IoT 恶意软件的源代码

这告诉我们设备如何改变其行为。不幸的是,偶尔的缓慢带宽是一个需要注意的非常糟糕的指标。Mirai 做的另一件事是阻止端口以避免监控工具检测到它。

可以查找这两个功能。第一个需要非常复杂的网络流量监控解决方案,以及有关您期望网络中的流量类型的复杂知识。如果您的物联网设备不是通过 WiFi 连接而是通过 3G 或其他移动电信标准进行通信,那么您就很不走运了,因为您无法监控它们。至少不容易,而且在大多数司法管辖区都不合法。

第二个 Mirai 功能是 Incapsula 也扫描的东西。如果端口关闭,则可能存在Mirai 感染。由于重新启动暂时将设备从 Mirai 的控制中解放出来,因此重新启动后端口可用性的变化很可能被视为设备已被破坏的迹象。

请记住,Incapsula 不提供确定性,而仅提供有关可能成为目标的设备和可能已被感染的设备的信息。这就是为什么重要的是要意识到 Mirai 无论它可以发动多么强大的攻击,它在小范围内都不是不可战胜的敌人,它甚至很容易防止感染。

接下来的两节将表明,与首先保护设备或凭直觉保护设备相比,检测工作量太大了。

重新捕获您的设备

然而,Mirai 充当僵尸网络的端点,蠕虫不会改变物联网设备的持久内存。即固件没有被感染。这就是为什么重新启动和立即更改密码可以让您重新控制设备的原因。

受感染的系统可以通过重新启动来清除它们,但由于对这些设备的扫描以恒定速率进行,因此它们有可能在重新启动后的几分钟内再次被感染。这意味着用户必须在重新启动后立即更改默认密码,或者阻止设备访问互联网,直到他们可以重置固件并在本地更改密码。

Webroot.com:发布 Mirai IoT 恶意软件的源代码

防止被入侵摆在首位

Mirai 不会入侵您的设备!

Mirai 不断扫描互联网上的物联网设备,并使用出厂默认或硬编码的用户名和密码登录它们。

Webroot.com:发布 Mirai IoT 恶意软件的源代码

Mirai 使用出厂默认登录来破坏您的设备。在首次为您的 IoT 设备提供任何 Internet 连接之前更改密码,您将生活在 Mirai 自由区。

如果您的设备密码无法更改并且它是潜在的 Mirai 目标,请考虑切换到比赛。

如果您的网络上有任何易受攻击的设备,您应该假设它们受到了威胁。根据定义,登录凭据是公开的,我相信您需要假设固件已被篡改。无需等待观察与命令控制服务器的通信或恶意活动。

立即清洁设备,确保为每台新设备设置新密码,并在安装时对其进行扫描。

也许潜台词是如何扫描现有设备上新发现的远程访问漏洞,但我没有把这个问题看成是专门问这个问题。

而不是寻找自主解决方案。您可以尝试自动化 Incapsula 的工具。不幸的是,它是通过网页按钮提供的服务,因此您必须打开该页面并自主单击该按钮。

您可以从页面源中获取有关按钮本身的信息。

<div class="btn-toolbar">
  <a class="cta-green-button scan-btn" href="#" id="mirai-scanner-scan-btn" role="button" style="max-width: 288px;margin: 32px auto 4px;">Scan My Network Now</a>
</div>

因此,也许使用脚本,您可以创建一个定期运行的任务,该任务打开站点,通过 ID 找到按钮并单击它并运行扫描。

我不知道这样做的确切方法,但也许可以使用SeleniumMechanize Python 包

Mirai 攻击嵌入式 linux。您首先需要获得对 IoT 设备的命令行访问权限。之后,您可以检查只读文件系统的校验和,并将它们与干净的固件版本进行比较。有时,公司在线提供原始固件,或者您可以联系他们获取副本。如果您想了解固件通常是如何打包的,我建议您查看程序 Binwalk。OpenWrt 有很好的关于闪存的文档。当您将固件刷入/刷新到 IoT 设备上时,固件部分(内核、只读根文件系统、可写配置部分)存储在 IoT 闪存芯片上的 MTD 分区中。您可以复制/下载这些分区(/dev/mtdblock1 是 linux 示例)并通过校验和将它们与原始固件进行比较。如果您害怕 rootkit 并且不信任命令行,