写点什么

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

评论 4 条评论

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

NFT卡牌盲盒游戏系统开发搭建

薇電13242772558

NFT

车辆GPS定位整套管理系统,轨迹播放,车辆管理,电子围栏,报警记录,数据库/人员定位/宠物定位/物流跟踪/资产定位

Geek_7jiynf

Java Java web GPS

Shopee Games 游戏引擎演进之路

Shopee技术团队

前端 游戏开发 egret 游戏引擎

【C语言】结构体

謓泽

C语言 结构体 3月月更

数字化背景下,为何J2PaaS低代码平台,能成为企业技术升级的优选?

J2PaaS低代码平台

低代码 数字化 企业数字化转型 低代码平台 企业级低代码平台

什么是SDK,它是怎样威胁我们的隐私?

郑州埃文科技

JAVA只要掌握内部类,多继承和单继承都不是问题

华为云开发者联盟

Java jdk 多继承 内部类 单继承

深度文 | 一文看懂云原生时代 DevOps 如何选型

星汉未来

运维 云原生 降本增效

记某核心MongoDB集群索引优化实践

MongoDB中文社区

mongodb

直播系统聊天技术(七):直播间海量聊天消息的架构设计难点实践

BeeWorks

带你掌握Redis数据类型:string和Hash

华为云开发者联盟

redis string hash 数据类型

基于大数据的医疗健康疾病筛查及风险评估系统

Geek_7jiynf

医疗方案 医疗AI 医疗信息化

进入2022年,移动互联网的小程序和短视频直播赛道还有机会吗?

BeeWorks

网络安全:小记一次代码审计

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 代码审计

一次代码审计实战案例【思路流程】

H

网络安全

加入XTransfer,和技术大咖一起大展身手!

XTransfer技术

程序员 招聘 跨境支付

Apache Flink 在移动云实时计算的实践

Apache Flink

大数据 flink 开源 编程 实时计算

恒源云(Gpushare)_UNIRE:一种可以共享标签空间的方法

恒源云

OpenCV 计算机视觉 服务器

【数据库】云数据库rds是什么意思?有什么优势?

行云管家

数据库 云数据库 RDS

【云计算】云计算六大优点简单说明

行云管家

云计算 IT 企业上云 IT运维

高级IO模型之kqueue和epoll

程序那些事

Java io nio 程序那些事 3月月更

科创人·弘玑Cyclone CEO高煜光:从RPA到超自动化,以客户需求构建战略纵深

科创人

福昕软件与中国船级社签署框架合作协议,共建数字船舶发展新高地

联营汇聚

TiDB 5.4 发版丨新功能解读

PingCAP

云原生背景下的应用安全建设

火线安全

云原生 云安全

云开发在教育应用开发、运维全流程实践

阿里云云效

云计算 阿里云 DevOps 云原生 开发

如何为招聘机构选择CRM系统

低代码小观

低代码 企业管理 企业管理系统 CRM系统

MongoDB常见问题解答:时间与时区

MongoDB中文社区

mongodb

fastposter v2.5.1 发布 轻松在线作图

物有本末

基于Java+SpringMVC+MySql+Layui+H5实现企业门户网站

Geek_7jiynf

网站建设

理想很丰满,现实很骨感,坎坷前行的区块链产业化路在何方?

Akumas

区块链 数字化转型 新基建 十四五规划

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