為了寫(xiě)論文,,明尼蘇達(dá)大學(xué)的研究者竟然向 Linux 內(nèi)核發(fā)送了 200 多個(gè)有漏洞的代碼,,結(jié)果惹怒了 Linux 社區(qū),,不僅禁止整所大學(xué)向 Linux 提交代碼,,還將該校提交的代碼還原。
近日,,國(guó)外學(xué)術(shù)圈出現(xiàn)了一件「新鮮事」,,明尼蘇達(dá)大學(xué)的兩位華人研究者在寫(xiě)論文時(shí)嘗試將壞補(bǔ)丁(bad patch)放入 Linux 內(nèi)核中作為「測(cè)試」,,用于研究開(kāi)源社區(qū)的漏洞,。但當(dāng)他們繼續(xù)貢獻(xiàn)「帶 bug 代碼」的時(shí)候,,卻發(fā)現(xiàn) Linux 內(nèi)核管理員 Greg Kroah-Hartman 終結(jié)了他們的行為,并將整個(gè)明尼蘇達(dá)大學(xué)拉入了 Linux 黑名單,。
事情究竟是怎樣的呢,?
此前,明尼蘇達(dá)大學(xué)計(jì)算機(jī)科學(xué)與工程系博士生 Qiushi Wu 及其導(dǎo)師助理教授 Kangjie Lu 合作寫(xiě)了一篇《On the Feasibility of Stealthily Introducing Vulnerabilities in Open-Source Software via Hypocrite Commits》論文,,嘗試將 UAF(Use-After-Free)漏洞放入 Linux 內(nèi)核,。通常來(lái)說(shuō),這種 Red Team 安全檢測(cè)很常見(jiàn),,并且該論文已經(jīng)被 2021 IEEE 安全與隱私研討會(huì)接收,。
但當(dāng)他們?cè)俅螄L試提交代碼時(shí),卻發(fā)現(xiàn) Linux 內(nèi)核管理員 Greg Kroah-Hartman 已經(jīng)將整個(gè)明尼蘇達(dá)大學(xué)「拉黑」了,。
論文地址:https://github.com/QiushiWu/QiushiWu.github.io/blob/main/papers/OpenSourceInsecurity.pdf
Greg Kroah-Hartman 是備受尊敬的 Linux 內(nèi)核開(kāi)發(fā)者之一,,他在推特回復(fù)稱(chēng):「Linux 內(nèi)核開(kāi)發(fā)者不喜歡『被實(shí)驗(yàn)』,我們要做的事情本來(lái)就夠多了,?!?/p>
在 Linux 內(nèi)核郵件列表(LKML)中,當(dāng)研究者再次嘗試提交虛假補(bǔ)丁時(shí),,Kroah-Hartman 更清楚地表達(dá)了他的態(tài)度,,「請(qǐng)停止提交已知無(wú)效的補(bǔ)丁,不要想著為了完成論文而在審核過(guò)程中搗鬼,,這種做法是不對(duì)的,,浪費(fèi)我們的時(shí)間。我們將不得不再次向貴校知會(huì)這件事情,?!?/p>
Linux 內(nèi)核高級(jí)開(kāi)發(fā)人員 Leon Romanovsky 也解釋道:「他們是故意將 bug 引入內(nèi)核,這在任何開(kāi)源社區(qū)都是大禁忌,。在 Linux 內(nèi)核社區(qū)中,,開(kāi)發(fā)者之間的信任是開(kāi)發(fā)過(guò)程中至關(guān)重要的一部分?!?/p>
這兩位研究者是不是故意為之呢,?又會(huì)不會(huì)對(duì) Linux 造成損害呢?Kangjie Lu 教授之前已經(jīng)對(duì)自己的研究做出了以下聲明:
一,,我們從來(lái)沒(méi)有在提交的代碼中合并 bug,,論文證明了這類(lèi)問(wèn)題存在的可能性,;
二,,我們的做法是這樣的:首先發(fā)現(xiàn)真正的 bug A,然后提交補(bǔ)丁 A 來(lái)修復(fù) bug A,,這也將引入 bug B,;所以,,我們也會(huì)在合并 bug B 之前提交補(bǔ)丁 B 來(lái)修復(fù)它。換句話(huà)說(shuō),,我們通過(guò)兩步來(lái)修復(fù) bug A,。
三,這些發(fā)現(xiàn)在提交前已經(jīng)報(bào)告給了 Linux 管理員,;
四,,我們不會(huì)對(duì)任何 Linux 用戶(hù)造成傷害,并修復(fù)了這些 bug,;
五,,這項(xiàng)研究旨在通過(guò)提高人們對(duì)這類(lèi)問(wèn)題的認(rèn)知來(lái)改進(jìn)修補(bǔ)過(guò)程,激勵(lì)人們開(kāi)發(fā)自動(dòng)補(bǔ)丁檢測(cè)和驗(yàn)證工具,。
雙方各執(zhí)一詞,。不過(guò),明尼蘇達(dá)大學(xué)計(jì)算機(jī)科學(xué)與工程系官方在獲知這件事情之后,,表示「兩位研究者的研究引發(fā)了 Linux 內(nèi)核社區(qū)的廣泛關(guān)注,,并導(dǎo)致 Linux 拉黑了整所大學(xué)。我們非常嚴(yán)肅地處理整件事情,,并已經(jīng)立即終止了這項(xiàng)研究,。我們還將追查兩位研究者采用的研究方法以及該方法的批準(zhǔn)流程,確定適當(dāng)?shù)难a(bǔ)救措施,,并為將來(lái)出現(xiàn)的其他問(wèn)題做好準(zhǔn)備,。」
或許是校方的「不作為」導(dǎo)致自己被拉黑
Kangjie Lu 教授的另一位博士生(Aditya Pakki)提交了一個(gè)一共只修改 / 增加了兩行的小補(bǔ)?。?/p>
由于這個(gè)補(bǔ)丁很簡(jiǎn)單,,而且似乎改善了代碼的質(zhì)量,它最初得到了一些成員的支持,,但后來(lái)受到質(zhì)疑,。而在 4 月 19 日,資深的內(nèi)核貢獻(xiàn)者 Al Viro 斥責(zé)該貢獻(xiàn)者提交了一個(gè)「沒(méi)有修復(fù)任何東西的補(bǔ)丁,?!?/p>
Aditya Pakki 提交的另外一個(gè)補(bǔ)丁:
Linux 內(nèi)核開(kāi)發(fā)者之一 Greg Kroah-Hartman 警告稱(chēng),,不要浪費(fèi)內(nèi)核維護(hù)者的時(shí)間提交這種補(bǔ)丁,。顯然,這不是唯一引起爭(zhēng)議的補(bǔ)丁請(qǐng)求,。還有 3 個(gè)這樣的補(bǔ)丁來(lái)自同一個(gè)研究人員,,并認(rèn)為這些補(bǔ)丁增加了安全漏洞。
面對(duì)這些公開(kāi)抨擊,,Aditya Pakki 認(rèn)為自己是受害者,,指責(zé)內(nèi)核維護(hù)者的態(tài)度,,「我恭敬地請(qǐng)你停止和停止作出近乎誹謗的野蠻指控?!顾€聲稱(chēng)「這些補(bǔ)丁是作為我寫(xiě)的一個(gè)新的靜態(tài)分析器的一部分發(fā)送的,,它的靈敏度顯然不是很高。我發(fā)送補(bǔ)丁的目的是希望得到反饋,。我們不是 Linux 內(nèi)核方面的專(zhuān)家,,反復(fù)發(fā)表這些言論讓人聽(tīng)了很反感?!筆akki 說(shuō):「我不會(huì)再發(fā)補(bǔ)丁了,,因?yàn)檫@種態(tài)度不僅不受歡迎,而且會(huì)讓新手和非專(zhuān)業(yè)人士感到害怕,?!?/p>
這激怒了 Kroah-Hartman 并回復(fù)道:
【你和你的團(tuán)隊(duì)公開(kāi)承認(rèn)發(fā)送了已知的錯(cuò)誤補(bǔ)丁,以查看內(nèi)核社區(qū)對(duì)它們的反應(yīng),,并發(fā)表了一篇基于這項(xiàng)工作的論文?,F(xiàn)在你又提交了一系列明顯錯(cuò)誤的補(bǔ)丁,我該怎么看待這種事情,?[這些新的補(bǔ)丁] 顯然不是由一個(gè)有智慧的靜態(tài)分析工具創(chuàng)造的,,因?yàn)樗鼈兌际峭耆煌哪J降慕Y(jié)果,而且所有這些補(bǔ)丁顯然根本沒(méi)有修復(fù)任何東西,。那么,,除了你和你的團(tuán)隊(duì)繼續(xù)通過(guò)發(fā)送這種無(wú)稽之談的補(bǔ)丁來(lái)對(duì)內(nèi)核社區(qū)的開(kāi)發(fā)者進(jìn)行試驗(yàn)之外,我還能想到什么呢,?
當(dāng)提交由工具創(chuàng)建的補(bǔ)丁時(shí),,每個(gè)這樣做的人都會(huì)提交類(lèi)似「found by tool XXX, we are not sure if this is correct or not, please advise」的語(yǔ)句。為什么在這里你們就沒(méi)執(zhí)行這樣的操作,。你不是在尋求幫助,,你聲稱(chēng)這些是合法的修復(fù),但你知道這是錯(cuò)誤的,。
任何對(duì) C 語(yǔ)言有一定了解的人都可以看到你提交的補(bǔ)丁根本沒(méi)有任何作用,,所以認(rèn)為一個(gè)工具創(chuàng)造了它們,然后你認(rèn)為它們是一個(gè)有效的 「修復(fù)」,,這完全是你的疏忽,,不是我們的。你才是有錯(cuò)的人,,我們的工作不是成為你創(chuàng)造的工具的測(cè)試對(duì)象,。
我們的社區(qū)歡迎那些幫助和增強(qiáng) Linux 的開(kāi)發(fā)者,但并不是你們嘗試做的事情,所以請(qǐng)不要試圖用這種方式來(lái)破壞它,。我們的社區(qū)不歡迎被試驗(yàn),也不歡迎通過(guò)提交已知的補(bǔ)丁被測(cè)試,,這些補(bǔ)丁要么是故意不做什么,,要么是故意引入 bug。如果你想做這樣的工作,,我建議你找一個(gè)不同的社區(qū)來(lái)做你的實(shí)驗(yàn),,你在這里是不受歡迎的?!?/p>
這些開(kāi)發(fā)者不會(huì)再回來(lái)了,。而且,因?yàn)槊髂崽K達(dá)大學(xué)在受到警告后沒(méi)有阻止他們,,Kroah-Hartman 表示現(xiàn)在不得不禁止明尼蘇達(dá)大學(xué)今后提交任何代碼,,并將以往提交的代碼還原。
大多數(shù) Linux 內(nèi)核開(kāi)發(fā)人員和其他程序員都同意 Kroah-Hartman 的觀(guān)點(diǎn),。Linux 內(nèi)核高級(jí)開(kāi)發(fā)人員,、谷歌工程師 Ted T'so 指出,盡管負(fù)責(zé)這個(gè)項(xiàng)目的助理教授 Kangjie Lu 過(guò)去做過(guò)一些有用的安全工作:
問(wèn)題在于,,Lu 教授和他的團(tuán)隊(duì)在關(guān)于什么是道德的以及內(nèi)核開(kāi)發(fā)社區(qū)可接受的行為方面有一些非常偏頗的想法,。并且,明尼蘇達(dá)大學(xué)機(jī)構(gòu)審查委員會(huì)(IRB) 認(rèn)為 Lu 教授所做的研究不在正常實(shí)驗(yàn)范圍內(nèi),,這意味著明尼蘇達(dá)大學(xué)沒(méi)有任何機(jī)構(gòu)對(duì)這種行為進(jìn)行控制——這大概就是 Linux 禁掉整所大學(xué)的原因所在,。
此外,兩位研究者在他們的論文中聲稱(chēng),,他們的補(bǔ)丁沒(méi)有一個(gè)真正進(jìn)入任何 Linux 代碼庫(kù),,它們只是出現(xiàn)在電子郵件中,而不是成為任何 Linux 內(nèi)核分支的 Git 提交,。然而事實(shí)并非如此,。
另一位 Linux 內(nèi)核高級(jí)開(kāi)發(fā)人員 Romanovsky 對(duì)此表示,他已經(jīng)查看了 Pakki 提供的四個(gè)已被接受的補(bǔ)丁,,其中三個(gè)添加了各種嚴(yán)重性的安全漏洞,。Linux 內(nèi)核驅(qū)動(dòng)程序和 Debian 開(kāi)發(fā)人員 Sudip Mukherjee 也表示,很多補(bǔ)丁已經(jīng)到達(dá) stable tree,。
所以,,這些研究人員不僅浪費(fèi)了 Linux 提交者的時(shí)間,而且他們實(shí)際上把壞代碼引入了 Linux 內(nèi)核,。