ARM架构安全特性之防御执行技术

安全之安全(security²)博客目录导读

目录

1、侧信道攻击威胁

2、推测屏障Speculation Barriers

3、栈溢出攻击威胁

4、指针认证PAC

5、分支目标识别BTI

6、内存安全违规威胁

7、内存标记扩展MTE

8、加强数据保护

9、特权不可访问(Privileged Access Never (PAN))


软件很少是完美的,而且防御性编程的原则并不总是应用于数百万行代码的所有部分。为了应对这一点,现代编译器和处理器必须在执行点防御漏洞,减少重新编码的需要。Arm 架构包括帮助防御控制流攻击、数据访问攻击以及缓解侧信道攻击的技术。

1、侧信道攻击威胁

攻击者可以利用现代处理器中乱序执行(out-of-order execution)和推测执行(speculative execution)的不良副作用。此攻击可用于破坏操作系统和进程之间的分离,以及进程之间的分离以窃取数据。

2、推测屏障Speculation Barriers

屏障指令可以阻止预测执行,从而缓解缓存推测侧信道攻击(cache-speculation side-channel attacks),例如 Spectre 和 Meltdown。

3、栈溢出攻击威胁

当软件由于实现错误而容易受到攻击时,可以提高抵抗攻击的能力。这可以通过重新编译现有软件,以在支持安全增强的指令集架构上运行,并使用了解这些指令集架构增强的编译器来实现。

防御技术,如仅执行内存(XOM)和代码签名,已导致攻击者使用了越来越多的攻击手段,如 JOP、ROP 和使用后释放(use-after-free)。

4、指针认证PAC

攻击经常试图颠覆软件的控制流程。PAC 是在 Armv8.3-A 中引入的一项功能,用于阻止这些类型的攻击。指针的高位用于存储 PAC,即对指针值和一些额外指定的上下文的加密签名。引入了特殊的指令,可以:

  • 给指针添加 PAC
  • 验证经过身份验证的指针的 PAC
  • 恢复原始指针值

这使得系统可以对某些指针是否被攻击者篡改做出具有密码学强度的保证,从而极大地提高了应用程序的安全性。

5、分支目标识别BTI

在发现可利用的漏洞后,攻击者的下一个目标是执行代码以控制所访问的机器。修改控制流的技术包括 ROP 和 JOP 攻击。这些技术寻找易受攻击程序的小工具(称为 gadgets),可以将它们链接在一起以实现攻击者的目标。

Armv8.5-A 引入了 BTI。支持 BTI 的系统确保间接分支只能target到可接受指令开始的代码位置。这降低了攻击者执行任意代码的能力。

这个特性与 PAC 一起工作,显著减少了攻击者可用的 gadgets 数量。

6、内存安全违规威胁

当对象被访问超出其真实边界时,空间安全性就会被违反。例如,当栈上的缓冲区溢出时。这可能被利用来覆盖函数的返回地址,这可以成为几种类型攻击的基础。

当对对象的引用在作用域外被使用时,通常是在对象的内存被重新分配后。例如,当包含某种函数指针的类型被恶意数据覆盖时,也可能会形成几种类型的攻击的基础。

MTE 提供了一种机制来检测内存安全违规的两个类别。通过增加测试和模糊测试的效果,MTE 在部署前有助于检测潜在的漏洞。在部署后,MTE 还有助于规模化地检测漏洞。

7、内存标记扩展MTE

内存标记使开发人员能够识别程序中的空间和时间内存安全违规。它旨在快速检测内存安全违规,并提供针对试图颠覆代码的攻击的强大防护。内存安全缺陷占被利用的安全漏洞的很大比例,而 MTE 实现了对内存的锁与钥匙访问。如果钥匙匹配锁,则允许内存访问;否则,访问可能会被记录或出现故障。通过这种方式,难以捕捉的内存安全错误可以更容易地被检测和消除,从而提高可靠性并改善产品安全性。

8、加强数据保护

标准的权限模型是,具有更高权限的实体可以访问属于较低权限实体的任何内容。例如,操作系统(OS)可以查看分配给应用程序的所有资源。但这并不总是理想的。恶意应用程序可能会尝试欺骗操作系统代表应用程序访问数据,而应用程序本不应该看到这些数据。

9、特权不可访问(Privileged Access Never (PAN))

PAN 是一项 Arm 安全功能,有助于防止操作系统内核(或虚拟机监控程序)中的漏洞被利用,以错误地访问分配给用户模式的内存。即使内核被欺骗去访问由用户模式攻击者控制的页面,PAN 也会阻止访问。

更多详情请参考该博客:ARM PAC/BTI/MTE三剑客精讲与实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/632598.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity Mirror 从入门到入神(一)

Mirror从入门到成神 文章目录 Mirror从入门到成神简介NetworkClientRegisterPrefabConnect (string address)Disconnect ()activeactiveHost NetworkServerSpawn 简介 Mirror是一个unity网络同步框架,基于MonoBehaviour生命周期的回调的基础上进行数值的同步&#…

算法day08

第一题 1. 两数之和 由上述题意所知,本题要采用二分法的解题思路,二分法主要是面向有序的数组且也满足二段性的数组,所谓二段性就是在一定的规则下能把该数组分成两个部分; 本题注意要点: 1、循环结束的条件&#xff…

MMDetection内三个实用工具详解:日志分析、结果分析、混淆矩阵

实用工具目录 一、日志分析使用方法实际案例 二、结果分析pkl结果文件生成使用方法实际案例 三、混淆矩阵使用方法实际案例遇到的UserWarning解决方案 MMDetection官方除了训练和测试脚本,他们还在 mmdetection/tools/ 目录下提供了许多有用的工具。本帖先为大家重点…

Blender雕刻建模_笔画,镜像,动态拓扑

笔画 笔画选项,一般是对刷子(自由线)工具设置 描边方法如下:标红的为常用 -间隔:按一定间隔应用笔画的结果 例如:笔刷半径50,笔画间隔100%(笔刷直径的百分比)&#x…

聚苯并咪唑(PBI)为超高性能工程塑料 未来应用前景较好

聚苯并咪唑(PBI)为超高性能工程塑料 未来应用前景较好 聚苯并咪唑(简称PBI),是一类以苯并咪唑基团作为结构重复单元的杂环聚合物。聚苯并咪唑不溶于水,溶于强极性溶剂,具有耐高温、耐腐蚀、抗辐…

Java小游戏之汤姆猫

背景: 博主写过羊了个羊小游戏,客户觉得羊了个羊同学写过了,想换一个,于是笔者想到了汤姆猫。就是那个以前在苹果手机上的猫。 过程: 初始会有一个猫的图片展示,然后你点击按钮,猫会有不同动作…

Python筑基之旅-溯源及发展

目录 一、Python的起源 二、Python的版本更替及变化 三、Python的优缺点 四、Python的发展方向 五、Python之禅 六、推荐专栏/主页: 1、Python函数之旅:Functions 2、Python算法之旅:Algorithms 3、个人主页:https://mye…

湖南大学OS-2018期末考试(不含解析)

前言 不知道哪里翻出来的一张,看着确实像期末考卷,暂且放一下。或许做过,或许没做过。 总之答案不记得了。做完可以评论区发一下或者找我发出来。 共6道大题。 一、(30%) 1. (6%) 进程间通信的两种方法分别是什么&…

Media Encoder 2024 for Mac:专业的音视频编码神器

Media Encoder 2024 for Mac,作为Mac用户的专业音视频编码工具,凭借其强大的功能和用户友好的界面,深受专业人士的喜爱。它支持将各种格式的音视频素材转换为多种流行格式,如MP4、MOV、AVI等,满足不同的播放和发布需求…

python:functools.partial和functools.wraps使用

python:functools.partial和functools.wraps使用 1 前言 python内置的functools模块,提供了一些非常好用的类或者方法,其中functools.partial和functools.wraps的使用频率较高,本文将针对其分析使用。 2 使用 2.1 functools.p…

No module named ‘sklearn.metrics.ranking‘ 解决方法

错误代码 from sklearn.metrics.classification import * from sklearn.metrics.ranking import * 错误原因 sklearn这个文件夹下的_classification和_ranking前面有下划线! 解决方法 第一步:找到sklearn位置,可以打开命令行输入 pip sh…

ASTM通信协议校验和计算方法

Lis通信接口开发 <STX> FN <Frame> <ETB>or<ETX> <CS><CR> <LF> 其中&#xff1a; <STX>&#xff1a;起始帧头&#xff08;0x02&#xff09; FN&#xff1a;帧号&#xff08;范围0&#xff5e;7&#xff0c;1&#xff5e;7完…

软考--试题六--抽象工厂模式(Abstract Factory)

抽象工厂模式(Abstract Factory) 意图 提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定他们具体的类 结构 适用性 1、一个系统要独立于它的产品的创建、组合和表示时 2、一个系统要由多个产品系统中的一个来配置时 3、当要强调一系列相关的产品对象的设…

问界新M5交付,「975」组合站稳中国豪华智电定位

‍作者 |老缅 编辑 |德新 5月15日&#xff0c;问界新M5已正式开启全国用户交付。从网传图片可以看到&#xff0c;华为余承东以及赛力斯AITO问界BU总裁何利扬亲自出席了首批交车仪式。 4月23日&#xff0c;在不到1个月前&#xff0c;新M5发布。新M5共推出三款车型&#xff1a; …

基于ASN.1的RSA算法公私钥存储格式解读

1.概述 RFC5958主要定义非对称密钥的封装语法&#xff0c;RFC5958用于替代RFC5208。非对称算法会涉及到1对公私钥&#xff0c;例如按照RSA算法&#xff0c;公钥是n和e&#xff0c;私钥是d和n。当需要将公私钥保存到文件时&#xff0c;需按照一定的格式保存。本文主要定义公私钥…

leetcode刷题(6):二叉树的使用

文章目录 104. 二叉树的最大深度解题思路c 实现 94. 二叉树的中序遍历解题思路c 实现 101. 对称二叉树解题思路c 实现 96. 不同的二叉搜索树解题思路c 实现 102. 二叉树的层序遍历解题思路c 实现 104. 二叉树的最大深度 题目: 给定一个二叉树 root &#xff0c;返回其最大深度…

一文读懂deepSpeed:深度学习训练的并行化

引言 在深度学习领域&#xff0c;模型训练的过程不仅资源密集&#xff0c;而且技术复杂。近年来&#xff0c;随着模型规模和数据量的不断增长&#xff0c;深度学习训练面临着越来越多的挑战。这些挑战主要体现在计算资源的需求、训练效率、模型复杂度以及内存管理等多个方面。…

postgres 修改系统时间测试

修改系统时间 [rootmmsql01 ~]# date 2024年 05月 16日 星期四 13:07:02 CST [rootmmsql01 ~]# timedatectl set-time "2024-05-16 13:30:00" [rootmmsql01 ~]# date 2024年 05月 16日 星期四 13:30:03 CST [rootmmsql01 ~]# timedatectl set-time "2024-05-16…

基于QEMU-aarch64学习UEFI(EDK2)-2安装操作系统

1 基于QEMU-aarch64学习UEFI(EDK2)-2安装操作系统 文章目录 1 基于QEMU-aarch64学习UEFI(EDK2)-2安装操作系统1.1 二、基于qemu固件安装操作系统1.1.1 1、virt-manager安装1.1.2 2、创建虚拟机1.1.2.1 Ubuntu系统开机等待时间长问题解决 1.1.3 3、virt-manager日常使用1.1.4 4、…

GAN实例基于神经网络

目录 1.前言 2.实验 1.前言 需要了解GAN的原理查看对抗生成网络&#xff08;GAN&#xff09;&#xff0c;DCGAN原理。 采用手写数字识别数据集 2.实验 import argparse import os import numpy as np import mathimport torchvision.transforms as transforms from torchvi…