solidot新版网站常见问题,请点击这里查看。
Linux
WinterIsComing(31822)
发表于2020年10月22日 17时41分 星期四
来自超时空碎片
HardenedLinux 写道 "最近Linux内核v5.10合并了Nitro Enclaves的代码。Nitro Enclaves( NE)是AWS EC2的enclave(飞地)方案,针对敏感业务和常规EC2实例虚拟主机之间进行隔离的同时也可以提供远程证明等安全服务,主VM启动后可以派生一个enclave后进行资源分配(CPU,内存),每个enclave会映射一个运行于主VM的进程从而使用ioctl()和NE driver进行通信,每个enclave都运行独立的OS,即一个小型版本的GNU/Linux系统,这个系统会把内核镜像,ramdisk等都打包成统一的EIF(Enclave Image Format)格式。Enclave基本上是一个和Atomic类似的只读系统,这降低了攻击平面,而远程证明可以通过AWS的KMS服务完成,其威胁建模中最大的风险来自于虚机逃逸漏洞和云厂商的作恶,从这个层面上看,未来AWS的EC2公有云用户可以收益于NE,但真正的福音恐怕是AWS Outposts的用户。从NE的设计和实现可以看出,AWS对于用户的需求和场景定位非常清晰,这避免了Intel SGX设计过度复杂导致的一系列问题。"
Linux
WinterIsComing(31822)
发表于2020年10月22日 15时04分 星期四
来自月球人
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流程以及生产环境安全方面都会大幅度提升软件质量以及安全性。"