自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

最安全的編程語言:Rust

安全 應(yīng)用安全
在“安全優(yōu)先”、“安全左移”、“供應(yīng)鏈安全”的大趨勢(shì)下,Rust作為一種更安全的編程語言越來越流行。

在“安全優(yōu)先”、“安全左移”、“供應(yīng)鏈安全”的大趨勢(shì)下,Rust作為一種更安全的編程語言越來越流行。

在IT巨頭那里,Rust尤其受到重視。例如,微軟曾專門委派一名實(shí)習(xí)生,用Rust重寫一個(gè)至關(guān)重要的網(wǎng)絡(luò)處理程序,該程序的內(nèi)存安全漏洞過去讓微軟安全響應(yīng)中心(MSRC)頭疼不已。

[[389175]]

Rust已經(jīng)連續(xù)五年被開發(fā)人員評(píng)為“最受喜愛”的編程語言,因?yàn)樗梢员苊饽承╊愋偷膬?nèi)存安全錯(cuò)誤,能從根本上改善軟件漏洞的現(xiàn)狀。

讓Rust聲名遠(yuǎn)播的優(yōu)點(diǎn)還包括:提供C和C++的速度和控制能力,同時(shí)還提供了其他語言(例如Go和Python)的安全性和安全性保證。MSRC將近70%的漏洞歸類為內(nèi)存安全問題,因此消除此類漏洞至關(guān)重要。

MSRC軟件工程師Alexander Clarke近日發(fā)文表達(dá)了對(duì)Rust的偏愛,他在博客中指出,盡管用C++編譯可能會(huì)更容易,但是生成的程序更有可能出現(xiàn)錯(cuò)誤和漏洞。

Alexander說:“Rust編譯器的錯(cuò)誤消息功能特別有用。”“通過錯(cuò)誤消息,Rust能確切告訴你代碼為什么不正確,并給出解決建議,從而落實(shí)了安全編程的概念。”

在Mozilla采用Rust為Firefox瀏覽器重寫代碼十多年之后,Rust可能已準(zhǔn)備就緒。

雖然當(dāng)前Rust的采用率仍然很低,根據(jù)“StackOverflow 2020開發(fā)人員調(diào)查”,僅5.1%的開發(fā)人員使用Rust語言,但許多大型公司已承諾在特定的開發(fā)項(xiàng)目中使用Rust。

從2016年開始,Mozilla基金會(huì)就開始在推出使用Firefox瀏覽器中的Rust語言開發(fā)的代碼。2019年,微軟表示其打算更廣泛地采用Rust在Windows中編寫系統(tǒng)軟件。在2021年2月,Mozilla拆分了該項(xiàng)目,由新的Rust Foundation管理,項(xiàng)目的創(chuàng)始贊助商包括微軟、谷歌、亞馬遜和華為。

為什么Rust越來越受歡迎?

Rust Foundation的臨時(shí)執(zhí)行董事Ashley Williams表示,這不僅與速度和安全性有關(guān),至少對(duì)開發(fā)人員而言也是如此:“實(shí)際上,人們對(duì)Rust的贊譽(yù),不僅包括語言和編譯器,還包括高人氣的開發(fā)社區(qū)和一流的軟件包管理器。”

對(duì)于企業(yè)而言,是否采用Rust取決于Rust的短板——Rust的缺點(diǎn)是什么?很多開發(fā)人員發(fā)現(xiàn)Rust的編譯器喜歡無緣無故地報(bào)警并拒絕工作;某些編碼模式會(huì)導(dǎo)致緩沖區(qū)溢出,釋放后使用(use-after-free)漏洞,內(nèi)存兩次釋放問題以及引用空指針。

雖然尚存在一些問題,瑕不掩瑜,Rust的安全性的回報(bào)足夠誘人。以微軟為例,Rust可以幫助微軟消除大部分CVE漏洞。微軟首席云開發(fā)倡導(dǎo)者Ryan Levick在一篇博客文章中說,使用編程語言構(gòu)建核心系統(tǒng)組件可以幫助減少主要的漏洞來源。

他說:“我們相信Rust在編寫安全系統(tǒng)軟件方面會(huì)改變游戲規(guī)則。”“Rust提供編寫底層系統(tǒng)所需的性能和控制,同時(shí)使軟件開發(fā)人員能夠編寫健壯、安全的程序。”

當(dāng)然,我們也需要留神編程語言安全性的過分夸大。

1996年1月,Sun Microsystems(升陽(yáng)公司)宣布推出Java 1.0,鼓吹可移植代碼(例如“一次編寫,隨處運(yùn)行”),Sun還吹捧了許多安全屬性,例如自動(dòng)內(nèi)存管理(即“垃圾回收”)以及類型安全性和防止小程序(Applets)修改系統(tǒng)資源的隔離功能等。

時(shí)至今日,根據(jù)StackOverflow調(diào)查,Java的使用率約為40%,僅次于JavaScript、HTML/CSS、SQL和Python,位居第五。但是,根據(jù)《2020年開源安全狀況》,在2019年開源組件中發(fā)現(xiàn)的6,000多個(gè)漏洞中,Java程序占15%,僅次于C(占30%)和PHP(占27%)。

Java的案例表明,效率優(yōu)先的開發(fā)人員通常不會(huì)使用安全功能,而是繼續(xù)開發(fā)不安全的代碼。

Rust的安全方法比Java更自以為是,很可能無法避免開發(fā)人員對(duì)安全性的破壞。盡管Rust提供了內(nèi)存安全性,但它也提供了一種繞過方法——“UNSAFE”關(guān)鍵字。使用關(guān)鍵字是開發(fā)人員覆蓋編譯器并阻止編譯器檢查代碼塊的一種方法——因?yàn)殚_發(fā)人員拍胸脯擔(dān)保該代碼是安全的。

許多Rust愛好者認(rèn)為濫用關(guān)鍵字會(huì)破壞Rust模型。Williams對(duì)此表示理解,她說:“有些人確實(shí)會(huì)用不安全的方式使用UNSAFE防護(hù)塊。”“如果將內(nèi)容放入不安全的塊中,編譯器將不會(huì)對(duì)其進(jìn)行檢查,如果這些內(nèi)容有誤,則可能會(huì)導(dǎo)致內(nèi)存錯(cuò)誤。”

但是她指出,即使使用了正確的編譯器功能,漏洞也很可能會(huì)滲透到開發(fā)人員的程序中,但是安全研究人員和黑客往往會(huì)發(fā)現(xiàn)開發(fā)人員遺留下來的問題和漏洞。例如:重點(diǎn)關(guān)注Rust安全的站點(diǎn)RustSec列出了Rust軟件包(或“crates”)和語言中的250多個(gè)漏洞。

【本文是51CTO專欄作者“安全牛”的原創(chuàng)文章,轉(zhuǎn)載請(qǐng)通過安全牛(微信公眾號(hào)id:gooann-sectv)獲取授權(quán)】

戳這里,看該作者更多好文 

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2011-12-26 09:12:24

編程語言

2014-02-04 19:44:23

編程語言開發(fā)

2014-04-04 10:02:34

RustMozilla

2013-04-11 09:51:43

編程語言

2022-03-02 09:49:14

Rust編程語言

2024-03-01 20:16:03

GoRust語言

2023-12-15 14:38:00

GoRust編程語言

2012-03-30 13:56:17

編程開發(fā)

2018-03-13 09:34:30

人工智能編程語言Python

2013-07-11 08:51:06

編程語言

2020-09-01 07:50:21

Rust 編程語言

2018-12-29 09:45:28

Linux編程語言命令

2024-07-05 09:00:00

編程語言Rust開發(fā)

2018-01-02 14:00:16

編程語言Bug

2011-12-20 15:57:32

程序員

2012-03-27 09:36:59

編程語言

2019-01-30 12:38:41

JavaScript前端編程語言

2021-05-17 10:35:22

編程技能開發(fā)

2018-01-10 08:45:57

編程語言PythonKotlin

2015-05-07 10:10:29

GitHub編程語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)