U-Boot 和内存权限

主要观点:解释为何不用 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 运行时服务应用正确映射。
阅读 21
0 条评论