主要观点:解释为何不用 RWX 及相关内存权限设置对安全重要,介绍 U-Boot 中内存权限现状及相关补丁设置,探讨仍存在 RWX 内存的原因及未来工作。
关键信息:
- 映射可执行文件用特定权限而非 RWX 能减少攻击面,Arm 架构配置 MMU 复杂且依赖系统配置。
- U-Boot 中内存分正常内存(映射为 RWX)和设备内存(映射为 RW), relocates 时不改变内存权限。
- 新增补丁集
CONFIG_MMU_PGPROT
,但因某些 bug 暂不能默认启用,启用后可查看新映射。 - 部分内存仍为 RWX 是因为 EFI 运行时服务及 SetVirtualAddressMap 需求。
重要细节: - 在不同翻译 regime 下需设置不同权限,如在 QEMU 中无虚拟化运行 U-Boot 需设置 PXN/UXN。
- 启用补丁集后,U-Boot 迁移到特定地址有了正确内存权限。
- 未来工作包括重写链接脚本以分离 EFI 内存与.text,以及为 EFI 运行时服务应用正确映射。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。