2024年7月19日,全球出現大規模的電腦擋機事故,影響覆蓋面包括銀行,電訊、航空、交通、運輸等等。
相信就算不是在IT界發展的,對於微軟視窗的藍畫面也是略有所聞。微軟由很多年前的作業系統版本開始,就有藍底白字顯示錯誤的畫面,也就是所謂的「死機」。這就是世界聞名的Blue Screen of Death (BSoD)。
筆者接觸視窗系統是由Win3.1開始,那時候蠻容易出現這個藍畫面的,後來自己組裝電腦,因為那時硬件的不兼容,這畫面的出現頻率就更是頻繁。輕則要時數分鐘重新啟動,重則連累檔案丟失,心血化為烏有。
近年其實視窗系統也轉趨穩定,這藍畫也算真的少了很多出現了。
昨天的事故,公平地說真的不是微軟視窗的問題,而是一個資安解決方案Crowdstrike所造成的。
Crowdstrike是近年冒起得非常快的一個資安解決方案,以速度快、準確率高、雲端監控而聞名。因為很多分析都在雲端上發生,令安裝在客戶端的控制件非常之輕盈,對電腦本身的負擔就很少。而且有賴雲端的計算能力,很多異常或者病毒都很容易被偵測。
試想想,以往一台電腦只靠獨個兒的病毒指紋去偵測,現在在雲端數千數萬家企業的大數據一起集合起來在雲端分析,這幾何級數的協作效應,正正就是結合了雲運算能力、大數據的集思廣益、加上人工智能和機器學習模型綜合出來的強大。
但不幸地,這就是最強的矛和最強的盾。
這次事件的原兇,就是因為Crowdstrike的一個更新出了亂子,直接令視窗崩潰下來。因為這既不是攻擊,也不是入侵,而只是它自己的元件的一個更新程序,結果就造成了這麼大的破壞力。
筆者不是為這間公司護短,但的確贊成昨天一些人所提出的,現在苛責Crowdstrike其實沒有太需要。而事實上我也在數年前還是一家上市企業當IT部主管時,也是使用這套方案,而且印象蠻不錯的。
首先筆者覺得這並不是它故意的,相信以這間全球500大企業裡就有近300家是客戶,年入益10億美元的資安方案公司,的確不可能是故意的。
其次在事件發生後,也見不到這企業有迴避問題,相反蠻快的半天就站出來解說和提供解決辦法,算是很好的。(相比起一些公司可能還會說很多「未知因素」、「偶然發生」之類!)
但我會責怪的,大概是編寫員做錯出來的更新為何沒有放到一些測試機裡做實機測試,而直接以全球規模來提供更新。在提供更新的流程裡,應該有一定的測試程序以確保不會發出不可挽回的更新。(雖然微軟自己的補丁也就常出現這種情況!)
從另一個角度去想,就是原來我們的資安世界,每個企業都強調自己具備防火牆、防毒、雲端管理、備份……的時候,只要一環錯誤,就會造成整個系統的癱瘓。是不是應該好好考慮一下營運持續計畫(Business continuity planning,簡稱BCP)。
很多企業想到的BCP,就是將一整套可用的設備投放到後備的辦公室,以防主要辧公室出事時,可以在後備的那兒繼續運作。
但看來,這還不足。更大程度的,應該要考慮在每個環節裡投放不同的核心,以防其中一環出事時,不會受相同的問題波及。筆者以前也會將客戶端的更新設計成不同時段,令企業裡的數百甚至數千的客戶端在不同的時間得到更新,以防有甚麼「不測」時,可以將受影響範圍縮少並且能煞停其他未更新的機器。當然,在正式投放前,也會在一些「先知機」上運作一段時間,只是有些補丁的問題不是立刻顯現就是了。
舉例說就是防火牆、防毒用另一品牌、客戶端電腦可能要考慮不同的作業系統或硬件等等。在疫情時,我們也曾經試過每位同事派一台筆電(盡管是以淘汰的舊型號),以利他們有甚麼事情時,可以在家中工作。當然,BCP遠不止只是在硬件上的配套,還得需要準備一本playbook天書,以便在需要啟動BCP時,員工是知道如何操作和跟隨的。
BCP是很多企業知道重要,但卻往往選擇忽略的,究其原因,就是因為投入的成本高,但使用率低(就如醫療保險一樣,你當然不希望有使用的一天!)。筆者自己也替一些企業設計過BCP。其實如果能善用公司更新後的舊系統、加上現在跨雲的方法,其實BCP的投放資源已經比以往動輒要複製一套硬件出來「閒置」就好好多了。