【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

评论 4 条评论

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

设备健康管理在石化行业的探索与实践

PreMaint

预测性维护 设备健康管理

上海WEB前端培训机构有什么推荐的

小谷哥

基于GitLab CI的kubectl镜像配置

白粥

gitlab k8s gitlab ci kubectl

Alibaba最新发布!耗时182天肝出来1028页分布式全栈手册太香了

了不起的程序猿

Java 阿里巴巴 分布式 java程序员

版本管理 | 如何解决SVN的合并冲突与分支问题?

龙智—DevSecOps解决方案

svn 版本管理

国产操作系统应用小程序化:夯实技术底座,促进生态发展

Speedoooo

小程序 国产操作系统 小程序容器

设计模式的艺术 第二十二章观察者设计模式练习(开发一款实时在线股票软件。该软件需要提供如下功能:当股票购买者所购买的某只股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。试使用观察者模式设计并实现该系统)

代廉洁

【荣耀开发者服务平台—百亿曝光扶持等你来】智慧服务内容接口卡片接入指南

荣耀开发者服务平台

手机 激励 卡片服务 厂商 honor

新零售标杆 SKG 全面拥抱 Serverless,实现敏捷交付

阿里巴巴中间件

阿里云 Serverless 云原生

CI/CD | 大型企业与开发团队如何进行持续集成与持续发布

龙智—DevSecOps解决方案

持续集成 CI/CD 持续发布

最后 3 天|报名参加 OpenYurt+EdgeX 挑战赛 ,冲击最高 5 万元奖励!

阿里巴巴云原生

阿里云 云原生 openyurt EdgeX

零基础如何参加大数据培训机构?

小谷哥

深度操作系统20.7正式发布!

深度操作系统

国产操作系统 deepin 深度操作系统 深度 deepin20.7

我们总结了弹性伸缩的五个条件与六个教训

阿里巴巴云原生

阿里云 分布式 云原生 弹性伸缩

设计模式的艺术 第九章适配器设计模式练习(OA系统需要提供一个加密模块,将用户机密信息(例如口令、邮箱)加密再存储在数据库,系统已经定义好数据库操作类。为了提高开发效率,现需要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代码)

代廉洁

设计模式的艺术

个推TechDay直播回顾 | 分享基于Flink的实时数仓搭建秘诀 附课件下载

个推

数据湖 实时数仓 flink window 数仓建设 大数据仓库

测试管理 | 龙智获得Xray专家认证

龙智—DevSecOps解决方案

Jira插件

GOPS现场 | 对话龙智技术顾问,分享DevOps观察与心得

龙智—DevSecOps解决方案

运维 DevOps工具链

我用 极狐 Gitlab issue 来点菜 #JIHULAB 101

朱亚光

JIHULAB 101

北京哪家WEB前端培训机构比较不错

小谷哥

2022最新BATJ等一线互联网大厂秋招面试题汇总,速刷

程序知音

Java 程序员面试 后端技术 Java面试题 Java面试八股文

个推TechDay直播回顾 | 分享基于Flink的实时数仓搭建秘诀

个推

硅谷名企、国内大厂是如何度量研发效能的?|ONES 研发管理大师课

万事ONES

Docker 向全面集成 containerd 又迈进一步

张晓辉

Docker 容器 Containerd

数据变更白屏化利器-推送轨迹上线

阿里巴巴云原生

zookeeper 阿里云 开源 微服务 云原生

在Java培训机构中怎么学习?

小谷哥

亚信科技、清华AIR、英特尔成功举办WAIC智能算网与绿色计算论坛

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库

LED屏幕有色差要怎么办?

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

区块链NFT网站开发:NFT数字藏品网站开发

开源直播系统源码

NFT 数字藏品 数字藏品系统

深圳web前端技术培训学习费用

小谷哥

惠州等保测评机构有几家?电话多少?

行云管家

等保 等级保护 等级测评 惠州

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