電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 29|回復(fù): 0
收起左側(cè)

谷歌通過(guò) Rust 消除安卓漏洞,顯著減少不安全代碼,不建議使用C/C++

[復(fù)制鏈接]

427

主題

427

帖子

2834

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
2834
跳轉(zhuǎn)到指定樓層
樓主
點(diǎn)擊上方“C語(yǔ)言與CPP編程”,選擇“關(guān)注/置頂/星標(biāo)公眾號(hào)
干貨福利,第一時(shí)間送達(dá)!
最近有小伙伴說(shuō)沒(méi)有收到當(dāng)天的文章推送,這是因?yàn)槲⑿鸥牧送扑蜋C(jī)制,導(dǎo)致沒(méi)有星標(biāo)公眾號(hào)的小伙伴刷不到當(dāng)天推送的文章,無(wú)法接收到一些比較實(shí)用的知識(shí)和資訊。所以建議大家加個(gè)星標(biāo)??,以后就能第一時(shí)間收到推送了。

作者 | Thomas Claburn 譯者 | Sambodhi 策劃 | Tina谷歌表示,過(guò)去六年來(lái),其優(yōu)先考慮內(nèi)存安全軟件開(kāi)發(fā)的努力已大幅減少安卓操作系統(tǒng)中的內(nèi)存安全漏洞數(shù)量。
在最近發(fā)布的 報(bào)告 中,谷歌透露,因內(nèi)存安全問(wèn)題導(dǎo)致的安卓漏洞比例已從 2019 年的 76% 下降至預(yù)計(jì) 2024 年底的 24%,這顯著低于行業(yè)標(biāo)準(zhǔn)的 70%。
這是安卓代碼風(fēng)險(xiǎn)狀況的顯著改善,安卓安全團(tuán)隊(duì)成員 Jeff Vander Stoep 和谷歌高級(jí)軟件工程師 Alex Rebert 將此歸功于采用了 安全編碼(Safe Coding)。這是一套軟件開(kāi)發(fā)實(shí)踐,旨在通過(guò)內(nèi)存安全編程語(yǔ)言(包括 Rust)、靜態(tài)分析和 API 設(shè)計(jì)來(lái)避免引入漏洞。
據(jù)安卓團(tuán)隊(duì)觀察,Rust 變更的回滾率不到 C++ 的一半。
Vander Stoep 和 Rebert 說(shuō):“前幾代人向安全編碼所做的轉(zhuǎn)變可以通過(guò)開(kāi)發(fā)代碼時(shí)所做斷言的可量化性來(lái)體現(xiàn)!
“安全編碼使我們能夠?qū)Υa的屬性以及基于這些屬性可能發(fā)生或不可能發(fā)生的情況做出強(qiáng)有力的斷言,而不是關(guān)注所應(yīng)用的干預(yù)措施(如緩解和模糊測(cè)試),或試圖利用過(guò)去的表現(xiàn)來(lái)預(yù)測(cè)未來(lái)的安全性!
使用 C#、Go、Java、Python、Swift 和 Rust 等內(nèi)存安全編程語(yǔ)言開(kāi)發(fā)軟件是安全編碼的重要組成部分。在大型代碼庫(kù)中,大多數(shù)的嚴(yán)重安全漏洞都源于緩沖區(qū)溢出等內(nèi)存安全缺陷。這一認(rèn)識(shí)促使公共和私營(yíng)部門廣泛推動(dòng)減少內(nèi)存安全漏洞的發(fā)生。
為了實(shí)現(xiàn)這一目標(biāo),我們主要建議避免使用 C 和 C++,因?yàn)檫@兩種語(yǔ)言需要手動(dòng)進(jìn)行內(nèi)存管理,除非開(kāi)發(fā)人員特別敬業(yè),否則容易導(dǎo)致內(nèi)存漏洞。(這一點(diǎn)在 C/C++ 社區(qū)中也得到了關(guān)注,內(nèi)存安全 已成為 該社區(qū)的首要任務(wù)。)
對(duì)谷歌而言,國(guó)際內(nèi)存安全運(yùn)動(dòng) 意味著在安卓和其他項(xiàng)目中更多地采用 Rust 進(jìn)行開(kāi)發(fā),這在大多數(shù)情況下能夠提供內(nèi)存安全保障而不影響性能。同時(shí),這種做法還提高了工作效率。
Vander Stoep 和 Rebert 說(shuō)到,“安全編碼將缺陷查找工作進(jìn)一步向左轉(zhuǎn)移,甚至在代碼提交之前,從而提高了代碼的正確性和開(kāi)發(fā)人員的工作效率”。
“我們看到這種轉(zhuǎn)變體現(xiàn)在一些重要的指標(biāo)上,比如回滾率(因意外錯(cuò)誤導(dǎo)致的代碼緊急回退)。安卓團(tuán)隊(duì)觀察到,Rust 變更的回滾率不到 C++ 的一半!
對(duì)于擁有大量不安全遺留代碼的企業(yè)來(lái)說(shuō),好消息是可能不需要用新語(yǔ)言重寫(xiě)舊代碼。正如 Vander Stoep 和 Rebert 所指出的,漏洞是有半衰期的——它們會(huì)隨著時(shí)間的推移而衰減。他們說(shuō),“舉例來(lái)說(shuō),根據(jù)平均漏洞壽命,5 年前的代碼比新代碼的漏洞密度低 3.4 倍(基于研究結(jié)果中的壽命)到 7.4 倍(基于在安卓和 Chromium 中觀察到的壽命),”。
這并不是說(shuō)舊漏洞會(huì)奇跡般地變得不可利用。相反,漏洞總體密度的降低,這是統(tǒng)計(jì)上的勝利,但并不意味著安全有了保障。
即便如此,通過(guò)使舊代碼與內(nèi)存安全代碼實(shí)現(xiàn)互操作,以及使用內(nèi)存安全語(yǔ)言編寫(xiě)新代碼,現(xiàn)有漏洞的自然衰減率往往會(huì)使大型代碼庫(kù)隨著時(shí)間的推移變得更加安全,而無(wú)需進(jìn)行繁瑣的代碼修訂。如果你停止制造新的內(nèi)存安全漏洞,舊的漏洞至少在總體上就不會(huì)成為問(wèn)題。
Vander Stoep 和 Rebert 說(shuō),“在新代碼中采用安全編碼是一種范式轉(zhuǎn)變,使我們能夠利用漏洞的固有衰減特性來(lái)發(fā)揮我們的優(yōu)勢(shì),即使在大型現(xiàn)有系統(tǒng)中也是如此!
“這個(gè)概念很簡(jiǎn)單:一旦我們切斷了新漏洞的源頭,這些漏洞就會(huì)呈指數(shù)級(jí)減少,從而使我們所有的代碼更加安全,提高 安全設(shè)計(jì)的有效性,并緩解與現(xiàn)有內(nèi)存安全策略相關(guān)的可擴(kuò)展性挑戰(zhàn),使這些策略能夠更加有效和更加有針對(duì)性地得到應(yīng)用!
                作者簡(jiǎn)介:        Thomas Claburn,The Register 網(wǎng)絡(luò)雜志的資深記者。他的專長(zhǎng)在于政府信息技術(shù)、軟件開(kāi)發(fā)以及人工智能的倫理使用。Thomas 在技術(shù)出版領(lǐng)域擁有近 30 年的經(jīng)驗(yàn),曾擔(dān)任過(guò)從雜志版塊編輯到特約編輯的多種職務(wù)。
原文鏈接:
https://www.theregister.com/2024/09/25/google_rust_safe_code_android
——EOF——你好,我是飛宇。日常分享C/C++、計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)、工作體會(huì),歡迎點(diǎn)擊此處查看我以前的學(xué)習(xí)筆記&經(jīng)驗(yàn)&分享的資源。
我組建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起進(jìn)群交流。

歡迎你添加我的微信,我拉你進(jìn)技術(shù)交流群。此外,我也會(huì)經(jīng)常在微信上分享一些計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)以及工作體驗(yàn),還有一些內(nèi)推機(jī)會(huì)。


加個(gè)微信,打開(kāi)另一扇窗
經(jīng)常遇到有讀者后臺(tái)私信想要一些編程學(xué)習(xí)資源,這里分享 1T 的編程電子書(shū)、C/C++開(kāi)發(fā)手冊(cè)、Github上182K+的架構(gòu)路線圖、LeetCode算法刷題筆記等精品學(xué)習(xí)資料,點(diǎn)擊下方公眾號(hào)會(huì)回復(fù)"編程"即可免費(fèi)領(lǐng)取~
感謝你的分享,點(diǎn)贊,在看三  

發(fā)表回復(fù)

本版積分規(guī)則

關(guān)閉

站長(zhǎng)推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表