安卓系统支持rust语言,以预防内存安全漏洞

4月6日,谷歌宣布安卓操作系统开源版本将支持Rust编程语言以预防内存安全相关的漏洞。内存安全漏洞是安卓系统稳定性问题的主要元凶,大约70%的安卓高危安全漏洞都与内存安全相关。而C和C++中的内存安全漏洞是最难解决的问题。Java 和Kotlin 语言是安卓应用开发最好的选择,这些语言容易使用、安全、轻便。Android Runtime (ART) 会以开发者的身份去管理内存。安卓操作系统广泛使用Java 来保护安卓平台免受内存漏洞的影响。但是,对于底层操作系统的开发,Java 和Kotlin 语言并不理想。

操作系统底层需要像C、C++、Rust这样的编程语言,这些语言的控制性和预测性比较好,可以提供对底层系统资源和硬件的访问控制,而且在提供相同的可预测的性能特征的基础上需要的资源很少。

对C和C++,开发者要负责管理内存的全生命周期,因此很容易出现错误,尤其是在复杂和多线程的代码库中。Rust语言通过使用编译时检查和运行时检查来确保内存的安全。编译时检查来进行对象生命周期和所有权的检查,通过运行时检查来确保内存访问是有效的。而且性能不差于C和C++。

C和C++语言并不提供安全保证,需要进行隔离。所有的安卓进程都是沙箱的,并遵循Rule of 2规则,即给定3个选项,开发者智能从中选择2个。

对安卓来说,这意味着如果代码是用C或C++写的,在分析不可靠的输入时就会有非常严格的限制和没有特权的沙箱。由于遵循Rule of 2规则会带来很多的限制,因此会降低安全漏洞的严重性和危险性。但是沙箱并不是轻量级的,由于IPC和其他的内存使用带来额外的消耗和延迟。沙箱并不能完全消除代码中的漏洞,攻击者可以链接其他漏洞来发起攻击。

Rust这类内存安全的语言可以帮助解决这些问题:

  •  可以降低代码中漏洞的密度,提高当前沙箱的有效性;
  •  通过引入安全和轻量级的新特征来减少对沙箱的需求。

Rust融合了许多其他语言的特征,可以改善代码的正确性:

  • 内存安全性:通过编译时检查和运行时检查来确保内存安全;
  •  数据并发:防止数据竞争条件,用户可以用Rust编写高效的、线程安全的代码;
  •  更具表现力的系统:帮助预防逻辑编程漏洞,如新型封装、枚举变种等;
  •  引用和变量默认是不可变的:帮助开发人员遵循最小特权安全原则。虽然C++有const,但是往往很少使用,而且不一致。相比之下,Rust 编译器· 可以通过为从未变异的可变值提供警告,避免误变注释。
  •  标准库中更好的安全处理:在结果中封装可能失败的调用,引发编译器要求用户检查没有返回所需值的函数的错误。这可以预防Rage Against the Cage这样的漏洞。
  •  初始化:要求所有的变量在使用前都进行初始化。未初始化的内存漏洞是安卓系统中3~5%的安全漏洞的根本原因。Rust要求所有的变量在使用前初始化为其类型的合法成员,避免初始化为不安全值的情况。
  •  更安全的整数处理:Rust 默认启用了溢出处理,避免溢出相关的漏洞产生。此外,所有的整数类型转化都是显式转化,开发者不能在分配变量或进行其他类型的算数运算时的函数调用中进行转化。

本文翻译自:https://security.googleblog.com/2021/04/rust-in-android-platform.html如若转载,请注明原文地址。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/126304.html<

(0)
管理的头像管理
上一篇2025-02-24 03:48
下一篇 2025-02-24 03:49

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注