係統粉 > IT資訊 > 微軟資訊

微軟計劃使用Rust取代C和C++

發布時間:2019-07-23    瀏覽數:


微軟計劃使用Rust取代C和C++(1)

【新智元導讀】微軟近日提出,未來將使用 Rust 作為 C、C++ 以及其他編程語言的替代方案,以改善應用程序的安全性的計劃。

近日,微軟安全響應中心(MSRC)團隊在官網更新文章,就近日提出的最新計劃,即未來將使用 Rust 作為 C、C++ 以及其他編程語言的替代方案以改善應用程序的安全性的計劃,從空間內存安全、時間內存安全、數據競爭等方麵進行了進一步的深入補充。

首席安全技術經理 Gavin Thomas 表示,開發人員的核心工作不是擔心安全性,而是做好功能開發,首先需要啟用一種 “不會引入內存漏洞隱患” 的開發語言。顯然,這一次的主角是 Rust。

過去 12 年,約 70% 的微軟補丁針對內存漏洞

如今,內存漏洞已成為黑客攻擊的主要對象。據微軟最新調查數據顯示,在過去 12 年裏,約 70% 的微軟補丁都是針對內存漏洞的。

自 2004 年以來,微軟安全響應中心 (MSRC) 已經對每一個報告的微軟安全漏洞進行了分類。從所有的分類中,人們得出了一個令人驚訝的事實:正如 Matt Miller 今年在 BlueHat IL 的演講中所討論的那樣,大多數修複的漏洞和分配的 CVE 都是由開發人員無意中將內存損壞錯誤插入到其 C 和 C++ 的代碼中造成的。這兩種存在內存漏洞風險的編程語言允許開發人員在代碼被執行的地方對內存地址進行細粒度控製。開發人員內存管理代碼中的一個錯誤可能導致大量內存漏洞,攻擊者便可利用這些錯誤造成具有危險性和侵入性的後果,比如遠程代碼執行 (RCE) 和權限升級漏洞(EoP)。

微軟計劃使用Rust取代C和C++(2)

數據來源:微軟安全響應中心網站

近年來,隨著微軟增加其代碼庫並在代碼中使用更多的開源軟件,這一問題並沒有得以解決,反而變得更糟,而微軟也並不是唯一一個暴露出內存漏洞的企業。

在官網發布的最新文章中,微軟安全響應中心(MSRC)團隊就如何解決內存安全問題進行了如下分析,

Rust 的優勢

多年來,微軟始終在尋找更安全的 C 和 C++ 的替代品。2016 年 6 月,微軟曾開源 “Checked C”,這是 C 語言的一個擴展,它帶來了一些解決安全問題的新特性,但依然沒有徹底解決問題。由於自動內存管理,Microsoft 還有其他更安全的編程語言,C#和.NET 係列是一個,編譯為 JavaScript 的 TypeScript 是另一個。這些語言被 Microsoft 及其客戶廣泛使用,但它們無法滿足所有需求。對此,微軟安全響應中心(MSRC)首席安全技術經理 Gavin Thomas 表示:“如果開發人員能夠將確保內存安全的 .NET,C#等語言與高效的 C ++ 結合起來,那就太好了。也許我們可以。” 因此,Rust 成為了這項計劃的主角。

據了解,Rust 創建於 2006 年,被創建者 Mozilla 稱為 “C / C ++ 的替代品”。最初,它隻是 Mozilla 的一個研究項目,旨在開發更安全、快速的編程語言以重寫 Firefox 瀏覽器,大多數開發人員認為它是一個理論項目,而如今 Rust 正在逐步證明自己的實力。2016 年 8 月發布的 Firefox 48 采用了以 Rust 構建的 mp4 軌道元數據解析器,該解析器首次在 Windows 和 32 位 Linux 桌麵提供。最近,Brave 瀏覽器用 Rust 替換了最初用 C ++ 編寫的廣告攔截組件。Cloudflare 和 Dropbox 目前也在生產係統中運行 Rust。

Rust 的顯著特征包括:

零成本抽象移動語義保證內存安全沒有數據競爭的線程基於特質的泛型模式匹配類型推斷最小運行時間高效的 C 綁定

Rust 團隊表示,它具有豐富的係統和所有權模型,可確保內存安全和線程安全。此外,它還提供文檔,包含集成的包管理器和其他有助於提高開發人員工作效率的工具。更為重要的是,Rust 從一開始就設計了防止內存損壞的漏洞。它的語法也更為簡單,由它編寫的應用程序不會產生相同數量的錯誤,因此開發人員可以專注於擴展其應用程序,而非進行持續的維護工作。

根據 StackoverFlow2019 年開發者調查報告的數據顯示,Rust 是如今最受歡迎的編程語言,因此更容易招募到相關開發人員。相比之下,在這項調查中,受訪者將 C 列為第四個最討厭的編程語言,C++ 則排名第九。

微軟計劃使用Rust取代C和C++(3)


微軟計劃使用Rust取代C和C++(4)

StackoverFlow2019 年開發者調查報告數據

據了解,目前,除 Mozilla 之外,全球有數百家公司正在使用 Rust,如 Amazon、Atlassian、Dropbox、Facebook、Google、Microsoft、Red Hat 和 Reddit 等。在國內,百度、字節跳動、 PingCAP、螞蟻金服、知乎、SenseTime 等企業也都在使用 Rust。

Rust 存在的問題

然而,Rust 仍存在一些不足。據先前的一項調查顯示,它需要改進的方麵包括:

更好的人體工程學更好的文檔更好的庫支持更簡單的學習曲線更多的 IDE 支持

一些用戶在談及為何不使用 Rust 的原因時表示,“盡管學習曲線和語言的複雜性仍是人們學習 Rust 的阻礙,但令許多人產生共鳴的一個方麵是,隻是還沒有足夠活躍的采用 Rust 的商業項目讓人們參與其中…… 對於一些人來說,隻要有強烈的動機,他們就可以克服 Rust 的學習曲線。” 此外,受缺少 IDE 支持的影響,約 10% 的用戶正在尋找更好的 IDE 支持,而 5% 的老用戶因此停用 Rust。

對於這項或將構建新的語言生態的計劃,微軟安全響應中心(MSRC)首席安全技術經理 Gavin Thomas 表示,“我們是一個響應組織,但我們也發揮積極的作用 “,“我們應該從一開始就努力防止開發人員引入問題,而不是為解決問題提供指導和工具 “。目前,關於何時在其產品或雲服務上使用 Rust,微軟還沒有具體透露。

(本文經授權轉載自InfoQ)

上一篇:微軟與OpenAI建立合作關係:投資高達10億美元 下一篇:微軟10億美元砸向OpenAI

相關資訊

最新熱門應用

電腦問答