Linux内核v5.10合并ARM64的MTE

Linux  /  houtizong 发布于 2年前   218
HardenedLinux 写道 "继ARMv8.3的Pointer Authentication后最近Linux内核v5.10合并了ARMv8.5-A的一个重要特性:MTE( Memory Tagging Extension),由于ARM64并未完全使用64位的地址空间而是48位(4级页表+4KB页大小)或者52位(3级页表+64KB页大小),借助于TBI( Top Byte Ignore)忽略掉最高有效位得以让MTE使用56--59的4位作为tag,每个tag对应16-byte作为TG( Tag Granule),由新指令IRG生成“密钥”随机数存储到tag部分的4位地址,相关内存访问都会对比tag部分的“密钥”,如果失败则发起异常处理。4位地址极其有限不可能保证地址空间中没有重合,但MTE的目标是保证临近地址的至不同即可。目前Linux内核v5.10支持用户空间的程序使用MTE,内核本身的支持还需要一段时间,用户空间的程序可以通过简单的mmap(),mprotect()以及prctl()系统调用实现 。现在还没有公开发售的支持ARMv8.5-A的硬件,软件生态的完善可以为未来( 2021?)的硬件有更好的支持。在过去超过30年的内存攻防对抗的头10年攻击的一方一直占据优势,直到PaX的问世开启了操作系统的防御之路,于2003年公开的pax-future.txt中谈到了内存污染攻击的三大方法,其中"添加/执行任意代码"和"执行现有代码,但是打破了程序原本的执行顺序"已经通过PAX_PAGEEXEC/KERNEXEC/NX以及PAX_RAP相关CFI实现等mitigation解决,而data-only attacks虽然已经抑制到较小的维度但依然没有完全解决,毕竟类似KERNSEAL实现如果没有硬件加速的前提下性能的表现不被大部分用户所接受所以只能应用于非通用场景,不论如何,MTE的确是过去17年系统安全领域最重要的里程碑之一(即使实现和工程打磨还需要不少的时间),未来的QA流程以及生产环境安全方面都会大幅度提升软件质量以及安全性。"

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客