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