
GitHub Secret Scanning:重要性與最佳實務
GitHub secret scanning 會偵測並針對程式碼儲存庫中的敏感資料外洩發出警示,例如 API 金鑰和認證資訊。使用它來保護您的機密資訊、確保安全且合規的開發實務,並降低資料外洩與未經授權存取的風險。

GitHub 被全球開發人員用來儲存與分享專案程式碼。它允許開發人員建立公開儲存庫並在各種專案上協作。GitHub 成立於 2008 年,是一項提供託管功能的雲端服務,並於 2018 年被 Microsoft 收購。
GitHub 具有版本控制系統,提供如軟體請求、錯誤追蹤、工作管理等功能。然而,GitHub 是開放原始碼、易於存取,且擁有超過 3.72 億個儲存庫。儘管如此,GitHub 的建立者本應將安全性納入考量,而有時仍可能發生安全妥協。密碼可能遭竊,GitHub secrets 也可能未獲得妥善保護。
GitHub 有一個秘密掃描合作夥伴計畫,用於分析秘密權杖格式並搜尋意外提交。它可以將這些掃描結果傳送給雲端服務供應商,以驗證端點。GitHub 掃描也可防止憑證遭到詐騙性使用,並可套用於公開 npm 套件。組織可以掃描私有儲存庫、檢視及管理秘密掃描等。GitHub 也有一項秘密警示服務,可接受來自 GitHub 的 webhook,而這些 webhook 已知包含秘密掃描訊息承載。

本指南將涵蓋您需要了解的所有內容:GitHub Secret Scanning,並深入探討其細節。
什麼是 GitHub Secret Scanning?
GitHub Secret Scanning 包含各種安全功能,可在組織內保護機密資訊安全。其中部分功能可作為工具使用,而採用 GitHub 進階安全性解決方案的企業則可享有獨特優勢。
GitHub secret scanning 會從 GitHub 儲存庫所有分支的整個 Git 歷史記錄中擷取機密資訊。
為什麼 GitHub Secret Scanning 很重要?
GitHub Secret Scanning之所以必要,是因為它可防止潛在的憑證外洩,並協助定義開發人員的 regex 模式。每個人都知道,repos 都有敏感資料暴露的風險,而將 secrets 硬編碼到原始碼中是不好的做法。DevOps 團隊使用 GitHub actions 來自動化工作流程並部署應用程式,且其具有一項強大的內建功能,稱為 secrets。它允許使用者在原始碼中安全地儲存及使用值,但專家認為,僅使用此工具本身,仍不足以達到充分的安全性。
第三方 secret scanning 工具是外部服務,可提供安全、可靠且集中化的方式,在 DevOps 工作流程中管理與儲存機密資訊。它們比 GitHub Actions secrets 提供更高的彈性,並提供額外功能,例如更大的儲存容量、更高的儲存上限、secret key 輪替、存取控制管理、稽核、版本控制等。
GitHub 中 Secret Scanning 可用的功能
- GitHub Actions secrets 僅對 GitHub Actions 可見,不會顯示於輸出記錄或 Web 介面中
- GitHub Secret Scanning 可用於儲存加密資料檔案,例如 SSH 憑證,且可隨時更新或刪除
- GitHub Actions Secrets 遵循特定的安全性原則與加密通訊協定,只有授權使用者才能檢視與存取
然而,預設的 GitHub Secret Scanner 有各種限制:
- 首先,每個 secret 的大小上限為 64 KB,且儲存庫中僅允許儲存 100 個 secrets
- 組織無法儲存超過 1,000 個 secrets,且缺乏進階安全功能,例如 secret key 輪替、稽核、版本控制等。
- 不支援跨儲存庫功能,且組織無法在多個工作流程或專案之間同步、分享、整理或同時更新機密資訊。
GitHub Secret Scanning 如何運作?
使用者可以設定如何接收即時警示,以掃描儲存庫中外洩的機密資訊。GitHub secret scanning 功能可為其擁有的任何公開儲存庫啟用。一旦啟用後,GitHub 會掃描 GitHub 儲存庫內所有分支的整個 Git 歷史記錄中的任何機密資訊。
Secret scanning 可在同一組織內的多個儲存庫中運作。GitHub secret scanning 可協助組織防止機密資訊遭到詐欺性使用,並避免其被意外提交。
如何設定 GitHub Secret Scanning?
- 前往 GitHub.com 並導覽至儲存庫的主頁面
- 按一下 Settings 索引標籤以開啟下拉式選單。在側邊欄的安全性區段中,按一下 Code Security and analysis
- 檢查 GitHub Advanced Security 是否已啟用。若尚未啟用,請按一下 Enable。
- 按一下為此儲存庫啟用 GitHub Advanced Security。
- 完成後,系統將自動為組織的公開儲存庫啟用 secret scanning。若在 Secret Scanning 功能旁看到「Enable」按鈕,您必須按一下它。您可以按一下 Disable 按鈕來關閉 secret scanning。
- GitHub secret scanning 也會封鎖包含受支援機密資訊的提交,並提供 Push Protection 功能。如果您想手動檢閱推送內容,可以按一下 Enable。
GitHub Secret Scanning 的最佳實務有哪些?
以下是在掃描 GitHub secrets 時的一些最佳實務:
優先處理新的機密資訊在將最近提交的認證資訊儲存為 secrets 之前進行檢閱至關重要。這有助於讓組織維持較低的 secrets 數量,並使用 webhook 將新的機密資訊通知導向正確的團隊。開發人員應接受充分的訓練文件,並在提交新的機密資訊之前先行發佈。針對警示進行後續處理並實作進階修復流程,對於每一種機密資訊類型都至關重要。
處理已提交的機密資訊處理最關鍵的已提交機密資訊並開始檢閱較舊的機密資訊至關重要。在識別每種機密資訊類型後,開發人員應定義並記錄修復流程。他們也應向新使用者傳達任何變更,並建立管理受影響儲存庫的指引。
執行進階安全性掃描您可以使用 GitHub Enterprise Cloud 設定進階安全掃描。您的組織將需要 GitHub Advanced Security License,而 GitHub 可在任何公開儲存庫上自動執行合作夥伴模式掃描。

CNAPP Buyer’s Guide
Learn everything you need to know about finding the right Cloud-Native Application Protection Platform for your organization.
GitHub Secret Scanning 的優點與缺點
Git Secret Scanning 的優點
Secret scanning 是一項很有價值的功能,可協助組織識別敏感資訊並採取措施加以保護。使用 secret scanning 工具可協助企業強化其整體雲端安全態勢。GitHub 在所有公開儲存庫上免費提供 secret scanning,並透過其 secret scanning 合作夥伴計畫與雲端服務供應商合作,標記外洩的憑證。
開源開發人員可免費取得有關程式碼中外洩 secrets 的警示、追蹤變更,並採取適當行動。GitHub 也已自 2022 年 4 月起為所有 GitHub Advanced Security 客戶新增 push protection,可主動掃描 secrets 並在提交前防止外洩。自訂模式的 push protection 會依各個模式分別進行設定與套用。
以下是 GitHub Secret Scanning 的優點清單:
- GitHub secret scanning 對各種規模的組織皆為免費,並授予公開存取
- 它提供額外的安全性,並讓追蹤儲存在公開儲存庫中的所有 secrets 變得極為便利
- GitHub secrets scanning 比手動逐行檢閱程式碼快得多
- 醫療保健、金融與零售產業可加密敏感資訊,並確保符合相關標準與法規。
Git Secret Scanning 的缺點
以下是 GitHub Secret Scanning 的缺點:
- 威脅分析可能耗時過久
- 在 secrets 偵測期間可能發生誤判與漏判
- 可能拖慢開發時間
- 有可能發生自動建置失敗
- 與第三方 GitHub secret scanning 工具相比,掃描的程式碼行數較少
- 資料庫中的擷取錯誤,以及產生程式碼中的警示
- 無法變更公開儲存庫上合作夥伴模式的 secret scanning 設定
SentinelOne 將如何協助 GitHub Secret Scanning?
遭竊憑證幾乎占所有網路安全攻擊的一半。 GitHub 已在公開儲存庫中偵測到超過 100 萬個外洩 secrets,而且每分鐘有十多起意外外洩事件。
API、權杖及其他 secrets 的意外外洩會增加雲端資料外洩、聲譽損害的風險,並造成法律責任。預設的 GitHub Secret Scanner 依賴已知攻擊模式與簽章來偵測憑證濫用。組織其實沒有真正的方法可調查這些 secrets 是如何被存取的,並忽略了人為因素。
這正是 SentinelOne 發揮作用之處。
SentinelOne 可識別雲端錯誤設定、憑證外洩,並審查 Infrastructure as Code (IaC) 範本。它讓安全團隊能夠追蹤未受管理的執行個體、Kubernetes 叢集,以及各種雲端服務。
SentinelOne 的全面性 CNAPP 更進一步,並落實左移安全。其 Offensive Security Engine 可識別所有潛在攻擊利用途徑,並修復未知或隱藏的弱點。SentinelOne CNAPP 可掃描公有與私有雲儲存庫,並保護關鍵任務工作負載。它提供可立即改善組織雲端安全態勢的安全自動化功能。該平台可偵測超過 750 種不同類型的機密資訊,並防止雲端憑證外洩。
透過結合靜態機器學習分析與動態行為分析,安全團隊可即時掃描並修復 secrets 相關問題。SentinelOne CNAPP 會定期輪替 secret 金鑰,從而降低 secrets 遭入侵的風險。該平台實作 AES、DES 與 3DES 等對稱式加密演算法,以提供更強的保護。Purple AI 是您的個人安全分析師,並透過統一的 AI 驅動控制平面加速您的 SecOps。它可縮短回應時間,並簡化 secrets 調查。

AI-powered cloud workload protection (CWPP) for servers, VMs, and containers, that detects and stops runtime threats in real time.
結論
雖然 GitHub Secret Scanning 可能消耗大量資源,但組織必須重視它。良好的 GitHub secret scanning 技術有助於防止資料外洩、保護客戶,並將營運失敗降至最低。
GitHub secret scanning 是不可或缺的 雲端安全 元件,並有助於識別程式碼儲存庫的缺陷。若沒有 GitHub secret scanning 工具,組織將處於脆弱狀態,可能導致嚴重後果。
常見問題
GitHub secret scanning 涉及使用工具與流程,掃描公開與私人儲存庫中的 secrets。它會掃描程式碼中的 secrets 以找出缺陷、偵測設定漂移或變更,並規劃有效的行動與威脅修復。
使用者可使用預設的 GitHub Secret Scanning 功能來掃描程式碼 secrets。或者,他們也可以使用像 SentinelOne 這樣的完整 GitHub secret scanning 工具,以獲得整體性的安全與防護。
由 GitHub 提供的 GitHub Secret Scanning 完全免費。包含在 CNAPP 中的 SentinelOne GitHub Scanning 工具,Starter Plan 起價為每月 2000 美元。
GitHub 程式碼掃描預設對 GitHub 使用者免費。不過,它可能存在各種限制,而這些限制可由 SentinelOne 等付費進階工具加以解決。



