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

D2 模擬題:設定與使用 Secret Protection

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

第 1 題(D2-O1)

某個 GitHub Team 組織尚未購買 Secret Protection 或 Code Security,擁有一個公開 repository 與一個私有 repository,都沒有做任何安全設定。關於這個私有 repository 的 secret scanning,哪項描述正確?

單選題,選項:

  • 會自動掃描,而且不另外收費(公開 repository 的情況)
  • 需要先取得並啟用 Secret Protection(組織私有的情況)
  • 需要 Enterprise Managed Users 帳號(使用者私有 repository)
  • 可在 Assessments 頁面免費評估組織(免費評估的情況)
看答案與解析

正確答案:需要先取得並啟用 Secret Protection(組織私有的情況)

解析:公開 repository 的 secret scanning 自動執行,不另外收費;組織擁有的私有與 internal repository 需要 GitHub Secret Protection,由 GitHub Team 或 GitHub Enterprise Cloud 提供。

常見陷阱:每個選項在官方文件裡都是真實的條件,但各自適用於不同情境;要先判斷是公開、組織私有還是使用者私有 repository,再選對應的條件。

依據:About secret scanning、Enabling secret scanning for your repository

在互動版作答這題

第 2 題(D2-O1)

Secret scanning 只檢查最新一次 commit 的程式碼,不會檢查過去的 Git 歷史。

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

看答案與解析

正確答案:錯誤

解析:Secret scanning 會掃描所有分支的完整 Git 歷史,另外也檢查 issue 與 pull request 的文字、Discussions、wiki 與 secret gist。

常見陷阱:掃描範圍常被想成「只有程式碼檔案」;實際上討論區與文字欄位裡貼出的憑證同樣會被找出來。

依據:About secret scanning

在互動版作答這題

第 3 題(D2-O1)

關於 partner patterns(合作夥伴樣式),下列哪些敘述正確?(選 2 項)

複選題,選項:

  • 預設不偵測,需要管理員在設定頁開啟
  • 屬於預設的偵測,不必先自訂樣式
  • 偵測到的 secret 會列入警示清單,由管理員處理
  • 偵測到的 secret 會通知供應商,由供應商處理
看答案與解析

正確答案:屬於預設的偵測,不必先自訂樣式;偵測到的 secret 會通知供應商,由供應商處理

解析:Partner patterns 屬於預設的偵測(官方稱 default detection);偵測到的合作夥伴 secret 會直接回報給服務供應商,由供應商採取行動,例如撤銷憑證,這類 secret 不會顯示在你的 repository 警示中。

常見陷阱:「看不到警示」不等於「沒有偵測」;合作夥伴 secret 的處理被轉交給供應商,所以管理員在警示清單上看不到它。

依據:About secret scanning

在互動版作答這題

第 4 題(D2-O1、D2-O3)

團隊找到的有效 secret 太多,想決定先處理哪些。哪項功能最直接協助排定處理順序?

單選題,選項:

  • 有效性檢查,確認偵測到的 secret 是否仍然有效
  • Custom patterns,新增組織專用的偵測樣式與規則
  • Push protection,在推送時阻擋新的 secret
  • Delegated bypass,指定可以繞過保護的人員
看答案與解析

正確答案:有效性檢查,確認偵測到的 secret 是否仍然有效

解析:有效性檢查(validity checks)確認偵測到的 secret 是否仍然有效,讓團隊先處理仍可被利用的憑證。檢查時可能需要連到發行該 secret 的服務。

常見陷阱:減少警示數量或清歷史都不會改變風險排序;真正能分出輕重的是 secret 是否仍有效。

依據:About secret scanning

在互動版作答這題

第 5 題(D2-O2)

開發者從命令列推送一個含有 partner pattern 偵測到的 API 金鑰的 commit。該 repository 已啟用 push protection,開發者不在任何繞過或豁免名單上。推送會發生什麼事?

單選題,選項:

  • 推送被阻擋,開發者移除金鑰後重新推送(沒有繞過設定的情況)
  • 推送完成並建立開啟中的警示(以 I'll fix it later 繞過的情況)
  • 推送完成,而且完全不觸發 push protection(豁免者的情況)
  • 推送被阻擋,待審查者核准繞過請求後放行(委派繞過的情況)
看答案與解析

正確答案:推送被阻擋,開發者移除金鑰後重新推送(沒有繞過設定的情況)

解析:Push protection 在推送當下攔截:阻擋推送、說明原因,要求貢獻者檢視被標記的內容、移除敏感資訊後重新推送。

常見陷阱:後三個選項都是真實的 push protection 結果,但各自對應繞過、豁免或委派審查;題幹明說沒有任何繞過設定,才會得到預設的阻擋行為。

依據:About push protection

在互動版作答這題

第 6 題(D2-O2)

貢獻者以「I'll fix it later」為理由繞過 push protection 時,會建立一個仍為開啟狀態的警示。

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

看答案與解析

正確答案:正確

解析:三個繞過理由中,只有「I'll fix it later」建立開啟中的警示;另外兩個理由建立的是已關閉的警示。

常見陷阱:容易把三個理由都當成建立已關閉的警示;實際上只有稱為測試用途或誤判的兩種才會直接關閉。

依據:About push protection

在互動版作答這題

第 7 題(D2-O2)

下列哪些推送途徑的 push protection 也涵蓋 AI 偵測的 secret?(選 3 項)

複選題,選項:

  • 從命令列推送 commit 到遠端
  • 透過 REST API 提交變更內容
  • 在 GitHub 網頁介面提交變更
  • 透過 GitHub MCP server 操作
  • 把檔案上傳到 GitHub 的 repository
看答案與解析

正確答案:從命令列推送 commit 到遠端;在 GitHub 網頁介面提交變更;把檔案上傳到 GitHub 的 repository

解析:命令列推送、網頁介面提交與檔案上傳支援全部樣式類型,包含 AI 偵測的 secret;REST API 與 GitHub MCP server(僅限公開 repository)只支援 partner、generic 與 custom 樣式。

常見陷阱:「同樣是 push protection」不代表每個途徑的涵蓋範圍一樣;評估防護時要逐一核對途徑與樣式類型。

依據:About push protection

在互動版作答這題

第 8 題(D2-O3)

團隊發現三個月前的 commit 含有一個仍然有效、且正式環境正在使用的雲端 API 金鑰。處理這則警示的首要動作是什麼?

單選題,選項:

  • 撤銷或輪替金鑰並更新使用它的服務(金鑰仍有效的情況)
  • 以 used in tests 關閉警示(金鑰只用於測試的情況)
  • 以 false positive 關閉警示(偵測結果不是真的 secret 的情況)
  • 通報 GitHub 請其撤銷(私有 repository 中的 GitHub 權杖的情況)
看答案與解析

正確答案:撤銷或輪替金鑰並更新使用它的服務(金鑰仍有效的情況)

解析:已提交的 secret 應視為已外洩。憑證一旦撤銷或輪替,改寫 Git 歷史通常不必要,而且耗時,所以先讓憑證失效。

常見陷阱:每個選項都是官方文件中真實存在的處理方式,但適用情境不同;題幹寫明金鑰仍有效且正在使用,所以首要動作是讓它失效。

依據:About secret scanning、Resolving alerts from secret scanning

在互動版作答這題

第 9 題(D2-O3)

對私有 repository 中外洩的任何類型憑證,只要通報 GitHub,GitHub 就會代為撤銷。

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

看答案與解析

正確答案:錯誤

解析:通報撤銷的功能目前只針對仍有效或尚未確認的 GitHub personal access token,而且仍是公開預覽;其他類型的憑證要由使用者自行處理。

常見陷阱:「通報」容易被誤解成通用的撤銷服務;它只適用於特定類型的 GitHub 權杖,不涵蓋第三方供應商的憑證。

依據:Resolving alerts from secret scanning

在互動版作答這題

第 10 題(D2-O3)

通報私有 repository 中外洩的 GitHub 權杖前,官方提醒應先考慮什麼?

單選題,選項:

  • 先通報,再輪替權杖,讓撤銷與服務更新同時完成
  • 先關閉警示,再通報,避免同一個權杖重複通知
  • 先輪替權杖,再通報,避免撤銷後工作流程中斷
  • 先把警示指派給同事,再通報,由對方決定是否輪替
看答案與解析

正確答案:先輪替權杖,再通報,避免撤銷後工作流程中斷

解析:撤銷是單向動作:權杖一旦被撤銷,仍在使用它的服務就會失敗。先輪替並更新依賴它的服務,再通報,可以避免工作流程中斷。

常見陷阱:只想著「越快撤銷越安全」會忽略營運影響;官方的順序是先讓替代憑證就位,再讓舊憑證失效。

依據:Resolving alerts from secret scanning

在互動版作答這題

第 11 題(D2-O4)

組織要讓遷移機器人帳號的推送完全不被 push protection 阻擋。應該授予哪一種設定?

單選題,選項:

  • Bypass privileges 繞過權限名單
  • Exemption 豁免者名單設定
  • Delegated alert dismissal
  • Custom pattern 自訂偵測樣式
看答案與解析

正確答案:Exemption 豁免者名單設定

解析:Exemption 讓指定對象的推送完全不觸發 push protection,官方建議留給遷移機器人或服務帳號這類可信的自動化;bypass privileges 則是被阻擋時可以自行繞過,並能審查他人的繞過請求。

常見陷阱:繞過權限聽起來比較寬鬆,但持有者仍會被阻擋,只是被擋時可以自行繞過;只有豁免才是完全不觸發。

依據:About delegated bypass for push protection、About push protection

在互動版作答這題

第 12 題(D2-O4)

不在繞過名單上的貢獻者所提出的繞過請求,有 7 天的有效期限,逾期即失效。

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

看答案與解析

正確答案:正確

解析:委派繞過下,名單以外的貢獻者提出的請求進入審查流程,並且在 7 天後過期。

常見陷阱:容易以為請求會一直等到有人處理為止;有期限代表審查者若遲遲不處理,貢獻者必須重新提出。

依據:About delegated bypass for push protection

在互動版作答這題

第 13 題(D2-O4)

關於自訂樣式的「Save and dry run」,下列哪些敘述正確?(選 2 項)

複選題,選項:

  • dry run 會建立警示,供團隊檢視結果
  • dry run 找出符合項,但不會建立警示
  • dry run 的結果最多顯示 100 筆
  • dry run 的結果最多顯示 1,000 筆
看答案與解析

正確答案:dry run 找出符合項,但不會建立警示;dry run 的結果最多顯示 1,000 筆

解析:Dry run 找出符合項但不建立警示,結果最多顯示 1,000 筆,讓你檢視誤判、調整樣式後再跑;確認後才發佈。組織層級可涵蓋全部 repository,或最多 10 個選定的 repository。

常見陷阱:順序是先 dry run、後發佈;把發佈當成前提,會讓誤判的樣式直接影響貢獻者。

依據:Defining custom patterns for secret scanning

在互動版作答這題

第 14 題(D2-O4)

在組織層級對自訂樣式執行 dry run,可以選擇的範圍是什麼?

單選題,選項:

  • 全部 repository,或最多 5 個選定的 repository
  • 全部 repository,或最多 10 個選定的 repository
  • 全部 repository,或最多 20 個選定的 repository
  • 全部 repository,或最多 50 個選定的 repository
看答案與解析

正確答案:全部 repository,或最多 10 個選定的 repository

解析:組織層級的 dry run 可以涵蓋全部 repository,或最多 10 個選定的 repository;企業層級則是最多 10 個選定、且你擁有管理權限的 repository。

常見陷阱:兩個層級都有「10 個」的上限,但企業層級還要求對每個 repository 有管理權限;把兩個層級的規則混在一起,會選到錯誤的上限或遺漏權限條件。

依據:Defining custom patterns for secret scanning

在互動版作答這題