中國學者向 Linux 提交多條「惡意程式碼」,結果整個大學都被 Linux 封了

編輯:杜偉、陳萍

為了寫論文,明尼蘇達大學的研究者竟然向 Linux 核心發送了 200 多個有漏洞的程式碼,結果惹怒了 Linux 社區,不僅禁止整所大學向 Linux 提交程式碼,還將該校提交的程式碼還原。

近日,國外學術圈出現了一件「新鮮事」,明尼蘇達大學的兩位中國研究者在寫論文時嘗試將壞補丁(bad patch)放入 Linux 核心中作為「測試」,用於研究開源社區的漏洞。但當他們繼續貢獻「帶 bug 程式碼」的時候,卻發現 Linux 核心管理員 Greg Kroah-Hartman 終結了他們的行為,並將整個明尼蘇達大學拉入了 Linux 黑名單。

事情究竟是怎樣的呢?

事情究竟是怎樣的呢?

此前,明尼蘇達大學電腦科學與工程系博士生 Qiushi Wu 及其導師助理教授 Kangjie Lu 合作寫了一篇《On the Feasibility of Stealthily Introducing Vulnerabilities in Open-Source Software via Hypocrite Commits》論文,嘗試將 UAF(Use-After-Free)漏洞放入 Linux 核心。通常來說,這種 Red Team 安全檢測很常見,並且該論文已經被 2021 IEEE 安全與隱私研討會接收。

但當他們再次嘗試提交程式碼時,卻發現 Linux 核心管理員 Greg Kroah-Hartman 已經將整個明尼蘇達大學「拉黑」了。

論文地址:https://github.com/QiushiWu/QiushiWu.github.io/blob/main/papers/OpenSourceInsecurity.pdf

Greg Kroah-Hartman 是備受尊敬的 Linux 核心開發者之一,他在推特回覆稱:「Linux 核心開發者不喜歡『被實驗』,我們要做的事情本來就夠多了。」

在 Linux 核心郵件列表(LKML)中,當研究者再次嘗試提交虛假補丁時,Kroah-Hartman 更清楚地表達了他的態度,「請停止提交已知無效的補丁,不要想著為了完成論文而在審核過程中搗鬼,這種做法是不對的,浪費我們的時間。我們將不得不再次向貴校知會這件事情。」

Linux 核心高級開發人員 Leon Romanovsky 也解釋道:「他們是故意將 bug 引入核心,這在任何開源社區都是大禁忌。在 Linux 核心社區中,開發者之間的信任是開發過程中至關重要的一部分。」

這兩位研究者是不是故意為之呢?又會不會對 Linux 造成損害呢?Kangjie Lu 教授之前已經對自己的研究做出了以下聲明:

一,我們從來沒有在提交的程式碼中合併 bug,論文證明了這類問題存在的可能性;

二,我們的做法是這樣的:首先發現真正的 bug A,然後提交補丁 A 來修復 bug A,這也將引入 bug B;所以,我們也會在合併 bug B 之前提交補丁 B 來修復它。換句話說,我們通過兩步來修復 bug A。

三,這些發現在提交前已經報告給了 Linux 管理員;

四,我們不會對任何 Linux 使用者造成傷害,並修復了這些 bug;

五,這項研究旨在通過提高人們對這類問題的認知來改進修補過程,激勵人們開發自動補丁檢測和驗證工具。

雙方各執一詞。不過,明尼蘇達大學電腦科學與工程系官方在獲知這件事情之後,表示「兩位研究者的研究引發了 Linux 核心社區的廣泛關注,並導致 Linux 拉黑了整所大學。我們非常嚴肅地處理整件事情,並已經立即終止了這項研究。我們還將追查兩位研究者採用的研究方法以及該方法的批准流程,確定適當的補救措施,併為將來出現的其他問題做好準備。

或許是校方的「不作為」導致自己被拉黑

或許是校方的「不作為」導致自己被拉黑

Kangjie Lu 教授的另一位博士生(Aditya Pakki)提交了一個一共只修改 / 增加了兩行的小補丁:

由於這個補丁很簡單,而且似乎改善了程式碼的質量,它最初得到了一些成員的支持,但後來受到質疑。而在 4 月 19 日,資深的核心貢獻者 Al Viro 斥責該貢獻者提交了一個「沒有修復任何東西的補丁。」

Aditya Pakki 提交的另外一個補丁:

Linux 核心開發者之一 Greg Kroah-Hartman 警告稱,不要浪費核心維護者的時間提交這種補丁。顯然,這不是唯一引起爭議的補丁請求。還有 3 個這樣的補丁來自同一個研究人員,並認為這些補丁增加了安全漏洞。

面對這些公開抨擊,Aditya Pakki 認為自己是受害者,指責核心維護者的態度,「我恭敬地請你停止和停止作出近乎誹謗的野蠻指控。」他還聲稱「這些補丁是作為我寫的一個新的靜態分析器的一部分發送的,它的靈敏度顯然不是很高。我發送補丁的目的是希望得到反饋。我們不是 Linux 核心方面的專家,反覆發表這些言論讓人聽了很反感。」Pakki 說:「我不會再發補丁了,因為這種態度不僅不受歡迎,而且會讓新手和非專業人士感到害怕。」

這激怒了 Kroah-Hartman 並回複道:

你和你的團隊公開承認發送了已知的錯誤補丁,以查看核心社區對它們的反應,並發表了一篇基於這項工作的論文。現在你又提交了一系列明顯錯誤的補丁,我該怎麼看待這種事情?[這些新的補丁] 顯然不是由一個有智慧的靜態分析工具創造的,因為它們都是完全不同的模式的結果,而且所有這些補丁顯然根本沒有修復任何東西。那麼,除了你和你的團隊繼續通過發送這種無稽之談的補丁來對核心社區的開發者進行試驗之外,我還能想到什麼呢?

當提交由工具創建的補丁時,每個這樣做的人都會提交類似「found by tool XXX, we are not sure if this is correct or not, please advise」的語句。為什麼在這裡你們就沒執行這樣的操作。你不是在尋求幫助,你聲稱這些是合法的修復,但你知道這是錯誤的。

任何對 C 語言有一定了解的人都可以看到你提交的補丁根本沒有任何作用,所以認為一個工具創造了它們,然後你認為它們是一個有效的 「修復」,這完全是你的疏忽,不是我們的。你才是有錯的人,我們的工作不是成為你創造的工具的測試對象。

我們的社區歡迎那些幫助和增強 Linux 的開發者,但並不是你們嘗試做的事情,所以請不要試圖用這種方式來破壞它。我們的社區不歡迎被試驗,也不歡迎通過提交已知的補丁被測試,這些補丁要麼是故意不做什麼,要麼是故意引入 bug。如果你想做這樣的工作,我建議你找一個不同的社區來做你的實驗,你在這裡是不受歡迎的。

這些開發者不會再回來了。而且,因為明尼蘇達大學在受到警告後沒有阻止他們,Kroah-Hartman 表示現在不得不禁止明尼蘇達大學今後提交任何程式碼,並將以往提交的程式碼還原。

大多數 Linux 核心開發人員和其他程式設計師都同意 Kroah-Hartman 的觀點。Linux 核心高級開發人員、谷歌工程師 Ted T’so 指出,儘管負責這個項目的助理教授 Kangjie Lu 過去做過一些有用的安全工作:

問題在於,Lu 教授和他的團隊在關於什麼是道德的以及核心開發社區可接受的行為方面有一些非常偏頗的想法。並且,明尼蘇達大學機構審查委員會(IRB) 認為 Lu 教授所做的研究不在正常實驗範圍內,這意味著明尼蘇達大學沒有任何機構對這種行為進行控制——這大概就是 Linux 禁掉整所大學的原因所在。

此外,兩位研究者在他們的論文中聲稱,他們的補丁沒有一個真正進入任何 Linux 程式碼庫,它們只是出現在電子郵件中,而不是成為任何 Linux 核心分支的 Git 提交。然而事實並非如此。

另一位 Linux 核心高級開發人員 Romanovsky 對此表示,他已經查看了 Pakki 提供的四個已被接受的補丁,其中三個添加了各種嚴重性的安全漏洞。Linux 核心驅動程序和 Debian 開發人員 Sudip Mukherjee 也表示,很多補丁已經到達 stable tree。

所以,這些研究人員不僅浪費了 Linux 提交者的時間,而且他們實際上把壞程式碼引入了 Linux 核心。

參考連結:

https://www.neowin.net/news/linux-bans-university-of-minnesota-for-sending-buggy-patches-in-the-name-of-research/

https://www.zdnet.com/article/greg-kroah-hartman-bans-university-of-minnesota-from-linux-development-for-deliberately-buggy-patches/

https://linux.cn/article-13320-1.html

相關文章