GitHub 把原本就有的密鑰掃描(secret scanning)功能範圍再擴大,現在除了 Issue、Wiki、討論區與 Pull Request 之外,也能檢測 GitHub Actions 工作流執行日誌裡是否出現 API 金鑰、令牌等敏感認證資訊。這是為了防止開發團隊在自動化流程執行過程中,不小心把這些機密資訊寫進日誌而外流,目前這項功能屬於公開預覽階段。
技術上的做法是,當一個工作流執行完成後,GitHub 會掃描這次執行產生的日誌內容,比對已知的服務供應商金鑰格式。如果發現疑似洩漏的密鑰,就會出現在該 repository 的密鑰掃描警報清單中,並附上連回 Actions 工作流日誌的連結,方便開發者快速定位問題所在。系統也會針對支援的金鑰類型做有效性檢查,而且就算之後把日誌刪除,相關警報仍然會保留下來,不會因為刪除日誌就消失。
值得注意的是,這項功能目前只開放給使用 GitHub Enterprise Cloud、且擁有 GitHub Secret Protection 或 GitHub Advanced Security 授權的企業使用,需要由企業擁有者在企業設定的「原則」裡的「進階安全」選項中手動開啟。另外官方也特別說明,這個功能只會掃描開啟後才執行完成的工作流,通用模式與使用者自訂的密鑰模式目前還不支援,算是功能上線初期的限制。
這則新聞比較偏向企業端的軟體供應鏈安全議題,對剛開始學程式的孩子來說不是馬上會碰到的東西。不過可以藉這個例子讓孩子理解一個重要觀念:寫程式時絕對不要把密碼、金鑰直接寫在程式碼或讓它出現在執行紀錄裡,因為這些資訊一旦洩漏出去,別人就可能冒用你的帳號或服務,這是寫程式很基本但很容易忽略的安全習慣。
開發工具平台功能資安