CISA GitHub 密鑰外露未算確認入侵,但香港公司要即刻自查
Tech News

CISA GitHub 密鑰外露未算確認入侵,但香港公司要即刻自查

圖片:via TechCrunch — https://techcrunch.com/2026/05/19/us-cyber-agency-cisa-exposed-reams-of-passwords-and-cloud-keys-to-the-open-web/
TechLab 編輯部(譯)·

一個公開 repo,點樣變成雲端權限同外判管治問題

CISA GitHub 密鑰外露未算確認入侵,但香港公司要即刻自查

圖:TechCrunch.原文連結

美國網安機構 CISA 今次出事,最刺眼唔係有黑客成功入侵,而係一個更日常、更容易發生嘅錯誤:承包商員工將載有明文密碼、cloud keys、tokens 同敏感檔案嘅資料放入公開 GitHub repo。CISA 對外表示仍在調查,暫時未有跡象顯示敏感資料因事件被入侵或外洩;但事件已經足夠提醒任何有開發團隊嘅公司,公開 repo 唔只係程式碼展示窗,錯用起上嚟可以直接變成雲端後門。

呢件事同香港無直接受害證據,亦唔應該寫成美國政府政治新聞。不過香港公司、startup、freelance 開發者同 IT vendor 一樣會用 GitHub、AWS、CI/CD、Slack、Jira、外判開發同個人裝置。只要一條密鑰有權限開雲端資源、讀 log、拉 production database、改 deployment pipeline,洩漏就唔再係工程師手滑咁簡單,而係身份、權限同供應商管治同時失守。

發生嘅唔係普通 typo

TechCrunch 引述 Brian Krebs 嘅報道指,GitGuardian 研究員 Guillaume Valadon 發現一個由 CISA 承包商相關人員維護嘅公開 GitHub 環境,入面有大量明文憑證同敏感檔案。報道提到,相關憑證可用於 CISA 及其母機構美國國土安全部部分系統,種類包括 access tokens、雲端密鑰、密碼表同其他內部檔案;研究員曾測試部分 key,確認並非純粹假資料。因為相關 GitHub 帳戶未有回應提示,事件之後再經 KrebsOnSecurity 披露。

要分清楚,公開曝光唔等於已確認被惡意入侵;但公開曝光已經係事故。公開 GitHub repo 可以被搜尋、被第三方掃描、被快取、被 fork,亦可能被自動化工具喺短時間內抄走。TechCrunch 報道入面,CISA 未有講清楚有無撤銷同更換所有外露憑證;Krebs 亦引述研究員指部分雲端 key 喺通報後仍然有效一段時間。對防守者嚟講,真正嘅處理唔係刪檔案,而係即時停用、換 key、追 audit log、查有無異常使用,再檢查點解明文資料會入到 repo。

CISA 本身係負責美國民用聯邦系統網安建議嘅機構,所以尷尬位特別大。TechCrunch 亦提到,CISA 自 2025 年 1 月 20 日起未有正式局長,近年亦有人手削減同重組壓力;但呢個背景只可以解釋環境,唔可以用嚟淡化問題。無論係政府部門、銀行、零售商定細型 SaaS 公司,承包商存取公司系統時,公司仍然要為自己系統同資料保安負責。

點解 GitHub 會變成 secrets 黑洞

GitHub 官方文件寫得好直接:如果 API keys、密碼、tokens 呢類 hardcoded secrets 被 commit 入 repo,就會成為未授權存取目標。GitHub secret scanning 會掃描 repo 全部 branch 嘅 Git history,公開 repo 會免費自動運行;發現外洩後,官方建議係即時輪換受影響憑證。問題係,secret scanning 多數係補救訊號:一旦 secret 入咗 Git history,即使你再刪一個檔案,舊 commit、clone、fork、CI cache 仍可能有痕跡,所以最重要係令舊 secret 失效。

GitHub push protection 係另一層,作用係喺 push 之前擋低被偵測到嘅 secrets,避免佢哋先入 repo 再補鑊。不過工具唔係魔法。GitHub 文件亦講到,repo 層面嘅 push protection 可以有 bypass 流程,寫入權限嘅人喺某些設定下可以提出理由繞過;組織要再加 delegated bypass、audit log、alert 通知同權限分層,先至唔會變成人人都可以按一下放行。今次事件最值得警惕嘅地方,就係報道指涉事帳戶有關閉或繞過防護嘅痕跡,代表風險唔只係技術偵測,而係人同流程。

行業數字亦顯示,呢類錯誤唔罕見。GitGuardian 2026 年 State of Secrets Sprawl 報告稱,2025 年公開 GitHub commits 偵測到 28,649,024 個新 hardcoded secrets,按年升 34%。同一份報告亦將 long-lived secrets 列為主要問題之一。換句話講,真正危險嘅唔係某一次 copy and paste,而係公司多年累積出一堆唔知由邊個建立、無到期日、無 owner、無清楚權限範圍嘅機器身份。

真正問題係權限同生命週期

AWS IAM 官方最佳做法其實好清楚:人類用戶應盡量經 identity provider federation 取得臨時憑證,工作負載就用 IAM roles 等臨時憑證;長期 access keys 只應喺真係需要嘅場景使用,並要按情況更新、審查同移除。另一條底線係最小權限:一條 key 只應做到佢需要做嘅事,最好仲要加 condition,例如只准指定 IP、指定資源、指定時間或指定 service action。外露一條只可讀某個測試 bucket 嘅 key,同外露一條可改 IAM policy、開 EC2、讀 production S3 嘅 key,風險完全唔同。

所以事故 response 要由身份清單開始,而唔係由 repo 清潔開始。公司要答到幾條問題:邊啲 key 外露、仲有效定已撤銷、屬於人定機器、對應邊個 vendor 或員工、可以接觸邊啲環境、最近 30 至 90 日有無異常 API call。AWS CloudTrail、GitHub audit log、CI/CD job history、artifact registry、container registry、password manager 同 vault log 要一齊查。刪走公開檔案只係止血表面,真正止血係令舊憑證無效,再確認沒有被用嚟開新門。

外判同個人帳戶係最大灰色位

今次 TechCrunch 同 Krebs 都將事件追到承包商相關人員身上,但責任唔會因為係 contractor 就消失。香港好多 IT 項目由外判公司、freelancer、系統整合商或臨時顧問交付;合約通常寫清楚交付日、付款、SLA,反而未必逐項寫明 repo ownership、個人 GitHub 可唔可以用、公司資料可唔可以落本機、離職或完約時幾耐內關閉權限、CI/CD secrets 邊個負責輪換。呢啲就係實際事故最常穿窿嘅位置。

實務上,vendor 存取要由公司控制嘅組織帳戶開始,而唔係叫對方用私人 GitHub invite 入 production repo。所有外判帳戶要有 MFA、SSO 或 enterprise managed identity,權限按項目同環境分開,完約有 offboarding checklist,並且禁止用私人 repo 或個人雲端硬碟同步公司密碼表、.env、SSH key、Terraform state、Kubernetes config。NDA 只係法律文件,擋唔到一條已外露嘅 admin key;技術上要靠最小權限、短期憑證、監察同快速撤銷。

香港公司要由合規講到工程細節

截至原報道同後續資料,未見公開證據顯示香港機構直接受今次 CISA 事件影響。但本地風險唔需要等到有香港受害者先成立:AWS 本身有香港市場頁面,面向金融服務、startup、中小企、企業同安全合規方案;GitHub 同雲端 CI/CD 亦係跨地域開發工具。一旦外露 key 可以接觸客戶資料、員工資料、交易紀錄、support ticket 或 log,事件就會同私隱法同客戶信任直接掛鈎。

私隱公署在《個人資料私隱條例》概覽中列明,DPP4 要求資料使用者採取所有切實可行步驟,保障持有嘅個人資料免受未授權或意外查閱、處理、刪除、遺失或使用;如果委託資料處理者處理個人資料,亦要以合約或其他方法確保對方符合資料保安要求。套返 GitHub secrets 場景,即係公司唔可以一句「係 vendor 手滑」就算;如果 vendor key 可入到公司個人資料系統,公司需要證明自己有合理管治、限制權限同事故處理。

香港公司可以用以下清單做第一輪自查:

  • Repo 可見度:列出所有公司、vendor、員工個人帳戶相關 repo,確認邊啲係 public,邊啲曾經由 private 轉 public。
  • Secret scanning:開啟 GitHub secret scanning、push protection、custom patterns,並定期睇 bypass 同 alert audit log。
  • 憑證輪換:所有 AWS、GitHub Actions、database、payment、SMS、email API keys 要有 owner、到期策略同輪換紀錄。
  • 最小權限:CI/CD 用 OIDC 或短期 token,避免長期 admin key;測試、staging、production 權限要分開。
  • 外判存取:合約寫明 repo、裝置、同步工具、完約關戶、事故通報時限,同禁止明文密碼表。
  • 事故演練:試做一次 key 外露 tabletop exercise,由發現 alert 到撤銷、查 log、通知客戶同補救,計清楚需時幾耐。

呢件事最值得記住嘅唔係 CISA 失手有幾諷刺,而係連專職網安機構都會中最基本嘅 secrets hygiene 問題。工具可以掃描、可以提示、可以擋 push,但工具唔會自動定義邊個有權建立長期 key、邊個可以 bypass、vendor 完約後邊個負責輪換。對香港公司嚟講,最實際嘅起點係今日就搵出所有 secrets 住喺邊、邊啲仲有效、邊個負責、邊個可以撤銷;答唔到呢四條問題,下一次公開 repo 就可能唔只係尷尬,而係真正事故。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook