压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

軟件安全的一場“極左”革命:安全編程語言

今天,無論是大型企業(yè)的IT系統(tǒng)還是個人的智能手機,都面臨無休止的補丁更新,因為這些系統(tǒng)中的軟件每天都會暴露不同的缺陷和安全漏洞。

人們似乎已經(jīng)被迫接受了這樣兩個簡單的“宿命”:

  • 是人就會犯錯,所以代碼漏洞不可避免;
  • 軟件開發(fā)的安全性、效率和成本三者不可兼得。

但是,一種名為Rust的安全編程語言正在快速崛起,逆轉(zhuǎn)軟件安全的宿命。

在程序員中最流行的計算機編程語言榜單上,Python、Java、C++、C、JavaScript和C#常年霸榜,但是Rust已經(jīng)成為增長最快的編程語言:

在軟件安全的“左移”運動中,編程語言位于軟件開發(fā)生命周期的最左側(cè),我們不妨稱之為軟件安全的“極左革命”。用Rust開發(fā)代碼不僅能避免很多常見的安全漏洞類型,而且最終會對全球網(wǎng)絡(luò)安全基線產(chǎn)生重大影響。

“自帶安全屬性”成為引爆點

編程語言就像時尚秀場,你方唱罷我登場,很多紅極一時的語言最終只落得曇花一現(xiàn)。但12歲的Rust卻表現(xiàn)出越來越強大的生命力,已經(jīng)從Mozilla研究人員的副項目成長為一個強大的生態(tài)系統(tǒng)。

Rust的流行并非偶然,其承上啟下,兼具現(xiàn)代性和工程友好的特性,以及性能與安全兼得的優(yōu)點,都讓Rust有了不可估量的前景。Rust的“自帶安全屬性”正獲得越來越多的開發(fā)者甚至硅谷巨頭的青睞,如今已經(jīng)到了一個“引爆點”,對于軟件工程和軟件安全來說都意味著一場革命。

自2019年以來,微軟、谷歌和亞馬遜網(wǎng)絡(luò)服務(wù)一直在使用Rust,這三家公司于2020年與Mozilla和華為成立了非營利性Rust基金會,以支持和發(fā)展該語言。經(jīng)過數(shù)年的不懈努力,Linux內(nèi)核上個月取得重大突破:實現(xiàn)了對Rust的支持。

“Rust正在快速流行,”Android(安卓系統(tǒng))安全和隱私工程副總裁Dave Kleidermacher透露:“我們一直在Android和整個Google產(chǎn)品線上投資Rust,很多工程師都在考慮如何上車。隨著Rust首次登陸Linux并成為官方認(rèn)可語言,不僅僅是Android,現(xiàn)在任何基于Linux的系統(tǒng)都可以開始集成Rust組件。”

Rust最大的亮點之一是“自帶安全屬性”,屬于一種“內(nèi)存安全”語言,其原生安全設(shè)計能夠防止程序意外地從計算機內(nèi)存中提取數(shù)據(jù)。當(dāng)程序員使用沒有此安全屬性的主流語言(包括C和C++)時,必須仔細(xì)檢查程序?qū)⒄埱竽男?shù)據(jù),以及如何請求的參數(shù)。即使是經(jīng)驗最豐富的開發(fā)人員也會偶爾疏忽犯錯。而如果使用Rust開發(fā)軟件,即便是菜鳥程序員也不用擔(dān)心會在代碼中引入任何內(nèi)存安全錯誤。

程序調(diào)用的內(nèi)存中包含其所有功能和庫所使用的共享資源。例如,當(dāng)你打開一個非內(nèi)存安全語言開發(fā)的日歷程序,然后查詢2022年11月2日的日程信息,程序會從分配給存儲該日期數(shù)據(jù)的計算機內(nèi)存區(qū)域中獲取所有信息,這一步?jīng)]什么問題,但是當(dāng)你請求2022年11月42日的數(shù)據(jù)時,如果程序設(shè)計沒有正確約束,不但不會報錯,反而會盡職盡責(zé)地從內(nèi)存中存儲其他數(shù)據(jù)的地方返回一些意想不到的信息,例如你為日歷設(shè)置的密碼,或者在日歷高級功能中存檔的信用卡號。同樣,如果你添加一個11月42日的生日派對日程,程序不會告訴你無法完成任務(wù),而是可能會覆蓋內(nèi)存中不相關(guān)的數(shù)據(jù)。這類錯誤被稱為“越界”讀寫錯誤,顯然,這種錯誤可被攻擊者被利用非法訪問數(shù)據(jù),甚至擴大系統(tǒng)控制權(quán)限。

另一種常見的內(nèi)存安全錯誤類型是“釋放后使用”,即當(dāng)程序釋放部分內(nèi)存后(例如你刪除了2022年10月的所有日歷條目)但錯誤地保留訪問權(quán)限(指針并未刪除)。當(dāng)你稍后請求10月17日的數(shù)據(jù)時,該程序可能仍然能夠抓取到(10月份的)數(shù)據(jù)。軟件代碼中此類內(nèi)存安全漏洞可被黑客利用制作惡意日歷邀請,其中包含精心挑選的日期或一組事件的詳細(xì)信息,旨在操縱內(nèi)存以授予攻擊者遠(yuǎn)程訪問權(quán)。

安全研究和審計反復(fù)證明,大多數(shù)軟件漏洞屬于內(nèi)存安全類漏洞。因此,雖然在Rust中編程時開發(fā)者仍然可能會犯錯誤并產(chǎn)生安全漏洞,但有很大機會杜絕內(nèi)存安全漏洞。

“內(nèi)存安全問題占所有報告漏洞的很大一部分,尤其是操作系統(tǒng),手機和基礎(chǔ)設(shè)施等關(guān)鍵應(yīng)用程序,”軟件供應(yīng)鏈安全公司Chainguard的首席執(zhí)行官Dan Lorenc指出:“幾十年來,人們一直在用內(nèi)存不安全的語言編寫代碼,我們試圖改進和開發(fā)更好的工具,并教人們?nèi)绾伪苊膺@些錯誤,但僅僅靠鞭策來加強安全性是不夠的。我們需要一種新技術(shù),從根本上消滅漏洞,這就是Rust最終帶來的(希望)。”

Rust面臨的挑戰(zhàn)與機遇

Rust并不缺乏懷疑者和批評者。過去兩年在Linux中實現(xiàn)Rust的努力一直存在爭議,部分原因是添加對任何其他語言的支持本身會增加系統(tǒng)的復(fù)雜性,還有一些是關(guān)于如何使Rust在Linux中正常工作的爭論。但支持者強調(diào)Rust滿足了幾個重要條件:不會導(dǎo)致性能損失,與其他語言編寫的軟件具有良好的互操作性,而且它滿足了迫切的需求。

“與其說這是正確的選擇,不如說我們別無選擇,”資深開源貢獻(xiàn)者和研究員Lorenc說道:“除非什么都不做,否則Rust就是唯一選擇。未來十年繼續(xù)使用內(nèi)存不安全的代碼將給科技行業(yè),國家安全和數(shù)字經(jīng)濟的每個角落都留下重大隱患。”

然而,過渡到Rust的最大挑戰(zhàn)之一恰恰是開發(fā)人員已經(jīng)花費了幾十年的時間,用內(nèi)存不安全語言開發(fā)的重要代碼。用Rust編寫的新軟件短時間還無法撼動海量的現(xiàn)存軟件代碼。例如,Rust在Linux內(nèi)核的實現(xiàn)是從外設(shè)——基于Rust的驅(qū)動程序開始的,這些驅(qū)動程序負(fù)責(zé)在操作系統(tǒng)和打印機等硬件之間進行協(xié)調(diào)。

“當(dāng)你做操作系統(tǒng)時,速度和性能總是頭等大事,過去,當(dāng)你用C++或C而不是用Java或其他內(nèi)存安全語言運行的部分,是出于性能方面的考慮,”谷歌的Kleidermacher說:“但Rust能提供相同的性能,同時又獲得內(nèi)存安全性,這真的很酷。但這需要一個過程。你不能在一夜之間重寫5000萬行代碼,所以我們正在仔細(xì)挑選安全關(guān)鍵組件,隨著時間的推移,我們會改造其他東西。”

Kleidermacher指出:在Android中,已經(jīng)有許多加密密鑰管理功能都是用Rust編寫的,包括HTTPS上的私有互聯(lián)網(wǎng)通信功能DNS,超寬帶芯片堆棧的新版本,以及Google定制Tensor G2芯片中使用的新Android虛擬化框架。Android團隊越來越多地將藍(lán)牙和Wi-Fi等連接堆棧遷移到Rust,因為它們基于復(fù)雜的行業(yè)標(biāo)準(zhǔn),并且往往包含大量漏洞。簡而言之,Google采取一種漸進式安全策略,首先將最重要和暴露最多的軟件組件轉(zhuǎn)換到Rust,然后“內(nèi)卷”到其他代碼,逐步獲得增量安全收益。

“是的,這需要大量工作,但科技行業(yè)的價值數(shù)以萬億美元計,擁有數(shù)不清的優(yōu)秀程序員,有足夠的資源推動此事。”互聯(lián)網(wǎng)安全研究小組執(zhí)行董事Josh Aas說道。該組織負(fù)責(zé)內(nèi)存安全倡議Prossimo以及免費證書頒發(fā)機構(gòu)Let”s Encrypt。

隨著Rust進入主流應(yīng)用,很多困擾業(yè)界多年的內(nèi)存安全問題都有望得到解決。例如上周讓全球安全人士焦慮的OpenSSL漏洞,如果OpenSSL是用內(nèi)存安全語言編寫的,那么其中至少一個高危漏洞就可避免。與2014年臭名昭著的OpenSSL漏洞Heartbleed(心臟滴血)不同,上周修復(fù)的漏洞潛伏了兩年之久,導(dǎo)致網(wǎng)站受到數(shù)據(jù)攔截攻擊。雖然OpenSSL一直在努力減少內(nèi)存安全漏洞,但在幾個月前,這個新漏洞還是被引入了OpenSSL3.0.x新版本中。

參考鏈接:

https://www.wired.com/story/rust-secure-programming-language-memory-safe/

來源:GoUpSec

上一篇:關(guān)注!2022年度賽可達(dá)優(yōu)秀產(chǎn)品獎評選正式啟動

下一篇:Fortinet 2022 Q3財報發(fā)布!穩(wěn)步前行,增速遠(yuǎn)超行業(yè)!

<td id="8g9va"><optgroup id="8g9va"></optgroup></td>