0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微軟正在研發(fā)基于Rust新的安全編程語言

獨愛72H ? 來源:InfoQ ? 作者:InfoQ ? 2019-12-06 16:36 ? 次閱讀

(文章來源: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)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6598

    瀏覽量

    104066
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1945

    瀏覽量

    34740
收藏 人收藏

    評論

    相關(guān)推薦

    如何用Rust編寫一個ChatGPT桌面應(yīng)用(保姆級教程)

    用IDEA開發(fā)的java仔) 安裝 Rust 語言工具鏈:首先,請確保你已安裝了 Rust 編程語言工具鏈,包括
    的頭像 發(fā)表于 09-25 11:19 ?355次閱讀
    如何用<b class='flag-5'>Rust</b>編寫一個ChatGPT桌面應(yīng)用(保姆級教程)

    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    ? Rust 介紹 Rust 是一門注重安全語言,相比于 C/C++/ASM 有著更高級的抽象能力、編譯器帶來的安全特性與廣泛友好的社區(qū)支
    的頭像 發(fā)表于 07-25 09:14 ?1354次閱讀
    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上<b class='flag-5'>Rust</b>

    Vector和HighTec推出基于Rust和AUTOSAR Classic實現(xiàn)安全應(yīng)用的解決方案

    Vector和HighTec兩家公司成功展示了Rust應(yīng)用程序與基于C語言的AUTOSAR Classic基礎(chǔ)軟件的集成,這在行業(yè)內(nèi)還屬首次。這樣一來,Rust及其優(yōu)勢可以被應(yīng)用在有最高功能
    的頭像 發(fā)表于 07-17 14:42 ?764次閱讀
    Vector和HighTec推出基于<b class='flag-5'>Rust</b>和AUTOSAR Classic實現(xiàn)<b class='flag-5'>安全</b>應(yīng)用的解決方案

    PLC編程語言和C語言的區(qū)別

    在工業(yè)自動化和計算機編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發(fā)表于 06-14 17:11 ?2830次閱讀

    Linux 6.10集成RISC-V更新,支持Rust編程語言

    本次補丁升級中,Linux內(nèi)核進一步擴展了對應(yīng)于RISC-V架構(gòu)的Rust編程語言支持。在此之前,Rust已可應(yīng)用在x86_64、龍芯LoongArch以及ARM64等多種架構(gòu)之上。
    的頭像 發(fā)表于 05-23 17:16 ?962次閱讀

    在Aurix Tc375Lk上使用Rust編程語言可以嗎?

    您好,如果我想在 Aurix Tc375Lk 上使用 Rust 編程語言,可以嗎?如果是,鏈接 rust 編譯器 ADS 和 freetoolchain 的步驟是什么?你有在 ADS
    發(fā)表于 05-17 13:42

    鴻蒙OpenHarmony開發(fā)板解析:【Rust模塊配置規(guī)則和指導(dǎo)】

    Rust是一門靜態(tài)強類型語言,具有更安全的內(nèi)存管理、更好的運行性能、原生支持多線程開發(fā)等優(yōu)勢。Rust官方也使用Cargo工具來專門為Rust
    的頭像 發(fā)表于 05-10 11:32 ?1300次閱讀
    鴻蒙OpenHarmony開發(fā)板解析:【<b class='flag-5'>Rust</b>模塊配置規(guī)則和指導(dǎo)】

    微軟準(zhǔn)備推出全新人工智能語言模型

    微軟近期傳出消息,正在秘密研發(fā)一款全新的人工智能語言模型,這款模型在規(guī)模上預(yù)計將具備與谷歌和OpenAI等業(yè)界巨頭相抗衡的實力。據(jù)悉,這款新模型在
    的頭像 發(fā)表于 05-08 09:30 ?427次閱讀

    [鴻蒙]OpenHarmony4.0的Rust開發(fā)

    背景 Rust 是一門靜態(tài)強類型語言,具有更安全的內(nèi)存管理、更好的運行性能、原生支持多線程開發(fā)等優(yōu)勢。Rust 官方也使用 Cargo 工具來專門為
    的頭像 發(fā)表于 02-26 17:28 ?894次閱讀
    [鴻蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>開發(fā)

    谷歌捐款100萬美元給Rust基金會,以增強C++與Rust的交互性

    如今,谷歌多項核心業(yè)務(wù)仍以 C++為主要編程語言,雖然無法直接使用Rust替代現(xiàn)有的C++程序,但谷歌依然選擇支持Rust基金會的“Interop Initiative”計劃,幫助那些
    的頭像 發(fā)表于 02-19 15:41 ?656次閱讀

    微軟加速轉(zhuǎn)向Rust,加緊招募資深軟件架構(gòu)師

    去年BlueHat大會上,微軟公開表示以Rust重編譯Windows內(nèi)核的計劃,因其享有現(xiàn)代、便捷且代碼易讀的卓越性質(zhì)。值得一提的是,微軟推出的Azure Quantum開發(fā)工具包(QDK)亦采用了
    的頭像 發(fā)表于 01-30 11:47 ?576次閱讀

    鴻蒙OS之Rust開發(fā)

    Rust是一門靜態(tài)強類型語言,具有更安全的內(nèi)存管理、更好的運行性能、原生支持多線程開發(fā)等優(yōu)勢。
    的頭像 發(fā)表于 01-29 17:19 ?959次閱讀

    一次Rust重寫基礎(chǔ)軟件的實踐

    受到2022年“谷歌使用Rust重寫Android系統(tǒng)且所有Rust代碼的內(nèi)存安全漏洞為零” [1] 的啟發(fā),最近筆者懷著濃厚的興趣也順應(yīng)Rust 的潮流,嘗試著將一款C
    的頭像 發(fā)表于 01-25 11:21 ?642次閱讀

    FreeBSD也要 “銹化”?

    FreeBSD 開發(fā)者正在考慮允許在 FreeBSD 基礎(chǔ)系統(tǒng)中使用 Rust 編程語言的好處和成本。
    的頭像 發(fā)表于 01-24 10:22 ?561次閱讀
    FreeBSD也要 “銹化”?

    Git開發(fā)者關(guān)注內(nèi)存安全問題,探討引入Rust語言

    根據(jù)最新披露的郵件討論,Git開發(fā)團隊熱議在Git項目中引入Rust的可行性。作為一種開源的分布式代碼版本管理工具,廣泛運用于各種開發(fā)項目。盡管現(xiàn)在Git項目主要以C與Python為主要開發(fā)語言,但探討顯示,引入Rust能顯著降
    的頭像 發(fā)表于 01-15 14:23 ?626次閱讀
    Git開發(fā)者關(guān)注內(nèi)存<b class='flag-5'>安全</b>問題,探討引入<b class='flag-5'>Rust</b><b class='flag-5'>語言</b>