Solana 生態錢包 8 月 3 日遭受大規模攻擊,超過 9 千個錢包地址被盜、總損失超 400 萬美元。慢霧安全團隊(SlowMist)第一時間分析追蹤,發現 Slope 錢包使用的 Sentry 服務會採集助記詞和私鑰,但無法明確證明 Slope 錢包為駭客入侵的根源。
(前情提要:Solana 錢包遭駭官方報告:曾向 Slope導入助記詞的用戶都可能被盜)
2022 年8 月3 日,Solana 公鏈上發生大規模盜幣事件,大量用戶在不知情的情況下被轉移SOL 和 SPL 代幣。慢霧安全團隊第一時間介入分析,並在 Slope 團隊的邀請下對 Slope 錢包應用進行分析,分析表明:Slope 錢包在2022 年6 月24 日及之後發布的版本存在向第三方應用監控服務發送私鑰或助記詞資訊的現象。
但從對 Slope 錢包應用進行調查到現在,無法明確證明此次事件的根源就是 Slope 錢包的問題,於是慢霧安全團隊開始對 Slope 的服務器進行分析取證。
分析過程
事件發生之後各方的關注點主要聚焦在調查本次事件的根源以及資金的追蹤和挽救的可能性。於是慢霧安全團隊制定相關的計劃,開始從鏈下和鏈上兩個部分著手調查和分析。
在事件根源調查這個方向上,慢霧安全團隊重點專注在對 Slope 伺服器的分析取證。這裡面有大量且複雜的工作需要推進,也需要有更多明確的證據來解釋這次的大規模盜幣事件的根源。
資金追蹤和挽救的可能性這部分工作,慢霧安全團隊主要依靠 MistTrack 的追蹤分析能力、標籤數據能力並結合情報能力,盡最大的努力識別和追蹤駭客的鏈上行為。並且也和 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 是在 6 月 24 日之前訪問過第三方應用監控服務的後台。雖然這發生在回傳私鑰和助記詞的時間(6/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 地址和 4,914 個Solana地址, 有 5,073 組助記詞,而鏈上駭客事件的錢包地址有 42 個 ETH 地址和 9,231 個 Solana 地址,經過比對發現伺服器上的私鑰和助記詞派生出來的地址(包含 HD 地址)與受害者有交集的地址有 5 個 ETH 地址和 1,388 個 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
1 ETH = $1,618.87
1 PAXG = $1,759.64
1 BNB = $298.36
對 Slope 伺服器上的已解密的私鑰和助記詞對應派生出來的地址(包含 HD 地址)與鏈上統計的受害者地址進行分析,有交集的地址有 5 個ETH 地址和 1,388 個 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 被盜案等。
附-鏈上分析數據源
📍相關報導📍
Slope:Sentry存在漏洞,15% Solana 錢包受駭可追溯至此;已刪伺服器端日誌記錄