程式設計師大神JWZ和Linux Mint幹起來了:兩個熊孩子引起的「口水」大戰

2021-02-25 InfoQ


兩個孩子在父親的電腦上玩耍時,不經意間發現了一種能繞過 Linux 屏保程序並鎖定系統的方法。這是個漏洞,可能允許惡意攻擊者繞過作業系統的屏保程序及密碼,訪問本應鎖定的桌面。

一位暱稱 robo2bobo 的用戶在 GitHub 上的 bug 報告寫道,「幾周之前,孩子們打算訪問我的 Linux 桌面。而我就站在他們身後,看著他們到處亂按亂拍。」兩個孩子在物理與軟鍵盤上同時按下隨機按鍵,最終導致 Linux Mint 屏保程序崩潰、他們得以直接訪問桌面。

這位程式設計師爸爸很驚訝,於是他讓孩子們再試一次,沒想到居然成功了,「我本來以為這只是個偶然事件,但孩子們後來又把問題重現了。」

當天晚上,他到 Linux Mint 的 GitHub 頁面上反饋了這一 bug。沒想到的是,馬上就有其他網友表示在同樣的桌面環境下,「他的孩子」也遇到了同樣的問題.

Linux Mint 首席開發者 Clement Lefebvre 經過一番研究,表示:「這是一個高優先級的錯誤,需要儘快修復。」

最開始,開發人員花了一天多時間,想復現問題,但實際情況並沒那麼容易:「自昨天以來,我們一直無法在此處重現崩潰。」

網友想像開發人員如何試圖重現錯誤

根據 Clement 的介紹,問題最終被歸因於 libcaribou,即 Linux Mint 中使用的桌面界面 Cinnamon 所隨附的軟鍵盤(OSK)組件。具體來講,當用戶按下軟鍵盤上的「ē」鍵時,此 bug 即會被觸發。

在大多數情況下,這個 bug 應該會導致 Cinnamon 桌面進程崩潰;但如果在屏保程序下打開軟鍵盤,則 bug 會引發屏保崩潰,於是用戶即可訪問底層桌面。

Lefebvre 表示,去年 10 月 Linux Mint 系統曾著手修復 CVE-2020-25712 漏洞,卻在不經意間引入了這個新的 bug。從那時起,所有使用 Cinnamon 4.2 以及更高版本的 Linux Mint 發行版都會受到這一繞過攻擊的影響。這是因為從 Cinnamon 4.2 起,系統開始將軟鍵盤功能添加至屏保頁當中。

關於這個 bug 的討論,吸引來了傑米·扎溫斯基(Jamie Zawinski),對此他專門發表了一篇文章,表示他 17 年前就警告過 Cinnamon 和 GNOME 官方:

「如果沒有在 Linux 上運行 XScreenSaver,那麼可以你的屏幕就相當於沒有鎖定。」

文章配了一段閃瞎眼睛的「I TOLD YOU」視頻

出生於 1968 年的傑米·扎溫斯基,英文簡稱為 JWZ,是《黑客帝國》中 MATRIX 矩陣的設計者。

他同時也是 Netscape 瀏覽器的主要設計者,出生於匹茲堡,中學沒有畢業,就已經是一個天才程式設計師,15 歲開始在卡耐基梅隆大學做 Lisp 研發。90 年代初,他去了加州,加入著名的網景:「早在你聽說過 Netscape 之前,我就已經負責開發 Netscape Navigator 1.1 的 UNIX 版本了。」

2004 年,JWZ 首次警告說他遇到了 Linux Mint 的漏洞,之後每隔幾年,JWZ 都會遇到此類 bug。每出現一次,就吐槽一次。

CVE-2019-3010,從 Oracle Solaris 屏幕保護程序可以獲得特殊權限升級;

CVE-2014-1949, MDVSA-2015:162:在 Cinnamon 屏幕保護程序中按菜單鍵,再按 ESC 鍵,就可以進入 shell;

按住向下鍵,解鎖 Cinnamon 屏幕保護程序;

按住回車鍵,解鎖 GNOME 屏幕保護程序。

JWZ 說,早在 17 年前,他甚至還準確提到過這個崩潰 bug,用來解釋「如果不按設計思路操作,會發生什麼問題」,可是每次 Linux Mint 都回覆說「已經修復了」。

JWZ 認為,「糟糕的安全性比沒有安全性還差」,因為現在的 Linux 圖形化界面根基 X11 存在著不可修復的嚴重問題:鎖定和身份驗證是作業系統級別的問題;X11 體系結構的這一錯誤永遠無法修復。

最後還說:「我很關注他們打算如何解決這個問題。」

3Linux Mint 還擊:你行你上,別 BB!

雖然 Linux Mint 在本周三發布了相關補丁,可以解決此項 bug 並有效預防潛在崩潰,但 JWZ 所說的話,可氣壞 Lefebvre 了。

看熱鬧不嫌事大的網友,之前特地將 JWZ 的博客網址發到了 GitHub 的 bug 報告下,還 at 了相關維護人員。

Lefebvre 在 GitHub 頁面上回應 JWZ:「寫篇文章大加嘲諷沒有任何意義。我建議你把自己的口嗨變成行動. 我希望你能在真正參與工作的 6 個月之後再寫封郵件,告訴我們『這裡還有問題,原因是一、二、三……』,或者直接給我們設計出一套又美觀易用、又安全穩定的 locker。」

早在 2004 年,也就是 17 年前,我已經在文檔中解釋過自己在 XScreenSaver 中做出的設計權衡。我甚至還準確提到過這個崩潰 bug,用來解釋「如果不按設計思路操作,會發生什麼問題」。

老哥,要讓別人重視你的意見,還是得更務實一點。這就像我 17 年前提醒你「別出門,可能會遇上車禍。」到了真出事的時候,再告訴參加葬禮的朋友們「我早跟他說過了。」問題是,講這些有意義嗎?該出門還得出,該上高速還是得上,生活本來就沒那麼安全。用戶只是想要漂亮的屏保,我們也在努力滿足大家的要求。這裡要請 JWZ 老兄想想,要在設計中把安全性與豐富性結合起來究竟有多困難。我們早該在設計中考慮這個問題?對,漂亮話誰都會說。重點在於,當時我們的目標是給用戶提供漂亮的屏保,哪顧得上那麼多?

哪怕是 light-locker 與 KDE 本身,在實際效果上也比 JWZ 的設想更靠譜,至少其在滿足安全保障的同時,為用戶需求給出了一種解決方案。我們最初發布 light-locker 時,並沒發現這類問題。因為當時我們大多使用 gnome-scrensaver 及 mate-screensaver 替代 xscreensaver。換句話說,我們接受了 xscreensaver 存在安全缺陷這個事實,並在發布 light-locker 時幾乎忘了這回事。很遺憾,bug 就這麼被保留了下來。

而在編寫 cinnamon-screensaver 時,本意是用它來替換掉 gnome 屏保程序。很可惜,我們還是沒想起修復 bug。畢竟那時候我們連 light-locker 都沒考慮進來,更何況是 xscreensaver 呢。於是乎,就引發了這次的問題。

這就是現實,不管接不接受,這就是現實。JWZ 老哥好像不太明白這一點——你不可能禁止人們做自己想做的事兒,比如出於安全考慮不讓他們過馬路。哪怕有人總在提醒,除了讓他們心煩之外,不會對交通安全有任何幫助。

每次 bug 出現,都回覆說「這的確是個 bug,但他們已經修復了」。這是不對的,問題是這不應該是個 bug。真正的原因是系統設計的問題。設計系統安全架構的人,不應該採取讓安全失效的方式。這是不合理的。

可以看到,GNOME 團隊已經從頭開始進行項目重寫(我不太清楚他們在重寫階段用了什麼設計),我們也有類似的計劃。沒錯,我們犯了前人曾經犯過的錯誤,最後問題出現給了我們當頭一棒。但糾結於過去真的沒什麼意思,最重要的是怎麼避免問題再次出現。我們決定在開發路線圖上把歡迎程序和鎖定程序區分開來,這一點將在 5.0 版本中有所體現。

極盡嘲諷之能事的博文確實容易吸引眼球,也能讓我們意識到問題所在。但我們的關注重點永遠應該放在代碼本身(不只是 gnome-screensaver 或者其他已經發布的上遊代碼,而是整個項目中的代碼),有了問題就做做審核,項目不就是這麼發展完善的嗎?

JWZ 雖然提出了問題,但沒有給出任何解決方案。就個人來說,我認為無論是在安全層面還是功能層面,light-locker 與 KDE 應該都是目前最好的方案選項。

出於種種原因,這個 bug 會在其他屏保鎖定程序中不斷出現。編寫安全代碼其實非常困難,大部分開發者其實根本不做不到。鎖定與身份驗證都是作業系統層級的問題。X11 架構中的這個問題永遠無法修復。我得承認,這些 bug 值得高度重視——因為安全性差比沒有安全保障還可怕。

我對以上內容深表贊同。

更讓人生氣的,在於開發 XScreenSaver 鎖屏程序毫無樂趣可言。我一點興趣也沒有,添加這項功能單純只是為了滿足用戶需求。

其實大多數朋友都像我一樣,都不願親自參與安全保護工作。作為開發者,誰不想弄點酷炫的功能出來呢?而安全實際是在束縛自己,一個個查缺補漏,防止惡意人士破壞整個系統。這很重要,但沒有樂趣。

XScreenSaver 是個了不起的項目,幫助用戶解決了現實需求。作為其 fork 的 gnome-screensaver 也是一樣,多年來始終服務於用戶群體。所以雖然曝出一些安全隱患,但項目開發者已經明確解釋了他們為什麼要做出這樣的選擇與權衡。所以我覺得沒必要抱怨——發現了問題,就解決問題嘛。我們還會更進一步。JWZ 的反饋對我們來說相當於一股反向推進,也更堅定了我們「如非必要,勿增實體」的基本開發理念。

但我還是想對 JWZ 老哥說一句,單靠說漂亮話解決不了實際問題。最好的辦法,就是我們攜手建立一條最安全的道路。是的,不要抱怨、別總強調什麼「我早說過」,加入到代碼審計中來、加入到功能開發中來,做個能解決問題的人。

https://www.jwz.org/blog/2021/01/i-told-you-so-2021-edition/https://github.com/linuxmint/cinnamon-screensaver/issues/354今日薦文

點擊下方圖片即可閱讀

Elastic 堅決更改開源協議抵制「白嫖」,CEO 狂懟 AWS 行為不端

在上雲的大趨勢下,雲安全成為大家關注的事情,如何才能快速構建一個可信賴的雲原生安全防護體系呢?現在機會來了,作為雲安全的先鋒者,騰訊雲現在免費開放雲原生安全系列產品給大家進行試用!只要你申請成為騰訊雲安全體驗官,不僅可以獲得騰訊雲原生安全系列產品 7 天免費試用,還有 IDC 產品報告、精美禮品相送!

還等什麼,趕緊點擊【閱讀原文】或者掃描下方【二維碼】報名吧>>

點個在看少個 bug👇

相關焦點

  • Linux有問必答:如何在Linux Mint Cinnamon啟用桌面共享
    也可以選擇運行以下命令: # gsettings set org.gnome.Vino enabled truevia: http://ask.xmodulo.com/enable-configure-desktop-sharing-linux-mint-cinnamon-desktop.html譯者:GOLinux 校對:wxy本文由
  • 深度|理性谷歌也溫情:揭秘兩個程式設計師大神的神奇友誼
    這是一個關於機器學習的新型軟體項目,傑夫和桑傑擔心項目有些「臃腫」。就像是書本編輯一樣,他們在尋找可以削減的地方。針對這項任務他們開發了一個新的工具可以自行進行優化。「我想的是弄清楚速度有多慢。」桑傑說道。「已經非常慢了。」傑夫說道,他往後靠了靠,神態輕鬆。「這個是120個千字節。」桑傑說道,「大概是八秒左右吧。」
  • 給你講個笑話:我是做遊戲的程式設計師
    突然想起來,給我面試那個人事妹子當初問我:「有沒有加班到死的精神?」內心至今仍然在想,「你會陪我一起死麼?」如果說加班只是日常任務,那麼有女朋友就跟中了六合彩一樣,自從走上光明的程序之路,家人拋棄了我,女友拋棄了我,甚至因為加班經常住在公司裡面,連家裡養的狗都拋棄了我。
  • SQL Server 2017 正式發布:同時支持 Windows 和 Linux
    來自:開源中國社區連結:https://www.oschina.net/news/89263/sql-server-2017-on-windows-linux-and-docker-ga隨著雲端運算越來越普及,微軟的 Azure 也可以運行 SQL Server 2017,能讓開發者用他們熟悉的開發語言和環境,來製作他們想要的應用,同時兼顧安全性和效能。SQL Server 2017 支持使用 R 和 Python 的分析方法,來做資料庫內的機器學習,意味著不必遷移資料,省下不少時間。
  • elementaryOS: 2018最美Linux
    的問題,搜出來是ubuntu的連結,我基本不會點開,ubuntu用的人實在太多,而且是特別多的小白,真正好的發行版是gentoo和arch,文檔齊全,小白少。當然gentoo和arch還是有點門檻的,做為小白ubuntu也不是不好,起碼裝完就可以用了,而且debian這一套包管理系統還是相當不錯的,不過ubuntu也是安裝裝一大堆東西,然後如果你想編譯個軟體,你還會發現整一套工具鏈簡直是一個都沒裝,你裝上後,發現編譯起來也是各種缺庫,真不知道他裝辣麼大的系統都安裝了些什麼。還有unity我覺得非常難看和難用,還好unity已死。
  • 這個雙十一,請對程式設計師好一點
  • Linux系統入門學習:教你在VirtualBox 安裝 Ubuntu 15.04
    Ubuntu 和 Fedora 算是其中對新手比較友好的兩個發行版,主要是其安裝較為簡單,用戶群多,有問題搜索出相關的信息或者找前輩解決。此文為 Linux 新手準備,通過展示整個安裝過程來使 Linxu 新手完成安裝 Ubuntu 或 Fedora ,也懇請各位前輩指出不足之處。
  • 程式設計師婉拒面試,HR言論引爭議!網友:HR情商居然沒程式設計師高
    程式設計師婉拒面試,HR言論引爭議!網友:一個HR情商居然沒程式設計師高大概就是面試的程式設計師可能因為各種原因不想去面試這家公司,找了一個相當硬核不管是誰都無法拒絕的理由推掉了面試...但是由於朋友圈的原因被HR看到了,所以HR明白過來以後開始吐槽!
  • GitHub:傳統Linux系統的終結者?
    他給大家看了一份Google搜索走勢圖(如下),從2004年到2014年,曾經流行的Linux系統如Debian、Fedora、Gentoo等搜索次數逐年穩定下降。即使Ubuntu也「不幸中招」。但這和GitHub有何關聯?
  • 磚塊從24樓屋頂拋下 ,「熊孩子」幹的
    又是誰幹的?昨天,事件真相終於水落石出。記者多方求證,確認該事故系高空拋物所致,而肇事者竟是「熊孩子」。昨天下午,柯橋區公安分局華舍派出所向受害人家屬通報了這起案件的偵破過程及結果,當時有奇奇的爸爸李勇和媽媽江紅梅、李勇委託的代理律師吳兆偉及華舍街道辦事處工作人員等到場。由於柯橋警方不便透露案情,記者根據在場人員的講述,大致了解了案件的過程。
  • 薄荷貓mint cat
    薄荷貓mint cat 活動二 絕版秒殺 熱賣款式單幅88 兩幅138 下單注意看庫存 搶到就是賺到了活動時間:
  • 電影《安全鄰域》:邪惡版小鬼當家,熊孩子惡起來比大人更可怕
    12歲男孩盧卡斯喜歡上了貌美的年輕保姆艾莉絲,但艾莉絲眼裡卻只有熱戀中的男友,盧卡斯醋意頓生,趁著和艾莉絲獨處的機會,想和其拉近關係,行親近之事
  • 程式設計師離職擺攤賣東西4天賺1個月工資,網友:開分店,需要投資嗎
    卻不知,早就有程式設計師嗅到了商機,早在幾個月前,有兩位程式設計師工作不幹了,離職擺攤賣卷餅。據媒體報導,有兩名程序放棄了每月三四千的程式設計師工作,在校門口擺攤賣卷餅,只用了四天就賺了一個月的工資,其每天的營業收入為八九百左右,四天就是三千多元。在此之前,這兩名小夥在大學畢業後一年的時間內做過網際網路營銷和程式設計師,但是覺得賺錢太少,於是跑到校門口擺攤賣卷餅,四天就能賺到相當於以前一個月的工資。
  • 你們想要的:QQ跑在Linux上
    之前在寫《開源的macOS和linux版微信》時,有小夥伴問怎麼搞QQ,做為一個上了年紀的人,我已經不怎麼用QQ了。
  • OSChina 戲精劇場 No.189:打敗快遞小哥的其實是程式設計師
    社區「每日亂彈」可通過以下方式查看:1、微信菜單欄=》點擊「讀我」=》點擊「每日亂彈」2、掃描文末二維碼#當雙十一最苦逼的兩個職業相遇了#近日,杭州一位快遞員深夜前往某小區送快遞,卻把下班程式設計師誤認為「小偷」,鬧了一出烏龍,這一幕恰巧被小區監控記錄下來。
  • 【氣憤】這是哪家熊孩子辦的事???
    兩個窟窿小編必須要問問這是誰家熊孩子辦的事???有熊孩子就有熊家長孩子做出這樣的舉動家長你在幹什麼任由孩子這樣胡來這樣的孩子長大後走到了社會上也是一個不文明,自私自利的人成為不了棟梁之才
  • Mint樂活 倫敦新地標:Tate Modern 新館小窺
    首先,新館SwitchHouse的外貌長這樣…從中間Shop和Cafe之間就有電梯可以通往展覽館。新館Switch House的Collection主要集中在0層,2層,3層和4層。5層是Tate exchange,6層是Events,7層暫不對外開放,專屬員工使用,8層是會員室,9層是餐廳。
  • 自診:口水辨疾病
    唾液是由人體中的三對大唾液腺:即下頜腺、肋腺和舌下腺分泌出來的液體及許多小粘液腺分泌出來的液體,在口腔裡混合而成的透明和半透明消化液。通過觀察唾液的多少、氣味及味覺,我們能夠從中窺探到全身的一些變化。其變化有三種情況,一是生理性的,二是功能性的,三是疾病的徵兆 。
  • 一則鬼故事:如果全世界程式設計師都消失了
    這兩天,有一個話題引起了程式設計師的廣泛討論:年薪80W程式設計師相親被鄙視!某知名網際網路社區,一網友發帖,自己年薪80W去相親,竟然被鄙視不如在二本學校教書的大學老師。如果程式設計師都消失了剛過去的10.24,屬於咱們程式設計師的傳統佳節,不妨來開個腦洞:如果滅霸打了一個響指,全世界程式設計師都消失了,世界會變成什麼樣?
  • 【熊孩子的吐槽】《憤怒的小鳥2》:想說愛你不容易
    《憤怒的小鳥2》終究沒有擺脫它的兄弟《植物大戰殭屍2》的命運。問世之後,收穫的差評速度就像它的下載量那麼快,理由都和《植物大戰殭屍2》差不多:令人詬病的遊戲內購。畢竟是正兒八經的續作,和之前的季節版之類的差別還是很大的。  首先,更加高級的智慧型手機讓《憤怒的小鳥2》的畫面背景可以像動畫一樣動起來了。玩法的話,還是用彈弓把你的小鳥彈射出去摧毀綠色豬的防禦工事——不過自帶瞄準線了。