在 GitHub Security Lab,我們花了很多時間與維護者交流。有些人覺得設定頁面太複雜,文件又太冗長。我們交談過的大多數維護者都不是被聘來擔任安全工程師的。儘管如此,完全忽略專案的安全設定,將會導致自動化與擴展性方面的機會流失,進而造成安全態勢不佳,並在你意識到之前累積漏洞,暴露你的使用者。
以下是簡短版本。六項設定,免費使用,不到半小時即可完成更新。我們已將它們整合成一個名為 Protect Your Project 的引導流程,讓你一次完成,並在下方逐一說明你會用到的工具。
1. 新增 SECURITY.md 檔案
這是清單中最輕鬆的設定,同時也是讓其他設定更順利進行的基礎。
SECURITY.md 檔案會告訴發現專案漏洞的人應該把漏洞回報給誰。如果沒有這個檔案,善意的回報者可能只能選擇公開 issue(現在成了公開的 exploit)或寄到你的個人信箱(如果他們找得到)。

你不需要寫太多內容。我們建議加入聯絡方式,例如電子郵件,讓回報漏洞的人可以直接聯絡你,而不必公開討論。接著,你可以說明哪些漏洞在回報範圍內,以及回報者聯絡你時應注意的其他事項。作為參考,我們會建議維護者參考 systemd 專案的安全政策,這份文件被我們視為完整的範例。它清楚說明了重現步驟的要求,並且不會假設你擁有 24/7 的回應團隊(當你沒有時)。借用它的結構、修改聯絡資訊,然後提交即可。
頂多十分鐘。
2. 開啟私人漏洞回報
SECURITY.md 會告訴回報者該去哪裡。私人漏洞回報(PVR)則提供他們一個私密的地方提交回報。
啟用後,研究人員可以在你的 repo 提交機密 advisory。你可以在不公開的情況下進行分類,並依照自己的時程公開。設定只需要在 Settings → Security 中勾選一個核取方塊即可。

如果你今晚只想做一件事,請先完成這前兩項。它們免費,而且是最快速向社群傳達你認真對待安全的方式。
3. 開啟祕密掃描,並啟用推送保護
這是失敗模式最令人尷尬的一項。
GitGuardian 的 State of Secrets Sprawl 2026 報告指出,2025 年在公開 GitHub 上洩露了 2,865 萬個新祕密,比前一年增加了 34%,是有紀錄以來單年增幅最大的一次。AI 輔助的 commit 洩露祕密的速率大約是基準值的兩倍。根據 IBM 2025 年資料外洩成本報告,全球資料外洩的平均成本為 444 萬美元(美國則為 1,022 萬美元)。
祕密掃描會在金鑰和權杖不小心進入你的 repo 時,於本機端攔截,防止它們被推送至你的儲存庫。無論你的 repo 是公開還是私人,一旦祕密離開你的本機開發環境,就可能被任何有權限存取你 repo 的人取得。

4. 開啟 Dependabot 與相依性審查
你的專案不只是你自己的程式碼,還包含你程式碼所引入的數十個(通常是數百個)套件。
以 WordPress 為例:搜尋已審核、嚴重等級的 WordPress 相關 advisory 會回傳一長串已知漏洞的外掛。如果你正在執行 WordPress 網站,Dependabot 可以幫助確保這些外掛不會留在你的相依性中。
Dependabot 會在你依賴的套件出現已知漏洞時發出警示。相依性審查則會在 pull request 內清楚顯示新增或升級的內容,以及其中是否有開放的 advisory。兩者結合,能將原本不透明的 package.json 差異轉變為只需兩分鐘的審查。

5. 開啟程式碼掃描
程式碼掃描會對你的 repo 執行靜態分析,並標記可能導致實際漏洞的模式,例如 SQL 注入、命令注入、危險的反序列化等常見問題。
使用 CodeQL 的程式碼掃描可以偵測不安全的 GitHub Actions 工作流程。CodeQL 是引擎,而我們建構了程式碼掃描。我們在 2019 年讓開源專案免費使用它,現在它已成為 Security and Quality 分頁中的一鍵預設設定。
這是大多數維護者會跳過的設定,因為它聽起來需要配置。其實不需要。預設設定會為你的程式語言選擇合適的查詢套件,並在每次 pull request 時執行。

6. 在預設分支上開啟分支保護
這是最簡單、最不起眼的設定,但一旦啟用,將產生最大的影響。這是關於要求在合併到 main 之前必須透過 pull request,並且至少需要一人核准。
這能防範最壞的情況:被入侵的憑證、混淆的貢獻者,或是疲憊的你直接推送至正式環境。這也讓其他五項設定真正發揮作用,因為 Dependabot 警示和程式碼掃描發現現在會阻擋合併,而不是留在你從不打開的分頁中。
結論
這六項設定無法讓你的專案變得無法被駭。沒有任何東西能做到。
它們能做的,是關閉那些容易被利用的入口——那些現在正被大量腳本針對公開 repo 進行攻擊的人所走過的門。
啟用這些設定,你的專案將比今天早上更難被攻擊。依賴它的每個專案也會如此。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.