定義 GHAS 和其整體功能的重要性
在本單元中,我們會介紹:
- 祕密掃描
- 程式碼掃描
- Dependabot
- 建立具有關鍵功能的更安全的軟體開發生命週期
讓我們先快速回顧 GHAS。
什麼是 GHAS?
GitHub Advanced Security (或 GHAS) 是一種應用程式安全解決方案,可協助開發人員保護其程式碼並管理風險,而不會中斷其工作流程。
GHAS 包含現在作為兩個不同產品提供的功能:GitHub Secret Protection 和 GitHub Code Security。 這種分離可讓組織啟用最符合其安全性優先順序和授權的功能。
進階安全性會直接內嵌到您的工作流程中,有助於防止弱點和認證外洩,而不會減緩開發速度。 GitHub Advanced Security 就像是讓您的個人安全性顧問根據來自世界各地安全性專家的見解來檢閱每一行程式碼。
確保應用程式和軟體供應鏈的安全性從未如此重要。 Gartner 預測,到 2025 年,全球 45% 的組織將受到供應鏈攻擊的影響。 根據 2022 年 Verizon 資料外洩調查報告,應用程式仍然是首要的攻擊媒介,也是所有資料外洩中,40% 以上事件的核心。
將安全性納入您的軟體開發流程似乎令人怯步,因此讓我們了解 GHAS 的 3 個重要功能以及其可如何協助您的小組掌握最新的安全性威脅:秘密掃描、程式碼掃描和 Dependabot。
祕密掃描
秘密掃描是一項重要的 GitHub 安全功能,可識別並協助防止原始程式碼中的敏感資訊 (例如 API 金鑰和權杖) 意外暴露。 秘密掃描適用於所有公用存放庫,也可以為具有 GitHub Advanced Security (GHAS) 授權的私有存放庫啟用。
這有助於防止未經授權的存取並保護機密資料。 秘密掃描會透過搜尋可顯示敏感性資訊的預先定義模式和簽章來進行,以確保及時解決潛在的安全性風險。 根據預設,秘密掃描會尋找 GitHub 合作夥伴所提供的高度準確的模式。 不過,您可以為其他使用案例建立自訂模式。
秘密掃描包括:
- 推送保護會在認可時掃描程式碼,並在秘密存在時封鎖推送,以主動防止秘密外洩。
- 無需離開 GitHub 即可輕鬆檢視警示並進行補救。
在安全的軟體開發生命週期中,秘密掃描會偵測暴露的機密,使團隊能夠儘早撤銷或輪換它們,通常是在它們被用於惡意目的之前,從而降低資料外洩的風險並在整個開發過程中保持機密性。
接下來,讓我們來檢閱程式碼掃描。
程式碼掃描
程式碼掃描是 GHAS 不可或缺的一項功能,可分析原始程式碼是否有安全性弱點和編碼錯誤。 其會採用靜態分析技術來識別潛在的問題,例如 SQL 插入、跨網站指令碼和緩衝區溢位。 藉由直接在提取要求工作流程內提供自動化意見反應,程式碼掃描可讓開發人員在開發流程中提早解決弱點。
程式代碼掃描可改善程式代碼品質,並藉由識別並解決開發生命週期早期的問題,協助將安全性威脅降到最低。 由於掃描規則會持續更新,因此程式代碼掃描也可以偵測生產環境中可能已存在的弱點。
Dependabot
Dependabot 是自動化的相依性管理工具,負責將專案相依性保持在最新狀態。 其會定期檢查專案中所使用的程式庫和架構是否更新,並自動開啟提取要求,以將相依性更新為其最新、安全的版本。
Dependabot 包括:
- 已知漏洞的警示
- 易受攻擊套件的安全性更新
- 版本更新以保持依賴關係最新
Dependabot 與相依性圖形密切合作,以判斷正在使用哪些相依性,並將其與 GitHub 諮詢資料庫進行交互參考,以偵測弱點。
透過 GitHub Advanced Security,Dependabot 的功能會透過相依性檢閱得到增強,讓您能夠預覽提取要求中引入的任何易受攻擊的套件,並防止在合併之前新增不安全的相依性。
啟用秘密掃描、程式碼掃描和 Dependabot 警示的位置
若要啟用存放庫層級的任何警示,請先瀏覽至存放庫的安全性索引標籤。
接下來,請在安全性概觀中啟用您的警示。
既然我們已檢閱並啟用了所有 3 個 GHAS 的整體功能,讓我們來討論如何實作所有這些功能,以建立更安全的軟體開發生命週期。
使用所有 3 項功能建立更安全的軟體開發生命週期
秘密掃描、程式碼掃描和 Dependabot 可共同協助建立更安全的軟體開發生命週期。 秘密掃描可防止敏感性資訊意外曝光。 程式碼掃描可識別並解決程式碼基底中的安全性弱點。 而且 Dependabot 會自動執行相依性管理。
藉由整合這些功能,開發小組可以在開發生命週期的每個階段主動解決安全性顧慮。 此主動式方法可將安全性事件到達生產環境的可能性降到最低,進而產生更具彈性、安全且有效率的軟體開發流程。
這些整體功能的綜合影響可確保安全性並非獨立的考量因素,而是整個開發工作流程不可或缺的一部分。
開放原始碼專案的安全性功能
GitHub 上的公用專案可受益於特定的預設安全性功能,例如秘密掃描和相依性關係圖。 GitHub 會自動掃描公用存放庫是否有合作夥伴模式,並向存放庫管理員提供警示。 公用專案也可以選擇在沒有 GitHub Advanced Security 授權的情況下啟用程式碼掃描、Dependabot 和相依性檢閱。
不過,這些是基礎功能,可能無法提供較複雜的專案或企業環境所需的保護深度。
當 GitHub Advanced Security (GHAS) 與 GitHub Enterprise Cloud (GHEC) 搭配使用時,完整的安全性功能組合也可供內部和私人專案使用:
- 程式碼掃描 - 搜尋程式碼中潛在的安全性弱點和編碼錯誤。
- 秘密掃描 - 偵測已簽入私人存放庫的秘密,例如金鑰和權杖。 GitHub.com 上的公用存放庫可免費為使用者和合作夥伴提供秘密掃描警示。 如果已啟用推送保護,將秘密推送至您的存放庫時,該功能也會偵測秘密。
- 相依性檢閱:在合併提取要求之前,顯示對相依性進行變更所帶來的完整影響,並查看任何易受攻擊之版本的詳細資料。
下表會摘要說明公用和私人存放庫上 GitHub Advanced Security 功能的可用性。
| 特徵 / 功能 | 公用存放庫 | 沒有進階安全性的私人存放庫 | 具有進階安全性的私人存放庫 |
|---|---|---|---|
| 程式碼掃描 | ✅ | ❌ | ✅ |
| 祕密掃描 | ✅ | ❌ | ✅ |
| 依賴性審查 | ✅ | ❌ | ✅ |