APNIC文摘— 信任但驗證:守望相助才是最好的防衛

本APNIC文摘原標題為Trust, but verify: An engaged community is the best defense ,由George Michaelson撰文。

最近美國明尼蘇達大學的一起學術議題,在軟體開發社群中引起不少討論。該校電機系的教授Kangjie Lu及博士學生Qiushi Wu以提供修補程式至Linux核心的名義,利用修補程式導入臭蟲或漏洞,並在成功將「釋放後使用」(Use after Free,UaF)引進Linux核心後,自行提出緩解相關問題的解決方案,最後還將整個過程寫成學術論文發表。

最近這一師徒黨又故技重施,再度提交一系列明顯錯誤的修補程式。Linux核心開發者Greg Kroah-Hartman因此發出郵件,說明對方不應將Linux當成他們為發表論文的實驗對象,並就此禁止明尼蘇達大學參與Linux核心技術社群,往後將拒絕所有來自明尼蘇達大學電子信箱的貢獻(contribution),過去的貢獻也都會撤銷。

本文作者為APNIC資深研發工程師,以此事件為引,他說明在程式碼開發世界中「信任但驗證」的重要。首先,他深深理解Linux社群對此事件的憤怒,認為明尼蘇達大學兩人的行為充滿倫理及安全瑕疵。即使那對師徒黨聲稱自己的行為出於善意(希望證明Linux核心開發社群中貢獻審核流程的漏洞),但方式太過惡劣。他以為了證明機場安檢不夠嚴格而走私炸彈為例,表示再立意良善,都不應採取極端作法。

但是,作者認為,本事件的確有值得我們汲取教訓之處。他指出,若事實真如明尼蘇達大學兩人所言,那Linux核心開發社群在原始碼及共同管理權限的管控上的確非常不嚴謹。通常要提供修補程式和撤回要求(pull request),都必須符合一些基本規定,普遍也會有半自動測試、整合測試和自動建構測試等流程。

當然,有些看似合理、寫得很好的惡意程式碼,還是可能成功矇騙過關。但這也不是新聞。早在1984年就有人寫過論文,檢視這種開源社群中對所有原始碼貢獻無條件信任的傾向。

這篇論文的作者Ken Thompson指出,如果有人想要在原始碼中加入新的程式碼,那原始碼程式會檢查這筆新程式碼。但這檢查流程僅檢視修補性質的程式碼是否符合邏輯,無法發現作者刻意隱藏的後門漏洞。

作者認為這樣的作法有問題,也沒有問題。

有問題是因為所謂的「信任」應該標準更高。我們不應只信任來者為善,更應積極驗證,確保我們賦予的信任並非錯付。

但即使在30年前就發現這個問題,這系統仍照常運行到了今天。所以我們或許也可認為,這樣的作法沒有問題。

有很多例子都顯示,從供應鏈的角度來看,現代科技和機械的基本架構可能存在漏洞。以這篇宣稱晶片中被植入後門的文章為例,雖然文中列出的公司都嚴正否認相關情事,但這個新聞說的其實是:我們應該正視「有人會濫用我們對晶片和硬體設計的無形信任」的事實。

任何供應鏈都可能在不同環節存在風險。我們難以預測弱點會在何時何處出現,但我們可以保持警覺。作者也建議,為了避免「監守自盜」的風險,我們該做的不是加倍限制程式碼讀取權限,而是開放權限,讓更多人一起守望相助,共同防範惡意行為人士。

*台灣網路資訊中心(TWNIC)與亞太網路資訊中心(APNIC)合作,定期精選APNIC Blog文章翻譯摘要,提供中心部落格讀者了解目前亞太地區網路發展之最新趨勢。原文標題為Trust, but verify: An engaged community is the best defense

圖片來源:APNIC blog

Scroll to Top