原文:The IoT Botnet Wars: How to Harden Linux Devices from DoS Attacks
作者:Ralph Nguyen
翻译:安翔
审校:苏宓
当我们正忙于对抗 Mirai 和 BrickerBot 等恶意软件时,另一种新的恶意软件 Hajime 可能正在攻击物联网设备,使其失效。最好的防御手段就是实施基本的系统安全加固策略。
那些没有安全性保障的基于 Linux 的物联网(IoT)设备可能被攻击。BrickerBot (参见“ 当心BrickerBot - IoT 杀手”)是一个近期出现的恶意软件,它通过攻击联网设备导致被攻击的设备变成“砖头”,并使电子设备永久拒绝服务(PDoS)。这可能源于灰帽黑客攻击,是对 Mirai 的正面回应,Mirai 通过分布式拒绝服务(DDoS)攻击控制 IoT 设备。
Mirai 攻击对象包括联网的打印机、IP 摄像机、家庭网关和使用 DNS 服务器的婴儿监护仪。2016年10月,Mirai 发起了大面积的 DDoS 攻击,估计吞吐量为1.2兆比特每秒。它通过非法控制设备造成了大部分的互联网服务和网站瘫痪,包括 Netflix、GitHub、HBO、Amazon、Reddit、Twitter 和 DIRECTV。相比 Mirai,BrickerBot 则采用了另外一种策略:它通过将不安全的 Linux 设备变成“砖头”以免像 Mirai 这样的恶意软件非法掌握设备的控制权并且进行 DDoS 攻击。
这场恶意攻击造成了南加州的互联网服务提供商 Sierra Tel 大面积的服务中断。它的Zyxel 调制解调器就是 BrickerBot 或者另一个恶意软件(或许是 Mirai)的受害者。Sierra Tel 花费了将近两个星期来替换所有客户的调制解调器。Mirai 还攻击了德国 ISP网络的调制解调器,受影响的用户数量比旧金山还多。
Hajime 是另外一个类似 Mirai 的蠕虫病毒,在过去几个月里快速传播,它的作用和 BrickerBot 比较相似:阻止 Mirai 这样的恶意软件攻击不安全的 IoT 设备。Hajime 通过网络扫描然后尝试使用默认账号攻破设备,然后注入恶意程序。
Hajime 通过禁用 Mirai 攻击的四个端口(23,754,5555,5358)来加强这些设备的安全性,以防止进一步的 DDoS 攻击甚至 Bitcoin 采矿行为。不幸的是,一旦 Hajime 感染的设备重新启动,它将恢复到易受攻击的状态,这些端口将被重新打开。因此,Hajime 只是一个临时的解决方案,从根源上提升安全性的方法是使用新的认证手段部署软件更新。
计算机安全专家 Gene Spafford 表示:“唯一真正的安全系统是将其断电,使用混泥土密封,然后封锁在武装警卫把守的铅化密室里。即便这样做了我依然还是担心。”基本的安全性加强手段有助于防止许多针对 Linux 设备的恶意软件的攻击。我们将在这些攻击的背景下涵盖一些基本的系统强化概念,包括关闭未使用的网络端口,使用入侵检测系统,提升密码复杂性和验证策略,消除不必要的服务,以及通过频繁的软件更新来修复错误和安全漏洞。
基本安全策略能够降低Mirai攻击风险
恶意软件 Mirai 通过攻击 DNS 提供商 Dyn 的服务器导致互联网的重大中断。恶意软件通过使用开放的 Telnet 端口来攻击运行 Linux 的ARM、MIPS、PPC和x86等易受攻击的设备。它扫描互联网上的 IoT 设备的 IP 地址,并通过使用超过60个通用的出厂账号来识别易受攻击的设备。由于恶意软件存储在内存中,设备就会一直被感染,除非重新启动。但是即使设备重新启动,它可能在几分钟内又重新感染,除非立即更改登录账号。
一旦设备被 Mirai 感染,它会尝试删除其他的恶意软件,并且闲置一段时间以避免安全工具的检测。经过一段时间后,它将联系其命令和控制服务器采取下一步的行动。
执行复杂的密码策略,而不是使用工厂发布的默认密码,这将有助于防止 Mirai 非法控制这些设备。确保面向消费者的 IoT 设备安全性的挑战是:制造商依靠消费者通过出厂默账号登陆后更改密码,通常需要登录管理终端并手动更改密码。
CERT协调中心的高级漏洞分析师 Dormann 表示:“硬件制造商应该在安装设备时要求用户选择强密码,而不是硬编码凭据或设置许多用户永远都不会更改的默认用户名和密码。”
部署软件更新的能力是修复错误和修补已知安全漏洞的另一个强制性功能。在 Code Complete 一书中,作者 Steve McConnell 指出,每1000行代码中有1-25个错误和漏洞,具体数值根据团队技术能力的不同有所差异。
Krebs 列出了一些消费电子产品(见下图),由于对功能和上市时间的关注度较高,几乎没有安全监督,因此具有很高的安全风险。许多这样的设备都运行在具有高度安全风险的悬崖边,因此制造商需要重点考虑提供一个空中升级(OTA)的功能。
图. Kres 公布的被 Mirai 感染的设备
Dormann 说:“谈到软件更新,自动升级当然是最好的。 通知用户并需要用户简单的确认也是不错的方案。需要用户到处寻找安装包然后手动安装的更新则意义不大。完全不提供升级的设备则是一无是处。”
鉴于许多安全方面考虑,软件更新过程本身是非常复杂的,还需要防止中间人(MitM)的攻击。在软件升级的中途,如果出现断电或者网络故障,设备都有变成“砖头”的风险。因此,软件更新需要是一次原子操作,这意味着要么实现完整更新要么就完全不开始更新(没有部分更新),即使在更新过程中出现掉电的情况。
制造商有可用于部署软件更新到设备的开源策略。SWUpdate 就是一个非常著名和灵活的开源 Linux 更新代理,而 Mender.io(我参与的开源项目)提供在所有设备上部署 OTA 升级的端到端解决方案(包括代理和管理服务器)。物联网的软件更新已成为一个热门话题,甚至引起美国政府和国会的关注。来自大西洋理事会国际智囊团的 Bill Woods 指出,目前有20亿个物联网设备有超过12年的 SSH 缺陷,存在成为僵尸网络的风险。
以毒攻毒
在二十世纪初,Blaster 蠕虫在运行 Windows XP 和 Windows 2000 操作系统的计算机上传播。DDoS 攻击始于2003年,造成了数亿美元的损失。Welchia 蠕虫是对 Blaster 的回应,像 Blaster 一样利用微软远程过程调用(RPC)服务中的一个漏洞。但是,在感染系统之后,如果存在 Blaster 它会立即将其删除,然后尝试从 Microsoft 下载并安装安全修补程序以防止进一步的感染。
与 Welchia 类似,Hajime 将与 Mirai 进行正面较量,以尽量减少可能造成的伤害。Hajime 似乎是一个更加先进的僵尸网络,它会伪装流程和文件,使其更加难以检测。通过扫描、分析凭据信息以识别设备制造商,再使用默认账号,这样的组合操作会提提升安全性。例如,当它攻击 MikroTik 路由器时,Hajime 试图根据 MikroTik 文档提供的初始出厂凭据进行登录,并减少无效密码的数量,从而降低被列入黑名单的概率。
Hajime 通过关闭 Mirai 利用的已知网络端口来保护这些设备 - 设备制造商可以效仿这个策略:关闭不必要的端口以减少其攻击面。入侵检测系统(IDS)也有助于监测异常网络活动。网络 IDS 有两种类型:签名检测和异常检测。有许多开源解决方案可用, 其中Snort 和 Suricata 是最受欢迎的方案。
BrickerBot 是同类产品的第一个恶意软件,它通过将设备变为“砖头”的方式达到 PDoS的效果,同时移除潜在的恶意软件以免被 DDoS 攻击。目前已经有多个版本的 BrickerBot,而该恶意软件的嫌疑人声称他已经攻破了超过200万台设备。BrickerBot 1将那些运行 Linux 与 BusyBox 并且暴露了 Telnet 服务的设备视为攻击对象。它们通常有一个旧版本的 Dropbear SSH,大多数被识别为运行过期固件的 Ubiquiti 网络设备。BrickerBot 2使用类似的策略,使用默认或硬编码密码通过 Telnet登录,更广泛地攻击基于 Linux 的设备。
最安全的软件是没有安装的软件。你设备上运行的所有服务和应用程序可定有它存在的必要原因。添加不必要的功能会增加设备被攻击的概率,安全性显然更低。
基本安全措施是有用的
一些基本的系统防御措施对于设备是否将受到 DDoS 攻击或被“砖头化”起到决定性了作用。反病毒黑客对用来对抗 Mirai 的Hajime 和 BrickerBot 充满了争议。许多人坚持认为,对于制造商和消费者来说,缺乏物联网安全的警告力度不够。他们认为,像BrickerBot 这样的恶意软件是一个具有激烈性质并且必要的措施,可以让它们受到一定伤害,但是在此过程中使不安全的设备免受其他 DDoS 攻击。
曾经有一个线上讨论指出,如果消费者的设备受到攻击变成“砖头”,那么制造商需要负责保修。制造商替换设备的成本太高,因此他们无法忽视安全性,才能迫使他们更加认真地采取安全措施。
反病毒黑客有一个普遍的争论:“为什么受伤的总是消费者?消费者何时才能维护自己的权益?” BrickerBot 或 Hajime 的作者完全没有义务和责任做好人,如果已经存在其他的恶意软件。他们还使用与黑帽子相同的技术,可能导致更多恶意黑客的扩散。
另一个潜在的情况是,反恶意软件将设备“砖头化”可能会杀死某人,尽管这并不是它原本的意图。像 IoT 冰箱这样的日常设备被黑客入侵,而使用者并未意识到它已经被破解。随后,一个人不知不觉地吃了冰箱里变质的食物,可能导致疾病甚至死亡。而且,我们知道,与联网的冰箱相比,有更多的和人体健康息息相关的设备,如联网的汽车、胰岛素泵、心脏植入装置等等。
事实上,食品及药物管理局(FDA)最近已经与Abbott Labs及其新收购的 St. Jude Medical合作。St. Jude Medical 设备有易受攻击的软件,允许未经授权的外部控制,这可能会导致电池耗尽或在错误的时间发生一连串的冲击(这些设备包括除颤器和起搏器)。FDA近期对母公司Abbott Labs对该问题的回应表达了不满,尽管 St. Jude Medical声称他们已经开发了可用于消除漏洞的软件补丁。
虽然我们简要介绍了一些基本的安全防御概念,但并不全面。但这些应该是确保 IoT 系统安全性的业界最佳实践的开始。这些手段将有助于保护或至少减轻所讨论的恶意软件的影响。虽然没有新技术,安全性方面永远无法做到“完美”,但是很明显,实施现有解决方案可以通过凭证、开放端口和启用自动化软件更新的基本安全性手段提示一定的物联网安全性。