微軟正在探索使用Rust編程語(yǔ)言作為C、C++和其他語(yǔ)言的替代方案,以此來(lái)改善應(yīng)用程序的安全狀況。
自2004年以來(lái),微軟安全響應(yīng)中心(MSRC)已對(duì)所有報(bào)告過(guò)的微軟安全漏洞進(jìn)行了分類。根據(jù)他們提供的數(shù)據(jù),所有微軟年度補(bǔ)丁中約有70%是針對(duì)內(nèi)存安全漏洞的修復(fù)程序。
▲微軟每年約有70%的漏洞仍然是內(nèi)存安全問(wèn)題
這樣高的百分比是因?yàn)閃indows和大多數(shù)其他微軟產(chǎn)品主要使用C和C++編寫(xiě),這兩種“內(nèi)存不安全”(memory-unsafe)的編程語(yǔ)言允許開(kāi)發(fā)人員對(duì)內(nèi)存地址進(jìn)行細(xì)粒度控制,并且可以執(zhí)行代碼。管理內(nèi)存執(zhí)行的開(kāi)發(fā)人員代碼中的一個(gè)漏洞可能導(dǎo)致一系列內(nèi)存安全錯(cuò)誤,攻擊者可以利用這些錯(cuò)誤帶來(lái)危險(xiǎn)和侵入性后果,例如遠(yuǎn)程代碼執(zhí)行或特權(quán)提升漏洞。
于是,探索使用諸如Rust之類的內(nèi)存安全(memory-safe)語(yǔ)言被提上日程,這或?qū)⒊蔀閯?chuàng)建更安全的微軟應(yīng)用程序的替代方法。
Rust最初是Mozilla的一個(gè)研究項(xiàng)目,用于更安全、更快速地重寫(xiě)Firefox瀏覽器。最近,Brave瀏覽器還用Rust版本替換了原先用C++編寫(xiě)的廣告攔截組件。2019年的StackOverflow開(kāi)發(fā)者調(diào)查顯示,Rust已連續(xù)四年蟬聯(lián)“最受開(kāi)發(fā)者喜愛(ài)的編程語(yǔ)言”。開(kāi)發(fā)人員喜歡它,因?yàn)樗恼Z(yǔ)法更簡(jiǎn)單,并且使用Rust編寫(xiě)的應(yīng)用程序bug更少,因此開(kāi)發(fā)人員可以專注于擴(kuò)展他們的應(yīng)用程序,而不是進(jìn)行持續(xù)的維護(hù)工作。
MSRC首席安全工程經(jīng)理Gavin Thomas建議第三方開(kāi)發(fā)人員也應(yīng)該研究?jī)?nèi)存安全語(yǔ)言,他列舉了一些原因,例如開(kāi)發(fā)人員花時(shí)間和精力學(xué)習(xí)如何調(diào)試C++應(yīng)用程序中出現(xiàn)的與內(nèi)存相關(guān)的安全漏洞。但這顯然是不合適的,“開(kāi)發(fā)人員的核心工作不是擔(dān)心安全性,而是要做功能開(kāi)發(fā)”,Thomas提出疑問(wèn),“為什么不在一開(kāi)始就將內(nèi)存安全問(wèn)題引入開(kāi)發(fā)語(yǔ)言呢?”
為此,他呼吁:“如果這個(gè)行業(yè)真正關(guān)心安全,應(yīng)該專注于開(kāi)發(fā)人員的工具,而不應(yīng)當(dāng)被所有安全設(shè)備和過(guò)時(shí)的方法弄傻眼。我們首先得努力防止開(kāi)發(fā)人員陷入缺陷,而不是提供解決缺陷的指導(dǎo)和工具。”(xplanet)
關(guān)鍵詞: 微軟 Rust編程語(yǔ)言 C
責(zé)任編輯:Rex_07