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

理解開源安全中的李納斯定律

開源
李納斯定律即“只要有足夠多的眼睛關(guān)注,任何漏洞都無處隱藏”。那么李納斯定律是如何應(yīng)用于開源軟件安全的呢?來看一下吧。

這篇文章討論 Linux 對(duì)開源軟件安全的影響。

開源軟件的一個(gè)常被贊揚(yáng)的優(yōu)點(diǎn)是它的代碼能夠被任何人審查(安全專家通常稱之為“代碼審計(jì)”)。然而,如果你真的去問很多開源軟件用戶他們上一次檢查代碼是什么時(shí)候。你大概只能收獲他們茫然的眼神或者是喃喃的低語。此外,對(duì)于一些相當(dāng)大型的開源應(yīng)用,有效地審查每一行代碼也是困難的。

根據(jù)上述這些稍顯不安的事實(shí),我們不得不思考:如果沒有人察看這些代碼,它是開源還是閉源真的有關(guān)系嗎?

你應(yīng)該相信開源嗎?

計(jì)算機(jī)愛好者傾向于作出認(rèn)為開源軟件比其他軟件更加安全的傳統(tǒng)假設(shè)。我們通常不會(huì)討論這意味者什么:比較的基礎(chǔ)是什么(比什么“更”安全?),或者上述結(jié)論是如何得到的。這是一個(gè)危險(xiǎn)的陳述,因?yàn)樗砻髦灰銓⒁恍〇|西稱之為“開源”,它就自動(dòng)如魔法般地繼承了更高的安全性。這不是開源,事實(shí)上,這正是開源安全非常反對(duì)的。

除非你已經(jīng)親自審計(jì)并理解了軟件代碼,否則就不應(yīng)該假定一個(gè)應(yīng)用程序是安全的。一但你做到了這一點(diǎn),就可以給予它 終極信任ultimate trust。終極信任 不是對(duì)計(jì)算機(jī)而言的,而是對(duì)你本人而言的,至少在這一應(yīng)用程序被滲透攻擊之前,你信任它是因?yàn)槟氵x擇了相信它是安全的。

使用者本人是唯一可以對(duì)軟件代碼給予終極信任的人,因此任何人想要獲得這樣的享受都必須親自審查代碼。相信其他人的話是不管用的。

在你已經(jīng)親自審計(jì)并理解了軟件代碼之前,你對(duì)一個(gè)應(yīng)用程序給予的最大信任度是一個(gè)范圍,可以是從 根本不信任 到 相當(dāng)信任 之間。然而我們并沒有一個(gè)關(guān)于信任程度的標(biāo)準(zhǔn)對(duì)照表,這是一個(gè)你必須親自做出的個(gè)人選擇。如果你已經(jīng)從非常信任的人那里聽說了一款應(yīng)用程序是安全的,那么你可能會(huì)更信任這個(gè)軟件,而不是信任那些你沒有得到信任建議的東西。

然而,因?yàn)闊o法審計(jì)專有(閉源)軟件代碼,你不可能給予它 終極信任。

李納斯定律

現(xiàn)實(shí)很骨感,并不是每個(gè)人都是程序員,同時(shí)也不是每個(gè)程序員都有時(shí)間檢查數(shù)以萬計(jì)的代碼行。因此如果你沒有親自審查代碼,你就只能選擇(一定程度上)相信那些 親自 審查了代碼的人。

那么,有哪些人會(huì)審查代碼呢?

李納斯定律聲稱 只要有足夠的眼睛關(guān)注,任何漏洞都無處隱藏,然而我們并不知道多少雙眼睛是“足夠”的。請(qǐng)不要低估這一數(shù)量,應(yīng)用程序往往經(jīng)過了遠(yuǎn)超你想象數(shù)量的人員審查。原始開發(fā)人員以及后續(xù)開發(fā)人員顯然清楚他們自己寫下的代碼,不過開源軟件往往都是團(tuán)隊(duì)成果,開源時(shí)間越長,閱讀了代碼的開發(fā)人員越多。新加入的開發(fā)人員也必須回顧項(xiàng)目代碼的核心部分,因?yàn)樗麄儽仨殞W(xué)習(xí)基礎(chǔ)代碼以加入新的功能。

同時(shí),為了使開源軟件能夠在 Linux 發(fā)行版上可用,負(fù)責(zé)開源軟件打包分發(fā)的開發(fā)人員會(huì)加入多個(gè)項(xiàng)目。有時(shí)一個(gè)應(yīng)用程序可能會(huì)在不熟悉項(xiàng)目代碼的情況下打包,但是大多數(shù)時(shí)候,開源軟件打包人員都是熟悉所打包的項(xiàng)目代碼的。這不僅僅是因?yàn)樗麄儾幌朐谒麄儾恍湃蔚能浖虾灻?,還由于他們可能不得不修改代碼來使得程序能夠正確編譯。漏洞報(bào)告人員和漏洞修復(fù)人員一般也是熟悉代碼庫的,因?yàn)樗麄冃枰獓L試解決小到運(yùn)行異常,大到程序崩潰的問題。當(dāng)然,一些漏洞報(bào)告人員不是通過親自審查項(xiàng)目代碼,而是通過關(guān)注明顯未按預(yù)期工作的現(xiàn)象,無意中揭示了代碼漏洞。系統(tǒng)管理員通常都是通曉用戶依賴的重要應(yīng)用軟件的代碼的。最后,還有一些安全研究人員,他們專門深入代碼內(nèi)部以揭露潛在的漏洞。

信任與透明

很多人先入為主的認(rèn)為大型軟件的審計(jì)是基本不可能的,因?yàn)樗蓴?shù)以萬計(jì)的代碼行組成。不要被軟件運(yùn)行所需的代碼量欺騙了。我們不需要真的閱讀數(shù)以萬計(jì)的代碼行。代碼是高度結(jié)構(gòu)化的,可被利用的代碼漏洞僅僅只是其中的一行,不過它通常影響軟件的全部功能。

當(dāng)然,也有例外。有時(shí)僅僅一個(gè)系統(tǒng)調(diào)用或者鏈接一個(gè)有缺陷的庫文件就可能引入一系列漏洞。幸運(yùn)的是,多虧安全研究人員以及漏洞數(shù)據(jù)庫所扮演的積極角色,這些錯(cuò)誤相對(duì)而言是容易發(fā)現(xiàn)的。

一些人指著錯(cuò)誤追蹤系統(tǒng),比如 ??通用漏洞披露??Common Vulnerabilities and Exposures(CVE)網(wǎng)站,并推斷開源軟件顯而易見是不安全的。畢竟已經(jīng)向公眾公開了大量的安全風(fēng)險(xiǎn),涉及許多開源項(xiàng)目。但是不要被數(shù)據(jù)欺騙了。只是因?yàn)槲覀兛床坏浆F(xiàn)閉源軟件的漏洞,并不意味著閉源軟件中不存在漏洞。事實(shí)上,已經(jīng)有很多針對(duì)閉源軟件的漏洞攻擊提出了,閉源軟件也是存在漏洞的。區(qū)別在于開發(fā)者(以及用戶)可以查看開源軟件的 所有的漏洞 從而降低漏洞的影響。這是擴(kuò)大對(duì)開源軟件信任的系統(tǒng)機(jī)制的一部分,卻正是閉源軟件軟件所缺少的。

對(duì)于任何代碼而言,可能永遠(yuǎn)沒有“足夠的眼睛”來發(fā)現(xiàn)漏洞,但是開發(fā)社區(qū)越壯大、越多樣化,越有機(jī)會(huì)發(fā)現(xiàn)和修復(fù)代碼中的缺陷。

信任與人

在開源社區(qū)中,參與同一項(xiàng)目的眾多開發(fā)者已經(jīng)發(fā)現(xiàn)“不安全”的漏洞,卻保持沉默的的可能性是微乎其微的,因?yàn)槿藗兒苌偻庖赃@樣的方式合謀。我們已經(jīng)看到了在應(yīng)對(duì) COVID-19 的過程中,人類的行為是如何不一致了,在這里也一樣:

  • 我們都發(fā)現(xiàn)了漏洞(病毒)。
  • 我們知曉如何避免它傳播(待在家里)。
  • 然而病毒還是在持續(xù)傳播,因?yàn)榭偸怯幸粋€(gè)或者多個(gè)人偏離了消減疫情的計(jì)劃。

開源軟件中的漏洞也一樣,如果有人發(fā)現(xiàn)了漏洞總會(huì)公之于眾(當(dāng)然,我們說的是“假如”能夠發(fā)現(xiàn))。

然而就專有軟件而言,有很大可能參與項(xiàng)目的眾多開發(fā)者即使注意到不安全的漏洞卻仍然保持沉默,因?yàn)閷S心J揭蕾囉谛剿?。如果一個(gè)開發(fā)者將漏洞泄漏出來,他可能只是傷害了該專有軟件的聲譽(yù),進(jìn)而降低軟件的銷售額;或者,在更糟糕的情況下,他可能因此而丟了工作。開發(fā)人員拿著薪水秘密地研究軟件,往往不會(huì)談?wù)撈淙毕荨H绻阍?jīng)是一名開發(fā)者,你可能曾經(jīng)簽署過 NDA (LCTT 譯注:保密協(xié)議Non-Disclosure Agreement),也被培訓(xùn)過商業(yè)秘密的重要性,等等不一而足。專有軟件鼓勵(lì)在面對(duì)嚴(yán)重的秘密缺陷時(shí)保持沉默,更多時(shí)候甚至是強(qiáng)制要求沉默。

信任與軟件

不要信任未經(jīng)你審計(jì)的軟件。

如果你必須相信未經(jīng)你審計(jì)的軟件,那么選擇相信已經(jīng)面向那些更有可能將軟件缺陷公之于眾的開發(fā)者公開代碼的軟件。

開源軟件并沒有比專有軟件繼承更高的安全性,但是修復(fù)它的系統(tǒng)得到了更好的規(guī)劃、實(shí)施和人員配置。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2014-12-18 09:58:23

2020-12-30 20:37:14

開發(fā)

2013-09-22 14:57:19

AtWood

2010-09-26 11:26:40

Linux之父林納斯·托瓦茲

2023-10-31 09:00:07

2024-03-13 14:22:10

AIAI助理

2013-08-21 09:17:54

PaaS平臺(tái)即服務(wù)IaaS

2009-10-15 09:30:17

互聯(lián)網(wǎng)創(chuàng)始人

2023-09-08 00:05:53

2015-09-16 15:20:36

云計(jì)算數(shù)據(jù)中心

2019-06-03 16:00:46

2012-11-08 11:07:36

網(wǎng)絡(luò)優(yōu)化白金定律

2015-01-15 09:27:17

CloudFoundrPaaS開源

2009-06-29 09:03:56

喬布斯謎團(tuán)

2014-11-17 10:09:13

2015-01-14 10:45:05

Linux

2011-10-28 15:08:10

喬布斯開源

2021-11-18 10:17:25

AI數(shù)據(jù)人工智能

2013-12-25 13:26:15

開源開源專訪谷歌
點(diǎn)贊
收藏

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