栈溢出攻击的软硬件缓解技术

为了防范栈溢出攻击,现代处理器架构(如Arm架构)具有执行权限。在Armv8-A中,主要的控制是在MMU地址转换表(translation tables)中的执行权限位。        

UXN                 User (EL0) Execute-never        

PXN                 Privileged Execute-never  

设置其中一个位将页面标记为不可执行。这意味着任何尝试跳转到该页面内地址的操作都会触发异常,以权限错误的形式。有单独的特权位和非特权位。这是因为应用代码需要在用户空间(EL0)中可执行,但不应以内核权限(EL1/EL2)执行。另一种攻击形式涉及滥用系统调用,试图使特权代码调用来自用户内存的代码。

下图显示了在操作系统(OS)下运行的应用程序的简化但典型的虚拟地址空间,具有预期的执行权限:

总的来说,这些控制可以有效防范我们描述的各种攻击。翻译表属性和写入控制可以阻止恶意代码写入的任何位置执行,正如您在以下图表中所见:

栈保护为编译器的保护机制,当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行。在Linux中我们将cookie信息称为canary。

Stack Canaries (取名自地下煤矿的金丝雀,因为它能比矿工更早地发现煤气泄露,有预警的作用)

有几种针对内存安全的软件缓解技术,如ASan和HWSAN。然而,这些技术在性能和电池寿命方面都需要很多成本,因此不适合广泛部署。内存标记扩展(MTE)解决了这些挑战,带来了一个高性能和可扩展的硬件解决方案,减少了使用不安全语言编写的代码中可能存在的内存安全违规的利用。

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

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

相关文章

什么是AIGC,AIGC的应用领域有哪些,以及对AIGC的未来展望有什么值得关注的方向

AIGC:人工智能生成内容的深度解析 在数字技术的浪潮中,AIGC(ArtificialIntelligenceGeneratedContent,人工智能生成内容)逐渐崭露头角,成为继专业生产内容(PGC)和用户生产内容(UGC)之后的新型内容创作方式。它不仅改变了内容生产的传统模式,更在多个行业中展现出…

Hive on Spark 配置

目录 1 Hive 引擎简介2 Hive on Spark 配置2.1 在 Hive 所在节点部署 Spark2.2 在hive中创建spark配置文件2.3 向 HDFS上传Spark纯净版 jar 包2.4 修改hive-site.xml文件2.5 Hive on Spark测试2.6 报错 1 Hive 引擎简介 Hive引擎包括:MR(默认&#xff09…

js使用canvas实现画roi功能,并实现交集并集差集操作,附源码

效果概览 支持圆形,矩形,旋转矩形绘制,鼠标像素拾取,图片缩放,图片拖拽,像素测量,roi交集并集补集输出 TODO:实现自由路径绘制,与后台交互数据 实现原理 交集并集差集使用像素做运算,使用0代表没有像素,1代表有像素,然后再做运算 // 计算交集calculateIntersec…

腾讯电商再度回归!视频号小店成为今年最强黑马?

大家好,我是电商小布。 现在在电商的这个圈子里,视频号这个项目,也是常常被大家提起。 特别是在新型电商玩法的发展下,传统电商已经不足以满足客户的需求,搞流量才是重点。 而在这其中,抖音、视频号这两…

Flume学习笔记

视频地址:https://www.bilibili.com/video/BV1wf4y1G7EQ/ 定义 Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume高最要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS。 官网:https://flume.apache.org/releases/content/1.9.0/…

TikTok账号被封是为什么?如何解决?

多人在使用TikTok的过程中都会遇到一些问题,比如为什么TikTok没有浏览量?事实上,这很可能是因为你的账号已被禁止。但为什么它会被封呢?你怎样才能解决它? 一、TikTok账号为什么被封? 1、什么是 TikTok 影…

鸿蒙原生应用开发-网络管理Socket连接(一)

一、简介 Socket连接主要是通过Socket进行数据传输,支持TCP/UDP/TLS协议。 二、基本概念 Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。 TCP:传输控制协议(Transmission Control Protocol)。是一…

回文数的判断

算法思想:代码是将字符串全部入栈,然后扫描字符串进行比较,直到扫描到字符串尾部,该算法需要两次扫描字符串,效率不高。 可以改进代码,只将字符串的前半部分入栈,然后前半部分出栈与字符串后半…

Golang Context是什么

一、这篇文章我们简要讨论Golang的Context有什么用 1、首先说一下Context的基本作用,然后在讨论他的实现 (1)数据传递,子Context只能看到自己的和父Context的数据,子Context是不能看到孙Context添加的数据。 (2)父子协程的协同,比…

python 成员方法的区别是什么

Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数; 2)从第1条,静态方法是…

无法解析的外部符号,在xxxx中调用

这个函数在类里****没有正确定义: 1.头文件只有声明,没有实现 2.只有实现,没有声明 3.声明的和实现的,参数不对

SEO文章写作器,批量写作原创SEO收录文章

在当今数字化时代,搜索引擎优化(SEO)已经成为了网站获得流量和曝光度的关键手段之一。而在SEO领域中,内容的质量和原创性是至关重要的。为了应对不断增长的内容需求,越来越多的人开始转向AI写作生成器,这些…