多核和安全问题背景下的内存保护单元/MMU

信息安全 访问控制
2021-08-15 07:59:23

我正在使用一个芯片组,它使用 ARM cortex -A7 作为应用处理器和 ARM 9 基带处理器。

我有一个主要担心,因为 ARM cortex A7 正在使用 android,MPU 和/或 MMU 可能会被颠覆以查看包括 ARM9 端在内的整个 DRAM。尽管该架构似乎表明他们正在使用 MPU,但我担心的是,由于 android 内核可以被破坏,因此 MPU 可以在运行时重新配置以消除限制。令人担忧的不仅仅是这个嵌入式设备的 Android 内核可能被植根,而且可能会发生特权升级,以便内核进程在运行时可以修改 MPU 寄存器(我猜)。尽管这些处理器确实具有信任区,但芯片组中没有任何内容被创建,这意味着没有 NSbit 的概念来划分安全与非安全世界。

我可以查看哪些类型的漏洞,我的担忧是否合法?最后,该设备具有安全启动功能,但它的应用程序处理器方面是我非常担心的,当然在运行时也是如此。任何有关潜在漏洞和/或解决方案的帮助将不胜感激。

1个回答

我见过的所有采用这种配置的 SoC 都通过让 MPU 寄存器只能从“安全”基带处理器或 TrustZone 内写入来处理这种情况。正如您所写,几乎不可能让应用程序世界免遭黑客攻击/root,但只要不能从 Linux 内核重新配置 MPU,那么您仍然可以获得合理的保护。我不同意非开源微内核会更安全的说法——基带代码中有很多漏洞......

编辑:我没有专门使用过 Qualcomm MSM8x10/8x12(Snapdragon 200 系列),但架构看起来非常熟悉更强大的 Snapdragon 400/600/800 芯片,到处都是 xPU(保护单元)(保护内存和外围设备)。

如果不尊重 NS 位(在我使用过的所有其他 Snapdragon SoC 中处理),我也会感到非常惊讶。不过,安全解决方案的细节是高通必须通过正常支持渠道向您披露的。

就攻击向量而言,有很多不同的方法,从利用人们忘记禁用的 JTAG 接口到对低级软件的非常高级的攻击。最后,这一切都取决于您的应用程序的目标有多有趣 - 手机传统上是一个高价值目标,人们试图访问基带以更改 SIM 锁和/或 IMEI/MEID 号码。如今,大多数黑客更关心获得对应用程序端的完全访问权限(生根),因此只要您不让这太难,希望他们不会打扰您的基带。

如果安全性设置正确,那么在非安全世界中访问应用程序端的 TrustZone 可信执行环境 (TEE) 内存和访问基带内存应该是非常困难的。如果不是这种情况,芯片组将无法被批准用于更严重的 DRM 方案。