GitHub 的 21 項安全最佳實務

GitHub 非常積極地保護使用者及其程式碼的安全。除了鼓勵或強制使用多重身分驗證 (MFA),還開發並部署工具,協助防止未經授權的存取和敏感資訊暴露在公共儲存庫中。 因此,大多數與 GitHub 相關的安全事故都是由其使用者的錯誤所導致。本文將探討使用 GitHub 的組織可以採用的一些最佳實務,以確保其 GitHub 倉庫及其包含的程式碼和資料的安全性。

下載白皮書 深入瞭解

GitHub 的 21 大最佳安全措施

以下是 GitHub 的 21 項安全最佳實務:

#1.切勿在 Github 上儲存認證和敏感資料

GitHub 是版本控制系統,因此儲存在上面的資料會永遠存在。git-secrets 等工具可阻止包含敏感資料的程式碼推送至 GitHub。

#2.停用分叉

Forking 會複製 GitHub 倉庫,但不會影響原始程式碼。停用分叉以維持對原始碼的控制,並確保敏感資料不會被未經授權的分叉新增或公開。

#3.停用可見度變更

GitHub 支援公開和私有套件庫,有權限的使用者可以變更套件庫的能見度。在 GitHub 的成員權限中,停用組織內所有成員修改「儲存庫可見性變更」的權限,以限制可以這麼做的使用者。

#4.驗證您的 GitHub 應用程式

組織通常會與擁有 GitHub 帳戶存取權限的協力廠商開發人員合作。這些外部使用者應該有有限的存取權限,而且所有的提交都應該經過驗證,才能新增到 repo。

#5.強制執行雙重認證

GitHub 允許組織強制使用雙因素認證(2FA)。要求所有使用者使用 2FA,可降低因帳號不安全而造成程式碼外洩或惡意程式碼的風險。

#6.實施 SSO (僅限 GitHub 企業版)

GitHub Enterprise 允許組織為各種資源分派細緻的權限。此外,SAML單點登入(SSO) 可讓 GitHub 與組織的IAM 解決方案整合。

#7.限制存取允許的 IP 位址

IP 允許列表可讓組織限制對內部裝置或企業 VPN 的存取。這可防止前員工或未經授權的裝置存取 repo。

#8.嚴格管理外部貢獻者權限

外部貢獻者可能只在短時間內參與專案,當他們的角色完成後,存取權限應該移除。管理外部帳號可降低安全缺口和 GitHub 的「按使用者」定價。

#9.及時撤銷權限

使用者離開公司或專案後,可能不再需要 repo 存取權限。撤銷存取權或切換為唯讀可降低與其帳戶相關的風險。

#10.要求簽署承諾書

在 GitHub 上,只需修改用戶的 git 配置,就能改變用戶的感知身份。程式碼簽署以密碼方式簽署承諾,以確保真實性和可追蹤性。

#11.在提交前強制執行程式碼檢閱

程式碼檢閱可以識別出提交中潛在的安全弱性或惡意功能。 GitHub 可以設定所有提交的資料都是拉取請求,以便在合併前進行檢閱。

#12.新增 Security.md 檔案

security.md 檔案正式記錄儲存庫的安全政策。這可以用來分享安全需求和報告方式 脆弱性。

#13.輪換 SSH 金鑰和個人存取權限 (PAT)

GitHub 使用 SSH 金鑰和 PAT 來替代密碼進行驗證。這些資料應定期輪換,以清除可能被破解的憑證。

#14.審核上傳至 GitHub 的所有程式碼

傳統與外部程式碼庫可作為應用程式的一部分加入 GitHub 套件集。在將此程式碼納入程式碼庫之前,應該先審核其潛在的弱性。

#15.檢閱 GitHub 稽核日誌,找出可疑活動

GitHub 為組織內的 GitHub 活動提供強大的記錄功能。定期檢閱這些記錄有助於識別潛在的可疑活動和外洩帳戶。

#16.啟用脆弱依賴關係的警示

應用程式可從其相依性 (尤其是第三方和開放原始碼相依性) 繼承脆弱性。 GitHub 提供自動報告組織公共儲存庫中的弱性。

#17.在預承諾時採用自動秘密掃描

應用程式中硬體編碼的憑證,即使在私人儲存庫中,也有暴露的風險。自動秘密掃描可辨識並阻止這些憑證包含在已提交的程式碼中。

#18.清除 GitHub 歷史記錄

如果程式碼中包含敏感資料,GitHub 廣泛的版本歷史可能會造成問題。可以使用 git filter-branch 指令重寫歷史。

#19.啟用 Git 分支保護

Git 分支保護可防止對特定分支進行未經授權的修改。這可以保護這些分支,避免因意外刪除或 git squash merge 而造成程式碼和資料遺失。

#20.將敏感檔案加入 .gitignore

本機 git repo 可能需要存取某些 SSK 金鑰和存取權限,而這些金鑰和權限不該推送到 git repo。在 .gitignore 中包含這些檔案可防止它們被上傳。

#21.雇用「秘密保險庫」服務

機密儲存庫儲存應用程式需要存取的敏感資訊 - 密碼、加密金鑰等。保險庫提供比 GitHub 更強大的保護。

透過 Check Point 實現 GitHub 安全性

對於使用 GitHub 儲存庫的組織而言,保護儲存庫的安全對於保護其中可能包含的程式碼和敏感資料至關重要。

如需保持 GitHub 儲存庫安全的更多建議,請查看這份更全面的GitHub 安全最佳實務清單。Check Point 提供解決方案,在整個軟體開發生命週期 (SDLC) 中保護應用程式的安全。

進一步了解您的組織如何透過Check Point 開發人員安全強化 GitHub 的安全性。