Control Flow Integrity in the Android kernel

随机文章
原文链接:android-developers.googleblog.com

Android kernel 中的控制流完整性(CFI)

关于控制流完整性,这里摘录一个解释:

CFI 防御机制,其核心思想是限制程序运行中的控制转移,使程序始终处于原有的控制流图所限定的范围内。具体做法是是通过分析程序的控制流图 (CFG),获取间接转移指令(包括间接跳转、间接调用和函数返回指令)目标的白名单,并在运行过程中,核对间接转移指令的目标是否在白名单中。控制流劫持攻击往往会违背原有的控制流图,CFI 使得这种攻击行为难以实现。

从 Android 的实现来说,CFI 的实现多数还是从代码的执行虚拟机层面来实现的,然后嵌入到 Linux kernel,作为性能一般的手机系统的实现,思路值得一看。