智能锁中的硬件漏洞

智能锁中的硬件漏洞

我们评估智能锁的硬件安全级别,拆卸一个,并分析构成它的元素

我们拿到了Yale Linus智能锁,您可以通过智能手机操作,因此我们认为这是一个练习我们过去在这里看到的许多硬件黑客概念和物联网安全测试方法的绝佳机会。在接下来的几篇文章中,我们将了解智能锁的安全评估过程,并告诉您我们的结论。

获取智能锁硬件分析的信息

硬件中存在设计缺陷可能会使智能锁不再安全。这种安全漏洞将允许我们未经授权与设备进行交互。因此,彻底审查硬件是一项关键任务。

如果您熟悉OWASP FSTM,您会知道这种方法的第一步是查找制造商的参考、设计或代码泄漏,以查找设备的固件。

不幸的是,在开放源、制造商的网站和GitLab、GitHub、git等代码存储库中的初始搜索没有产生任何结果。我们还搜索了电子开发人员论坛和该设备中使用的DA14680微控制器制造商的Dialog/Renesas论坛。尚未有可能找到这把锁上的相关信息。

硬件分析期间要审查的方面

在用尽了在线识别和下载固件后,我们继续执行OWASP FSTM建议的下一步。此步骤包括在主板上搜索端口(JTAG/SWD调试、UART接口、SPI到闪存),允许我们从物理设备中提取固件。

设备被完全拆解以定位这些端口,并检查其组件。建议定位智能锁板的操作区域,以缩小可能存在肉眼无法识别的端口的位置。

PCB分析应找到暴露的端口和测试点,这些端口和测试点可能是调试接口的一部分,以与微控制器通信。调试端口不应出现在生产硬件设计中,因为启用后,它允许控制固件执行线程

图片[1]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

负责控制智能锁操作的微控制器属于Dialog/Renesas制造商。具体来说,它是DA14680A型号。确定它使用Cortex M4架构,并管理位于电路板上的各种组件,如加速度计/陀螺仪、磁力计、照明控制器、实时时钟和电流放大器。

进一步审查组件数据表可以帮助确定使用的通信总线类型

正在分析的微控制器有多种类型的调试端口,因为它具有SWD、UART、I2C和SPI调试功能。应该注意的是,UART、SPI和I2C通信协议除了提供调试功能外,还可以用作传感器和微控制器之间的通信端口。

打开UART接口允许用户了解被审计系统的引导过程或调试。虽然它们不像调试端口那样具有潜在的危害,但有时,此接口提供的信息可能对漏洞至关重要。因此,不建议提供它。例如,在microlinux系统上,可以从串行接口执行固件转储。

在I2C接口上很少发现闪存,因此应该检查它们。这些接口处理敏感信息(如交换身份验证凭据)是很常见的。有关通过此总线通信的设备的更多信息也可以在其中找到。

SPI接口主要执行高速数据传输,通常与RAM或闪存等设备交换信息。闪存数据通常被加密传输,因此最好使用调试端口(UART调试)来读取它们。

正如开头提到的,在许多情况下,板上没有这样的端口来捕获信息。有必要使用测试点、焊接电线或将测试夹放在组件的腿上,以识别它是否是通信总线,并能够读取它。

位于智能锁上的通信端口

在被研究的设备的板上,几乎所有提到的端口都已定位。

I2C端口

图片[2]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

对I2C总线通信进行了分析,并检测到与4个设备(磁压计、加速度计、LED控制器和实时时钟)相对应的通信帧

总线上是否存在可以提取数字证书的加密芯片,在本分析中尚未找到。

图片[3]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

SPI端口

图片[4]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

板上丝网印刷的SPI总线(带有MISO、MOSI和SCK标签)已被识别。通信框架已从此总线中提取。在查看信息后,发现此数据交换不属于SPI FLASH存储器,因此没有获得有用的信息。

图片[5]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

SWD端口

图片[6]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全
图片[7]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全
图片[8]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

两个SWD调试端口已通过PCB上的丝网标签定位,一个在电路板的上侧,另一个在下侧。在底部,有必要将连接焊接到定位的测试点。在顶部,建议尽可能这样做;特定连接器和标准连接器的适配器已焊接。

在测试了所有可能的配置后,微控制器没有响应调试接口,因此怀疑轨道没有物理连接到引脚,或者被一些不允许直接电气连接的机制禁用。

得出这些结论是因为在使用配置为SWD调试器的JTAG启动制造商的应用程序(SmartSnippets Toolbox)后,无法读取微控制器标识。

图片[9]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

UART端口

图片[10]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

同样,通过电路板(TX,RX)的丝网印刷识别了UART总线其中无法捕获任何通信。与SWD一样,这可能是由于设备禁用了调试模式。

图片[11]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

与设备组件相关的风险

在审计期间,识别组件可以让您知道它们是否过时且没有收到更新。有时,组件被标记为NRND(不建议用于新设计),因为它们在操作上有缺陷或不伦次,存在无法纠正的缺陷,或者它们本身会造成安全问题的使用案例。鉴于这些可能性,在进行设计时,最合适的做法是检查要使用的产品的生命周期,以避免在不久的将来出现意外。

最常遇到安全问题的组件是与通信相关的组件,例如,有线的CANBUS或Bacnet等总线,以及无线通信中的蓝牙或WiFi。

标有NRND的DA14680A微控制器在分析的锁中脱颖而出。

微控制器负责BLE通信和锁定驱动。结论是,微型负责无线通信,因为它直接连接到无线通信接收天线,众所周知,它负责开锁和关闭,因为没有其他设备控制锁。

图片[12]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

DA14680A很容易受到蓝牙Sweyntooth漏洞的影响,该漏洞已经存在两年多,最近已在这个微控制器中修补。

图片[13]-智能锁中的硬件漏洞 - JINGGR安全-JINGGR安全

出于这个原因,应该使用寿命延长的集成电路。有时,PCB设计会被重复使用,必须注意预期的生命周期。在这种情况下,如果锁没有通过软件更新,它们将很容易被畸形的蓝牙数据包重新启动,导致拒绝服务问题。

视频已经定位,您可以看到具有相同微控制器和来自同一原始制造商的设备如何周期性重启。以下是拒绝服务失败如何持续发生的视频。

结论

已经有可能识别嵌入式设备的所有组件,并发现了使用的通信。

被分析设备在设计中没有出现漏洞。然而,有些方面需要改进,例如带有丝网印刷的测试点的存在,有助于定位通信端口。

没有通过I2C和SPI通信总线识别出敏感信息,UART和SWD(JTAG)调试总线被禁用。

由于无法通过所使用的技术获得固件,因此有必要执行芯片技术来提取其固件,这更复杂,在焊接操作期间有损坏集成(在这种情况下,DA14680 micro)的风险。

分析的硬件具有许多组件和功能,这使得从所有这些组件和功能中获取信息的任务非常耗时。

微控制器的BGA封装为锁增加了额外的安全性,防止在不执行芯片的情况下读取。

总体安全级别相当好。虽然找到了UART接口和SWD调试端口,但多亏了丝网印刷的帮助,这些都得到了保护和禁用。I2C和SPI通信被捕获,但没有提供有用的信息,也不允许转储固件或加密密钥。

DA14680集成单元值得注意,因为它是一个过去造成问题的脆弱点,其支持已宣布停止。

© 版权声明
THE END
喜欢就支持一下吧
点赞79 分享