Linux 6.2 为 AArch64 实现动态 ShadowCallStack 支持
使用 Clang 构建的 Linux 内核在 5.8 版本中已支持 ShadowCallStack (SCS)。ShadowCallStack 是一种 LLVM 插桩模式,可将函数的返回地址保存到非叶函数的函数 prolog 中单独分配的 ShadowCallStack,并从函数 epilog 中的 ShadowCallStack 加载返回地址,从而防止返回地址覆盖(比如堆栈缓冲区溢出)。返回地址也存储在常规堆栈中,以便与展开程序兼容,但除此之外就没有用处。这样可以确保攻击行为(修改常规堆栈上的返回地址)不会对程序控制流造成任何影响。
在 aarch64 上,此插桩机制使用x18
寄存器来引用 ShadowCallStack,这意味着不必将对 ShadowCallStack 的引用存储在内存中。因此,实现的运行时可避免将 ShadowCallStack 地址暴露给能够读取任意内存的攻击者 。
目前尚处于开发阶段的 Linux 6.2 正在实现动态 ShadowCallStack,以避免 SCS 在支持指针身份认证 (PAC) 的处理器上的开销。
正如上文所提到的,ShadowCallStack 对于防止返回地址覆盖(比如堆栈缓冲区溢出)很有用。但是在具有指针身份验证的 AArch64 处理器上,很难证明 SCS 的有用性。因此对于 Linux 6.2,计划启用动态 SCS 支持,允许它在启动时进行启用/禁用。此项动态 SCS 支持特性是在启动/运行时通过代码修补完成的。
因此,对于那些由于其他硬件保护已经到位而不想为其 AArch64 SoC 提供此安全功能的用户来说,不需要禁用 SCS 的替代内核构建。通过 Clang 为 ARM64 实现动态 SCS 支持的代码如果没有出现任何问题,将在下个月提交到 Linux 6.2 合并窗口。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 14 将全面支持预测性返回手势
Google 在 Android 13 系统中内置了一项名为 Predictive Back Gesture(预测性返回手势)的功能。这是一套 Google 提供的手势操作解决方案,可以让用户在进行返回滑动操作时,让应用窗口缩小,从而显示出主屏幕的预览。 虽然这是一套快速、自然且符合逻辑的交互方式,但仍然有一些 Android 用户反馈表示 "我看不到我在返回主屏幕之前的最后一个屏幕"。造成这个问题的原因就是目前这个功能仅仅只是通过提供视觉反馈提醒用户他们正在退出应用程序,但一些用户由于不清楚自己到底返回到应用的哪一个页面层级,时不时就会错误地退出了一个应用程序。 随着 Android 14 的不断开发,Google 将进一步扩展这个功能。在近日举办的 Android Dev Summit 上,Google 表示不仅将为 Android 14 默认带来预测性返回手势功能,这个功能还将适用于应用程序内部,向用户展示上一个页面层级的屏幕预览。 有了 Android 14,届时用户在应用内滑动时也将会获得类似的体验。通过利用默认或自定义动画,让用户知道返回手势将带他们返回到哪个页面。 如果你...
- 下一篇
Lakehouse系列 | StarRocks支持Apache Hudi原理解析
作者:王日宇,StarRocks Active Contributor,阿里云高级研发工程师 近年来,随着大数据分析技术的进步,大量业务场景对数据仓库的实时性提出了更高的要求,Lakehouse 架构逐渐被各大公司熟悉和接受,Apache Hudi(以下简称 Hudi)、Apache Iceberg(以下简称 Iceberg)、Delta Lake 都被看成是下一代数据湖的解决方案,并被称为数据湖技术三剑客。 StarRocks 作为当前最流行的 OLAP 分析引擎之一,阿里云EMR OLAP 团队与 StarRocks 社区在 2021 年就开始合作,共同设计并实现了 StarRocks Connector 框架,用于统一外部数据源的接入分析,并且基于 Connector 框架完成了对 Hudi、Iceberg、Delta Lake 等主流数据湖表格式的接入。 本文围绕以 Hudi 为中心的数据湖生态,详细介绍 StarRocks 是如何实现快速分析 Hudi 数据湖格式,并给出完整的使用案例。 #01 StarRocks 支持 Hudi 的现状 — Hudi 提供了两种类型的表:...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16