自動化安全性
在這裡,我們會討論一些可供 GitHub 存放庫管理員使用的方法,讓您可以在存放庫中自動執行安全性檢查。
偵測並修正有安全性弱點的過時相依性
現今,幾乎每個專案都相依於外部套件。 雖然這些元件在生產力方面提供了顯著的優勢,但也帶來其他安全性風險。 掌握這些封裝及其弱點狀態可能很耗時間,尤其是考慮到每個相依性也許都有自己的相依性,可能會變得難以追蹤和維護。 幸運的是,GitHub 提供可減少此工作負載的功能。
存放庫相依性關係圖
每個存放庫都包含的預設功能是相依性關係圖。 GitHub 會掃描常見的套件資訊清單,例如 package.json
、requirements.txt
及其他項目。 這些圖表可讓專案擁有者以遞迴的方式,追蹤其專案的所有相依性。
如需支援的相依性資訊清單列表,請參閱關於相依性圖表。
Dependabot 警示
即使使用視覺相依性關係圖,可能仍然很難掌握專案所擁有每個相依性的最新安全性考量。 為了降低此額外負荷,GitHub 提供了相依性警示,為您監看您的相依性關係圖。 接著,其會使用已知弱點清單上的版本,對目標版本進行交互參照。 當探索到風險時,系統會通知專案。 分析的輸入訊息來自 GitHub 安全性報告 (英文)。
使用 Dependabot 自動化相依性更新
相依性警示可能會導致專案參與者將不良封裝參考提升為建議的版本,並建立提取要求以進行驗證。 如果有方法可以自動化此工作,這不是很棒嗎? 好消息! Dependabot 就是這樣做的。 其會掃描相依性警示並建立提取要求,讓參與者可以驗證更新並合併要求。
若要深入了解 Dependabot 的彈性,請參閱設定 Dependabot 安全性更新 \(英文\)。
自動化的程式碼掃描
這與 Dependabot 掃描存放庫以取得相依性警示相類似,您可使用程式碼掃描來分析及尋找 GitHub 存放庫中的程式碼安全性弱點和錯誤。 程式碼掃描有幾項優點。 您可以用它來尋找、分級現有問題或潛在的安全性弱點,並排定修正的優先順序。 其也有助於防止開發人員在程式碼中引入任何新的安全性問題。
程式碼掃描的另一個優點是能夠使用 CodeQL。 透過 CodeQL,您可將程式碼作為資料查詢,這可讓您建立自訂查詢,或使用開放原始碼社群所維護的查詢功能。 透過程式碼掃描,您可以自訂存放庫中程式碼的掃描方式,並加以維護。
您可在 GitHub 存放庫的安全性索引標籤中啟用程式碼掃描警示和工作流程:
深入了解 程式碼掃描和 CodeQL (英文)。
祕密掃描
GitHub 存放庫的另一個自動掃描功能是祕密掃描。 與前文中的安全性掃描功能類似,祕密掃描會在存放庫中尋找認可的已知祕密或認證。 這項掃描的目的是為了防止詐騙,並保護所有敏感性資料的完整性。 根據預設,祕密掃描會在公用存放庫上進行,而且您可以在私人存放庫上啟用由存放庫管理員或組織擁有者進行的祕密掃瞄。
當秘密掃描偵測到一組認證時,GitHub 會通知發出秘密資訊的服務提供者。 服務提供者會驗證認證。 然後,它會決定他們是否應該撤銷祕密、發出新的祕密,或直接與您連絡。 動作取決於您或服務提供者的相關風險。
深入了解 公用和私人存放庫的祕密掃描 (英文)。