GH-500 數位教科書 開啟互動版

D3 模擬題:設定與使用供應鏈安全

D3「設定與使用供應鏈安全」14 題原創模擬題,附正確答案、解析與常見陷阱。選項順序在互動版會隨機排列。

第 29 題(D3-O1)

匯出的 SBOM 包含下列哪項資訊?

單選題,選項:

  • 相依性的間接路徑與授權資訊
  • 依賴此專案的其他專案清單
  • 此專案最近的 workflow 執行紀錄
  • 此專案貢獻者的提交統計
看答案與解析

正確答案:相依性的間接路徑與授權資訊

解析:SBOM 包含相依性、版本、套件識別碼、授權、間接相依性路徑與著作權資訊;不包含依賴你的專案(dependents)。

常見陷阱:SBOM 描述你依賴什麼,不描述誰依賴你。

依據:Exporting a software bill of materials for your repository

在互動版作答這題

第 30 題(D3-O1)

Dependency graph 會為私有 repository 列出 dependents(依賴它的其他 repository)。

是非題:判斷敘述是否正確。

看答案與解析

正確答案:錯誤

解析:Dependents 只在公開 repository 列出,私有 repository 不回報這項資料。

常見陷阱:私有 repository 同樣能使用 dependency graph 檢視自己的 dependencies,但 dependents 只對公開 repository 提供。

依據:Dependency graph

在互動版作答這題

第 31 題(D3-O1)

用 REST API 請求產生 SBOM 後,回應為 202 時應該怎麼做?

單選題,選項:

  • 立即從回應內容讀取 SBOM
  • 重新送出一次產生請求
  • 輪詢 sbom_url 直到回應為 302
  • 改按介面上的 Export SBOM
看答案與解析

正確答案:輪詢 sbom_url 直到回應為 302

解析:請求產生後要輪詢 sbom_url;回應為 202 表示尚未完成,回應為 302 時依重新導向下載完成的 SBOM。

常見陷阱:202 代表已受理、尚未完成,不是結果。

依據:Exporting a software bill of materials for your repository

在互動版作答這題

第 32 題(D3-O2)

官方文件建議在排定 Dependabot 警示優先順序時,一併參考哪些項目?(選 4 項)

複選題,選項:

  • 弱點的嚴重度等級
  • EPSS 利用預測分數
  • 相依性的範圍(scope)
  • 相依性的授權類型
  • 相依性的直接或間接關係
看答案與解析

正確答案:弱點的嚴重度等級;EPSS 利用預測分數;相依性的範圍(scope);相依性的直接或間接關係

解析:文件建議合併參考嚴重度、EPSS 分數、相依性的範圍與相依性的關係;另可選用 reachability analysis。

常見陷阱:授權類型屬於 dependency review 與授權合規的判斷項目,不是警示優先順序的依據。

依據:Dependabot alerts

在互動版作答這題

第 33 題(D3-O2)

團隊只想讓 Dependabot 為部分警示開 pull request,官方建議的做法是什麼?

單選題,選項:

  • 在 dependabot.yml 設定要處理的嚴重度
  • 停用 security updates 並建立 auto-triage 規則
  • 啟用 grouped security updates 並限制目錄
  • 啟用 version updates 並調整 cooldown 天數
看答案與解析

正確答案:停用 security updates 並建立 auto-triage 規則

解析:啟用 security updates 後會為每個有可用修補的開啟警示開 pull request;要自行挑選,官方建議停用它並建立 auto-triage 規則。dependabot.yml 與警示之間沒有互動。

常見陷阱:dependabot.yml 的設定看似能篩選,但它與 Dependabot 警示沒有互動。

依據:Dependabot security updates、Dependabot auto-triage rules

在互動版作答這題

第 34 題(D3-O2)

Dismiss package malware alerts 這條 GitHub 預設規則,在公開 repository 預設啟用。

是非題:判斷敘述是否正確。

看答案與解析

正確答案:錯誤

解析:Dismiss package malware alerts 預設停用,但可為任何使用 Dependabot malware alerts 的 repository 啟用;預設啟用的是 Dismiss low impact issues for development-scoped dependencies(公開 repository)。

常見陷阱:兩條預設規則容易互換;惡意套件警示被自動關閉有風險,所以預設停用。

依據:Dependabot auto-triage rules

在互動版作答這題

第 35 題(D3-O2)

首次啟用 Dependabot alerts 時,對 repository 中已存在的弱點,GitHub 會如何通知?

單選題,選項:

  • 為每個既有弱點各寄一封通知
  • 寄一封彙總所有既有弱點的通知
  • 只針對 critical 的既有弱點通知
  • 不通知既有弱點,只通知啟用後新發現的
看答案與解析

正確答案:不通知既有弱點,只通知啟用後新發現的

解析:首次啟用時,GitHub 不會為已找到的弱點寄通知,只會通知啟用後新發現的相依性弱點(視通知偏好而定)。

常見陷阱:啟用當下的大量既有警示不會引發通知,但警示仍然存在於清單中。

依據:Dependabot alerts

在互動版作答這題

第 36 題(D3-O2)

某警示被 auto-triage 規則自動關閉,之後相依性的範圍從 development 改成 production。這則警示會如何?

單選題,選項:

  • 可能被自動重新開啟
  • 維持關閉,規則已套用過
  • 會被系統永久刪除
  • 需手動重新啟用規則才開
看答案與解析

正確答案:可能被自動重新開啟

解析:自動關閉的警示在中繼資料改變時可以被自動重新開啟,例如相依性範圍從 development 改成 production,或 GitHub 修改 advisory 的某些中繼資料。

常見陷阱:自動關閉不是永久:它仍可查詢、可手動重新開啟,也可能因中繼資料改變而自動重開。

依據:Dependabot auto-triage rules、Managing alerts that have been automatically dismissed by a Dependabot auto-triage rule

在互動版作答這題

第 37 題(D3-O3)

Dependency review action 預設只有在發現 critical 嚴重度的弱點時,檢查才會失敗。

是非題:判斷敘述是否正確。

看答案與解析

正確答案:錯誤

解析:預設情況下,只要發現有弱點的套件,檢查就會失敗;fail-on-severity 是用來設定達到哪個嚴重度才失敗的選用設定。

常見陷阱:嚴重度門檻要自己設定,預設並不是只看 critical。

依據:Dependency review

在互動版作答這題

第 38 題(D3-O3)

下列哪些是 dependency review action 官方範例中可設定的選項?(選 3 項)

複選題,選項:

  • fail-on-severity
  • fail-on-scopes
  • fail-on-age
  • allow-ghsas
  • allow-registries
看答案與解析

正確答案:fail-on-severity;fail-on-scopes;allow-ghsas

解析:範例中的選項包含 fail-on-severity、allow-licenses 或 deny-licenses(只能擇一)、allow-ghsas 與 fail-on-scopes。

常見陷阱:選項名稱相近,只有範例中出現的才算;allow-licenses 與 deny-licenses 不能同時使用。

依據:Configuring the dependency review action

在互動版作答這題

第 39 題(D3-O3)

組織要讓所有 repository 的 pull request 必須通過 dependency review 才能合併,應該設定什麼?

單選題,選項:

  • 組織層級的 Dependabot alerts 設定
  • 組織層級的 webhook 與權限設定
  • branch ruleset 要求 workflow 通過才合併
  • CODEOWNERS 要求安全團隊審查
看答案與解析

正確答案:branch ruleset 要求 workflow 通過才合併

解析:先在某個 repository 設定好 dependency review action,再建立 branch ruleset,啟用 Require workflows to pass before merging,並指定該 workflow。

常見陷阱:Dependabot 設定管理警示與更新,不是合併前的強制檢查。

依據:Enforcing dependency review across an organization

在互動版作答這題

第 40 題(D3-O3)

Dependabot version updates 預設的 cooldown 是多久?

單選題,選項:

  • 1 天
  • 7 天
  • 3 天
  • 14 天
看答案與解析

正確答案:3 天

解析:預設有 3 天的 cooldown,新版本發布後 3 天才會被考慮;此預設不適用於 security updates,可用 cooldown 選項自訂。

常見陷阱:預設 cooldown 只適用於 version updates,security updates 不受它延遲。

依據:Dependabot version updates

在互動版作答這題

第 41 題(D3-O4)

GitHub Team 組織沒有 Code Security 或 Advanced Security 授權,能否指派公開 repository 的 Dependabot 警示?

單選題,選項:

  • 可以,公開 repository 不受授權限制
  • 不可以,指派需要授權,公開也一樣
  • 可以,但只能指派給人而非 agent
  • 可以,但要先啟用 security updates
看答案與解析

正確答案:不可以,指派需要授權,公開也一樣

解析:指派 Dependabot 警示需要 Code Security 或 Advanced Security 授權,官方明說包含公開 repository。

常見陷阱:公開 repository 的許多功能免費,但警示指派不在其中。

依據:Dependabot alerts

在互動版作答這題

第 42 題(D3-O4)

Dependabot 警示的指派者變更時,GitHub 會送出哪個 webhook 事件?

單選題,選項:

  • alert_assignment_changed
  • assignment_updated_event
  • dependabot_alert_assigned
  • assignees_changed
看答案與解析

正確答案:assignees_changed

解析:指派者變更時 GitHub 送出 assignees_changed webhook 事件,可用來觸發 workflow 或與外部系統同步。

常見陷阱:事件名稱要記原文;其餘三個是看似合理的虛構名稱。

依據:Dependabot alerts

在互動版作答這題