跳到主要內容
GH-500 名詞庫
D1 GitHub 安全套件、功能與生態系
- GitHub Secret Protection
- 需購買的安全套件,包含 secret scanning 使用者警示、push protection、delegated bypass、custom patterns 與 AI 偵測的 secret。
- GitHub Code Security
- 需購買的安全套件,包含 code scanning、CodeQL CLI、Copilot Autofix、AI Scan、dependency review 與 security campaigns。
- Security overview
- 位於組織 Security and quality 頁籤,檢視整個組織的安全趨勢與風險,資料以各 repository 的預設分支為準。
- Security campaign
- 把一批警示分組分享給開發者的修復活動,有具名聯絡人,code scanning 警示會觸發 Copilot Autofix。
- Security manager
- 組織層級角色,擁有所有 repository 的讀取權限與所有安全警示的寫入權限,並能設定安全功能。
- Delegated alert dismissal
- 限制誰能直接關閉警示:有寫入權限的使用者須提出請求,由擁有者或 security manager 核准或拒絕。
- Dependency graph
- 列出 repository 的直接與間接相依性,是 dependency review 與 Dependabot 的資料基礎,可匯出為 SPDX 相容的 SBOM。
- Artifact attestation
- 經密碼學簽署的聲明,說明建置的來源與工作流程,或相關的 SBOM;不保證軟體安全。
- Supply chain attack
- 攻擊者利用相依性的弱點插入惡意程式碼或竊取資料。
- Immutable releases
- 發布後禁止更動 release 的資產與 Git tag;預設不啟用,發布時自動產生 attestation。
- 直接相依性
- 直接寫在 manifest 或 lockfile 中的相依性。
- 間接(transitive)相依性
- 專案不直接指定、但被其他相依性使用的相依性。
- Risk 檢視
- Security overview 的檢視之一,用來找出風險最高的 repository。
- Coverage 檢視
- Security overview 的檢視之一,用來確認各 repository 是否啟用安全功能;解讀「沒有警示」前要先看它。
- Enablement 檢視
- Security overview 的檢視之一,呈現各團隊採用安全功能的速度。
- Assessments 檢視
- Security overview 的檢視之一;免費的 secret risk assessment 讓 GitHub Team 組織在未購買套件時也能評估外洩風險。
- 稽核日誌(合規資料)
- Security overview 儀表板的指標會隨時間變動;需要一致資料做合規或稽核時,官方建議改用稽核日誌。
- 預防導向功能
- 在變更進入預設分支或 repository 之前運作的功能:push protection、pull request 上的 code scanning 與 dependency review。
- Dependency submission API
- 生態系不被 manifest 分析支援時,用來提交相依性的 API;建置階段提交的資訊可補足間接相依性。
- 自訂安全角色
- 需要比 security manager 更窄或更寬的權限時建立,例如只管理 secret scanning 結果與繞過請求。
D2 設定與使用 Secret Protection
- Secret scanning
- 掃描所有分支的完整 Git 歷史、issue 與 pull request 文字、Discussions、wiki 與 secret gist,找出寫死的憑證並產生警示。
- Push protection
- 在推送當下偵測疑似 secret 並阻擋,要求貢獻者移除後重推;與事後才產生警示的 secret scanning 不同。
- Partner patterns
- 偵測服務供應商發行憑證的樣式,屬於預設的偵測;偵測到的 secret 會直接回報給供應商處理,不會顯示在 repository 警示中。
- Validity checks
- 確認偵測到的 secret 是否仍然有效,協助依風險排定處理順序。
- Delegated bypass
- 把繞過 push protection 的權限收斂給指定對象;其他貢獻者的繞過請求送審,並在 7 天後過期。
- Exemption
- 委派繞過下的一種授權,讓指定對象的推送完全不觸發 push protection,適合可信的自動化帳號。
- Custom pattern
- 以規則運算式自訂的 secret 樣式,可定義在 repository、組織或企業層級;先 dry run 檢視誤判,發佈後才能啟用 push protection。
- Non-provider patterns
- 偵測不屬於特定供應商的 secret,例如私密金鑰、連線字串與一般 API 金鑰。
- Generic patterns
- push protection 支援的樣式之一,涵蓋私密金鑰、資料庫連線字串等結構化 secret。
- AI 偵測的 secret
- 公開預覽,針對密碼這類沒有固定格式的 secret;push protection 的 REST API 途徑不含這一類。
- 使用者層級的 push protection
- 只在 GitHub.com、綁定個人帳號、預設啟用,阻止你把 secret 推到公開 repository;除非 repository 層級也啟用,繞過時不產生警示。
- Bypass privileges
- 被授權者在被阻擋時可自行繞過 push protection,並能審查、核准他人的繞過請求。
- 繞過 push protection 的三個理由
- It's used in tests、It's a false positive 與 I'll fix it later;前兩者建立已關閉的警示,最後一個建立開啟中的警示。
- Dry run(自訂樣式)
- Save and dry run 找出符合項但不建立警示;結果最多顯示 1,000 筆,用來檢視誤判後再發佈。
- Secret format
- 自訂樣式表單的必填欄位,以規則運算式描述 secret 的格式。
- Publish 與 Enable(自訂樣式)
- 樣式發佈後,才能按 Enable 對它啟用 push protection;組織層級只對已啟用 push protection 的 repository 生效。
- 先撤銷後清歷史
- 外洩的 secret 應視為已外洩並先撤銷或輪替;憑證失效後改寫 Git 歷史通常不必要,而且耗時。
- 通報 GitHub 撤銷 PAT
- 私有 repository 中外洩的 GitHub personal access token 可通報 GitHub 撤銷(公開預覽);通報前宜先輪替憑證。
- 繞過請求 7 天過期
- 委派繞過中,不在名單上的貢獻者提出的繞過請求進入審查流程,7 天後過期。
D3 設定與使用供應鏈安全
- SBOM
- 專案相依性的正式、機器可讀清單;GitHub 可從 dependency graph 匯出 SPDX 格式,內容不含 dependents。
- Dependabot alerts
- 在 GitHub Advisory Database 新增 advisory,或 dependency graph 改變時,針對預設分支發出的有弱點相依性警示;只有經 GitHub 審查的 advisory 會觸發。
- EPSS
- Exploit Prediction Scoring System,弱點被利用機率的分數;官方建議與嚴重度、範圍、關係一併用來排定警示優先順序。
- Dependabot security updates
- 為有可用修補的 Dependabot 警示自動開 pull request,更新到包含修補的最低版本;合併後關閉對應警示。
- Dependabot version updates
- 依 dependabot.yml 讓相依性保持最新版本,不論有無弱點;預設有 3 天的 cooldown,security updates 不受影響。
- Auto-triage 規則
- 在通知寄出前自動關閉、延後或重新開啟 Dependabot 警示的規則,分為 GitHub 預設規則與自訂規則。
- Dependency review
- 在 pull request 顯示相依性變動與弱點資料,於引入前攔下問題;要先啟用 dependency graph。
- Dependency review action
- 在 pull request 比較相依性差異的 GitHub Action;預設發現有弱點的套件就失敗,allow-licenses 與 deny-licenses 只能擇一。
- Dependents
- 依賴你的 repository 與套件;只在公開 repository 列出,私有 repository 不回報。
- Show paths
- dependency graph 中展開間接相依性,查看是哪條路徑把它帶進來。
- GitHub Advisory Database
- Dependabot 警示的弱點資料來源;只有經 GitHub 審查的 advisory 會觸發警示。
- SPDX
- SBOM 匯出採用的業界標準格式;內容不包含 dependents。
- Grouped security updates
- 在同一個生態系內把多個相依性的 security updates 合成一個 pull request;不跨生態系,也不與 version updates 合併。
- Cooldown
- Dependabot version updates 預設 3 天,新版本發布後 3 天才會被考慮;不適用於 security updates。
- Reachability analysis
- 選用功能(公開預覽),判斷應用程式能否到達有弱點的相依性程式碼;目前支援 npm、pnpm、Yarn 的 JavaScript 與 TypeScript repository。
- resolution:auto-dismiss
- 被 auto-triage 規則自動關閉的警示的關閉原因;仍可查詢與重新開啟。
- Dependabot 警示指派
- 有寫入權限者可把警示指派給協作者、團隊或 AI agent;需要 Code Security 或 Advanced Security 授權,公開 repository 也一樣。
- fail-on-severity
- dependency review action 的選項,設定達到哪個嚴重度(critical、high、moderate、low)就失敗。
- allow-licenses 與 deny-licenses
- dependency review action 的授權選項;兩者只能擇一使用。
- Enterprise Open-Source License Manager
- 企業層級角色,可接收並回應授權合規的關閉請求;授權合規限 Enterprise Cloud 且啟用 Code Security。
- Compatibility score
- Dependabot security updates 可能附帶的分數,是同一更新在其他公開 repository CI 通過的百分比。
D4 設定與使用 Code Security
- CodeQL
- GitHub 開發的程式碼分析引擎;先建立 CodeQL database,再對資料庫執行查詢,結果顯示為 code scanning 警示。
- Default setup
- 最快、最省維護的 code scanning 設定;自動選語言、query suite 與觸發事件,不需維護 workflow 檔。
- Advanced setup
- 需要自訂 Actions workflow(建置、matrix、排程)或使用外部 CI 時採用的 code scanning 設定。
- Query suite
- 一次選入多個 CodeQL 查詢的集合;內建 default、security-extended 與 security-and-quality。
- SARIF
- Static Analysis Results Interchange Format,以 JSON 為基礎的開放標準;code scanning 支援 2.1.0 的子集。
- Security severity
- CodeQL 安全警示的 Critical、High、Medium、Low 等級,依 CVSS;有此等級時優先於 severity。
- Copilot Autofix
- 為單一 code scanning 警示產生一個建議修復,由你審查後自行建立 pull request;不消耗 AI credits。
- Agentic autofix
- 把警示指派給 Copilot,由 agent 探索程式碼、產生並驗證修復並開 draft pull request;會消耗 AI Credits 與 Actions 分鐘數。
- Tool status page
- 顯示預設分支上各 code scanning 工具的狀態、檔案涵蓋率與錯誤訊息,是除錯的起點。
- CodeQL database
- 為程式碼建立的資料庫表示;CodeQL 對它執行查詢,結果顯示為 code scanning 警示。
- security-extended
- default 加上精確度與嚴重度稍低的查詢,可能有較多誤報;可用於 default setup,介面上稱為 Extended。
- security-and-quality
- security-extended 加上找出可維護性與可靠性問題的查詢;只能用於 advanced setup。
- 自訂 query suite(.qls)
- 以 YAML 定義的查詢集,副檔名 .qls;使用自訂 suite 需要 advanced setup。
- Build mode
- none(不建置)、autobuild(偵測並嘗試建置)、manual(自行定義建置步驟);C/C++、C#、Java、Rust 預設用 none。
- Data-flow 警示
- 顯示資料從來源到使用處每一步的警示;同一弱點的多條路徑歸在同一則警示下。
- Affected branches
- 警示頁面右側顯示警示在其他分支的狀態;警示頁面本身只反映預設分支。
- github-codeql-config-file
- repository property,指定 CodeQL 設定檔路徑;套用到所有 setup 類型,advanced workflow 明確指定的 config-file 優先於它。
- github-codeql-extra-queries
- repository property,為組織內相關分析加入額外查詢,不必修改個別 workflow。
- Threat model
- 決定哪些污染資料來源被視為風險;公開預覽,目前只支援 Java/Kotlin 與 C#。
- Code scanning merge protection
- 在 ruleset 加入 code scanning 規則,必要工具發現指定嚴重度警示、分析進行中或未設定時阻擋合併;不會自動啟用 code scanning。
- SARIF category
- 同一 commit 上傳多組結果時,必須為每組指定的唯一識別;CodeQL action 會依 workflow 名稱與 matrix 變數自動設定。
- Code scanning results 檢查
- pull request 上顯示 code scanning 結果的檢查名稱;error、critical 或 high 嚴重度會使檢查失敗。
D5 安全營運:最佳做法、優先順序與修復
- GHSA ID
- GitHub 每則 advisory 的唯一識別碼,格式 GHSA-xxxx-xxxx-xxxx,字元取自 23456789cfghjmpqrvwx,字母全小寫。
- GitHub-reviewed advisory
- 對應到支援生態系套件、經 GitHub 審查有效性的 advisory;會產生 Dependabot 警示,未審查與惡意軟體 advisory 不會。
- Malware advisory
- 關於惡意開源套件的 advisory,沒有修復版本,要從專案移除並找替代;多為替換攻擊。
- Campaign manager
- Security campaign 的主要聯絡人,必須是組織擁有者或 security manager 的使用者或團隊。
- CVE
- 弱點的公開編號;來自 National Vulnerability Database 的 advisory 附有 CVE 連結。
- CWE
- 弱點類型標籤;計算安全嚴重度時,取相關 CWE 所有 CVE 的 CVSS 第 75 百分位。
- OSV 格式
- GitHub Advisory Database 的 advisory 以 Open Source Vulnerability 格式的 JSON 檔發布。
- Unreviewed advisory
- 直接從 National Vulnerability Database feed 自動發布、未檢查有效性的 advisory;Dependabot 不為它產生警示。
- CVSS
- 弱點嚴重度評分;Advisory Database 支援 CVSS 3.1 與 4.0,分為 Low、Medium/Moderate、High、Critical。
- EPSS 百分位
- 與相同或較低 EPSS 分數的已評分弱點所占的比例;95 百分位表示 95% 的已模型化弱點比它更不可能被利用。
- 社群貢獻(Analyst)
- 對 github/advisory-database 提交的 pull request,經 GitHub Security Lab 策展團隊審查;被接受者獲得 Analyst credit。
- 替換攻擊(substitution attack)
- 攻擊者在公開 registry 發布與你依賴的第三方或私有套件同名的套件;多數 malware advisory 屬於這類。
- Campaign 範本
- 預先定義的篩選條件,選出一群密切相關的警示;agentic autofix 停用時會加上 autofix:supported。
- Campaign 警示上限
- 一個 security campaign 納入的警示不得超過 1000 則。
- Require code scanning results
- branch ruleset 規則,為每個必要工具設定警示等級與安全警示等級作為合併條件。
- 左移(預防性安全)
- 在變更進入預設分支或 repository 之前就攔下問題,例如 push protection、dependency review 與合併保護。
D6 GitHub 安全套件管理
- Security configuration
- 一組安全功能的啟用設定,可套用到組織內的 repository;控制 repository 層級的功能。
- Global settings
- 控制組織層級的安全設定,由所有 repository 繼承。
- Enforced configuration
- 強制的 security configuration;repository 擁有者不能改變它已啟用或已停用的功能,未設定的功能不強制。
- removed 狀態
- repository 管理員改了與未強制 configuration 衝突的設定;仍關聯但不再繼承全部設定,也不計入涵蓋指標。
- detached 狀態
- configuration 與 repository 完全斷開;現有安全設定不變,顯示為 No configuration。
- Enabled with advanced setup allowed
- Default setup 的選項,只在 CodeQL 分析目前沒有執行的 repository 啟用 default setup,讓 configuration 可套用到所有 repository。
- 預設 configuration
- 只自動套用到新建立的 repository;轉移進組織的 repository 需手動套用。
- CodeQL model pack
- 擴充 CodeQL 對額外框架與函式庫的辨識;目前是公開預覽,支援 C/C++、C#、Java/Kotlin、Python、Ruby 與 Rust。
- 生產環境脈絡
- 整合 Microsoft Defender for Cloud、JFrog Artifactory 或 CI/CD 的資料,協助排定 code scanning 與 Dependabot 警示的優先順序。
- attached 狀態
- configuration 已套用,repository 繼承所有設定。
- failed 狀態
- repository 現有設定與 configuration 衝突,無法套用。
- removed_by_enterprise 狀態
- 企業層級的設定變更與已套用的組織設定衝突。
- Use as default for newly created repositories
- configuration 的 Policy 選項,可選 Public、Private and internal 或 All repositories;只自動套用到新建立的 repository。
- Prevent direct alert dismissals
- configuration 中啟用委派警示關閉的選項,可分別用於 secret scanning、code scanning 與 Dependabot。
- Extended metadata checks
- secret scanning 的 configuration 選項,只能在 validity checks 啟用時啟用。
- Labeled runner
- Dependabot 或 default setup 使用的帶標籤 runner;Dependabot 預設標籤為 dependabot,公開 repository 一律用 GitHub-hosted runner。
- AI applications 掃描
- global settings 中獨立於 AI Scan 的設定,控制不同的偵測器;啟用 AI Scan 不會啟用它。
- 不活躍 repository 持續掃描
- global settings 選項,讓不活躍 repository 每 30 天繼續掃描;週期固定,不可設定。
- 批次 script 啟用 advanced setup
- 對不適用 default setup 的 repository,用 script 把 CodeQL workflow 加到每個 repository;組織需啟用 GitHub Actions。
- Configurations REST API
- 用來建立與管理 security configuration 的 REST 端點,涵蓋組織與企業層級。
- repository_security_configuration
- 稽核日誌事件,記錄 repository 的 configuration 狀態變更。
- Private vulnerability reporting
- security configuration 中可啟用、停用或保持現狀的選項之一。