什么是BTI及云途芯片是否支持?
-
BTI 的全称是 Branch Target Identification(分支目标识别),是ARM从 ARMv8.5-A 架构开始引入的一项硬件安全特性。它的核心目标是防御一类常见且危险的攻击——面向返回编程(ROP) 和面向跳转编程(JOP) 攻击。
- BTI 的工作原理:一个简单的比喻
你可以把程序的执行过程想象成快递员(CPU)按照一串连续的地址(指令)送货。当遇到“如果...就...”或“调用函数”时,快递员需要根据指示跳转到一个新的地址(分支跳转)。
- 没有BTI时:快递员只关心地址是否正确,不关心这个跳转指令是谁给的。攻击者可以像篡改路标一样,精心拼凑程序中已有的代码片段(gadgets),引导程序跳转到恶意代码上执行。
- 有BTI时:在程序编译时,合法的“跳转指令”和“跳转目标地址”都会被标记上特殊的“暗号”(PAC指令)。快递员在执行跳转前,会检查两端的“暗号”是否匹配。如果不匹配,则意味着这可能是一次恶意篡改,CPU会立即触发异常,阻止攻击。
- BTI 的主要用途
它主要被应用在复杂的应用处理器中,例如:
- 运行丰富操作系统(如Linux、Android)的设备:手机、平板、服务器。
- 对安全性要求极高的环境:金融、国防、基础设施等领域。
- 容易遭受复杂网络攻击的场景:因为ROP/JOP攻击是远程代码执行的常用手段。
注:云途目前全系不支持BTI
- BTI 的工作原理:一个简单的比喻
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...