被微软收购,微软正在探索使用 Rust 新葡京32450网址编程语言作为 C、C++

发布时间:2020-04-24  栏目:新葡京32450网址  评论:0 Comments

此前,微软表示正探索将 Rust 作为 C 和 C++
的安全替代方案,并且也对外展示了使用 Rust 重写 Windows
组件的体验,根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言,他们将尝试使用
Rust 重写各种产品,因为在过去的十年里,微软 70%
以上的安全补丁都提供了与内存相关的错误,而
Rust 正是解决这个问题的“良药”。

作者:王文婧

编程语言

MSRC 首席安全工程经理 Gavin Thomas
建议第三方开发人员也应该研究内存安全语言,他列举了一些原因,例如开发人员花时间和精力学习如何调试
C++
应用程序中出现的与内存相关的安全漏洞。但这显然是不合适的,“开发人员的核心工作不是担心安全性,而是要做功能开发”,Thomas
提出疑问,“为什么不在一开始就将内存安全问题引入开发语言呢?”

“执行内存管理确实很困难,如果有任意并发突变,则临时内存安全性将非常困难”,Matthew
介绍了 Verona 的设计思路:“Verona 的所有权模型是基于对象组的,而不是像
Rust 那样基于单个对象的所有权模型。在 C++
中,可以获得指针,并且它是基于对象的。但这与我关于数据和语法的思考不同,我认为数据结构是对象的集合,而对象的集合则是生命周期。 因此,通过在对象的所有权级别获得所有权,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。”

Rust 的优势

为了更好地理解微软的开源
2019,下面我们将会按不同的领域而非时间线进行回顾。

MSRC
官方博客原文:

新葡京32450网址 1

模式匹配

微软在 Windows 10 中搞了个真正的 Linux 内核

2019 年微软直接在 Windows 中安上了一颗“Linux 内脏”,这颗 Linux
内脏其实是今年 5 月份在 Windows 10 上推出的全新版本 WSL(Windows
Subsystem for Linux),新版本 WSL 2 使用了全新的架构,这是一个真正的
Linux 内核,它改变了 Linux 二进制文件与 Windows 和计算机硬件的交互方式。

新葡京32450网址 2

于是,探索使用诸如 Rust
之类的内存安全(memory-safe)语言被提上日程,这或将成为创建更安全的微软应用程序的替代方法。

演讲中,Matthew 先是分享了微软在
MemGC(Memory Garbage Collector)上所做的工作,MemGC 是指 IE 和  Edge
浏览器上的内存垃圾回收器,它解决了标准浏览器一个特性——文档对象模型(DOM)中的漏洞,DOM
以树结构表述了 HTML 文档内容。 

在官网发布的最新文章中,微软安全响应中心团队就如何解决内存安全问题进行了如下分析,

微软开源其 C++ 标准库实现 STL

微软开源了其 MSVC 的 C++ 标准库实现(也就是 STL),该库实现是 MSVC
工具集和 Visual Studio IDE 的一部分。

微软表示开源 STL
可以使开发者随时了解其发展情况,使用最新更新,并且帮助完善项目。“随着
C++
标准化的加速发展,并且每年都会有更多的重大特性被投票,我们相信从开源贡献中接受主要特性将很重要。”

这样高的百分比是因为 Windows 和大多数其他微软产品主要使用 C 和 C++
编写,这两种“内存不安全”(memory-unsafe)的编程语言允许开发人员对内存地址进行细粒度控制,并且可以执行代码。管理内存执行的开发人员代码中的一个漏洞可能导致一系列内存安全错误,攻击者可以利用这些错误带来危险和侵入性后果,例如远程代码执行或特权提升漏洞。

So by taking ownership at the level of ownership of objects, then we
get much closer to the level of abstraction that people are using and
it gives us the ability to build data structures without going outside
of safety.

自 2004 年以来,微软安全响应中心
已经对每一个报告的微软安全漏洞进行了分类。从所有的分类中,人们得出了一个令人惊讶的事实:正如
Matt Miller 今年在 BlueHat IL
的演讲中所讨论的那样,大多数修复的漏洞和分配的 CVE
都是由开发人员无意中将内存损坏错误插入到其 C 和 C++
的代码中造成的。这两种存在内存漏洞风险的编程语言允许开发人员在代码被执行的地方对内存地址进行细粒度控制。开发人员内存管理代码中的一个错误可能导致大量内存漏洞,攻击者便可利用这些错误造成具有危险性和侵入性的后果,比如远程代码执行
和权限升级漏洞。

自由软件之父 RMS 受邀到微软发表演讲

自由软件运动发起人 RMS
受邀在微软进行了演讲,其中谈到微软在开源上的贡献,他表示微软未来活动的主要动力,无论如何都必定是基于利润的,微软的开源贡献其实对于“自由世界”毫无贡献。

RMS 还给了微软十条建议,代表性的包括开源 Windows、收回“毒瘤”言论以及指导
GitHub 正确许可证。

(文/开源中国)    

Matthew 提出了微软正在开发的基于
Rust 的新编程语言 Verona,他表示这是首次讨论该项目,Verona
是用于微软“安全基础设施编程(safe infrastructure
programming)”的一种新语言。

据了解,Rust 创建于 2006 年,被创建者 Mozilla 称为 “C / C ++
的替代品”。最初,它只是 Mozilla
的一个研究项目,旨在开发更安全、快速的编程语言以重写 Firefox
浏览器,大多数开发人员认为它是一个理论项目,而如今 Rust
正在逐步证明自己的实力。2016 年 8 月发布的 Firefox 48 采用了以 Rust
构建的 mp4 轨道元数据解析器,该解析器首次在 Windows 和 32 位 Linux
桌面提供。最近,Brave 浏览器用 Rust 替换了最初用 C ++
编写的广告拦截组件。Cloudflare 和 Dropbox 目前也在生产系统中运行 Rust。

开发工具

为此,他呼吁:“如果这个行业真正关心安全,应该专注于开发人员的工具,而不应当被所有安全设备和过时的方法弄傻眼。我们首先得努力防止开发人员陷入缺陷,而不是提供解决缺陷的指导和工具。”

(文/开源中国)    

为了解决内存安全问题,需要采取几种不同的方式。C++ 中的 “现代”
构造能够在一定程度上预防某些内存安全问题。此外,我们应尽可能使用其它现代
C++ 功能。

微软将新版 Edge 浏览器引入 Linux

继推出 WSL2、将 exFAT 技术添加至 Linux 内核,微软再次瞄准了 Linux。在
Ignite 2019 大会上,微软正式宣布 Edge for Linux 不久后将会发布。

微软高级编辑 Zac Bowden 称新的 Edge 是完全跨平台的,该浏览器将是支持
Windows 平台,包括服务器和客户端,以及 macOS、Android、iOS 和 Linux。

▲微软每年约有 70% 的漏洞仍然是内存安全问题

另外,Matthew 还表示 Verona 很快将会开源。

新葡京32450网址 3

微软推出新编程语言 Bosque

微软推出了一款全新的编程语言 Bosque,该语言参考了 TypeScript
的语法与类型,还有 ML 和 Node/JavaScript 的语义,其作者认为 Bosque
超越了主流的结构化程序设计。

Bosque
由规范化程序设计思想而来,旨在解决当前结构化程序设计中遇到的这些问题,作者把结构化程序设计的兴起认为是编程器与开发工具的第一个黄金时代,他相信此次提出的规范化编程模型将大大提高开发者的工作效率、提高软件质量,并带来编译器和开发工具的第二个黄金时代。

自 2004
年以来,微软安全响应中心(MSRC)已对所有报告过的微软安全漏洞进行了分类。根据他们提供的数据,所有微软年度补丁中约有
70% 是针对内存安全漏洞的修复程序。

而根据 ZDNet
的报导,近日在一次演讲中,谈到微软为解决相应内存问题所做的工作,微软研究人员 Matthew
Parkinson 提到了微软正在开发的基于 Rust 的新编程语言 Verona

新葡京32450网址 4

微软开源 Bing 搜索背后的关键算法

微软开源了一项 Bing 搜索背后的关键算法——SPTAG,它使 Bing
能够快速将搜索结果返回给用户。

SPTAG (Space Partition Tree And
Graph)是分布式近似最近邻域搜索(ANN)库,为大规模矢量搜索场景提供高质量矢量索引构建、搜索和分布式在线服务工具包。利用
SPTAG 算法作为开源 Python 库的核心,Bing
能够在几毫秒内搜索数十亿条信息。

微软正在探索使用 Rust 编程语言作为 C、C++
和其他语言的替代方案,以此来改善应用程序的安全状况。

Matthew 介绍,Verona 由 C# 项目经理
Mads Torgensen 与 Microsoft Research Cambridge 研究软件工程师 Juliana
Franco 维护。 

(本文经授权转载自InfoQ)

微软宣布加入 OpenJDK 项目

微软正式签署了《Oracle
贡献者协议》,甲骨文公司也对微软参与该项目表示了认可及欢迎。

微软及其子公司在许多方面都高度依赖 Java,并且在微软 Azure 云中向客户提供
Java 运行时服务。微软已经认识到在甲骨文成功有效管理下的 OpenJDK
项目所获得的巨大价值,它收购了
Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献,它表示自己的团队在初期将致力于一些小的
bug 修复和反向移植。

新葡京32450网址 5

微软面临的挑战是应对宽广的应用领域,范围从
C# 桌面应用到 C 或 C# Exchange、ASP.NET、Azure
与设备驱动程序,再到内存管理和启动加载器等底层 Windows 组件,以及
Windows 内核硬件抽象层(HAL,hardware abstraction
layer)。 

对于这项或将构建新的语言生态的计划,微软安全响应中心首席安全技术经理
Gavin Thomas 表示,“我们是一个响应组织,但我们也发挥积极的作用
“,“我们应该从一开始就努力防止开发人员引入问题,而不是为解决问题提供指导和工具
“。目前,关于何时在其产品或云服务上使用 Rust,微软还没有具体透露。

本文就来和大家一起回顾微软在 2019 年与开源相关的重要事件 ——
主要是引发较多关注和广泛讨论的新闻。

Rust 最初是 Mozilla 的一个研究项目,用于更安全、更快速地重写 Firefox
浏览器。最近,Brave 浏览器还用 Rust 版本替换了原先用 C++
编写的广告拦截组件。2019 年的
StackOverflow 开发者调查显示,Rust
已连续四年蝉联“最受开发者喜爱的编程语言”。开发人员喜欢它,因为它的语法更简单,并且使用
Rust 编写的应用程序 bug
更少,因此开发人员可以专注于扩展他们的应用程序,而不是进行持续的维护工作。

之后他由此牵出另一个问题:如何构建最安全的产品?不仅仅丢弃已有的东西,而要考虑可以在更加安全的系统中构建一些什么。他介绍了微软正在使用 Rust
重写某些组件,并提出:“如果我们想要隔离,并精简遗留代码,以使攻击者的利用代码无法逃逸出来,那么如何设计语言呢?” 
  

近日,微软安全响应中心团队在官网更新文章,就近日提出的最新计划,即未来将使用
Rust 作为 C、C++
以及其他编程语言的替代方案以改善应用程序的安全性的计划,从空间内存安全、时间内存安全、数据竞争等方面进行了进一步的深入补充。

微软开源全新终端应用 Windows Terminal

微软在 Build 2019 大会上宣布开源全新的终端 Windows
Terminal,这是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多
Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU
运算的文本渲染等。

新葡京32450网址 6

相关文章

留下评论

网站地图xml地图