GWP-ASan 和 KFENCE

GWP-ASan 和 KFENCE 分别是面向用户空间和内核的概率性内存检测工具。启用后,少量分配会受到围绕已分配内存的额外内存页保护。这样可以以可忽略的性能开销检测缓冲区溢出和释放后使用错误。即使受保护分配的采样率很小,大规模部署时,它们也可以有效地检测内存安全漏洞。自推出以来,这些工具已帮助识别出许多平台漏洞,并已被证明是提高稳定性和安全性的宝贵工具。我们鼓励供应商启用它们,并密切监控最终用户设备上检测到的漏洞。

开发者应通过检查 /data/tombstoneslogcat 或监控供应商 DropboxManager 管道来检查是否存在最终用户错误造成的崩溃。

如需了解更多信息,请参阅我们的 Android 原生代码调试文档。

调试原生 Android 平台代码

GWP-ASan:用于检测用户空间内存安全漏洞

GWP-ASan 在 Android 11 中引入,用于用户空间堆分配。当 GWP-ASan 检测到漏洞时,它会记录崩溃报告(Cause: [GWP-ASan]:),并终止进程。错误报告包含额外的分配和解除分配信息,可更轻松地确定根本原因。

GWP-ASan 在启动时随机为 1% 的系统进程或应用以及在 AndroidManifest.xml 文件中设置 android:gwpAsanMode 的应用启用。

GWP-ASan

KFENCE:用于检测内核内存安全漏洞

Android 12 引入了 KFENCE,用于内核堆分配。当 KFENCE 检测到漏洞时,它会记录以 BUG: KFENCE, 开头的崩溃报告,禁用保护页并继续执行。这实现了一种内核漏洞检测机制,可最大限度地减少对用户体验的影响。

要详细了解 KFENCE,请参阅 https://linuxkernel.org.cn 上的文档