目录
一、问题描述
二、严重性评估
三、缓解措施
四、Patches
五、解决方案
六、参考
七、OP-TEE ID
八、报告人/单位
九、更多信息
十、时间线
一、问题描述
SEAL研究人员和工程师成功地通过利用电磁故障注入的glitch攻击,在树莓派3设备上攻克了签名检查。通过侧信道攻击(电磁脉冲注入),他们成功地清除了寄存器,使寄存器值全部为零。SEAL将攻击范围缩小到单个汇编指令,使他们能够非常精确地进行定位攻击。由于OP-TEE的TEE SUCCESS值被指定为“0x00000000”,他们的攻击成功地欺骗了TA签名检查,使其认为签名是有效的,从而可以加载攻击者开发的恶意TA到Trustzone中。
二、严重性评估
低,因为这是一种复杂的攻击,没有暴露任何密钥。然而,根据故障注入攻击发生的地点和时间,可能会导致未定义的行为,可能更严重。
三、缓解措施
不同的SoC具有不同级别的硬件安全性来防御这些类型的攻击。检测电压下降、检测时钟变化、保护electronics等。当这些存在于设备上时,应该加以利用。从软件角度来看,情况更加复杂,然而有一些“最佳实践”的对抗措施已经证明能够大大降低这类攻击的有效性。OP-TEE项目已经调查了各种软件缓解模式。我们与SEAL团队合作得出的结论是,所提出的软件缓解措施是有效的,因为在实施我们的缓解补丁后,SEAL团队无法克服签名验证。
四、Patches
optee_os.git
- Pull request #5646 - Fault mitigation
每个合并的提交在哪里(应该像这里说的那样从上到下应用):
- Basic fault mitigation routines
- core: add fault mitigation tests
- libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pss_verify_ext()
- libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pkcs1_v15_veri…
- core: libmbedtls: add fault mitigation in crypto_acipher_rsassa_verify()
- core: ltc: add fault mitigation in crypto_acipher_rsassa_verify()
- drivers: crypto: add stubbed fault mitigation in crypto_acipher_rsass…
- core: add fault mitigations to shdr_verify_signature*()
- core: add fault mitigations in buf_ta_open()
- core: add fault mitigations in ree_fs_ta_open()
五、解决方案
确保在构建中包含上述补丁。
六、参考
详情请参考如下两篇论文:
1、https://people.linaro.org/~joakim.bech/reports/Breaking_cross-world_isolation_on_ARM_TrustZone_through_EM_faults_coredumps_and_UUID_confusion.pdf
2、https://www.ndss-symposium.org/wp-content/uploads/2024-499-paper.pdf
七、OP-TEE ID
OP-TEE-2022-0001
八、报告人/单位
[1] SEAL -安全嵌入式架构实验室,印度理工学院Kharagpur - NimishMishra (@NimishMishra), Anirban Chakraborty和Debdeep Mukhopadhyay。
九、更多信息
有关OP-TEE中安全事件处理的更多信息,请阅读在https://www.trustedfirmware.org的“安全”页面中可以找到的信息。
十、时间线
2022-08-26:初始报告发送给TrustedFirmware。
2022-08-26:确认收到报告。
2022-08-29: OP-TEE维护人员内部评估。
2022-10-06:更新可信干系人。
2022-11-24:向公众提供建议。