
在安装“智能家居”系统时我们要承担什么风险? 通过智能手机上的应用程序,本地网络内部和远程驱动灯泡和水壶的驱动器。 如果安全性和锁定管理与智能系统相关联(例如Amazon Key),那么就可以清楚地知道哪个。 如果不是这样,那么从理论上可以想象咖啡机发生软件故障并随后引发火灾的危险。 但是最好不要幻想,而要确定知道。
卡巴斯基实验室ICS CERT团队的专家决定对公司一名员工的智能家居进行现场测试(
新闻 ,
博客文章 ,技术
文章 )。 黑客入侵是成功的:咖啡机并没有遭受损失,但是有可能获得对系统的控制,尽管在实验过程中有几个(非常现实的)假设。 这次攻击的不愉快后果之一是个人数据的泄漏:房屋的坐标,以及最可悲的是,智能手机的地理位置。 但是,实验以积极的结果告终:智能家居系统的制造商成功地消除了这些漏洞。
对黑客后果的艺术诠释在一篇技术文章中,相当多的空间专门用于相对无聊但很重要的要点:哪些活动未能成功入侵黑客,以及对智能家居系统的分析如何发现潜在的漏洞。 在开始实验之前,研究人员已经知道系统的制造商。 原来是
Fibaro ,它生产用于现代智能家居的各种设备,并提供与第三方设备的集成。 此外,所有者提供了一个重要线索-进入管理面板的永久IP。 顺便说一句,Fibaro本身不建议通过IP(仅通过云系统)打开对控制器的访问。 在此实验中,所有者故意留下的漏洞起到了作用。
从理论上讲,这样的系统可以从三个主要方向受到攻击:尝试以一种或另一种方式入侵控制设备,在服务的云部分中寻找漏洞或攻击连接到控制器本身的IoT设备。 在后一种情况下,它必须靠近它们,因此前两种选择看起来更有希望。
下一步是分析设备固件和WebAPI。 通常,在这种分析中,一切都结束了,新闻以“在设备中检测到有线密码”的形式发出。 但是就Fibaro而言,没有明显的安全漏洞。 但是收到了有关PHP中部分控制逻辑的实现的有用信息。 在未经授权的情况下,控制器仅给出设备的序列号,并且对于破解一块烙铁,该信息是无用的。 但是,事实证明,它使您可以破解服务的云部分。
反过来,访问云使您可以未经授权获取包含所有设备设置的SQLite数据库备份,并上传自己的备份。 从理论上讲,绕过授权可以(在修复漏洞之前)下载云系统所有用户的备份副本。 通过分析受攻击设备的真实基础,可以访问私人信息,包括房屋和安装了控制应用程序的智能手机的坐标。 这已经是一个严重的问题,因为(有一些限制)它使您可以确定系统所有者何时不在家。
此外,该数据库具有有关已连接的IoT设备的完整信息,以及用于访问设置的密码,但是通过添加“盐”进行了哈希处理。 对固件的分析表明,“盐”不是随机的,而是牢固地缝在设备中的。 从理论上讲,可以破解一个非常简单的密码,但是在这种情况下它无法工作。 SQLite库还包含用于连接到网络中其他设备的开放密码:如果这些密码与主密码一致,则也很容易破解控制器。
但是再次失败了:系统所有者熟悉基本的安全建议,并且没有在不同设备上使用相同的密码。 因此,我不得不应用社会工程学。 云系统中的一个漏洞允许仅在设备的序列号(如果可以从外部访问管理面板的情况下免费获得)的情况下,无需授权即可执行许多操作,从而使以下情况成为可能。 将嵌入了恶意脚本的设备的准备好的备份上传到“云”。 关于需要通过云系统的常规功能“更新”设备的消息已发送给所有者(通过电子邮件和SMS)。
由于系统所有者知道该实验,因此他立即意识到这不是一个真正的补丁。 但是总的来说,当用户通过熟悉的通信渠道收到一条合理的消息时,这是一个非常真实的场景,因此已经安装了备份副本。 由于对PHP代码的疏忽导致执行bash脚本,恶意代码已以系统权限执行:
在此,用户设置的参数(在正常情况下,即使系统管理员在设备上也没有超级用户权限)进入命令行的参数。 对参数的不充分验证使我们无法以root特权执行任意代码,并最终获得对该设备的完全控制。 同时,发现了SQL注入的可能性,但未使用:
研究人员不打算在真实房屋中破解咖啡机,因此他们将闹钟的旋律更改为“你好”。 云系统和控制器代码中提到的漏洞已关闭。 出于明显的原因,技术文章中未公开规避保护的特定方法-为了避免真正的攻击者在尚未更新的设备上使用它们。 但是在此实验中,该实验很好地显示了标题以外的内容:有很多方法可以研究设备保护,但大多数方法无济于事。 根据实际经验,设备制造商及其所有者都可以避免最简单的安全错误,例如嵌入式和可重复使用的密码。 但是,已确定了足够多的问题,这些问题至少会导致私有数据泄漏,并且在最坏的情况下,会绕过安全系统。
免责声明:本摘要中表达的观点可能并不总是与卡巴斯基实验室的官方立场相符。 亲爱的编辑们通常建议以健康的怀疑态度对待任何观点。