慢霧:Solana 公鏈大規模盜幣事件的分析(續)
背景概述
2022 年 8 月 3 日,Solana 公鏈上發生大規模盜幣事件,大量使用者在不知情的情況下被轉移 SOL 和 SPL 代幣。慢霧安全團隊第一時間介入分析,並在 Slope 團隊的邀請下對 Slope 錢包應用進行分析,分析表明:Slope 錢包在 2022 年 6 月 24 日及之後釋出的版本存在向第三方應用監控服務傳送私鑰或助記詞資訊的現象。
但從對 Slope 錢包應用進行調查到現在,無法明確證明此次事件的根源就是 Slope 錢包的問題,於是慢霧安全團隊開始對 Slope 的伺服器進行分析取證。
分析過程
事件發生之後各方的關注點主要聚焦在調查本次事件的根源以及資金的追蹤和挽救的可能性。 於是慢霧安全團隊制定相關的計劃,開始從鏈下和鏈上兩個部分著手調查和分析。
在事件根源調查這個方向上,慢霧安全團隊重點專注在對 Slope 伺服器的分析取證。這裡面有大量且複雜的工作需要推進,也需要有更多明確的證據來解釋這次的大規模盜幣事件的根源。
資金追蹤和挽救的可能性這部分工作,慢霧安全團隊主要依靠 MistTrack(https://misttrack.io/)的追蹤分析能力、標籤資料能力並結合情報能力,盡最大的努力識別和追蹤黑客的鏈上行為。並且也和 Slope 團隊溝通交流挽救的可能性,Slope 團隊也在嘗試與黑客溝通希望通過釋出漏洞賞金的方式,鼓勵黑客歸還資產,共同維護 Solana 這個生態的健康發展。
本篇僅向社群使用者同步階段性的調查情況 ,還有很多的分析工作正在進行,並且不斷推進。各方人員不僅是慢霧,還有其他第三方安全團隊,以及一些特殊力量也在努力幫忙調查中,希望這次事件最終能夠有相對明確的結論。
注:本文所提到的 Sentry 服務指的是 Slope 團隊私有化部署的 Sentry 服務,並非使用 Sentry 官方提供的介面和服務。
一些疑問點
在同步分析的情況之前,我們先來回答上篇文章的分析過程中的一些疑問點:
1. Sentry 的服務收集使用者錢包助記詞的行為是否屬於普遍的安全問題?
答:Sentry 主要用於收集相關應用服務在執行狀態時出現的異常或者錯誤日誌資訊,在配置錯誤的情況下,可能會收集到預期之外的資料,如:私鑰或助記詞等資訊,因此並非普遍存在的安全問題。開發人員在使用第三方應用監控服務切記不能在生成環境中開啟 Debug 模式。
2. Phantom 使用了 Sentry,那麼 Phantom 錢包會受到影響嗎?
答:雖然 Phantom 使用了第三方應用監控服務但是慢霧安全團隊通過對 Phantom 錢包歷史各版本的監測,並未明顯發現 Sentry 上傳私鑰/助記詞的行為。
3. Solana Foundation 提供的調研資料顯示本次事件近 60% 被盜使用者使用 Phantom 錢包,30% 左右地址使用 Slope 錢包,其餘使用者使用 Trust Wallet 等,那這 60% 被盜使用者被黑的原因是什麼呢?
答:經過比對發現伺服器上的私鑰和助記詞派生出來的地址(包含 HD 地址)與受害者地址有交集的有 5 個 ETH 地址和 1388 個 Solana 地址。目前的調查情況看,還沒有明確的證據能夠解釋另外部分使用者錢包被黑的原因。
4. Sentry 作為一個使用非常廣泛的服務,會不會是 Sentry 官方遭遇了入侵?從而導致了定向入侵加密貨幣生態的攻擊?
答:目前暫無證據表明 Sentry 官方遭到了入侵和攻擊,Slope 錢包使用的 Sentry 是內部搭建的服務,因此和官方服務被入侵無直接關係。
鏈下分析部分
鏈下部分慢霧安全團隊主要聚焦排查鏈下伺服器、相關後臺等被入侵的可能性,工作的重點是對 Slope 伺服器進行外圍伺服器資產風險排查,伺服器的入侵痕跡排查,Sentry(PostgreSQL)資料庫分析,伺服器映象分析,DNS 劫持的可能性分析。如下是排查和分析的情況:
1. 外圍伺服器資產風險排查
Slope 團隊知道 Slope 錢包回傳助記詞和私鑰資訊之後,第一時間就關停了 Slope 錢包相關的服務。因此 Slope 錢包相關的服務已經不能通過直接訪問,慢霧安全團隊依靠網際網路搜尋引擎等工具對 Slope 外圍伺服器資產進行資訊收集,包括 slope.finance 域名下的子域名和 IP 等進行模擬滲透測試分析,排查從外圍可能存在的入侵風險點,通過分析和滲透測試並未發現存在可被直接入侵的風險點。
2. 伺服器的入侵痕跡排查
主要對第三方應用監控伺服器進行內部排查,包括伺服器登入日誌,系統歷史操作命令,可疑程序,可疑網路連線,可疑係統計劃任務,資料刪除和獲取操作等,伺服器內部還有 5 個 Docker 服務也進行同樣的入侵痕跡排查。排查發現幾個可疑登入 IP 為:113.*.*.*,114.*.*.*,153.*.*.*,這些 IP 是在 06.24 之前訪問過 第三方應用監控服務的後臺。雖然這發生在回傳私鑰和助記詞的時間(06.24) 之前,但是仍然存在可疑。
3. PostgreSQL 資料庫分析
由於助記詞和私鑰被 Slope 錢包的第三方應用監控服務回傳到伺服器上,所以慢霧安全團隊也對伺服器中可能存在私鑰或助記詞的位置進行了分析,分析發現私鑰或助記詞較大可能會留存在如下位置:
-
Sentry 的資料庫表中
-
PostgreSQL 的資料庫日誌中
-
映象磁碟已刪除的資料中
-
Docker 執行時的資料檔案中
在分析過程中發現第三方應用監控服務採用了 PostgreSQL 資料庫,其中 nodestore_node 表的 data 欄位裡發現存在第三方應用監控服務採集的私鑰和助記詞資料。 經過分析調查得到以下資訊:
-
私鑰和助記詞資料內容在 nodestore_node 表的資料庫記錄時間為 2022.7.28 - 2022.8.5。
-
慢霧安全團隊通過對資料解密和分析,發現私鑰或助記詞資料內容中記錄的最早是 2022.6.29 上傳的資料,也就是說 Sentry 在 6 月 29 號採集的資料延遲了一個月的時間才在 2022.7.28 開始陸續被儲存到了 PostgreSQL 資料庫的 nodestore_node 表,但是這部分延時的資料佔較少,大部分的私鑰和助記詞采集的時間是集中在 2022.07.28 - 2022.08.05。
-
進一步排查資料庫操作日誌,發現在 7.28 之前 nodestore_node 表存在 SQL 語句執行失敗的記錄,原因是鍵值衝突, 經過深入排查和溝通發現 是由於 Kafka 服務 出錯導致沒有進行資料 寫入 。
-
由於部分資料在日誌記錄和資料恢復的時候暫時不能恢復出完整的資料,需要進一步對資料進行修復,因此優先解密可以被完整恢復的資料,解密出來的地址數量為 189 個 ETH 地址和 4914 個 Solana 地址, 有 5073 組助記詞,而鏈上黑客事件的錢包地址有 42 個 ETH 地址和 9231 個 Solana 地址,經過比對發現伺服器上的私鑰和助記詞派生出來的地址 ( 包含 HD 地址 ) 與受害者有交集的地址有 5 個 ETH 地址和 1388 個 Solana 地址。 ( 這裡面不包含少數需要進行修復後才能解密的資料 )
-
在資料庫操作日誌中還發現另一個內部測試的應用 com.slope.game 在 3 月份也存在私鑰和助記詞的上報資料,該內部測試應用並未對外發布。
4. 伺服器映象分析
慢霧安全團隊對 Sentry 的雲伺服器的映象進行分析,並對伺服器磁碟已刪除的資料進行恢復,並在恢復後的資料中發現了私鑰和助記詞資訊。
5. DNS 劫持的可能性分析
慢霧安全團隊通過各方的能力以及全球情報資源,包括對 DNS 解析資料查詢和分析,目前暫無明確證據能夠證明域名 o7e.slope.finance 曾經發生過 DNS 劫持事件。
鏈下調查和分析的階段性結論:
就現階段的調查和分析的情況看,未發現外圍伺服器可以直接被入侵的風險點;未發現伺服器被入侵的痕跡但是對可疑 IP(113.*.*.*,114.*.*.*,153.*.*.*)仍需要繼續調查;DNS 劫持的可能性較小;已在資料庫表、資料庫日誌檔案、磁碟已刪除檔案恢復後的資料中發現了私鑰和助記詞資訊。
鏈上分析部分
鏈上部分主要聚焦於風險資金評估、被盜資金轉移和黑客痕跡分析,重點梳理分析了以下幾點內容:
1. 風險資金評估
根據 Solana 鏈、ETH 鏈、BSC 鏈的被盜資金情況,慢霧安全團隊將風險資金分為以下兩類:
-
風險資金:黑客具有地址許可權的資金。
-
疑似風險資金:黑客可能具有地址許可權的資金。
根據以下地址列表(主要是 Solana 鏈、ETH 鏈)進行風險資金評估:
-
被盜地址助記詞對映到其他鏈的地址
-
被盜地址助記詞通過派生路徑推匯出來的地址
排除風險資金地址列表,根據以下地址列表(主要是 Solana 鏈、ETH 鏈)進行疑似風險資金評估:
-
Slope 伺服器上存在助記詞/私鑰記錄的地址
-
Slope 伺服器上存在的助記詞對映到其他鏈的地址
-
Slope 伺服器上存在的助記詞通過派生路徑推匯出來的地址
未發現大額可轉移風險的資金和可能存在風險的資金。
2. 被盜資金統計
為 了避免一些垃圾幣對被盜資金的影響,我們在統計過程中只統計主流幣種的被盜資金 :
-
Solana 鏈:SOL、USDC、USDT、BTC 和 ETH。
-
ETH 鏈:ETH、USDT、USDC 和 PAXG。
被盜幣種價值取被盜當日(UTC 時間 8 月 3 日 00:00 AM)價格。
1 SOL = $38.54
1 BTC = $22,846.51
1ETH = $1,618.87
1 PAXG = $1,759.64
1 BNB = $298.36
對 Slope 伺服器上的已解密的私鑰和助記詞對應派生出來的地址(包含 HD 地址)與鏈上統計的受害者地址進行分析,有交集的地址有 5 個 ETH 地址和 1388 個 Solana 地址,對這些存在交集的地址做被盜資金統計如下,此部分被盜資金佔到總被盜資金的 31.42%。
3. 資金轉移分析
Solana 鏈:
資金截止發文時間未進一步轉移。
ETH 鏈:
-
21,801 USDT 轉移到個人錢包地址(根據鏈上行為特徵以及 MistTrack 的標籤能力,該地址疑似 OTC 交易地址)。慢霧安全團隊正在與各方溝通配合努力追查黑客的身份。
-
剩餘大部分資金兌換為 ETH 後轉移到 Tornado.Cash。
BSC 鏈:
資金截止發文時間未進一步轉移。
4. 黑客鏈上時間線分析
根據黑客鏈上行為梳理出時間線如下圖 :
5. 黑客痕跡分析
黑客地址列表如下:
疑似黑客地址列表如下:
第一筆轉入
Solana 鏈黑客錢包 1、2、3 和 4 的鏈上第一筆轉入交易都是來自 Solana 鏈疑似黑客錢包的 0.1 SOL 的轉賬。根據對鏈上痕跡的分析,評估 Solana 鏈疑似黑客錢包可能是黑客地址,也存在更大可能是受害者地址。
黑客洗錢過程中使用工具
-
TransitSwap
-
Uniswap
-
MetaMask Swap
黑客洗錢變現方式
-
轉移到疑似 OTC 個人錢包地址(上文提到)。
-
轉移到 Tornado.Cash。
黑客地址與交易所/平臺的關聯
直接關聯:
-
TRON 鏈,黑客 8 月 5 日存款 USDT 到 Binance
存款地址:TE4bkS2PYqWxijgh5eqEz9A5jLn7HcS6fn
存款交易:b6615bf10b2e619edc9315a08f89732664adc9d385c980f77caa6e82872fe376
-
TRON 鏈,黑客 8 月 5 日從 Binance 提款 TRX
提款 交易: 0e012643a7db1b8c5d1f27447b16e313d4b3f89 efaa22b3661188fe399cd2d0e
-
ETH 鏈,黑客 8 月 5 日從 Binance 提款 ETH
提款交易:0xd035e009173e968d8f72de783f02655009d6f85ef906121e5b99b496a10283dd
-
ETH 鏈,黑客 8 月 8 日從 Binance 提款 USDC
提款交易:0xff60f24f8ebd874a1e5da8eae44583af554af9a109a9bd7420da048f12c83cdc
-
ETH 鏈,黑客 8 月 10 日從 Binance 提款 USDC
提款交易:0xc861c40c0e53f7e28a6f78ec9584bfb7722cec51843ddf714b9c10fc0f311806
-
TRON 鏈,黑客 8 月 10 日從 Binance 提款 USDT
提款交易:10c4186e4d95fb2e4a1a31a18f750a39c0f803d7f5768108d6f219d3c2a02d26
間接關聯:
-
Solana 鏈疑似黑客錢包 1 月 8 日從 Binance 提款 SOL
提款交易:668jpJec7hiiuzGDzj4VQKSsMWpSnbzt7BLMGWQmrGvHVQQbNGc3i1g8dCj2F5EAxFT8oDG5xWPAeQUMEMBTjhZs
-
Solana 鏈疑似黑客錢包存在與 Solrazr IDO program 互動的鏈上痕跡
交易:2LxLhL7oAiTyHGrAXCZEJyazQQLM7veaKvqUZL6iPkonL4wPLHcwV66MFX3ERyWvJtdd2wFdKfgKUuT1oAv2XepK
-
疑似 OTC 個人錢包地址(上文提到)與 Binance 、Kucoin 和 OKX 多個交易所存在存款和提款關係
疑似 OTC 個人錢包地址的情報關聯
根據慢霧獲取到的相關情報,疑似 OTC 個人錢包地址(TGBrAiVArhs5Cqp2CGMYUpSmkseznv1Ng7)與國內多個案件洗錢有關,其中包括電話詐騙案、USDT 被盜案和 TRC20 被盜案等。
附 -鏈上分析資料來源
-
黑客 Solana 鏈交易記錄彙總表(https://docs.google.com/spreadsheets/d/1Bq5FCEjEcRURHl9GFW_2oqKSNxUN2ppDvB-geP9g8A4/edit?usp=sharing)
-
Sentry 回傳問題導致可能暴露的 Slope 地址被盜交易表(https://docs.google.com/spreadsheets/d/1RY5zck3KnFvNLs_vbhKGe61BA5k7ecYz94L5MXRixbg/edit#gid=0)
往期回顧
慢霧導航
慢霧科技官網
https://www.slowmist.com/
慢霧區官網
https://slowmist.io/
慢霧 GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
知識星球
https://t.zsxq.com/Q3zNvvF
- Unicode 視覺欺騙攻擊深度解析
- 揭祕以太坊 Vanity 生成器 Profanity 私鑰破解漏洞
- 慢霧解讀 | 區塊鏈分叉帶來的安全挑戰
- 暗夜小偷:Redline Stealer 木馬盜幣分析
- 引介|EVM 深入探討-Part 1
- 報告解讀之 Ronin Network 安全事件及反洗錢分析
- 慢霧:Solana 公鏈大規模盜幣事件的分析(續)
- 報告解讀之 2022 上半年區塊鏈反洗錢態勢
- 報告解讀之 2022 上半年區塊鏈安全態勢
- 熊市新考驗 —— XCarnival NFT 借貸協議漏洞分析
- 智慧合約安全審計入門篇 —— delegatecall (2)
- 保護你的錢包!假錢包全景追蹤
- MetaMask 瀏覽器擴充套件錢包 Clickjacking 漏洞分析
- 慢霧:NFT 專案 verb 釣魚網站分析
- 慢霧:29 枚 Moonbirds NFT 被盜事件溯源分析
- 智慧合約安全審計入門篇 —— delegatecall (1)
- 慢霧:Rikkei Finance 被黑復現分析
- 慢霧:揭露瀏覽器惡意書籤如何盜取你的 Discord Token
- 慢霧出品 | 餘弦:區塊鏈黑暗森林自救手冊
- 漏洞隨筆:通過 Jet Protocol 任意提款漏洞淺談 PDA 與 Anchor 賬號驗證