幾周前,Linux社區(qū)被一個(gè)令人不安的消息困擾了——明尼蘇達(dá)大學(xué)研究人員開發(fā)(但事實(shí)證明,他們并沒有完全執(zhí)行)了一種方法,將他們稱之為“hypocrite commits”的東西引入Linux內(nèi)核——其想法是分發(fā)難以檢測的行為,這毫無意義,但攻擊者可能發(fā)現(xiàn)漏洞。
很快,這些人被禁止(至少暫時(shí))對內(nèi)核做提交。他們隨后公開道歉。
盡管漏洞開發(fā)和披露通常很混亂,但針對世界上最大、最重要的開源項(xiàng)目運(yùn)行技術(shù)復(fù)雜的“紅隊(duì)”程序感覺有點(diǎn)多余。很難想象研究人員和機(jī)構(gòu)如此天真或失職,不理解這種行為的潛在危害。
同樣確定的是,維護(hù)人員和項(xiàng)目治理人員有義務(wù)強(qiáng)制執(zhí)行策略,避免浪費(fèi)時(shí)間。他們努力生產(chǎn)不包含漏洞的內(nèi)核版本。但不要忽略了一點(diǎn)——這是一項(xiàng)研究,而不是純粹出于惡意,它揭示了一種軟件(和組織)漏洞,需要技術(shù)和系統(tǒng)性的緩解。
筆者認(rèn)為“hypocrite commits”的爭論從各個(gè)方面來看都是相關(guān)趨勢的征兆,這些趨勢威脅著整個(gè)擴(kuò)展的開源生態(tài)系統(tǒng)及其用戶。這一生態(tài)系統(tǒng)長期以來一直在與規(guī)模、復(fù)雜性以及自由和開源軟件(FOSS)等問題作斗爭。復(fù)雜性體現(xiàn)在:
——這些大型開源項(xiàng)目現(xiàn)在有了很大的目標(biāo)。
——它們的復(fù)雜性和速度已經(jīng)超過了傳統(tǒng)common方法甚至更先進(jìn)的治理模式所能應(yīng)付的規(guī)模。
——它們正在演變?yōu)橄嗷ド唐坊?。例如,越來越難以明確地說明“Linux”或“Kubernetes”是否應(yīng)被視為分布式應(yīng)用程序的“操作系統(tǒng)”。營利組織已經(jīng)注意到了這一點(diǎn),并開始圍繞“全棧”做文章。
——在這樣做的過程中,一些營利組織開始扭曲自由和開源軟件參與的傳統(tǒng)模式。許多實(shí)驗(yàn)正在進(jìn)行中。與此同時(shí),資金、員工對自由和開源軟件的承諾以及其他指標(biāo)似乎在下降。
——開源軟件項(xiàng)目和生態(tài)系統(tǒng)正在以不同的方式適應(yīng),有時(shí)使?fàn)I利組織難以感到“賓至如歸”或從參與中獲益。
與此同時(shí),威脅格局不斷演變:
——攻擊者更大、更聰明、更快、更耐心,導(dǎo)致長期作戰(zhàn)、供應(yīng)鏈中斷等。
——攻擊在財(cái)政、經(jīng)濟(jì)和政治上比以往任何時(shí)候都更有利可圖。
——用戶比以往任何時(shí)候都更容易受到攻擊,接觸到更多的媒介。
——越來越多地使用公共云創(chuàng)建了新的技術(shù)和組織單一文化層,使攻擊更容易。
——復(fù)雜的商用現(xiàn)貨(COTS)解決方案部分或全部由開源軟件組裝而成,創(chuàng)建了復(fù)雜的攻擊面,其組件(和交互)可以被別有用心的參與者訪問和理解。
——軟件組件化使新的供應(yīng)鏈攻擊成為可能。
——與此同時(shí),所有這一切都發(fā)生在組織尋求擺脫非戰(zhàn)略專業(yè)知識、將資本支出轉(zhuǎn)移到運(yùn)營支出、并逐漸依賴云供應(yīng)商和其他實(shí)體來完成艱巨的安全工作之際。
最終的結(jié)果是,Linux內(nèi)核的規(guī)模和重要性并沒有準(zhǔn)備好應(yīng)對改變游戲規(guī)則的超大規(guī)模威脅模型。在我們正在研究的具體案例中,研究人員能夠不太費(fèi)力地入侵站點(diǎn)(使用靜態(tài)分析工具評估已經(jīng)確定需要貢獻(xiàn)者關(guān)注的代碼單元),通過電子郵件非正式地提出“修復(fù)”等。
這是嚴(yán)重的背叛,實(shí)際上是一個(gè)受信任系統(tǒng)的“內(nèi)部人”的背叛,該系統(tǒng)在歷史上一直運(yùn)作良好,能夠生成健壯、安全的內(nèi)核版本。濫用信任本身改變了游戲,而隱含的后續(xù)要求——通過系統(tǒng)的緩解措施來增強(qiáng)相互信任——也變得越來越重要。
但你如何應(yīng)對這樣的威脅呢?在大多數(shù)情況下,正式驗(yàn)證實(shí)際上是不可能的。靜態(tài)分析可能無法揭示精心設(shè)計(jì)的入侵。必須保持項(xiàng)目進(jìn)度(畢竟,還有一些已知的bug需要修復(fù))。而且威脅是不對稱的:正如老話說的,藍(lán)隊(duì)需要抵御一切,紅隊(duì)只需要成功一次。
筆者看到了一些補(bǔ)救的機(jī)會:
限制單一文化的傳播。像Alva Linux和AWS的Open Distribution of ElasticSearch這樣的東西是好的,部分原因是它們保持了廣泛使用的FOSS解決方案的免費(fèi)和開源,但也因?yàn)樗鼈冏⑷肓思夹g(shù)多樣性。
重新評估項(xiàng)目治理、組織和資金,以減少對人力因素的完全依賴,并激勵營利性公司貢獻(xiàn)其專業(yè)知識和其他資源。由于開源的開放性,大多數(shù)營利性公司都會樂于為開源做出貢獻(xiàn),盡管如此,但在許多社區(qū)內(nèi),這可能需要對現(xiàn)有的貢獻(xiàn)者進(jìn)行文化變革。
通過簡化堆棧和驗(yàn)證組件加速商品化。將適當(dāng)?shù)陌踩?zé)任提升到應(yīng)用程序?qū)印?/p>
基本上,筆者提倡的是,像Kubernetes這樣的編排器不應(yīng)該這么重要,Linux的影響應(yīng)該更小。最后,我們應(yīng)該盡可能快地對unikernels等東西的使用進(jìn)行格式化。
無論如何,我們需要確保公司和個(gè)人都能提供開源所需的資源。
原文鏈接:
https://techcrunch.com/2021/07/18/the-end-of-open-source/