自動化的安全防護

已完成

在這裡,我們將討論一些您可以在 GitHub 存放庫管理員可用的存放庫中自動化安全性檢查的方式。

偵測並修正具有安全性弱點的過期相依性

這些天幾乎每個項目都會相依於外部套件。 雖然這些元件可以在生產力方面帶來實質性的好處,但它們可能會帶來其他安全性風險。 掌握這些套件及其弱點狀態可能相當耗時,特別是考慮到每個相依性可能有自己的相依性,可能會變得難以追蹤和維護。 幸運的是,GitHub 提供可減少此工作負載的功能。

存放庫相依性圖表

每個存放庫都包含一個預設功能是相依性圖形。 GitHub 會掃描常見的套件指令清單,例如 package.jsonrequirements.txt和其他。 這些圖表可讓項目擁有者以遞歸方式追蹤其專案所依賴的所有相依性。

GitHub 相依性圖表的螢幕快照。

如需支援的相依性資訊清單列表,請參閱關於相依性圖表

Dependabot 警示

即便有視覺化的相依關係圖表,仍然很難掌握項目中每個相依項的最新安全考量。 為了降低此額外負荷,GitHub 會提供 Dependabot 警示 ,為您監看相依性圖表。 然後,它會與已知弱點清單上的版本交叉參考目標版本。 發現風險時,會通知專案。 分析的輸入來自 GitHub Security Advisories

易受攻擊相依性的 Dependabot 警示螢幕擷取畫面。

使用 Dependabot 進行自動化相依性更新

相依性警示可能會導致專案貢獻者將違規套件參考更新至建議的版本,並建立拉取請求以進行驗證。 如果有辦法將此工作自動化,那不是很好嗎? 好,好消息! Dependabot 只會這樣做。 它會掃描相依性警示,並建立提取要求,讓參與者可以驗證更新並合併要求。

若要深入瞭解 Dependabot 的彈性,請參閱 設定 Dependabot 安全性更新

自動化程式碼掃描

類似於 Dependabot 如何掃描存放庫是否有相依性警示,您可以使用程式代碼掃描來分析和尋找 GitHub 存放庫中程式代碼中的安全性弱點和錯誤。 程式代碼掃描有數個優點。 您可以使用它來尋找、分級並排定修正現有問題或潛在安全性弱點的優先順序。 協助防止開發人員將任何新的安全性問題引入程式碼也很有用。

程式代碼掃描的另一個優點是其能夠使用 CodeQL。 CodeQL 可讓您將程式代碼查詢為數據,讓您建立自定義查詢或使用開放原始碼社群維護的查詢。 程式代碼掃描可讓您自由地自定義和維護要如何掃描存放庫內的程序代碼。

您可以在 GitHub 存放庫的安全性索引標籤中啟用程式代碼掃描警示和工作流程:

原則、諮詢和警示清單的螢幕快照,其中包含詳細信息的連結。

深入瞭解 程式代碼掃描和 CodeQL

祕密掃描

GitHub 存放庫中的另一個自動化掃描功能是秘密掃描。 與前文中的安全性掃描功能類似,祕密掃描會在存放庫中尋找認可的已知祕密或認證。 此掃描是為了防止使用詐騙行為,並保護任何敏感數據的完整性。 根據預設,秘密掃描會在公用存放庫上進行,而且您可以由存放庫管理員或組織擁有者在私人存放庫上啟用秘密掃描。

當秘密掃描偵測到一組認證時,GitHub 會通知發出秘密的服務提供者。 服務提供者會驗證認證。 然後,它會決定他們是否應該撤銷秘密、發出新的秘密,或直接與您連絡。 動作取決於您或服務提供者的相關風險。

深入了解 公用和私人存放庫的祕密掃描 (英文)。