圖片來源: 

CrowdStrike官網

從早期的防毒軟體到現在的EDR軟體,這些防護端點設備的資安軟體,早成為個人電腦使用者與駭客對峙的第一線戰場。日前資安軟體CrowdStrike因為EDR軟體更新出包,引發全球約850萬臺微軟電腦,出現藍色當機畫面(BSOD)的資安事件。

事件爆發初期,因為不確定是什麼原因引發的藍色當機畫面,微軟第一時間出面致歉後,也才追查出應該與CrowdStrike的EDR更新出包有關。在調研公司IDC針對EDR產品市占中,CrowdStrike更是經常位居第一,加上美國重要財星前五百大公司都安裝該產品,這也使得CrowdStrike因更新出包造成藍色當機畫面一出現後,瞬間成為全世界的頭條新聞。

真正的原因,還是必須等CrowdStrike完整調查並公布後,才可能有進一步的了解,不過,根據對微軟作業系統安全有研究的匿名資安專家的推測,CrowdStrike之所以更新出錯,原因在於掛載設計不良的特徵碼包,導致作業系統核心的驅動邏輯出現問題(Parser解析邏輯不良),所以會誤用不存在記憶體的空指標(null-pointer)讀取內容,造成BSOD藍色當機畫面。

這次事故發生之後,也引發其他的討論,例如,作業系統是否應該允許資安產品拿到高權限?有臺灣資安業者對此持肯定態度,他們認為,若要偵測到惡意程式的運作,這類端點防護產品就必須對作業系統擁有更高的權限,才可以更早攔截到惡意程式的運作。

CrowdStrike的病毒特徵碼設計不良

對微軟作業系統安全有研究的匿名資安專家表示,若用戶安裝CrowdStrike Falcon EDR,會在作業系統核心(Kernel)層級,掛載執行核心驅動程式csagent.sys模組,負責做地端惡意程式的監控。他指出,這個模組為了有效監控用戶模式下惡意行為,因此,在電腦的磁碟會有病毒特徵碼。

他進一步解釋,在Falcon EDR的架構下,CrowdStrike把病毒特徵碼稱做「Channel Files通道檔案」,其文件部署於System32\drivers\CrowdStrike的資料夾;其中,通道文件(即病毒特徵碼包)習慣以C-00000[ID]-[xxxxx].sys的格式存放在CrowdStrike資料夾內。

他以這次出包的病毒特徵碼包「C-00000291*.sys」為例,便是Falcon用於偵測惡意程式Named-Pipe濫用行為的特徵碼包——常見像是駭客工具C&C(命令與控制伺服器)對駭客伺服器通訊使用的domain,或者其他命名管道名稱,都由這個特徵碼庫進行匹配與查殺。

類似的部分在於,csagent.sys掛載此結構異常設計不良的291特徵碼包,導致核心驅動邏輯出現問題(Parser解析邏輯不良),所以誤用不存在記憶體空指標(null-pointer)讀取內容,導致藍色當機畫面(BSOD)。

端點防護產品跟作業系統深度結合才能提早偵測

臺灣資安公司杜浦數位執行長蔡松廷(TT)坦言,類似CrowdStrike更新出包的意外,是所有端點防護公司都可能發生的,以前大家用防毒軟體來保護端點時,也都有類似情況,像是更新後元件造成系統當機不穩定,也可能因為資安系統耗掉所有的電腦資源。

蔡松廷說,不管是防毒軟體或是EDR產品,要做到端點的防護,必須進入核心的運作,才可以做到即時阻擋惡意程式的運作,這些通常會有一個到多個的核心驅動程式,「一旦核心不穩定或有問題,最直接的反應就是當機,而每次只要電腦一開機,就會啟動防護功能,如果不清楚驅動程式不穩定的原因,最有可能、最差的狀況是:啟動所有端點防護功能時,都會出現當機狀態。

他也解釋,這些端點安全防護軟體必須和作業系統有很深的綑綁,有其必要性,因為如果這些端點防護軟體與作業系統核心底層能有更深的連結,有足夠高的權限,就可以更早攔截到惡意程式;假使無法進入作業系統的核心,就等於跟惡意程式運作在同樣的層級,而且,端點防護系統倘若無法偵測到惡意程式,就會被惡意程式制約。

從這起事件中,蔡松廷更意識到,這類端點防護系統的核心程式開發,一定必須小心再小心,重複經過各種驗證程序後,才能避免發生類似的意外。他也說,這次CrowdStrike造成的EDR更新出包,必須要手動進入安全模式後才能處理,倘若公司有成千上萬的個人電腦端必須手動處理,將可能會影響到公司的營運,不得不慎重。

熱門新聞

Advertisement