上周五,全球多地不少用微軟 PC 的打工人一開機發現,映入眼帘的不是熟悉的壁紙和桌面,而是滿屏的藍色,和一個哭臉。贊助商廣告「重啟大法」失效後,這個藍屏很快被人們發上 X、微博、Reddit 等平台。大家隨後發現,這不是個案,而是席捲全球的大事件,航班因此停飛,企業引起停工,酒店無法入住,甚至手術也因此停做。這次事件的一個後果是,CrowdStrike 安全公司被永遠刻在了科技史的恥辱柱上,因為正是他們向約 29000 個企業用戶推送的一個更新,導致了全球約 850 萬台 Windows 設備的宕機。讓人大跌眼鏡的是,微軟和 CrowdStrike 都無法統一修復這些設備,需要由人工一台台動手操作才能恢復。世界著名安全公司,或許也只是一個草台班子和以往那種普遍性的伺服器大宕機不同,這次的宕機是設備內部問題引起的,由於 CrowdStrike 發布的更新有代碼缺陷,並深入了 Windows 系統的核心,影響了系統驅動。並且更新是不可在線逆轉的,即使 CrowdStrike 已經修復了更新中的錯誤,在之前就已經安裝了更新的設備還是一啟動就會變磚,就連微軟也無法「遠程施法」進行修復。由安全軟體引起的系統崩潰問題其實屢見不鮮,比如 CrowdStrike 的 CEO George Kurtz,在他擔任老牌安全軟體公司 McAfee 的首席技術官時,該公司也曾推出過一個軟體更新,會將 Windows XP 的一個系統文件刪除,導致電腦無限重啟,聽起來和這次事件就有點相似。上周末最忙的人 George Kurtz,圖源:NBC另一個著名殺毒軟體卡巴斯基,和微軟自己的安全平台 Windows Defender 也曾經在更新後引發過系統藍屏故障,只是這些事件規模遠不如 CrowdStrike 之大。殺毒軟體成為「藍屏慣犯」有一個非常重要的原因:2009 年,微軟和歐盟達成公平競爭的協議,允許第三方安全軟體也能夠和 Windows Defender 一樣訪問 Windows 系統的核心,也就是系統非常底層和基礎的部分。這種開放性能夠讓 CrowdStrike 這樣的第三方殺毒軟體能夠提高更高的安全性,當然,也讓 Bug 的發生變得非常致命。就像是當年 McAfee 能把核心中的系統文件當成病毒查殺了,或者像這次 CrowdStrike 推出的一個新的配置文件,因為後綴名和驅動程序一樣,被系統錯誤當作了驅動運行,導致了系統崩潰。核心這種系統底層向第三方開放,本身就是有點爭議的問題,蘋果就堅決不向第三方開放 macOS 的核心。但這麼多年來,開放核心總體上利大於弊。CrowdStrike 這次事件更讓人覺得不安的是,這家擁有約 3 萬家客戶的公司難道完全不對軟體更新進行測試嗎?特別是這種可以說百分百復現的 bug,只要一測試基本都能發現,結果最後這個有問題的更新,來到了全球 850 萬台 PC 設備上。贊助商廣告前卡巴斯基安全公司的一名高管 Costin Raiu 表示,由於配置文件和驅動相關的文件非常重要,在卡巴斯基推出相關更新之前,都會經過數周以上的嚴格審查和測試,因此 CrowdStrike 這個事件,只能說明更新文件從未被測試過。而且,相關更新由於並非是大型更新,CrowdStrike 並未採取比較謹慎的「分批推送」方式,而是直接面向全部設備推送,理由是「保證我們的客戶安全水平領先威脅環境」。想不到,這場可以稱作是技術史上最大的浩劫,不是因為黑客入侵,而是因為一家像草台班子一樣的安全公司。電腦系統比我們想像中更落後二十多年前,一條「千年蟲」引起了大眾的注意,指的是上世紀末一些電腦設備無法正確識別即將到來的 2000 年份,會將其識別為 1900 年,從而導致大量社會基礎設施,甚至影響到國防問題。很多人將 CrowdStrike 事件視為「千年蟲」後最大的技術故障,這兩個事件似乎都有一個共通點,那就是看起來非常智能的電腦系統,其實非常脆弱,會出乎我們意料地因為一些問題而崩潰。被「千年蟲」影響而將 2000 年顯示為 1900 的一台設備當年,對「千年蟲」的防治其實並不簡單,很多系統需要去手動更改系統的日期編碼,使其能夠正確識別 2000 年,花費了大量的人力物力,這和 CrowdStrike 事件驚人地相似。二十年過去,電腦技術已經突飛猛進,然而在面對這種設備內部故障的問題上,我們發現應對方式竟然如此落後。不管是早期 CrowdStrike 給出的恢復操作方式,還是微軟推出的修復工具,都繞不開大多數企業會部署的 BitLocker 磁盤加密,因此要修復這些設備,都需要管理員權限或者 BitLocker 密碼,導致修復效率非常低下。就算不用權限和密碼,兩種修複方式基本都需要 IT 人員一台台修復和部署,微軟的修復軟體還需要創建一個 USB 驅動器來運行,一台台設備進行插入和恢復,簡直不是 2024 年科技應有的「優雅」。諷刺的是,在美國各大航空公司因為藍屏死傷一片時,西南航空因為使用的是遠古系統 Windows 95 和 Windows 3.1 躲過一劫。贊助商廣告這次事件,很多媒體都提到了這麼一句話:To Err is Human; To Really Foul Things Up Requires a Computer人們只是犯錯,要把事情搞砸還得看電腦雖然這句話有那麼點反技術的意思在,但在這個事件中,我們真正意識到了這些維繫著我們衣食住行的電腦系統,內部是如此不堪一擊,並且一旦出錯,修復的方式也極其落後和低效。即使「藍色星期五」的主要責任確實在第三方廠商身上,也有觀點認為,對於大眾來說,微軟作為系統提供商,也負有一定責任,並且微軟開放了核心,卻沒有針對這種情況的應急措施。更重要的不是追責,而是全方位優化整個科技生態系統的各個方面。故障無法避免,並且波及的範圍很可能越來越廣,因此真正需要優化的是故障發生前和發生後的流程和措施。微軟作為遊戲規則的制定者和維護者,更有理由承擔這種責任,例如收緊和限制系統核心的訪問,和完善和優化系統修復的方式和自修復的能力,而不能僅僅只是指望第三方廠商不出錯。文 | 蘇偉鴻 原文地址 : https://www.animattoys.com/detail/0ecqCjS8/微軟藍屏事件背後一個草台班子怎麼釀成全球技術浩劫