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
450
SMB 捲土重來 (Turning SMB Server Side Bug to Client Side)
funnysystems
0
220
跟壞鄰居想的一樣,供應鏈安全與硬體後門
funnysystems
1
700
以安全工程角度,連結實務與設計
funnysystems
0
350
FunnyPot ‐ 改造 Windows 核心,強固化、蜜罐化
funnysystems
0
660
攻擊者的視角 - 兼談匿名識別度與可追蹤性
funnysystems
1
440
黑客技術,黑科技樹 II
funnysystems
1
820
黑科技樹,黑客技術
funnysystems
1
540
Other Decks in Technology
See All in Technology
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
Azure OpenAI Service Dev Day / LLMでできる!使える!生成AIエージェント
masahiro_nishimi
3
770
簡単に始めるSnowflakeの機械学習
nayuts
1
190
サービス開発を前に進めるために 新米リードエンジニアが 取り組んだこと / Steps Taken by a Novice Lead Engineer to Advance Service Development
nologyance
0
180
累計ダウンロード数1億8000万を超えるアプリケーションプラットフォームのレガシーシステム脱却とモダン化への道
kmitsuhashi
0
120
スレットハンティングについて知っておきたいこと
hacket
0
130
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
Rails Girls Zürich Keynote
gr2m
93
13k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Unsuck your backbone
ammeep
666
57k
The Language of Interfaces
destraynor
151
23k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Writing Fast Ruby
sferik
623
60k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Fireside Chat
paigeccino
25
2.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
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]