微軟藍屏事件背後,一個「草台班子」怎麼釀成全球技術浩劫

本文來自微信公眾號:APPSO (ID:appsolution),作者:發現明日產品的,頭圖來自:視覺中國

上週五,全球多地不少用微軟PC的打工人一開機發現,映入眼簾的不是熟悉的壁紙和桌面,而是滿屏的藍色,和一個哭臉。

「重啟大法」失效後,這個藍屏很快被人們發上X、微博、Reddit等平台。大家隨後發現,這不是個案,而是席捲全球的大事件,航班因此停飛,企業引起停工,酒店無法入住,甚至手術也因此停做。

這次事件的一個後果是,CrowdStrike安全公司被永遠刻在了科技史的恥辱柱上,因為正是他們向約29000個企業用戶推送的一個更新,導致了全球約850萬台Windows設備的宕機。

讓人大跌眼鏡的是,微軟和CrowdStrike都無法統一修復這些設備,需要由人工一台台動手操作才能恢復。

世界著名安全公司,或許也只是一個草台班子

和以往那種普遍性的服務器大宕機不同,這次的宕機是設備內部問題引起的,由於CrowdStrike發佈的更新有代碼缺陷,並深入了Windows系統的內核,影響了系統驅動。

並且更新是不可在線逆轉的,即使CrowdStrike已經修復了更新中的錯誤,在之前就已經安裝了更新的設備還是一啟動就會變磚,就連微軟也無法「遠程施法」進行修復。

由安全軟件引起的系統崩潰問題其實屢見不鮮,比如CrowdStrike的CEO George Kurtz,在他擔任老牌安全軟件公司McAfee的首席技術官時,該公司也曾推出過一個軟件更新,會將Windows XP的一個系統文件刪除,導致電腦無限重啟,聽起來和這次事件就有點相似。

另一個著名殺毒軟件卡巴斯基,和微軟自己的安全平台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年顯示為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。(人們只是犯錯,要把事情搞砸還得看電腦)

雖然這句話有那麼點反技術的意思在,但在這個事件中,我們真正意識到了這些維繫著我們衣食住行的計算機系統,內部是如此不堪一擊,並且一旦出錯,修復的方式也極其落後和低效。

即使「藍色星期五」的主要責任確實在第三方廠商身上,也有觀點認為,對於大眾來說,微軟作為系統提供商,也負有一定責任,並且微軟開放了內核,卻沒有針對這種情況的應急措施。

更重要的不是追責,而是全方位優化整個科技生態系統的各個方面。故障無法避免,並且波及的範圍很可能越來越廣,因此真正需要優化的是故障發生前和發生後的流程和措施。

微軟作為遊戲規則的製定者和維護者,更有理由承擔這種責任,例如收緊和限制系統內核的訪問,完善和優化系統修復的方式和自修復的能力,而不能僅僅只是指望第三方廠商不出錯。