iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
DevOps

不僅是程式碼代管平台 - Github 能做些什麼?系列 第 20

GitHub Security - 基本安全相關功能介紹

如果讀者有些 CI/CD 工具使用經驗,你可能會發現 GitHub 某些功能與市面上多數的產品不同。舉例來說,我們在 GitHub DevOps 流程參考實現 文章所提到的專案管理,並沒有強調軟體開發流程(如:Agile、CMMI...等),主因為 GitHub 發展流程起源於 社群(Community),以開源協作為主軸提供功能。也因為如此,安全相關功能很早就納入為主要功能,而並非讓使用者以 選擇性方式 加入安全相關功能。 GitHub 所提供的基本安全功能如下:


1. Security Policy

以類似 GitHub README.md 方式建立 SECURITY.md,讓 Repo Owner 提供一個聯繫管道讓其他人秘密回報安全漏洞,並告知其他使用者目前那些版本有安全支援。一般來說,訪客進入 Repo 會直接看見 README 檔案,建議在 README 內加入 SECURITY.md 連結,讓所有人可以找到你的 Security Policy。

你可以開啟 Repo > Secuirty,左邊選單可以找到 Security Policy > 開始建立 Security Policy。
https://ithelp.ithome.com.tw/upload/images/20210920/20091494Mvl2HuJjNk.png

https://ithelp.ithome.com.tw/upload/images/20210920/20091494PeFr56X5MY.png

若尚未建立,你可以直接在 overview 內直接點選 set up a security policy 按鈕開始建立 Security Policy
https://ithelp.ithome.com.tw/upload/images/20210920/20091494ptjggOyRTw.png

你可以看見基本的範本,包含支援安全版本的圖表 與 回報漏洞的連絡資訊
https://ithelp.ithome.com.tw/upload/images/20210920/200914949MzZoQO8lK.png

點選右上角 Commit,可以檢視畫面狀態
https://ithelp.ithome.com.tw/upload/images/20210920/20091494uf4Od4wYbu.png


2. Security advisories

在 Repo 的程式碼中提供私有討論與修復安全漏洞。你可以在修復後發佈安全公告,讓社群了解此安全漏洞並鼓勵使用者進行更新。此功能與 Security Policy 相輔相成,讓你的程式碼有一個良好的安全生態。

你可以開啟 Repo > Secuirty,左邊選單可以找到 Security advisories > 點選右上角 New draft security advisory 按鈕
https://ithelp.ithome.com.tw/upload/images/20210920/20091494USkRl8SSMY.png

依序輸入漏洞討論相關資訊,即可以建立
https://ithelp.ithome.com.tw/upload/images/20210920/20091494kGUuOpuygZ.png

你也可以建立暫時私有的 repo 來修復漏洞
https://ithelp.ithome.com.tw/upload/images/20210920/20091494k7FLYGlXkm.png

若修復完成,也能選擇發佈相關資訊,建議使用者更新
https://ithelp.ithome.com.tw/upload/images/20210920/2009149470KkTVWgYq.png


3. Dependabot alerts and security updates

Dependabot 會檢查你 Repo 內相依的套件,並且對於這些相依套件提供已知安全性警告,甚至自動建立 Pull Request 來替換這些相依內容。

你可以在 Repo > Settings > security and analysis features 內找到 Dependabot alerts 與security updates 設定並啟用他
https://ithelp.ithome.com.tw/upload/images/20210920/2009149411XjK181hx.png

當有弱點出現時,Repo 畫面上會出現警訊
https://ithelp.ithome.com.tw/upload/images/20210920/20091494Ui3zP9ykBN.png

可以檢視詳細訊息,盡快更新以避免漏洞產生
https://ithelp.ithome.com.tw/upload/images/20210920/20091494gG1TyLQY6Q.png


4. Dependency graph

Dependency graph 可以讓 Repo Owner 檢視儲存庫內的生態系,確認 Repo 相依那些 Package,也能檢視那些 Repo 與 Package 相依於你的 Repo。這個功能在 Repo > Insight > Dependency graph
https://ithelp.ithome.com.tw/upload/images/20210920/20091494FfBifrk2Xc.png


閱讀完本篇文章,你應該對於 GitHub 所提供的安全相關功能有一定程度的了解。讀者應該不難發現:幾乎很少有管理工具提供這種像是 Security Policy 與 Security advisories 這類型回報/修復漏洞功能。透過這些良好的回報/修復機制,您可以透過社群的力量建立良好的安全維護生態系,進而大幅確保自身 Repo 的安全。

若喜歡我的文章,歡迎點 like, 分享與訂閱。


參考資料

https://docs.github.com/en/code-security/getting-started/github-security-features


上一篇
GitHub Action Automation - 自動化你的管理程序與使用第三方 Action
下一篇
GitHub Advanced Security - 程式碼掃描 (Code Scanning)
系列文
不僅是程式碼代管平台 - Github 能做些什麼?30

尚未有邦友留言

立即登入留言