微軟正在開發基於 Rust 的安全編程語言 Verona

ms.png

近日在一次演講中,談到微軟爲解決相應內存問題所作的工做,微軟在英國的研究人員 Matthew Parkinson 提到了微軟正在開發的基於 Rust 的新編程語言,這個項目,微軟內部稱爲「Verona"git

此前,微軟表示正探索將 Rust 做爲 C 和 C++ 的安全替代方案,而且也對外展現了使用 Rust 重寫 Windows 組件的體驗,根據微軟的說法,Rust 是一種從根本上考慮安全性的編程語言,他們將嘗試使用 Rust 重寫各類產品,由於在過去的十年裏,微軟 70% 以上的安全補丁都提供了與內存相關的錯誤,而 Rust 正是解決這個問題的「良藥」。編程

演講中,Matthew 先是分享了微軟在 MemGC(Memory Garbage Collector)上所作的工做,MemGC 是指 IE 和 Edge 瀏覽器上的內存垃圾回收器,它解決了標準瀏覽器一個特性——文檔對象模型(DOM)中的漏洞,DOM 以樹結構表述了 HTML 文檔內容。vim

以後他由此牽出另外一個問題:如何構建最安全的產品?不單單丟棄已有的東西,而要考慮能夠在更加安全的系統中構建一些什麼。他介紹了微軟正在使用 Rust 重寫某些組件,並提出:「若是咱們想要隔離,並精簡遺留代碼,以使攻擊者的利用代碼沒法逃逸出來,那麼如何設計語言呢?」瀏覽器

Matthew 提出了微軟正在開發的基於 Rust 的新編程語言 Verona,他表示這是首次討論該項目,微軟宣稱這門語言是用於「安全的基礎設施編程 - safe infrastructure programming」,Verona 項目很「快」會開源。安全

Matthew 介紹,Verona 由 C# 項目經理 Mads Torgensen 與 微軟劍橋研究院研究軟件工程師 Juliana Franco 維護。數據結構

微軟面臨的挑戰是應對寬廣的應用領域,範圍從 C# 桌面應用到 C 或 C# Exchange、ASP.NET、Azure 與設備驅動程序,再到內存管理和啓動加載器等底層 Windows 組件,以及 Windows 內核硬件抽象層(HAL,hardware abstraction layer)。併發

「執行內存管理確實很困難,若是有任意併發突變,則臨時內存安全性將很是困難」,Matthew 介紹了 Verona 的設計思路:「Verona 的全部權模型是基於對象組的,而不是像 Rust 那樣基於單個對象的全部權模型。在 C++ 中,能夠得到指針,而且它是基於對象的。但這與我關於數據和語法的思考不一樣,我認爲數據結構是對象的集合,而對象的集合則是生命週期。 所以,經過在對象的全部權級別得到全部權,咱們就能夠更接近人們正在使用的抽象級別,它使咱們可以構建數據結構而不會超出安全範圍。」編程語言

英文報道:https://www.zdnet.com/article...spa

Matthew Parkinson 的演講視頻《Digital Security by Design: Security and Legacy at Microsoft設計

相關文章
相關標籤/搜索