網路攻擊與防禦實務

某企業在公司內的套件庫(私有登錄庫)中放置公司專用的函式庫 acme-utils 使用。攻擊者在公開的套件庫中,以相同名稱 acme-utils 註冊了版本號更大的套件,結果發現依建置設定的不同,公司內的建置環境可能會取用攻擊者的套件。針對這種「相依性混淆(dependency confusion)」,最適當的對策是下列何者?

  1. A讓公司專用函式庫的版本號維持較小,以便與公開套件庫中的套件區分
  2. B把公司專用的套件放在組織管理的命名空間,設定該命名空間只從公司內的套件庫取得,並以鎖定檔固定版本與雜湊值
  3. C公開套件庫的套件經過審查、值得信任,因此不需要設定從哪個套件庫取得
查看答案與解析

正確答案:B. 把公司專用的套件放在組織管理的命名空間,設定該命名空間只從公司內的套件庫取得,並以鎖定檔固定版本與雜湊值

相依性混淆是軟體供應鏈攻擊的一種。有些套件管理工具會參照多個套件庫,依設定在名稱相同時選擇版本號較大者,攻擊者便利用這一點,讓建置取用與公司內名稱相同的惡意套件。對策是讓公司內的套件使用組織管理的命名空間(scope),只把該命名空間綁定到公司內的套件庫,明確指定從哪個套件庫取得。此外,以鎖定檔固定相依套件的版本與雜湊值,就能防止在不知不覺中被替換成其他東西。事先在公開套件庫註冊組織的命名空間,也有助於防止冒用。

  • A. 版本號較小,反而會讓標上大版本號的攻擊者套件更容易被選中。
  • B. 正確。以固定取得來源,以及固定版本與雜湊值,防止被調包。
  • C. 任何人都能在公開套件庫註冊,若不指定取得來源,就可能取用惡意套件。
練習這個領域 前往領域頁面

網路攻擊與防禦實務的其他題目

  1. 在2020年12月發現的SolarWinds事件中,攻擊者入侵了IT管理軟體的建置環境,在正規的更新程式中混入了惡意程式碼。這些更新以附有開發商正規程式碼簽章的狀態派送。從此事件得到的教訓,最適當的是下列何者?
  2. 發現放在雲端物件儲存中、含有客戶資訊的檔案,處於網際網路上任何人都能讀取的狀態。這類資訊外洩的典型原因,與防止再次發生的對策,適當的組合是下列何者?
  3. 在雲端上執行的批次處理,被以設定檔的形式交付了一把允許所有操作、具管理員權限的存取金鑰(長期有效的認證資訊)。為了縮小此金鑰外洩時的損害,最適當的調整是下列何者?
  4. 攻擊者取得了員工的密碼,反覆登入數十次,對員工的智慧型手機大量發送要求核准的通知。員工覺得很煩,不小心按下了「核准」。針對這種攻擊,最適當的對策是下列何者?
  5. FIDO2(WebAuthn)通行金鑰的驗證,比一次性密碼(OTP)更能抵抗網路釣魚,正確的理由是下列何者?

這個領域的比較