華人學者往Linux內核裡提交bug,社區把整個明尼蘇達大學拉黑了

Linux內核的維護者Greg K-H,突然把整個明尼蘇達大學拉黑了!

這是咋回事?

原來明尼蘇達大學華人教授K.J Lu帶領的團隊在向Linux內核提交補丁時,故意引入新的Bug,然後以此寫論文。

在被警告過一次之後,最近竟然又有這個大學的學生提交明顯無效的補丁。

要知道,Greg每天要審查幾百個代碼提交,忙得要死,中間還發現搗亂的,得是什麼心情。

Greg表示,隨便一個懂點C語言的人都能看出你這代碼沒丁點作用,別拿我們當試驗對象。

Greg放下狠話,未來任何來自umn.edu郵箱的提交都應被默認拒絕。

不僅如此,Greg一口氣把來自這個學校郵箱的歷史提交都撤銷了,後面再挨個審查。

此事被Greg掛出,整個開源社區立即炸開了鍋。Twitter、Reddit、Hacker News都在瘋狂蓋樓中。

究竟發生了什麼?這個故事要從去年11月說起。

這個團隊到底要搞什麼?

先看看這篇論文的標題:論通過僞君子式代碼提交 (Hypocrite Commits)在開源軟件中隱蔽地引入漏洞的可行性。

作者是Lu教授和他的學生Q.S Wu,他們的研究方向是操作系統、程序分析、編譯器的安全問題。

Lu教授去年11月把這篇論文的摘要發在了Twitter上,引起了大家的困惑。

隨後摘要被刪了,只留下一個解釋。

Lu教授的說法是,他們先找到一個真實的Bug A,寫一個補丁A,這個補丁中卻悄悄帶一個Bug B。再寫一個修復Bug B的補丁B一起提交,換句話說是用了兩個步驟修復Bug A。

Lu教授還聲稱,他們將此事告知了內核管理者,讓他們要麼同時接受兩個補丁,要麼都不接受。

並且沒有Linux用戶因此受到傷害,最終結果是他們提交了一系列補丁修復了3個真實Bug(中間引入的新Bug都被後續補丁修復了)。

後來看到的吃瓜羣衆表示,你這把帖刪了就留個解釋,讓人更迷惑了。

於是,該研究團隊在12月寫了一篇完整聲明來澄清這件事。

聲明中提到,論文的目的是提高開源軟件修補過程的安全性,已被IEEE S&P 2021接受。

該團隊在爲Linux內核修復1000多個bug的過程中觀察到了補丁過程存在一些問題。

論文驗證了在提交補丁中引入新的Bug,並被開源社區接受的可能性。想呼籲大家重視這個問題、改善補丁的流程,比如開發自動測試和驗證補丁有效性的工具。

所有引入Bug的補丁都只停留在郵件列表交流中,沒有被採用或合併到任何Linux分支中,這一點得到了社區維護者的明確確認。

總之是爲了提高開源軟件安全性,沒有惡意。由於沒有解釋清楚造成了許多爭議,向大家道歉。

這種研究不可避免地浪費了社區維護者寶貴的時間,爲了彌補,團隊把補丁的代碼改動限制在5行,並努力找出並修復了3個真實的bug。

聲明中還舉了之前的例子,該團隊在2013年證明蘋果公司的應用審查過程存在缺陷,隨後蘋果公司加固了系統。因此該團隊相信本次研究最終也能提高Linux內核的安全性。

最關鍵的是,這項研究已經得到了明尼蘇達大學倫理審查委員會(IRB)的豁免(Exempt)。

IRB認爲,研究對象不是人類行爲,不屬於人類研究(Human Research)。

研究過程中沒有收集任何個人信息。

研究目的是揭示過程中存在的問題,而不是指責任何開源社區維護者。

但這篇論文,爲何會導致社區將明尼蘇達大學拉黑呢?

爲什麼社區要拉黑他們?

時間來到今年4月。

4月6號,明尼蘇達大學一個名爲Aditya Pakki的在讀博士生,給Linux內核提交了一個小補丁。

這個補丁看起來很簡單,似乎也能提高代碼質量,起初曾獲得了幾個社區成員的批准。

然而,4月9日,谷歌首席軟件工程師、社區成員之一Eric Dumazet很快發現不對,並指出了代碼存在的問題。

4月19日,Linux內核社區的貢獻者之一Al Viro在看過代碼後,非常生氣,表示這個補丁的提交者“不是對代碼一竅不通的話,就是故意的。”

之所以會做出這樣的判斷,是因爲這名提交代碼的博士生Aditya Pakki,恰好也在明尼蘇達大學K.J Lu教授的小組中。

而K.J Lu教授帶領的團隊,正是之前給Linux內核社區提交過“垃圾代碼”、來進行“分析開源軟件漏洞”研究的團隊。

這事一出,社區成員Leon Romanovsky發現,這位博士還提交了3個類似的補丁。

他表示,這四個補丁均帶有嚴重的安全漏洞,其中好些已經進入了核心代碼層。

現在,這些補丁正在被移除。

對此,Aditya Pakki在4月21號迴應此事,表示研究人員的態度明顯是“先入爲主”:

這番言論惹怒了Linux內核管理員Greg。

他表示,自己將會禁止明尼蘇達大學對Linux內核做出貢獻,並會取消這一研究小組此前所有的貢獻,因爲這些提交“顯然都是惡意的行爲”。

Greg在社交媒體上表示:“這樣做是浪費開源社區的時間,Linux內核開發者們不喜歡被試驗。”

那麼,爲什麼要拉黑整個明尼蘇達大學呢?

社區認爲,明尼蘇達大學竟然會讓這種研究獲得IRB Exempt,證明學校並不在乎開源社區、甚至可能是故意的。

現在,明尼蘇達大學計算機科學與工程系官方已出面調查此事:

具體來說,將會重新調查這一研究獲得IRB的過程,是否具有爭議。

教授迴應:並非同一項目

目前,K.J Lu教授已經針對此事進行迴應:

針對這件事本身,高級Linux內核開發、谷歌工程師Ted t’so認爲,這裡面最關鍵的問題在於,Lu教授和他的團隊並未對自己此前的研究表示愧疚:

據ZDNet報道,不少Linux社區的開發者和管理員,都持有這樣的看法。

針對教授研究的內容本身,Red Hat的科技策略分析師Jered Floyd則認爲,關於“分析開源軟件漏洞”的這項研究,確實“不太道德”:

針對大學的機制,也有網友表示,部分大學的IRB審查機制,還應該進一步完善:

當然,也有網友認爲,Linux也應該採取更安全的方式進行代碼貢獻:

爭議論文:https://github.com/QiushiWu/QiushiWu.github.io/blob/main/papers/OpenSourceInsecurity.pdf

對論文的聲明:https://www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf

參考鏈接:[1]https://cse.umn.edu/cs/statement-cse-linux-kernel-research-april-21-2021[2]https://www.zdnet.com/article/greg-kroah-hartman-bans-university-of-minnesota-from-linux-development-for-deliberately-buggy-patches/[3]https://news.ycombinator.com/item?id=26887670[4]https://lore.kernel.org/linux-nfs/YH%2FfM%2FTsbmcZzwnX@kroah.com/