写点什么

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

  • 2019-12-05
  • 本文字数:1408 字

    阅读完需:约 5 分钟

微软正开发类似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:598306

评论 4 条评论

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

Android 资源溢出崩溃轻松解

字节跳动终端技术

字节跳动 移动开发 Mars 火山引擎 MARS-APMPlus

绝了!Java程序员面试全方位贴身指南,轻松跳槽获取高薪资offer

程序员 架构 面试 后端 java

Java集合核心内容之葵花宝面,搞定90%以上的技术面!建议收藏

程序员小呆

Java 程序员 架构师

惊了!网易架构大牛熬夜手敲千页网络协议笔记,竟在Github上标星百万!

Java 架构 面试 程序人生 编程语言

Python代码阅读(第36篇):列表偏移

Felix

Python 编程 Code Programing 阅读代码

30天肝出来的Java面试手册!登顶Github标星288k

Java 程序员 架构 面试 后端

保持高效学习的 7 个方法

Phoenix

学习方法

2.两数相加(链表)

黄敏

自定义View:文字的测量与绘制

Changing Lin

10月月更

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

EMQ映云科技

RabbitMQ 物联网 IoT mqtt emq

Angular 依赖注入 - 全面解析

PingCode研发中心

angular 依赖注入 对象提供者 注入器 令牌

【浪潮云说】直播间第九期今晚20:00准时开播

云计算

音视频编解码 -- 编码参数 CRF

声网

ffmpeg 视频编解码 视频压缩 CRF

阿里P8手抄本惨遭泄露,并出现病毒式传播,致28人斩获大厂offer

收到请回复

Java 面试 阿里 大厂Offer

Zookeeper 集群部署的那些事儿

牧小农

zookeeper

拒绝焦虑!Alibaba巨擎随手甩来的一本Java性能优化让我收获满满

Java 架构 面试 程序人生 编程语言

动态模型之增压暂停【FunTester测试框架】

FunTester

性能测试 接口测试 测试框架 FunTester 动态模型

英特尔举办第十四届物联网峰会,携手中国生态伙伴迈向融合边缘新时代

科技新消息

阿里巨擎耗时六个月整理的这套图解HTTP笔记,在Github上被疯狂转载!

Java 架构 面试 程序人生 编程语言

Spring Boot 这样的优化,让你的项目飞起来

程序员小呆

Java 程序员 架构师

EDA 事件驱动架构与 EventBridge 二三事

阿里巴巴云原生

阿里云 云原生 EDA架构 事件驱动型架构

网易云信 NERTC 高清画质体验之 H.265的工程实践 | 体验共享技术专题

网易云信

Java 测试 音视频 视频

【直播回顾】5步实现精细化用户触达,助力业务增长

极光GPTBots-极光推送

消息推送 用户触达

Linux服务器部署服务

黄敏

递推算法与递推套路(算法基础篇)

有道技术团队

算法 大前端 网易有道

2021云栖大会丨果断收藏!「混合云参会指南」来啦~

人工智能 阿里云 互联网 云栖大会 前沿科技

智能化如何升级传统厨房烹饪体验?苏泊尔与鸿蒙智联携手交出创新答卷

科技汇

网络安全产品之堡垒机应用于金融行业案例讲解

行云管家

云计算 网络安全 等保 堡垒机

这还不够全?阿里P8架构师耗时八年时间才整理出来这“Java核心知识PDF(Java高岗)

Java 程序员 架构 面试 后端

Qcon 免费报名 | 融云「实时通信技术专场」议题抢鲜看

融云 RongCloud

开发者 通信云 场景化

J2PaaS 低代码平台,正式发布开源版!

J2PaaS低代码平台

低代码 零代码 低代码开发 低代码开发平台 无代码平台

微软正开发类似Rust的全新安全编程语言_编程语言_Liam Tung_InfoQ精选文章