(文章來源:InfoQ)
為提高 Windows 10 的安全性,微軟研究人員 Matthew Parkinson 在本周的一次演講中披露:微軟正基于 Rust 開發(fā)新的安全編程語言。這個項目,被微軟稱為“Verona"。Verona 項目主要目的是通過使用 Rust 開發(fā) Windows 底層組件,從而讓 Windows 10 變得更安全。據(jù)微軟透露,它們通過集成 Rust 和 C/C++ 來移除 Windows 中不安全的代碼,這種嘗試達(dá)到了目標(biāo)。
眾所周知,在每個月的第二個禮拜,微軟都會發(fā)布修復(fù) Windows 漏洞的安全補丁。而微軟最近透露,近年來發(fā)現(xiàn)的大部分 bug 都與內(nèi)存安全有關(guān),所以它們想看看是否可以使用 Rust 來解決這些問題。在編程語言中,“內(nèi)存安全”是指保護內(nèi)存空間不受惡意程序利用。微軟的 Verona 項目旨在防止這類攻擊發(fā)生。雖然 Verona 項目最初可能只是一種嘗試,但微軟已經(jīng)取得很大的進展。
Matthew Parkinson 是微軟主攻托管編程語言內(nèi)存管理的研究員。在最近的一次演講中,他分享了微軟在解決內(nèi)存問題方面做了哪些工作。本次演講中,Parkinson 提到了 IE 和 Edge 的 MemGC (Memory Garbage Collector,內(nèi)存垃圾回收器)。
MemGC(Memory Garbage Collector):內(nèi)存垃圾收集器,是 Edge 的內(nèi)存管理機制,由 IE11 的 Memory Protector 改進而來,首次在 EdgeHTML 和 MSHTML 中使用。Edge 使用 MemGC 來管理 DOM 和 DOM 支持的對象,其采用標(biāo)記清除 (Mark-Sweep) 算法對垃圾進行回收, 能夠阻止部分 UAF 漏洞。MemGC 解決了與標(biāo)準(zhǔn)瀏覽器 DOM 相關(guān)的漏洞,給谷歌 Zero 項目的黑客們留下了深刻的印象。
Parkinson 說:“我們?yōu)?DOM 開發(fā)了一個垃圾回收器。在 IE 中,內(nèi)存的‘釋放后使用’(use-after-free)是人們利用 DOM 引擎內(nèi)存管理機制的常見方式。然后,微軟開發(fā)了 MemGC,作為 DOM 的守護垃圾回收器。它幾乎專治這種類型的漏洞,基本上把這類攻擊杜絕掉了?!倍④浺鉀Q的另一類 bug 與未初始化的內(nèi)存有關(guān)。
Parkinson 深入探討了一個可能會引起消費者共鳴的問題:“如何才能打造出在未來最安全的產(chǎn)品?我們?nèi)匀灰幚磉z留問題,不能把現(xiàn)有的東西全部都扔掉,但可以在一個更安全的系統(tǒng)中重建一些東西。”Parkinson 說微軟正在使用 Rust 重寫一些組件,他的演講主要集中在語言的設(shè)計和隔離能力上?!叭绻覀兿胍綦x能力,把遺留代碼隔離起來,不讓攻擊者的攻擊代碼冒頭,那么應(yīng)該怎樣設(shè)計這門語言?”
于是,Verona 項目誕生。微軟宣稱這門語言面向的是“安全的基礎(chǔ)設(shè)施編程”,Verona 項目很“快”會開源。據(jù)悉,這個項目得到了 C#項目經(jīng)理 Mads Torgensen 和微軟劍橋研究院工程師 Juliana Franco 的支持。微軟面臨的挑戰(zhàn)是要覆蓋“應(yīng)用程序圖譜”,從用于桌面應(yīng)用程序的 C#,到用于 Exchange、ASP.NET、Azure 和設(shè)備驅(qū)動程序的 C 和 C#,再到深度的 Windows 組件,如內(nèi)存管理、啟動加載器和 Windows 內(nèi)核硬件抽象層(HAL)。
要做好內(nèi)存管理很難。如果存在任意的并發(fā)沖突,要保證臨時內(nèi)存安全就非常困難。在 C++ 里,程序員獲取指針,指針是基于對象的,并且基本上是一個對象一個指針。但我認(rèn)為的數(shù)據(jù)和語法不應(yīng)該是這樣的,我所認(rèn)為的數(shù)據(jù)結(jié)構(gòu)應(yīng)該是對象的集合,集合有它自己的生命周期”?!矮@得一組對象的所有權(quán),非常接近使用者的抽象層級,這樣就可以在安全區(qū)里構(gòu)建數(shù)據(jù)結(jié)構(gòu)?!彼f。
(責(zé)任編輯:fqj)
-
微軟
+關(guān)注
關(guān)注
4文章
6598瀏覽量
104066 -
編程語言
+關(guān)注
關(guān)注
10文章
1945瀏覽量
34740
發(fā)布評論請先 登錄
相關(guān)推薦
評論