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三剑客精讲与实战

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥之链表

最近真的特别焦虑,体测、比赛和考试一个接一个,让人喘不过气来QAQ 甚至考试和比赛还有冲突,sad 最近因为看了牙,打了药的缘故,一直在吃素QAQ 本来今天还想写个知识点总结的,但是太晚了,现在已…

截图识别OCR怎么操作?一键精准识别工具分享

截图识别OCR怎么操作?截图识别OCR软件在现代办公和学习中扮演着越来越重要的角色,它们能够将图片中的文字内容快速准确地转换为可编辑的文本。无论是处理文档、整理笔记,还是进行学术研究、资料收集,这些软件都能快速、准确地将图…

鸿蒙开发接口Ability框架:【(AbilityContext)】

AbilityContext AbilityContext是Ability的上下文环境,继承自Context。 AbilityContext模块提供允许访问特定于ability的资源的能力,包括对Ability的启动、停止的设置、获取caller通信接口、拉起弹窗请求用户授权等。 说明: 本模块首批接口…

告别数据泥潭:PySpark性能调优的黄金法则

阿佑今天给大家带来个一张藏宝图——使用PySpark进行性能调优的黄金法则,从内存管理到执行计划,再到并行度设置,每一步都是提升数据处理速度的关键! 文章目录 Python Spark 详解1. 引言2. 背景介绍2.1 大数据处理技术演变2.2 Apac…

2024最新商业视频打赏系统源码 多套模板 有代理后台 已对接支付

简介: 2024最新商业视频打赏系统源码 多套模板 有代理后台 已对接支付 图片: 源码下载

自存 js course 工厂函数

如图 就是 像工厂一样 生产对象 对象里的函数可以写成简下

Oracle11g账户频繁被锁定的3种解决办法

方法1:创建触发器 方法1:数据库中创建触发器(只记录失败),但是需要开发同意或者开发自己创建。找到密码输入错误的服务器,进行数据源配置的更改。 该方法适用于要求找到密码错误用户所在服务器的场景下。 CREATE OR REPLACE TR…

【一键录音,轻松转换:用Python打造个性化音频记录工具】

在数字化时代,音频记录已成为日常学习、工作和娱乐不可或缺的一部分。想象一下,只需简单按下几个键,即可随时随地捕捉灵感,记录会议要点,或是珍藏孩子的童言稚语。本文将引领您步入Python编程的奇妙世界,展示如何借助几个强大的库,构建一个既简单又实用的音频录制及转换…

STM32快速入门(总线协议之I2C一主多从(软件实现 硬件实现))

STM32快速入门(总线协议之I2C一主多从(软件实现 & 硬件实现)) 前言 支持一对多(一主多从)、多对多传输(多主多从),只支持半双工,一般有两根数据线&…

Android性能:高版本Android关闭硬件加速GPU渲染滑动卡顿掉帧

Android性能&#xff1a;高版本Android关闭硬件加速GPU渲染滑动卡顿掉帧 如果在Androidmanifest.xml配置&#xff1a; <application android:hardwareAccelerated"false" > 或者某个特点View使用代码&#xff1a; myView.setLayerType(View.LAYER_TYPE_SOFT…

合并连个有序链表(递归)

21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 2.讲解算法原理 2.1重复子问题 2.2只关心其中的一个子问题是如何解决的 2.3细节&#xff0c;递归出口 3.小总结 &#xff08;循环&#xff08;迭代&#xff09;VS 递归&#xff09;&#xff08;递归VS深搜&…

从零开始的软件测试学习之旅(九)jmeter直连数据库及jmeter断言,关联

jmeter直连数据库及断言,关联 jmeter直连数据库步骤jmeter断言jmeter逻辑控制器if控制器ForEach控制器循环控制器 Jmeter关联Jmeter关联XPath提取器Jmeter关联正则表达式提取器二者比较跨线程组关联 每日复习 jmeter直连数据库 概念 这不叫直连:Jmeter -> java/python 提供的…

一套MySQL读写分离分库分表的架构,被秀到了!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

数据增强,迁移学习,Resnet分类实战

目录 1. 数据增强&#xff08;Data Augmentation&#xff09; 2. 迁移学习 3. 模型保存 4. 102种类花分类实战 1. 数据集 2.导入包 3. 数据读取与预处理操作 4. Datasets制作输入数据 5.将标签的名字读出 6.展示原始数据 7.加载models中提供的模型 8.初始化…

Android Studio在android Emulator中运行的项目黑屏

前言&#xff1a; 最近在做一个Android相关的小项目&#xff0c;因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题&#xff0c;经过自己多次的尝试和搜索终于解决了这些问题。 问题&#xff1a; 每次run&#xff08;运行&#xff09…

【机器学习300问】88、什么是Batch Norm算法?

一、什么是Batch Norm&#xff1f; &#xff08;1&#xff09;Batch Norm的本质 神经网络中的Batch Normalization&#xff08;批量归一化&#xff0c;简称BatchNorm或BN&#xff09;是一种改进神经网络训练过程的规范化方法&#xff0c;BatchNorm的主要目的是加速神经网络的训…

构建教育新未来:智慧校园平台的深度解读与全景呈现

引言 在全球数字化转型的大潮中&#xff0c;智慧校园平台作为教育信息化的重要载体&#xff0c;正以前所未有的姿态颠覆传统的教育模式&#xff0c;引领教育行业步入一个崭新的时代。这个融合了大数据、人工智能、云计算、物联网等一系列前沿科技的平台&#xff0c;以其强大的功…

mybatis-plus使用指南(1)

快速开始 首先 我们 在创建了一个基本的springboot的基础框架以后&#xff0c;在 pom文件中 引入 mybatisplus的相关依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5…

PyTorch的卷积和池化

卷积计算 input 表示输入的图像filter 表示卷积核, 也叫做滤波器input 经过 filter 的得到输出为最右侧的图像&#xff0c;该图叫做特征图 卷积的计算是将卷积核放入左上角&#xff0c;在局部区域间做点积&#xff0c;然后将卷积核在Input上面依次从左向右&#xff0c;从上到下…

免费证件照一键换底色

最近星期天在家搞了一个小工具&#xff0c;在这里分享下! 废话不多说看看效果&#xff1a; 效果还不错&#xff0c;需要的可以联系我!!!!!!!!! 别的网上可都是一次五块钱这种。太贵了。。&#xff01;&#xff01;