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

GH-500 常見問題

考試資訊

GH-500 對應哪個認證?

GitHub Advanced Security 認證;本站以 Microsoft Learn 的認證頁與 Study Guide 為範圍依據。

考試時間與及格分數是多少?

資料記載為 100 分鐘、及格分數 700;正式應考前請重新核對官方認證頁。

考試提供哪些語言?

English、Spanish、Portuguese (Brazil)、Korean、Japanese。

這個網站是官方出版品嗎?

不是。本站是繁體中文原創學習整理,不含實際考題、考古題或外洩題庫。

六個領域與權重是什麼?

D1 安全套件、功能與生態系,D2 Secret Protection,D3 供應鏈安全,D5 安全營運:各 15–20%;D4 Code Security、D6 安全套件管理:各 10–15%。

D1

GitHub Advanced Security 現在分成哪兩個產品?

GitHub Secret Protection 與 GitHub Code Security;提供給 GitHub Team 與 GitHub Enterprise Cloud 的組織。

公開 repository 的安全功能都免費嗎?

不是。要以功能為單位判斷:secret scanning 使用者警示、push protection、code scanning、CodeQL CLI、Copilot Autofix 與 dependency review 標示公開可用;delegated bypass、custom patterns、AI Scan、自訂自動分流規則與 security campaigns 沒有。

管理員看到 security overview 某 repository 沒有警示就回報「沒有弱點」,漏了什麼?

漏了確認功能是否啟用;要先用 Coverage 檢視,因為沒有警示也可能是功能沒啟用或弱點尚未被偵測。

稽核要求「去年第三季所有已關閉警示」的穩定數字,團隊截取儀表板,錯在哪?

儀表板指標會隨時間變動;需要一致的合規資料時,官方建議改用稽核日誌。

團隊累積上百個警示,只在聊天室提醒大家去修,三個月沒進展。該用什麼?

Security campaign:把緊急且相近的警示分組,指派負責人與聯絡人,讓開發者在原有流程中追蹤。

團隊只啟用 Dependabot version updates,就認為有弱點的相依性會自動修復,錯在哪?

Version updates 依排程更新到最新版,與弱點無關;由警示觸發的修復是 security updates,要另外啟用。

D2

Secret scanning 掃描哪些內容?

所有分支的完整 Git 歷史,以及 issue、pull request、Discussions、wiki 與 secret gist 的文字。

Push protection 與 secret scanning 差在哪?

Push protection 在推送時阻擋,屬預防;secret scanning 事後找出已存在的 secret 並建立警示。

繞過 push protection 要給什麼理由,各建立什麼警示?

三選一:It's used in tests 與 It's a false positive 建立已關閉的警示;I'll fix it later 建立開啟中的警示。

發現 secret 外洩時第一步做什麼?

視為已外洩,先撤銷或輪替憑證並更新使用它的服務;憑證失效後改寫 Git 歷史通常不必要。

組織的私有 repository 沒有任何設定,團隊以為 secret scanning 預設就會跑,錯在哪?

自動掃描只保證公開 repository;組織私有 repository 需要 Secret Protection 並啟用。

開發者用 REST API 提交一個靠 AI 偵測才能辨識的密碼,團隊認為所有途徑保護相同,錯在哪?

AI 偵測的 secret 在命令列、網頁介面與檔案上傳受保護,REST API 途徑不含這一類。

API 金鑰留在三個月前的 commit,團隊先花兩天用 rebase 清歷史再處理金鑰,順序錯在哪?

金鑰一被發現就應視為外洩,先撤銷或輪替;歷史改寫通常不必要,且耗時。

剛寫好公司內部權杖的自訂樣式,想立刻讓 push protection 擋住它,正確流程是什麼?

先 Save and dry run 檢視誤判(不建立警示),再 Publish pattern,之後才能 Enable push protection。

D3

Dependabot 警示何時產生?

GitHub Advisory Database 新增 advisory,或 repository 的 dependency graph 改變時,針對預設分支產生。

Security updates 與 version updates 有什麼不同?

Security updates 由警示觸發,更新到包含修補的最低版本;version updates 依 dependabot.yml 讓相依性保持最新,與弱點無關。

SBOM 包含什麼?

相依性、版本、套件識別碼、授權、間接相依性路徑與著作權資訊,以 SPDX 格式匯出;不包含 dependents。

Dependency review 與 Dependabot alerts 差在哪?

Alerts 找出已在相依性中的弱點;dependency review 在 pull request 於引入之前顯示相依性變動與弱點。

稽核要求「依賴本專案的其他專案」清單,團隊匯出 SBOM 交差,錯在哪?

SBOM 描述專案依賴什麼,不含 dependents;要看誰依賴你,用 dependency graph 的 Dependents,且只在公開 repository 可用。

啟用 security updates 後嫌噪音大,想在 dependabot.yml 設定只處理 high,為什麼行不通?

dependabot.yml 與警示沒有互動;官方建議停用 security updates,改建 auto-triage 規則指定要開 pull request 的警示。

在 dependency review action 同時設了 allow-licenses 與 deny-licenses 想雙重把關,結果如何?

兩者只能擇一,同時設定會出錯;限定可接受授權用 allow,封鎖特定授權用 deny。

資安主管想把一批公開 repository 的 Dependabot 警示指派給 Copilot,但組織沒有 Code Security 或 Advanced Security 授權,能做嗎?

不能;指派 Dependabot 警示需要授權,官方明說公開 repository 也一樣。

D4

Default setup 與 advanced setup 怎麼選?

Default setup 最快、最省維護;需要自訂 workflow(建置、matrix、排程)或外部 CI 時用 advanced setup。

CodeQL 支援哪些語言?

C/C++、C#、Go、Java/Kotlin、JavaScript/TypeScript、Python、Ruby、Rust、Swift 與 GitHub Actions workflows;不支援 PHP、Scala 等清單以外的語言。

Copilot Autofix 與 agentic autofix 差在哪?

Copilot Autofix 為單一警示產生建議修復,由你審查後建立 pull request;agentic autofix 由 agent 端到端修復並開 draft pull request,會消耗 AI Credits 與 Actions 分鐘數。

專案主要用 PHP 撰寫,團隊想用 CodeQL default setup 取得完整覆蓋,問題在哪?

CodeQL 不支援 PHP,可能不產生警示;要改用能輸出 SARIF 的第三方工具並上傳。

要為 Java 專案指定自己的建置步驟並把掃描改成每天一次,該用哪種設定?

Advanced setup:自訂排程與建置步驟超出 default setup 的自訂範圍。

開發者在功能分支修好警示,警示頁面仍顯示開啟,為什麼?

警示頁面只反映預設分支的狀態;其他分支看 Affected branches,要合併進預設分支後才會在預設分支關閉。

對同一 commit 用 upload-sarif 上傳兩個不同工具的 SARIF,卻沒指定 category,會怎樣?

同一 commit 上傳多組結果必須為每組指定唯一 category;沒有 category 無法區分後上傳的結果。

D5

EPSS 分數代表什麼?

弱點在未來 30 天內被利用的機率(0 到 1),由 FIRST 提供、GitHub 每日同步,不是受影響專案的比例。

Security campaign 是什麼?

把一組警示分享給開發者共同消化的機制;一個 campaign 的警示不得超過 1000 則,一次最多指派 25 則 code scanning 警示給 Copilot。

Security manager 角色能做什麼?

讀取所有 repository、寫入所有安全警示、設定安全功能,不需要 admin 權限;由組織擁有者指派。

Delegated bypass 與 delegated alert dismissal 差在哪?

Delegated bypass 管誰能繞過 push protection;delegated alert dismissal 管誰能直接關閉警示。

主管把 EPSS 90.534%(第 95 百分位)解讀成 90% 的專案受影響,錯在哪?

EPSS 是弱點未來 30 天內被利用的機率;第 95 百分位表示 95% 已模型化弱點比它更不可能被利用。

想建立一個納入 1,500 則警示的 campaign,會遇到什麼限制?

一個 campaign 的警示不得超過 1000 則;要縮小篩選或拆成多個 campaign。

300 個 repository 用 default setup,想全部加上公司自訂查詢又不想改成 advanced setup,怎麼做?

在組織建立並設定 github-codeql-extra-queries repository property,它套用到所有 setup 類型。

想讓遷移機器人的推送完全不被 push protection 阻擋,同時讓一般開發者被擋時能申請繞過,怎麼設定?

對機器人授予豁免(exemption),對一般開發者啟用委派繞過審查流程,請求 7 天後過期。

團隊只靠每週 Dependabot 警示處理相依性風險並稱之為「左移」,哪裡不對?

警示是事後處理已在相依性中的弱點;要在引入前攔下,用 dependency review,並以 ruleset 要求其 workflow 通過才能合併。

D6

Security configuration 與 global settings 差在哪?

Security configuration 控制 repository 層級的功能;global settings 控制組織層級的設定並由所有 repository 繼承。

configuration 的 removed 與 detached 狀態差在哪?

removed:管理員改了與未強制設定衝突的項目,仍關聯但不繼承全部設定;detached:完全斷開,現有設定不變。

管理員發現某 repository 狀態為 removed,想知道它是否還受 configuration 管理。

removed 仍與 configuration 關聯,但 repository 不再繼承全部設定也不計入涵蓋指標;重新套用可恢復,啟用強制可預防。

組織建立預設 configuration 三天後,一個 repository 從別的組織轉移進來,管理員以為已自動套用,錯在哪?

預設 configuration 只自動套用到新建立的 repository;轉移進來的要手動套用。

要建立能套用到全部 repository、又不破壞現有 advanced setup 的 configuration,default setup 選哪個選項?

Enabled with advanced setup allowed:只在 CodeQL 分析目前沒有執行的 repository 啟用 default setup。