Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
雲端資料掉光光 - GCP 事件調查真實案例
Search
Funny Systems
May 06, 2021
Technology
2
1.6k
雲端資料掉光光 - GCP 事件調查真實案例
iThome CYBERSEC 臺灣資安大會 2021
https://cyber.ithome.com.tw/2021/session-page/68
Funny Systems
May 06, 2021
Tweet
Share
More Decks by Funny Systems
See All by Funny Systems
雲端 DHCP 安全問題
funnysystems
1
1k
頑固吧!GCP Cloud SQL (Why Hardening GCP Cloud SQL)
funnysystems
0
460
SMB 捲土重來 (Turning SMB Server Side Bug to Client Side)
funnysystems
0
250
跟壞鄰居想的一樣,供應鏈安全與硬體後門
funnysystems
1
720
以安全工程角度,連結實務與設計
funnysystems
0
350
FunnyPot ‐ 改造 Windows 核心,強固化、蜜罐化
funnysystems
0
690
攻擊者的視角 - 兼談匿名識別度與可追蹤性
funnysystems
1
440
黑客技術,黑科技樹 II
funnysystems
1
820
黑科技樹,黑客技術
funnysystems
1
560
Other Decks in Technology
See All in Technology
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
310
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
MLOps の現場から
asei
6
650
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
160
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
270
Wantedly での Datadog 活用事例
bgpat
1
500
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
100
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
17
13k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Being A Developer After 40
akosma
87
590k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Practical Orchestrator
shlominoach
186
10k
Designing for humans not robots
tammielis
250
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
A better future with KSS
kneath
238
17k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
On Our Way to The Moon. 雲端資料掉光光 ~GCP 事件調查真實案例~ 王立弘
(Leon) 雲端安全顧問, 法泥系統
有天,我夢到了一個案例 某個廠商「雲端資料外洩」,尋求我們的協助
1. WordPress 的機器被打掉了。 • 客戶自己也不知道,放一台 WordPress 的機器,整個 GCP 專案就淪陷了··· 2.
每幾個月就會被攻擊,明確的時間間隔。 3. 資料真的掉光光 (包含消費者個資)。 4. 友商嘗試滲透測試,依然掉資料, 明顯沒有實際的改善、幫助,解決對的問題很重要。 已知的問題
來點,案件推理 雲端 Log 推斷異常活動‧‧‧複雜啊。
推理流程 在調查之前‧‧‧ • 我們團隊都不是雲端安全專家 • 不清楚雲端運作的實際狀況
推理流程 在調查之前‧‧‧ • 我們團隊都不是雲端安全專家 • 不清楚雲端運作的實際狀況 • 但是,我老闆投入資安 20 年了
推理流程 開始調查‧‧‧ • 投入一個月時間,攻擊、觀察、分析、對策 • 釐清行為與 Log 之間的關係 • 法泥系統為了重現攻擊情境,投入大量的研究時間
• 不只是事件調查,更知道如何避免雲端的潛在漏洞 攻擊 觀察 分析 對策
推理流程 操作帳號活動紀錄 • Correlation 帳號 + IP • 驚見 日本
IP ! • 開發團隊都台灣人 • 會不會是被打掉!?
推理流程 操作帳號活動紀錄 • Correlation 帳號 + IP • 驚見 日本
IP ! • 開發團隊都台灣人 • 原來是有人出差, 才解除警訊
推理流程 操作帳號活動紀錄 • Correlation 帳號 + IP • 驚見 日本
IP ! • 開發團隊都台灣人 • 原來是有人出差, 才解除警訊 • 服務帳號 (Service Account) 居然在進行操作? • 且 IP 來自 Instance • 順著這個脈絡往下查…
推理流程 操作帳號活動紀錄 • 針對 Log 做逆向工程後, 才整理出來這個結論‧‧‧ 服務帳號在幹嘛?
推理流程 操作帳號活動紀錄 服務帳號在幹嘛? • 針對 Log 做逆向工程後, 才整理出來這個結論‧‧‧ • setMetadata
?
推理流程 操作帳號活動紀錄 服務帳號在幹嘛? • 針對 Log 做逆向工程後, 才整理出來這個結論‧‧‧ • setMetadata
? • 利用 gcloud SDK 的 SSH 嘗試移動到其他 Instance…..
推理流程 操作帳號活動紀錄 • 開發人員確定沒有操作服務帳號 • 攻擊者如何取得服務帳號? 是誰在操作? 服務帳號在幹嘛?
推理流程 操作帳號活動紀錄 • 生成「服務帳號金鑰」,驗證權限用途。 • 服務帳號金鑰是明文 JSON 檔案。 • 使用
Cloud SQL Proxy 只能使用明文 JSON 進行驗證。 • 相關專案也會使用服務帳號金鑰 • 很有可能攻擊者盯上這點,取走服務帳號金鑰 如何取得服務帳號? 服務帳號在幹嘛? 是誰在操作?
推理流程 操作帳號活動紀錄 • 服務帳號金鑰 • 我們推斷,在老早之前就被拿去濫用了。 • 可透過 gcloud SDK
登入,只需驗證一次即可使用。 • 客戶從來沒有 Renew 過,代表服務帳號金鑰依然可使用。 • 加上服務帳號可用的權限過大。 結論 服務帳號在幹嘛? 是誰在操作? 如何取得服務帳號?
雲端,真的雷 雲端平台真的方便,但很多的運作流程不公開、不描述
• SSH Key (公鑰) 在雲端到底有幾個地方可以存放? • 主機檔案系統 • Metadata 中繼資料
• 類似雲端特有的環境變數 • Project, GCE Instance, Image for GCE 都有 Metadata • 這是雲端獨有;一般 IT 環境不會有的設計 SSH Key (公鑰),真的雷
還記得嗎? • setMetadata ! SSH Key (公鑰),真的雷
Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/connect-overview#managing_database_connections • 連線 Cloud SQL 需要設定白名單
IP
Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/connect-overview#managing_database_connections • 連線 Cloud SQL 需要設定白名單
IP,居然可以 Bypass? 弱點揭露,獨家!!
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」就有風險
Cloud SQL,真的雷 • VPC 防火牆居然沒辦法限制 Cloud SQL ? • 希望機器走內網連線資料庫,但辦不到?
Cloud SQL,真的雷 • VPC 防火牆居然沒辦法限制 Cloud SQL ? • 希望機器走內網連線資料庫,但辦不到?
Cloud SQL,真的雷 Ref : https://cloud.google.com/sql/docs/mysql/private-ip?hl=zh-tw#overview • VPC 防火牆居然沒辦法限制 Cloud SQL
? • 一定需要使用「Private IP」,才可以受到 VPC 控管。
不同調,真的雷 • Web GUI, gcloud SDK 不同調 • 行為不完全相同 •
gcloud SDK 還分成 Beta, Alpha 版本 • 指令、參數、運作流程,甚至是 Audit Log 都不同 • 再次強調,對 Log 做逆向工程,真的痛苦 XD
雲端,配置上的「多種漏洞」 方便操縱各台機器,「預設配置」也很方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ)
服務帳號,方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ) • 前面提及過服務帳號的各種問題 • 權限複雜,如何限縮權限也是問題 • 最佳解法,如果沒有需求,拔掉最安全
• 真的非用不可的情況,我們強調,一個需求、用途對應一個帳號
• Cloud Build 很方便,權限還很大 • 但需要把服務帳號指派給 GCE Instance • 為了避免濫用的可能性,我們建議兩點
1. 服務帳號僅具有 Cloud Build 權限,且帳號名稱可以明確辨識用途 2. 將 Cloud Build 相關,全部移至「全新的 Project,專門執行 Cloud Build 」 服務帳號,方 (ㄨㄟˊ) 便 (ㄒㄧㄢˇ)
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
發生事件,該怎麼做緊急措施? 釐清專案的「秘密」
Renew, Renew, Renew •Renew Matters. • 明確掌握你的「秘密 (Secret Management) 」
Renew, Renew, Renew
如何預防下次入侵? 掌握好「雲端觀念」、「需求」
Backend 居然查詢 SQL Schema? 使用 gcloud SDK 連入 Cloud SQL?
釐清架構+需求+最在意的保護目標是什麼?
釐清架構+需求+最在意的保護目標是什麼? • 如何埋下、分析 Log (from GCP, Web App) • 區分正常
/ 異常的操作 • 每台機器的架構、服務、流程、需求釐清 • 針對雲端的特性,該如何守護營運安全?
釐清架構+需求+最在意的保護目標是什麼? • 如何埋下、分析 Log (from GCP, Web App) • 區分正常
/ 異常的操作 • 每台機器的架構、服務、流程、需求釐清 • 針對雲端的特性,該如何守護營運安全? • 這些內容看似空話,我們團隊與客戶花費了半年時間進行釐清、調整 • 如何讓營運機制、Infra 更加安全,就是法泥系統的專業
明文落地的服務帳號金鑰 !? • 前面提及,明文落地的服務帳號金鑰在 GCE Instance 檔案系統 • 卻又必須使用 Cloud
SQL Proxy,該怎麼避免風險?
明文落地的服務帳號金鑰 !? • 開源專案 Cloud SQL Proxy Hardening • 可用加密過的服務帳號金鑰
• 於記憶體中透明解密後,進行驗證 • 不只是個 PoC,我們的客戶也在線上使用 • https://github.com/Funny-Systems-OSS/cloudsql-proxy-hardening
明文落地的服務帳號金鑰 !? • 重新強調一次這個流程 Instance A Compute Engine Cloud SQL
Proxy Hardening 1. 讀取 2. 建立連線 無法讀取 Encrypted Credential File Cloud SQL Proxy Cloud SQL Encrypted Credential File
法泥系統の雲端安全能力 研究 服務 開發 掌握雲端未知漏洞 入侵事件調查 補強雲端元件安全性
研究 服務 開發 產品 掌握雲端未知漏洞 客戶不足的安全知識 我們為您準備 入侵事件調查 建立安全基準 調整安全性架構
補強雲端元件安全性 填補系統間的縫隙 雲端安全監控自動化 對 Log 逆向工程的雲端安全知識 轉化為規則並自動通知異常 法泥系統の雲端安全能力
Everything to the moon, Cloud and Security 王立弘 (Leon) 雲端安全顧問,
法泥系統 感謝您的聆聽, 感謝同事 Ruei,感謝老闆。
[email protected]