基于Rust开发新的安全编程语言是什么样的
创始人
2024-12-25 20:23:29
0次

  为提高Windows10的安全性,微软研究人员MatthewParkinson在本周的一次演讲中披露:微软正基于Rust开发新的安全编程语言。这个项目,被微软称为“Verona"。

  Verona项目主要目的是通过使用Rust开发Windows底层组件,从而让Windows10变得更安全。

  据微软透露,它们通过集成Rust和C/C++来移除Windows中不安全的代码,这种尝试达到了目标。

内存安全问题

  众所周知,在每个月的第二个礼拜,微软都会发布修复Windows漏洞的安全补丁。而微软最近透露,近年来发现的大部分bug都与内存安全有关,所以它们想看看是否可以使用Rust来解决这些问题。

  在编程语言中,“内存安全”是指保护内存空间不受恶意程序利用。微软的Verona项目旨在防止这类攻击发生。

  虽然Verona项目最初可能只是一种尝试,但微软已经取得很大的进展。

  MatthewParkinson是微软主攻托管编程语言内存管理的研究员。在最近的一次演讲中,他分享了微软在解决内存问题方面做了哪些工作。

  本次演讲中,Parkinson提到了IE和Edge的MemGC(MemoryGarbageCollector,内存垃圾回收器)。

  MemGC(MemoryGarbageCollector):内存垃圾收集器,是Edge的内存管理机制,由IE11的MemoryProtector改进而来,首次在EdgeHTML和MSHTML中使用。Edge使用MemGC来管理DOM和DOM支持的对象,其采用标记清除(Mark-Sweep)算法对垃圾进行回收,能够阻止部分UAF漏洞。

  MemGC解决了与标准浏览器DOM相关的漏洞,给谷歌Zero项目的黑客们留下了深刻的印象。

  Parkinson说:“我们为DOM开发了一个垃圾回收器。在IE中,内存的‘释放后使用’(use-after-free)是人们利用DOM引擎内存管理机制的常见方式。然后,微软开发了MemGC,作为DOM的守护垃圾回收器。它几乎专治这种类型的漏洞,基本上把这类攻击杜绝掉了。”

而微软要解决的另一类bug与未初始化的内存有关。

  Parkinson深入探讨了一个可能会引起消费者共鸣的问题:“如何才能打造出在未来最安全的产品?我们仍然要处理遗留问题,不能把现有的东西全部都扔掉,但可以在一个更安全的系统中重建一些东西。”

  Parkinson说微软正在使用Rust重写一些组件,他的演讲主要集中在语言的设计和隔离能力上。

  “如果我们想要隔离能力,把遗留代码隔离起来,不让攻击者的攻击代码冒头,那么应该怎样设计这门语言?”

Verona项目

  于是,Verona项目诞生。微软宣称这门语言面向的是“安全的基础设施编程”,Verona项目很“快”会开源。

  据悉,这个项目得到了C#项目经理MadsTorgensen和微软剑桥研究院工程师JulianaFranco的支持。

  微软面临的挑战是要覆盖“应用程序图谱”,从用于桌面应用程序的C#,到用于Exchange、ASP.NET、Azure和设备驱动程序的C和C#,再到深度的Windows组件,如内存管理、启动加载器和Windows内核硬件抽象层(HAL)。

  Parkinson说:“要做好内存管理很难。如果存在任意的并发冲突,要保证临时内存安全就非常困难”。

  “Rust的所有者模型基于单个对象,而Verona基于一组对象。在C++里,程序员获取指针,指针是基于对象的,并且基本上是一个对象一个指针。但我认为的数据和语法不应该是这样的,我所认为的数据结构应该是对象的集合,集合有它自己的生命周期”。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...