内存标记扩展:通过架构增强内存安全性

简介: 内存标记扩展:通过架构增强内存安全性

Perface

几十年来,内存安全一直是安全漏洞的主要来源。如今,软件供应商报告说,由于违反内存安全而导致的漏洞占其产品中的大部分安全问题。这得到了研究的支持。根据 2019 年 BlueHat 的演示,Microsoft产品中解决的所有安全问题中有 70% 是由违反内存安全引起的。谷歌也报告了类似的数据,其中超过75%的漏洞违反了内存安全。

有几种针对内存安全的软件缓解技术,例如 ASan 和 HWSAN。但是,这些在性能和电池寿命方面可能都很昂贵,因此不适合广泛部署。Arm 的 Armv8.5-A 内存标记扩展 (MTE) 解决了这些挑战,带来了高性能且可扩展的硬件解决方案,可减少以不安全语言编写的代码中可能存在的内存安全违规行为的可利用性。

谷歌公告

就在最近,谷歌宣布将在Android中采用Arm的MTE。这是一个令人兴奋的消息,谷歌展示了其对Android生态系统安全的持续承诺。它还显示了我们MTE产品的优势,文章指出该技术使“利用内存错误非常困难(如果不是不可能的话)。除了安全优势外,不解决内存安全错误造成的中断还会降低用户满意度并增加软件开发成本。面对Android生态系统面临的所有这些威胁,您可以理解为什么Google对MTE做出了承诺!

内存安全违规

内存安全违规主要有两种类型:空间安全和时间安全。MTE 提供了一种机制,无需检测即可在生产代码中检测这两种类型。

当对象在其真实边界之外被访问时,将违反空间安全。例如,当数据写入缓冲区或其他对象之外时。这可被利用来更改函数指针、保存寄存器或类似内容的目标地址。

当对对象的引用在过期后使用时,通常会在释放对象的内存后使用,从而违反时间安全性 - 利用现有的“释放后使用”错误。利用分配器的知识,攻击者可以放置一个新的恶意对象来代替预期的版本。在该对象上调用的任何函数都会导致对提供给攻击者的程序流的控制权。这也可以构成几种类型攻击的基础。

MTE 如何提供帮助

MTE 有利于安全性,因为它可以在部署前后定位内存安全漏洞。它旨在快速检测内存安全违规,并提供针对试图破坏代码的攻击的可靠性。MTE 实现了对内存的锁和密钥访问。如果密钥匹配,则允许锁定内存访问;否则,可能会记录或错误访问。通过这种方式,可以更轻松地检测难以捕获的内存安全错误,这也有助于常规调试。

在部署之前定位和修复漏洞可减少已部署代码的攻击面,MTE 提高了测试和模糊测试的有效性。部署后大规模检测漏洞支持在漏洞被广泛利用之前被动修复漏洞,MTE 协助进行此检测。

大规模部署 MTE

MTE 非常灵活,可以在产品开发和部署的不同阶段以不同的配置部署。MTE 的大规模灵活性允许在最低开销和最准确的报告之间进行权衡。动态更改配置的能力意味着,在现场,有关访问故障位置的准确信息可以通过错误报告和遥测系统中继回其开发人员。

目录
相关文章
|
存储 前端开发 Java
Kotlin教程笔记 - MVVM架构怎样避免内存泄漏
Kotlin教程笔记 - MVVM架构怎样避免内存泄漏
223 2
|
9月前
|
消息中间件 缓存 负载均衡
构建高效可扩展的后端架构:从设计到实现
本文探讨了如何构建高效、可扩展的后端架构,涵盖需求分析、系统设计、实现与优化全过程。内容包括微服务、数据库设计、缓存与消息队列等关键技术,并涉及API设计、自动化测试、CI/CD及性能优化策略,助力打造高性能、易维护的后端系统。
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
【10月更文挑战第14天】深入理解微服务架构:构建高效、可扩展的系统
386 0
|
12月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
存储 消息中间件 前端开发
工厂人员定位管理系统架构设计:构建一个高效、可扩展的人员精确定位
本文将深入探讨工厂人员定位管理系统的架构设计,详细解析前端展示层、后端服务层、数据库设计、通信协议选择等关键环节,并探讨如何通过微服务架构实现系统的可扩展性和稳定性。
480 10
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
深入理解微服务架构:构建高效、可扩展的系统
311 4
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
机器学习/深度学习 人工智能 自然语言处理
Tokenformer:基于参数标记化的高效可扩展Transformer架构
本文是对发表于arXiv的论文 "TOKENFORMER: RETHINKING TRANSFORMER SCALING WITH TOKENIZED MODEL PARAMETERS" 的深入解读与扩展分析。主要探讨了一种革新性的Transformer架构设计方案,该方案通过参数标记化实现了模型的高效扩展和计算优化。
692 0
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
375 1
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
362 3