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