资讯公告
  • 你的位置:
  • 首页
  • >
  • 资讯公告
  • >
  • 安全
  • >
  • 微软:我们正在创建一种新的基于Rust的编程语言来进行安全编码
微软:我们正在创建一种新的基于Rust的编程语言来进行安全编码
发布时间:2019-12-03 发布者:FebHost

微软无法抛弃旧的Windows代码,但是该公司在维罗纳项目下的研究旨在通过最近为低级Windows组件集成Mozilla开发的Rust来使Windows 10更安全。  


但是微软为什么要这样做呢? 


该公司已经部分解释了其与Rust进行试验的与安全性有关的动机,但并未详细说明其举动的原因。    


所有Windows用户都知道,Microsoft在每月的第二个星期二发布补丁程序,以解决Windows中的安全漏洞。微软最近透露,这些天发现的绝大多数错误都是内存安全漏洞,这也是微软寻求Rust来改善这种情况的原因。Rust 旨在允许开发人员进行编码,而不必担心此类错误。 


“内存安全”是用于编码框架的术语,可帮助保护内存空间免受恶意软件的滥用。微软的维罗纳计划旨在推动该公司在这里的工作,以关闭这种攻击媒介。 


微软的维罗纳计划可能只是一个无济于事的实验,但该公司已经取得了很大进展,可以通过总部位于英国的非营利组织知识转移网络详细介绍了其一些想法。  


来自英国剑桥计算机实验室的Microsoft 研究人员 Matthew Parkinson 致力于 “研究托管编程语言的内存管理”,上周发表了演讲,重点讨论了该公司为解决这些内存问题所做的工作。 


在演讲中,帕金森讨论了Microsoft在MemGC上所做的工作,这是Memory Garbage Collector,Internet Explorer(IE)和Edge的缩写。 


MemGC解决了标准浏览器功能(称为文档对象模型(DOM))中的漏洞,该功能表示浏览器用来解释网页的数据。谷歌的精英零项目黑客在使用主流浏览器后对微软的MemGC印象深刻。    


帕金森说:“我们为DOM构建了一个垃圾收集器(GC)。免费使用后的巨大膨胀基本上是人们在IE中找到利用DOM引擎中的内存管理的方法。”内存安全错误。 


“然后,[Microsoft]引入了MemGC,它是DOM的保守GC。它非常针对这种特殊的漏洞样式,然后从根本上消除了它作为攻击媒介。”


微软正在解决的另一类错误与未初始化的内存有关,这种错误不会破坏性能。  


帕金森(Pakinson)钻研了一个可能引起其产品客户共鸣的问题。“我们将如何构建最安全的产品?因此,我们仍然必须应对这一遗留问题。我们不能仅仅丢弃已有的东西,而可以在更安全的系统中构建什么。”


帕金森表示,微软正在用Rust重写某些“目标”组件。他的演讲重点是语言设计和分区。    


“如果我们想要隔离区,并精简代码的遗留部分,以使[攻击者]的利用代码无法散发出来,那么在语言设计中我们需要什么才能对此有所帮助?”


这是维罗纳项目,帕金森说这是他第一次讨论该项目,该项目将很快“开源”。这是Microsoft所谓的“安全基础结构编程”的一种新语言。 


该项目由C#项目经理Mads Torgensen和Microsoft Research Cambridge研究软件工程师  Juliana Franco支持。 


微软面临的挑战是应对“应用程序范围”,范围从桌面应用程序的C#到Exchange,ASP.NET,Azure和设备驱动程序的C#和C#,再到内存管理和启动加载器等深层Windows组件,以及Windows内核硬件抽象层(HAL)。 


帕金森说:“执行内存管理确实很困难。如果您有任意并发突变,则临时内存安全性将非常困难。”


“维罗纳的所有权模型是基于对象组的,而不是像Rust那样基于单个对象的所有权模型。在C ++中,您可以获得指针,并且它是基于对象的,并且几乎是每个对象。但这不是我的想法。关于数据和语法。我认为数据结构是对象的集合,而对象的集合则是生命周期。 


“因此,通过将所有权视为对象的所有权级别,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。” 

购物车