網路攻擊與防禦實務
在2020年12月發現的SolarWinds事件中,攻擊者入侵了IT管理軟體的建置環境,在正規的更新程式中混入了惡意程式碼。這些更新以附有開發商正規程式碼簽章的狀態派送。從此事件得到的教訓,最適當的是下列何者?
- A程式碼簽章正確的更新程式不會含有惡意程式碼,因此使用者確認簽章就足夠了
- B更新程式很危險,因此包含資安修補在內,完全不更新軟體
- C程式碼簽章只顯示由誰簽署以及簽署後是否遭竄改,因此開發商要保護建置環境,使用者也要監控所信任軟體的行為
查看答案與解析
正確答案:C. 程式碼簽章只顯示由誰簽署以及簽署後是否遭竄改,因此開發商要保護建置環境,使用者也要監控所信任軟體的行為
程式碼簽章是確認簽署者是誰,以及簽署後內容沒有被改變的機制,無法辨識在簽署前混入的惡意程式碼。在軟體供應鏈攻擊的代表案例SolarWinds事件中,惡意程式碼是在建置過程中被加入的,因此以附有簽章的正規更新送到許多組織。在2024年3月發現的xz-utils後門中,也是花了很長時間取得開發者信任的人物,把惡意程式碼混入了發布用的檔案。開發商要隔離並保護建置環境、記錄並驗證從原始碼到建置的來源,使用者即使是信任的軟體,也要以EDR等監控可疑的通訊與行為,這很重要。
- A. 簽章無法辨識在簽署前混入的惡意程式碼。此事件的更新也附有正規的簽章。
- B. 停止更新會讓已知弱點持續存在,反而增加風險。
- C. 正確。理解簽章所能確認之事的極限,並結合保護建置環境與監控行為。