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

←手機掃碼閱讀     admin @ 2019-12-03 , reply:0

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

而根據 ZDNet 的報導,近日在一次演講中,談到微軟為解決相應內存問題所做的工作,微軟研究人員 Matthew Parkinson 提到了微軟正在開發的基於 Rust 的新編程語言 Verona

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

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

Matthew 提出了微軟正在開發的基於 Rust 的新編程語言 Verona,他表示這是首次討論該項目,Verona 是用於微軟「安全基礎設施編程(safe infrastructure programming)」的一種新語言。

Matthew 介紹,Verona 由 C# 項目經理 Mads Torgensen 與 Microsoft Research Cambridge 研究軟體工程師 Juliana Franco 維護。 

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

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

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.

另外,Matthew 還表示 Verona 很快將會開源。





[admin ]

來源:OsChina
連結:https://www.oschina.net/news/111801/microsoft-were-creating-a-new-rust-based-programming-language
微軟正在開發基於 Rust 的安全編程語言已經有20次圍觀

http://coctec.com/news/soft/show-post-220646.html