0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

微软正在研发基于Rust新的安全编程语言

独爱72H 来源:InfoQ 作者:InfoQ 2019-12-06 16:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

(文章来源:InfoQ)

为提高 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 项目很“快”会开源。据悉,这个项目得到了 C#项目经理 Mads Torgensen 和微软剑桥研究院工程师 Juliana Franco 的支持。微软面临的挑战是要覆盖“应用程序图谱”,从用于桌面应用程序的 C#,到用于 Exchange、ASP.NET、Azure 和设备驱动程序的 C 和 C#,再到深度的 Windows 组件,如内存管理、启动加载器和 Windows 内核硬件抽象层(HAL)。

要做好内存管理很难。如果存在任意的并发冲突,要保证临时内存安全就非常困难。在 C++ 里,程序员获取指针,指针是基于对象的,并且基本上是一个对象一个指针。但我认为的数据和语法不应该是这样的,我所认为的数据结构应该是对象的集合,集合有它自己的生命周期”。“获得一组对象的所有权,非常接近使用者的抽象层级,这样就可以在安全区里构建数据结构。”他说。
(责任编辑:fqj)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6719

    浏览量

    107340
  • 编程语言
    +关注

    关注

    10

    文章

    1959

    浏览量

    38902
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    微软 Ignite 2025 大会:Splashtop 全面强化微软环境的安全与效率

    在近日举办的微软Ignite2025大会上,Splashtop宣布其面向微软生态的解决方案持续增长。作为微软智能安全协会(MISA)核心成员,Splashtop方案深度集成
    的头像 发表于 11-28 16:57 1246次阅读
    <b class='flag-5'>微软</b> Ignite 2025 大会:Splashtop 全面强化<b class='flag-5'>微软</b>环境的<b class='flag-5'>安全</b>与效率

    2025开放原子开发者大会旋武开源社区Rust分论坛成功举办

    11月22日,2025开放原子开发者大会——旋武开源社区Rust分论坛在北京顺利召开。论坛以“共建中国Rust生态”为核心主题,汇聚京东、华为、vivo、阿里、毛豆教育、DORA社区及南京大学等企业与学术机构技术专家,及众多Rust
    的头像 发表于 11-27 14:55 311次阅读

    2025年最佳的嵌入式编程语言有哪些呢?

    嵌入式系统是现代科技不可或缺的一部分。它们存在于家用电器、汽车、住宅、医院、商店等各个领域。它们与我们的社会紧密相连。选择合适的语言来构建嵌入式系统对于成功至关重要。那么,2025年最佳的嵌入式编程
    的头像 发表于 11-14 10:27 893次阅读
    2025年最佳的嵌入式<b class='flag-5'>编程</b><b class='flag-5'>语言</b>有哪些呢?

    2025开放原子开发者大会旋武社区Rust分论坛即将启幕

    在数字化转型持续深化、系统安全与性能需求愈发迫切的当下,Rust凭借强大的内存安全、高并发性能和卓越的开发者体验,正成为重塑软件开发疆界的关键力量,更是构建下一代可靠高效基础设施的核心选择。11月
    的头像 发表于 11-13 10:00 342次阅读

    RusT-Thread:基于Rust面向资源受限嵌入式设备的操作系统的实践 | 技术集结

    摘要随着物联网和嵌入式系统的发展,实时操作系统(RTOS)的安全性和性能需求日益提高。传统基于C语言的RTOS在内存安全和并发控制方面存在局限,容易导致缓冲区溢出、数据竞争等问题。本项目以
    的头像 发表于 11-07 17:37 6463次阅读
    <b class='flag-5'>RusT</b>-Thread:基于<b class='flag-5'>Rust</b>面向资源受限嵌入式设备的操作系统的实践 | 技术集结

    一文了解Mojo编程语言

    编程能力 允许直接进行系统调用和文件操作,提供类似 Rust 的内存安全机制(所有权和借用检查),避免运行时错误。 支持零成本抽象,开发者无需牺牲性能即可编写高层代码。 并行与异构计算 内置对多核
    发表于 11-07 05:59

    Linux 编程语言盘点:从内核到AI的全栈选择

    在工控圈和嵌入式圈里,有一个常年被讨论的问题:  “在 Linux 上,到底该用什么语言编程?” 有人坚信:C 才是真正的工业语言。有人反驳:Python 才是效率王者。还有人推崇 Go、Ru
    的头像 发表于 11-06 17:05 430次阅读

    RT-Thread 遇上 Rust安全内核 RusT-Thread 的诞生

    大家好,我们是中国科学技术大学操作系统原理与设计(H)课oooooS小组。这个项目是我们的课程大作业:参考RT-Thread架构,使用Rust搭建一个原生的嵌入式操作系统内核。初识Rust是因为xk
    的头像 发表于 08-02 11:03 3206次阅读
    RT-Thread 遇上 <b class='flag-5'>Rust</b>:<b class='flag-5'>安全</b>内核 <b class='flag-5'>RusT</b>-Thread 的诞生

    新思科技如何验证更安全的智能汽车软件

    汽车软件正在迅速发展,其复杂性、安全性要求以及对高效开发流程的需求与日俱增。在这一背景下,虚拟ECU(vECU)成为加速开发和验证的关键工具,而将Rust语言集成进AUTOSAR Cl
    的头像 发表于 07-10 15:12 776次阅读
    新思科技如何验证更<b class='flag-5'>安全</b>的智能汽车软件

    请问OpenVINO™ 是否支持 Rust 绑定?

    无法确定OpenVINO™是否支持 Rust 绑定。
    发表于 06-25 07:45

    JavaScript与Rust和WebAssembly集成

    偶然一次机会,接触了Rust的代码。当时想给团队小伙伴做演示,发现自己并不能在移动端按照文档生成演示demo。我就想,要是Rust代码能转化成JavaScript就好了。结果一搜,还真有。
    的头像 发表于 01-24 15:43 795次阅读
    JavaScript与<b class='flag-5'>Rust</b>和WebAssembly集成

    数字电路编程语言介绍

    数字电路编程语言是专门为描述和模拟数字电路而设计的编程语言。它们通常具有以下特点: 硬件描述语言(HDL) :大多数数字电路
    的头像 发表于 01-24 09:39 1388次阅读

    gitee 支持的编程语言有哪些

    Gitee(码云)是一个基于 Git 的代码托管和研发协作平台,类似于 GitHub 和 GitLab。它支持多种编程语言,允许开发者托管和管理代码,进行版本控制,以及协作开发。以下是一些
    的头像 发表于 01-06 09:50 1105次阅读

    三菱PLC编程语言解析

    三菱电机(Mitsubishi Electric)是全球知名的自动化和制造解决方案供应商,其PLC(可编程逻辑控制器)产品广泛应用于工业自动化领域。三菱PLC编程语言主要基于国际标准IEC
    的头像 发表于 12-26 17:36 2222次阅读

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言
    的头像 发表于 12-24 17:33 1452次阅读