作者 | Steven J. Vaughan-Nichols
編譯 | 星璇
出品 | 51CTO技術棧(微信號:blog51cto)
坐在Linux桌面前,背后是嗡嗡作響的Linux服務器,CrowdStrike的崩潰并沒有直接影響到我。但就像地球上幾乎所有人一樣,間接影響卻是另一回事。
同事們被困在機場。事發48小時后,同事們仍在不停地修復一個又一個出故障的Windows系統,而朋友們也不得不使用現金購買雜貨。
這一切本不必發生。
“這提醒我們,我們正生活在一個日益數字化的世界中,軟件幾乎支撐著我們生活的方方面面——從交通和緊急服務到銀行、零售,甚至食品服務,”新思科技軟件完整性集團總經理Jason Schmitt在一份新聞稿中指出,“軟件問題可能導致嚴重的業務問題,在某些情況下,還會影響到消費者視為理所當然的許多必需品。”
讓我重申一遍:這一切本不必發生。讓我來總結一下教訓。
1.單一文化是有害的
無論是在愛爾蘭大饑荒時期、導致我的祖先來到美國的土豆,還是在美國南部棉鈴蟲出現之前的棉花,或是Windows系統,每當所有人都依賴一個單一系統時,你就是在自找麻煩。
據微軟統計,只有850萬臺Windows設備受到影響,這不到所有Windows設備的百分之一。但這些數字并沒有說明全部情況。
根據商業數據分析公司6sense.com的統計,CrowdStrike是排名第一的企業端點安全公司,擁有超過3,500名客戶。這聽起來可能不多,但這其中包括了四分之一使用端點安全服務的公司。這些往往是大型企業。因此,雖然從陷入無限重啟的系統數量來看,受影響的規模很小,但其影響卻是巨大的。
“此次中斷的規模凸顯了過度依賴單一系統或提供商所帶來的風險,”云計算公司Civo的首席執行官Mark Boost在向新聞媒體發布的一份聲明中表示,“這令人警醒地提醒我們,規模和聲譽并不能保證不受重大技術問題或安全漏洞的影響。即使是最大、最成熟的公司也必須保持警惕,不斷更新和保障其系統安全。”
2.糟糕的代碼是危險之源
根據NeoSync(一家開發工具公司)首席執行官Evis Drenova在X上提出的流行理論,導致其Falcon Sensor程序發生災難性安全更新的根本原因是其C++代碼中的空指針錯誤。但CrowdStrike似乎否認了這一點。
知名谷歌漏洞研究員Tavis Ormandy也在X上發布推文表示不贊同。Ormandy以及Mac安全網站和工具套件Objective-See的創建者Patrick Wardle(他們也在X上對此事發表了看法)認為,問題出在邏輯錯誤上。
最終,我們將弄清楚到底哪里出了問題,但毫無疑問的是,這種糟糕的代碼絕不應該被發送給客戶。
3.質量保證是絕對必要的
這個問題始于CrowdStrike。該公司的質量保證(QA)團隊是如何讓這次更新發布的,這個問題很可能很快就會導致許多人被解雇。
然而,他們并不是唯一應該為這場災難性的一步而受到指責的人。
在今年4月于西雅圖舉行的北美開源峰會上,微軟Linux平臺組的高級項目經理Jack Aboutboul談到了“懶惰的系統管理員”問題。典型的懶惰管理員會安裝軟件,開啟自動更新,并處理最新的緊急問題。這沒問題……直到其中一個更新導致系統崩潰。
他們應該在每次收到新補丁時進行測試。在演講中,Aboutboul討論的是Linux發行版的更新,但同樣的想法也適用于所有關鍵任務軟件。
Redwerk和QAwerk(均為軟件開發和QA機構)的創始人Konstantin Klyagin在一份新聞稿中指出,“自動化測試確保即使是微小的更改也不會引入新的錯誤。這對于像CrowdStrike這樣的大規模更新尤其重要,因為僅進行手動測試是不夠的。”
還有誰沒有這樣做呢?!看起來至少還有一些公司仍然沒有做到。
難道真的有那么多組織在這個基本步驟上失敗了嗎?一些人認為CrowdStrike應該受到指責,因為這個安全數據補丁“是一個繞過客戶端分階段控制的渠道更新,并且無論客戶是否需要,都推送給了所有人。”
由于繞過了客戶端的推出控制,因此有更多的公司受到了損害。這讓我覺得很有可能,因為這么多企業都因此次失敗而遭受重創。再次強調,問題依然是:“為什么有人會毫不猶豫地部署如此重要的補丁?”
4.分階段推出可以避免災難
一個相關的生產問題是,許多組織同時將所有更新推送到其所有系統。這是一個非常基本的錯誤;它本不應該發生,但事實就是這樣。
是的,分階段推出確實存在一些反對意見——當不同的團隊使用不同版本時,用戶可能會感到困惑。但是,對于不能容忍失敗的關鍵任務系統,您需要對任何升級都采取極端謹慎的態度。
此外,分階段推出有很多方法。它們包括滾動更新、藍綠部署、金絲雀發布和A/B測試。選擇一種。讓它適合您的企業,只是不要將所有升級都放在一個巨大的籃子里。
此外,如果出現問題,強大的回滾程序對于恢復到穩定版本至關重要。難道您不想只需按下一個按鈕就能回滾到正常工作的系統嗎?現在,成千上萬的IT員工一定希望如此。
5.災難恢復和備份是必需的
這雖然是顯而易見的事情,但您必須制定災難恢復計劃并擁有可靠的備份。
“我與幾位首席信息安全官(CISO)和首席安全官(CSO)交談過,他們正在考慮觸發從備份恢復協議,而不是手動將每臺計算機引導到安全模式,找到有問題的CrowdStrike文件,刪除它,然后重新啟動到正常的Windows系統中,”公共演講者兼安全專家Eric O’Neill在一份新聞稿中表示。“那些沒有投資于快速備份解決方案的公司陷入了兩難境地。”
確實如此。誠然,在當今的云計算時代,災難恢復和備份已不像過去那樣簡單。但它們至關重要。而且,在這種情況下,傳統的災難恢復方法和備份將發揮重大作用。
6.需要增強的監控和事件響應能力
此次全球性的中斷事件凸顯了高級監控工具和強大事件響應計劃的重要性。應建立實時監控和警報系統,以便在問題發生時立即發現。IT團隊應制定詳細的事件響應計劃,并明確協議以快速識別、隔離和解決問題。這些計劃應包括根本原因分析和事后審查,以不斷改進響應策略。
但說起來容易做起來難。
Cockroach Labs的首席執行官兼聯合創始人斯賓塞·金布爾(Spencer Kimball)在向新聞媒體發布的一份聲明中表示:“在當今數字時代應對挑戰,需要企業采取積極且實用的策略來減輕中斷并確保恢復能力。”
他補充道:“中斷問題并非我們能夠完全解決的問題。云環境只會變得越來越復雜和相互關聯。這種大規模的復雜性將繼續增加風險,特別是對于仍處于云采用初期階段的企業而言。連續監控和警報對于在問題升級之前發現和解決問題至關重要。”
Hydrolix公司的副總裁安東尼·法爾科(Anthony Falco)在給The New Stack的一封電子郵件中也表達了類似的觀點。
法爾科說:“這次大規模中斷事件凸顯了公司面臨的新現實:當今推動業務的全球分布式軟件平臺是一個復雜的相互依賴網絡,并非所有都受任何單一行為者的控制。‘一個微小的錯誤就可能讓全球業務陷入停滯。
“我們需要一種新的可觀察性方法——這種方法是實時的,并且能夠簡化從無數來源流入的海量數據的管理,以便在事件擴散之前進行檢測和緩解。”
7.為下一次做好準備
CrowdStrike/Windows事件是一個嚴峻的提醒,即即使是日常維護,如果管理不當也可能導致重大中斷。它凸顯了現代IT系統的相互關聯性,以及廣泛使用的軟件故障所帶來的深遠影響。
通過從此次事件中吸取教訓并實施強大的風險管理策略,IT團隊可以更好地為未來類似事件做好準備并減輕其影響。
我們需要做得更好。我們必須做得更好。我年紀大到足以經歷過第一個重大而廣泛的安全問題——1988年的Morris蠕蟲病毒。那時,技術問題只困擾著從事技術工作的人。但那樣的日子早已一去不復返了。
參考鏈接:https://thenewstack.io/the-crowdstrike-disaster-lessons/