Graph + AI 中国峰会火热报名中,点击探索图分析更多可能! 了解详情
写点什么

微软正开发类似 Rust 的全新安全编程语言

2019 年 12 月 05 日

微软正开发类似Rust的全新安全编程语言


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


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


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


内存安全问题

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


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


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


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


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


MemGC(Memory Garbage Collector):内存垃圾收集器,是 Edge 的内存管理机制,由 IE11 的 Memory Protector 改进而来,首次在 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#项目经理 Mads Torgensen 和微软剑桥研究院工程师 Juliana Franco 的支持。


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


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


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


“获得一组对象的所有权,非常接近使用者的抽象层级,这样就可以在安全区里构建数据结构。”他说。


英文原文:


Microsoft: We’re creating a new Rust-like programming language for secure coding


2019 年 12 月 05 日 10:593873

评论 4 条评论

发布
用户头像
rust-like 叫做基于 rust 吗???
2019 年 12 月 05 日 14:47
回复
翻译疏忽,已修改
2019 年 12 月 05 日 16:28
回复
用户头像
实打实
2019 年 12 月 05 日 13:35
回复
用户头像
是的
2019 年 12 月 05 日 13:35
回复
没有更多了
发现更多内容

什么是零代码?零代码开发可以带来的好处

代码制造者

可视化 零代码 编程效率

湾区金科沙龙,华青融天技术总监吴伟平详解旁路式应用性能监控

DT极客

前端面试vue部分(1)——谈谈你对MVVM的理解

dd多了个多

面试 Vue 前端 Web

垃圾回收

Mr.Monkey

周子衡 | 数字资产、数字支付及跨境活动——以美元数字化为例

CECBC区块链专委会

加密货币 数字资产

企业BI智能大屏,除了页面炫酷,还能带来什么?

力软.net/java开发平台

企业信息化 BI 数据可视化

应用开发基础知识-文件系统

superman

文件系统

架构训练营第九周作业

张锐

起伏激荡的以太网,抱上这条大腿才能乘风破浪

脑极体

VIPKID 在线教育场景下的实时计算技术落地和实践

Apache Flink

flink

JVM 垃圾回收原理

周冬辉

大厂的人才衡量标准

池建强

人才标准

读书,区分一二三四手知识

dd多了个多

读书笔记

作业1

chenzt

消息队列面试热点一锅端

yes

kafka 面试 RocketMQ 消息队列

架构师训练营第9周

大丁💸💵💴💶🚀🐟

第九周总结

andy

秒杀系统的挑战和应对方案

2流程序员

前端面试 vue 部分 (2)——Vue是如何实现双向绑定的

dd多了个多

面试 Vue 前端 Web

Kafka集群缩容实战

我是个bug

大数据 kafka 运维 Big Data

写作平台划线笔记新功能全新上线!给你带来不一样的写作学习体验~

InfoQ写作平台官方

写作平台 玩转写作平台

一位区块链产品经理讲述“区块链”的通知 重点方向包括区块链安全

CECBC区块链专委会

物联网 区块链技术 联盟链

《深度工作》学习笔记(4)

石云升

学习 读书笔记 习惯 专注 深度工作

第九周作业

andy

极客大学

汇丰坠落:世间已无「日不落」

钛禾产业观察

汇丰 财经

我是如何写读书笔记的

dd多了个多

读书笔记

Java 垃圾回收

dongge

读书时,如何提炼文章架构形成思维导图

dd多了个多

读书笔记 读书感悟

总结

chenzt

百度安全研究院:区块链智能合约介绍

百度安全

比特币 区块链 智能合约 以太坊

1.8w字 | 初中级前端 JavaScript 自测清单 - 2

pingan8787

Java 前端

微软正开发类似Rust的全新安全编程语言-InfoQ