Upgrade to Pro — share decks privately, control downloads, hide ads and more …

雲端資料掉光光 - GCP 事件調查真實案例

雲端資料掉光光 - GCP 事件調查真實案例

iThome CYBERSEC 臺灣資安大會 2021

https://cyber.ithome.com.tw/2021/session-page/68

D69e77fd50edf1a9c6d5ffcddd03dd90?s=128

Funny Systems

May 06, 2021
Tweet

Transcript

  1. On Our Way to The Moon. 雲端資料掉光光 ~GCP 事件調查真實案例~ 王立弘

    (Leon) 雲端安全顧問, 法泥系統
  2. 有天,我夢到了一個案例 某個廠商「雲端資料外洩」,尋求我們的協助

  3. 1. WordPress 的機器被打掉了。 • 客戶自己也不知道,放一台 WordPress 的機器,整個 GCP 專案就淪陷了··· 2.

    每幾個月就會被攻擊,明確的時間間隔。 3. 資料真的掉光光 (包含消費者個資)。 4. 友商嘗試滲透測試,依然掉資料, 明顯沒有實際的改善、幫助,解決對的問題很重要。 已知的問題
  4. 來點,案件推理 雲端 Log 推斷異常活動‧‧‧複雜啊。

  5. 推理流程 在調查之前‧‧‧ • 我們團隊都不是雲端安全專家 • 不清楚雲端運作的實際狀況

  6. 推理流程 在調查之前‧‧‧ • 我們團隊都不是雲端安全專家 • 不清楚雲端運作的實際狀況 • 但是,我老闆投入資安 20 年了

  7. 推理流程 開始調查‧‧‧ • 投入一個月時間,攻擊、觀察、分析、對策 • 釐清行為與 Log 之間的關係 • 法泥系統為了重現攻擊情境,投入大量的研究時間

    • 不只是事件調查,更知道如何避免雲端的潛在漏洞 攻擊 觀察 分析 對策
  8. 推理流程 操作帳號活動紀錄 • Correlation 帳號 + IP • 驚見 日本

    IP ! • 開發團隊都台灣人 • 會不會是被打掉!?
  9. 推理流程 操作帳號活動紀錄 • Correlation 帳號 + IP • 驚見 日本

    IP ! • 開發團隊都台灣人 • 原來是有人出差, 才解除警訊
  10. 推理流程 操作帳號活動紀錄 • Correlation 帳號 + IP • 驚見 日本

    IP ! • 開發團隊都台灣人 • 原來是有人出差, 才解除警訊 • 服務帳號 (Service Account) 居然在進行操作? • 且 IP 來自 Instance • 順著這個脈絡往下查…
  11. 推理流程 操作帳號活動紀錄 • 針對 Log 做逆向工程後, 才整理出來這個結論‧‧‧ 服務帳號在幹嘛?

  12. 推理流程 操作帳號活動紀錄 服務帳號在幹嘛? • 針對 Log 做逆向工程後, 才整理出來這個結論‧‧‧ • setMetadata

    ?
  13. 推理流程 操作帳號活動紀錄 服務帳號在幹嘛? • 針對 Log 做逆向工程後, 才整理出來這個結論‧‧‧ • setMetadata

    ? • 利用 gcloud SDK 的 SSH 嘗試移動到其他 Instance…..
  14. 推理流程 操作帳號活動紀錄 • 開發人員確定沒有操作服務帳號 • 攻擊者如何取得服務帳號? 是誰在操作? 服務帳號在幹嘛?

  15. 推理流程 操作帳號活動紀錄 • 生成「服務帳號金鑰」,驗證權限用途。 • 服務帳號金鑰是明文 JSON 檔案。 • 使用

    Cloud SQL Proxy 只能使用明文 JSON 進行驗證。 • 相關專案也會使用服務帳號金鑰 • 很有可能攻擊者盯上這點,取走服務帳號金鑰 如何取得服務帳號? 服務帳號在幹嘛? 是誰在操作?
  16. 推理流程 操作帳號活動紀錄 • 服務帳號金鑰 • 我們推斷,在老早之前就被拿去濫用了。 • 可透過 gcloud SDK

    登入,只需驗證一次即可使用。 • 客戶從來沒有 Renew 過,代表服務帳號金鑰依然可使用。 • 加上服務帳號可用的權限過大。 結論 服務帳號在幹嘛? 是誰在操作? 如何取得服務帳號?
  17. 雲端,真的雷 雲端平台真的方便,但很多的運作流程不公開、不描述

  18. • SSH Key (公鑰) 在雲端到底有幾個地方可以存放? • 主機檔案系統 • Metadata 中繼資料

    • 類似雲端特有的環境變數 • Project, GCE Instance, Image for GCE 都有 Metadata • 這是雲端獨有;一般 IT 環境不會有的設計 SSH Key (公鑰),真的雷
  19. 還記得嗎? • setMetadata ! SSH Key (公鑰),真的雷

  20. Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/connect-overview#managing_database_connections • 連線 Cloud SQL 需要設定白名單

    IP
  21. Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/connect-overview#managing_database_connections • 連線 Cloud SQL 需要設定白名單

    IP,居然可以 Bypass? 弱點揭露,獨家!!
  22. Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/connect-overview#managing_database_connections • 連線 Cloud SQL 需要設定白名單

    IP,居然可以 Bypass? 弱點揭露,獨家!! • 法泥系統團隊挖掘「官方文件不會告訴你的事」 • 又是服務帳號搞的鬼,使用服務帳號 + gcloud SDK 連線即可 Bypass • 只要 Cloud SQL 具有「Public IP」就有風險
  23. Cloud SQL,真的雷 • VPC 防火牆居然沒辦法限制 Cloud SQL ? • 希望機器走內網連線資料庫,但辦不到?

  24. Cloud SQL,真的雷 • VPC 防火牆居然沒辦法限制 Cloud SQL ? • 希望機器走內網連線資料庫,但辦不到?

  25. Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/private-ip?hl=zh-tw#overview • VPC 防火牆居然沒辦法限制 Cloud SQL

    ? • 一定需要使用「Private IP」,才可以受到 VPC 控管。
  26. 不同調,真的雷 • Web GUI, gcloud SDK 不同調 • 行為不完全相同 •

    gcloud SDK 還分成 Beta, Alpha 版本 • 指令、參數、運作流程,甚至是 Audit Log 都不同 • 再次強調,對 Log 做逆向工程,真的痛苦 XD
  27. 雲端,配置上的「多種漏洞」 方便操縱各台機器,「預設配置」也很方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ)

  28. 服務帳號,方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ) • 前面提及過服務帳號的各種問題 • 權限複雜,如何限縮權限也是問題 • 最佳解法,如果沒有需求,拔掉最安全

    • 真的非用不可的情況,我們強調,一個需求、用途對應一個帳號
  29. • Cloud Build 很方便,權限還很大 • 但需要把服務帳號指派給 GCE Instance • 為了避免濫用的可能性,我們建議兩點

    1. 服務帳號僅具有 Cloud Build 權限,且帳號名稱可以明確辨識用途 2. 將 Cloud Build 相關,全部移至「全新的 Project,專門執行 Cloud Build 」 服務帳號,方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ)
  30. Cloud SQL,方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ) Ref : https://cloud.google.com/sql/docs/mysql/project-access-control#roles • Cloud

    SQL 也存在服務帳號問題 • 依照需求,對應服務帳號「可使用的權限」 • 客戶使用 Cloud SQL Proxy, 用 roles/cloudsql.client 就好 • 服務帳號應命名:sql-service 或 sql-agent
  31. 發生事件,該怎麼做緊急措施? 釐清專案的「秘密」

  32. Renew, Renew, Renew •Renew Matters. • 明確掌握你的「秘密 (Secret Management) 」

  33. Renew, Renew, Renew

  34. 如何預防下次入侵? 掌握好「雲端觀念」、「需求」

  35. Backend 居然查詢 SQL Schema? 使用 gcloud SDK 連入 Cloud SQL?

    釐清架構+需求+最在意的保護目標是什麼?
  36. 釐清架構+需求+最在意的保護目標是什麼? • 如何埋下、分析 Log (from GCP, Web App) • 區分正常

    / 異常的操作 • 每台機器的架構、服務、流程、需求釐清 • 針對雲端的特性,該如何守護營運安全?
  37. 釐清架構+需求+最在意的保護目標是什麼? • 如何埋下、分析 Log (from GCP, Web App) • 區分正常

    / 異常的操作 • 每台機器的架構、服務、流程、需求釐清 • 針對雲端的特性,該如何守護營運安全? • 這些內容看似空話,我們團隊與客戶花費了半年時間進行釐清、調整 • 如何讓營運機制、Infra 更加安全,就是法泥系統的專業
  38. 明文落地的服務帳號金鑰 !? • 前面提及,明文落地的服務帳號金鑰在 GCE Instance 檔案系統 • 卻又必須使用 Cloud

    SQL Proxy,該怎麼避免風險?
  39. 明文落地的服務帳號金鑰 !? • 開源專案 Cloud SQL Proxy Hardening • 可用加密過的服務帳號金鑰

    • 於記憶體中透明解密後,進行驗證 • 不只是個 PoC,我們的客戶也在線上使用 • https://github.com/Funny-Systems-OSS/cloudsql-proxy-hardening
  40. 明文落地的服務帳號金鑰 !? • 重新強調一次這個流程 Instance A Compute Engine Cloud SQL

    Proxy Hardening 1. 讀取 2. 建立連線 無法讀取 Encrypted Credential File Cloud SQL Proxy Cloud SQL Encrypted Credential File
  41. 法泥系統の雲端安全能力 研究 服務 開發 掌握雲端未知漏洞 入侵事件調查 補強雲端元件安全性

  42. 研究 服務 開發 產品 掌握雲端未知漏洞 客戶不足的安全知識 我們為您準備 入侵事件調查 建立安全基準 調整安全性架構

    補強雲端元件安全性 填補系統間的縫隙 雲端安全監控自動化 對 Log 逆向工程的雲端安全知識 轉化為規則並自動通知異常 法泥系統の雲端安全能力
  43. Everything to the moon, Cloud and Security 王立弘 (Leon) 雲端安全顧問,

    法泥系統 感謝您的聆聽, 感謝同事 Ruei,感謝老闆。 gcp@funny.systems