密鑰掃描(Secret Scanning)是一種自動化資安流程,專門在程式碼與各種資料來源裡尋找不該被公開的機密資訊。GitHub 這篇文章指出,掃描鎖定的對象主要是三類:用來授權存取 API 的 API 金鑰、提供臨時存取權限的驗證令牌,以及用於加密與解密敏感資料的加密金鑰,此外也包含寫在環境變數或設定檔裡的機密資料。
運作原理是透過樣式比對(pattern recognition),持續掃描儲存庫的程式碼與提交歷史,找出符合各家廠商金鑰格式的字串。文章提到 GitHub 的 Secret Scanning 功能會自動偵測多種供應商的令牌,搭配推送保護(push protection)功能,在機密資訊被推送成純文字之前就先攔下來;掃描方式可以整合進 CI/CD 管道做持續監控,也可以由資安人員定期手動審查。
文章引用數據指出,2024 年有將近四成的資料外洩事件與被盜的認證憑證有關,同一年 GitHub 上也偵測到超過 3,900 萬筆外洩的機密資訊,凸顯這個問題有多常見。文章提醒,程式碼裡如果寫死了機密資訊,惡意人士往往只要幾秒到幾分鐘就能找到並加以利用,後果包括未經授權的存取、資料外洩,以及違反 SOC 2、NIST、GDPR 等法規的風險。
這篇文章主要在講企業與開源專案維運層面的資安做法,不過背後有一個很值得學程式的孩子從一開始就記住的觀念:密碼、API 金鑰這類機密資訊絕對不能直接寫在程式碼裡,也不能上傳到公開的程式碼儲存庫。養成把機密資訊放進環境變數、不把它們提交進版本控制的習慣,是寫程式很基本也很重要的資安素養。
資安密鑰掃描開源開發工具