物联网产品安全性分析:安全性逐渐退化前景堪忧

近两年CITL安全团队开始调查IoT物联网固件的二进制安全强化功能的状态。那么物联网产品的安全态势究竟如何呢?本文虫虫带大家一起学习他们的研究成果。

背景

CITL安全团队通过收集厂商在网站上发布的固件更新来建立信息库。为了分析这些信息,他们编写了一个管道来提取在镜像中找到的任何Linux根文件系统。在文件系统中,管道将可以找到的每个二进制文件输入到分析工具集中进行分析。

主要发现

CITL从这项研究中发现了许多重要的结论:

基本上,升级比新增加固件更容易删除安全强化功能。

在15年数据集中,没有任何一家厂商提供了积极的安全强化趋势。

在物联网产品中MIPS CPU体系结构最为常见,但是又是最不坚固的。

多个厂商之间存在大量重复的二进制文件,表明大家在使用一个通用的构建系统或工具链。

信息总计

数据日期范围:2003-03-24到2019-01-24:

22个厂商;1294种产品;4956个固件版本。

分析了3333,411个二进制文件

注意:并非所有固件镜像都使用发布日期进行标记,显示的时间序列或基于时间的分析都并非全部数据集。

信息对比

厂商分布

在信息库中,优博通(35%)和华硕(21.4%)的固件发行数量最多,其次是DD-WRT和D-link。

厂商二进制版本数略有不同,群晖占有最大份额39.1%。

CPU架构

相比较智能手机的ARM架构一枝独秀,在物联网产品中MIPS是一种非常流行的体系结构。在信息库中,MIPS是最常见的CPU架构,近十年来都领先于ARM。

CPU体系结构和CITL分数

CITL的团队通过使用汇总得分对二进制文件可以具有的所有不同安全强化功能进行归一化。该分数在0-100的范围内,简而言之,就是"在所有可能的安全功能中,启用了多少个?"。它还考虑到了诸如system(),strcpy()和其他常见的高风险函数。较高的分数意味着二进制文件启用了更多的强化功能,因此分数越高安全性越好。

下面是CPU架构的流行程度与安全加固平均得分进行比较。

在此图表中,可以看到橙色的二进制数和红色的安全加固平均分数。在最左侧看到aarch64(arm64)获得了最高平均得分,但该架构最不常见。最右边是二进制固件数最多以及和安全加固平均分数最低的mips。

变化趋势

2012 vs 2018总计

为了更好地了解厂商如何随着时间的发展趋势,分析中选择了两年(2012年和2018年),这两年中厂商都发布的大量产品。这两年的总体数字如何变化?

2012年

2018年

2012至2018间的变化

下表总结了从2012年到2018年的变化。回顾两年之间的变化,可以发现以下几点:

从2012年到2018年,DLINK失去了安全加强严重倒退。

虽然从2012年到2018年的大多数升级都是积极的,但升级的数量往往很小。

non-exec Stack是唯一采用率显著提高的功能。

厂商2012-2018年之间安全加强功能变化

升级是否会提高安全加强的覆盖率吗?

研究中重点关注了衡量单个产品的升级如何影响安全加强功能的覆盖范围的问题。

为了做到这一点,研究采用了固件的第一个发行版和最后一个发行版之间在覆盖范围上的差异,并对比变化,其增量的直方图如下所示。可以看出,对于大多数产品,得分的变化约为0。

现在考虑直方图的尾巴(0左右的区域)。仅比较积极变化和消极变化,发现减少总体安全加强的升级比增加整体安全加强的升级更常见。两者变化数目分别为156和282。

不安全升级案例研究:优博通

优博通Ubiquiti在信息库中最具加强分数回归性的升级案例,影响Ubiquiti UAP-HD系列产品。

2017年9月发布的升级极大地降低了UAP-HD产品线的总体安全加强得分。

为了缩小root的因素,分析中将数据分开并并排绘制了各种强化功能。下表描述了每个固件版本所保护的二进制文件所占百分比,以及该版本为当前版本的时间。

使用此图表我们可以看到,到2017年9月,relro从80%的覆盖率下降到了10%以下,stack_guards从70%下降到接近零,而aslr则被完全删除。

在发布时,没有可用的2019年版本数据。但是,根据观察到的安全加强特征的变化趋势表明,Ubiquiti最有可能没有使用任何形式的回归测试来验证其版本在发布之前是否通过了二进制安全加强。

随时间推移所有Ubiquiti产品的得分趋势图如下:

在查看所有Ubiquiti产品的时间序列时,我们可以看到一些有趣的趋势。

UAP-HD是升级分数回归的极端示例。

大多数产品在其生命周期内不会改变其得分。

分数范围很大,表明缺乏针对安全加强功能的集中构建/测试。

2018年,Ubiquiti发布了安全加强程度最高的产品和安全加强程度最低的产品之一,这表明其安全性做法随着时间的流逝越来越趋于分歧。

厂商安全功能雷达图

以下是按厂商分组的平均(平均)强化覆盖率的完整列表。研究中使用雷达图将其可视化,因为它给出了非常清晰的覆盖图:覆盖的区域越多,二进制安全加强效果越好(平均)。

不幸的是,除了少数例外,大多数厂商显示图形的覆盖面都很小。

如果所有二进制文件都具有全部5种基本安全功能,则满分为10分,得出的图表看起来像是常规的五边形。相反, 大多数厂商根本无法实现多边形状态。

重复的二进制文件

不同厂商固件中有大量的二进制文件,研究对不同厂商之间常见的重复二进制文件做了分析。通过查看在2个或更多厂商中发现二进制文件的SHA-256哈希的频率来衡量。

令人惊讶的是,结果发现至少两个厂商之间重复了3704个二进制文件。在9个不同的厂商中发现了一些二进制文件。

产品之间的重复也很普遍;在109种不同产品之间重复了一些二进制文件。手动浏览某些二进制文件时,发现由Buildroot(一种开放源代码Linux用户空间生成框架)构建的跨最多数量不同产品的二进制文件。假设使用了这样的框架可以解释厂商之间相同二进制文件的出现。无论原因如何,存在大量重复的二进制文件的事实既带来问题,也带来了可能的解决方案。

问题:这些重复的二进制文件为攻击者提供了大量的目标。较常见的二进制文件之一中的漏洞可能会被大量厂商和产品利用。

解决方案:许多产品共享一个共同的来源和/或构建系统这一事实意味着改进安全加强可能会产生巨大的影响。例如,在Buildroot的情况下,添加二进制强化可能会影响物联网行业的很大一部分。

结论

研究描绘了物联网生态系统中二进制强化的严峻形势。厂商未能实现基本的安全加强功能,这包括有数十年来的最佳安全实践。

更令人担忧的是,厂商显然缺乏对这些功能的测试。如果厂商能够从其产品系列中删除大部分漏洞利用缓解措施,那么它可能将破坏要求客户应用软件升级的价值。

这些设备很多都是低成本/大批量的,厂商以最短的开发时间,将新产品推向市场。这意味着安全性可能不在优先级考虑中。

对于家庭路由器和IoT设备,这些设备位于用户家庭网络内的特权位置。无论设备的所有者是否是预定的目标,这些设备都是僵尸网络和其他攻击者基础设施的理想藏身之处。简而言之,加强将这些设备安全是一个好主意。

不幸的是,如果最小安全加强的趋势没有改变,这些设备将继续成为这类活动的软目标。

二进制文件大量重复的现象表明,可能通过在单个点上解决某些问题。比如通过Buildroot默认安全,解决这类依赖产品的安全。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191003A04UE600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券