有些 Solana drainer 不只是清空你的 SOL。它們會修改錢包帳戶本身,使它無法再傳送 SOL,而你存入的任何 SOL 都可以被攻擊者提走。你的代幣和 NFT 通常還在原處,但一般的轉移方式,也就是從錢包應用程式傳送,要麼失敗,要麼反而讓攻擊者拿到更多 SOL。
本指南說明發生了什麼變化、為什麼不應向該錢包傳送 SOL,以及如何在由另一個錢包支付手續費的同時,把剩餘資產轉到新錢包。
如何判斷你的 Solana 錢包已被轉換?
錢包裡明明還有代幣,傳送卻總是失敗;在區塊瀏覽器中,這個地址顯示為 authority 不是你的 nonce 帳戶,或顯示為歸某個程式所有的帳戶。連接 Sol Incinerator 時,它會顯示「你的錢包已遭駭客控制」,並附上接管時間和交易連結。
一般的 Solana 錢包是沒有資料的簡單 System Program 帳戶。被轉換的錢包地址不變,但地址背後的帳戶已經改變。可以透過三種方式檢查:
- 在區塊瀏覽器中開啟地址。 Solana Explorer 會為被轉換的錢包顯示 nonce 帳戶詳細資料,包括一個 authority 地址。如果這個 authority 不是你擁有的地址,表示帳戶裡的 SOL 由別人控制。
- 找到造成這一切的交易。 在我們檢查的案例中,受害者共同簽署了一筆包含兩條 System Program 指令的交易:
allocate為錢包地址配置了 80 位元組的資料,initializeNonce把它變成以攻擊者為 authority 的 durable nonce 帳戶。網路手續費由攻擊者支付。在其中一個案例裡,受害者的 SOL 在 30 秒後被提走。 - 把錢包連接到 Sol Incinerator。 它會在連接時讀取帳戶,發現接管時會顯示警告,並附上接管時間和 Solscan 連結。
有些 drainer 採用另一種變更:把地址指派給某個程式。對你來說結果相同:錢包再也無法自行支付費用。
為什麼遭駭的錢包無法支付網路手續費?
durable nonce 帳戶是 Solana 的一項常規功能,用於預先簽署交易。它保存一個 nonce 值和一個 authority,只有這個 authority 能推進 nonce、變更 authority 或提走帳戶中的 SOL。當 drainer 把你的地址變成這種帳戶,它就成了你地址上 SOL 的 authority。
- SOL 無法再以正常方式轉出。 System Program 拒絕從帶有資料的帳戶轉出 SOL,而你的錢包現在帶有 nonce 資料。
- 手續費來自攻擊者可以拿走的 SOL。 nonce 帳戶只能用其 rent 儲備金以上的 SOL 支付網路手續費,而 authority 可以在這些 SOL 出現時立即提走。
- 歸程式所有的地址完全無法支付手續費。 Solana 只接受來自簡單 System 帳戶或 nonce 帳戶的手續費。
- 你無法撤銷。 只有目前的 authority 才能變更 nonce 帳戶的 authority,所以你簽署的任何交易都無法把它奪回。
你的代幣則是另一回事。每個代幣帳戶都把你的地址記錄為所有者,代幣程式檢查的是你的簽名,而不是錢包帳戶的狀態。你的金鑰仍然可以轉移每一個代幣和每一個 NFT,只需要由另一個錢包支付網路手續費。
不要向遭駭地址傳送 SOL,哪怕只是用來付手續費的一小筆。請假定有機器人在監視它。不要簽署任何來自網站或私訊、聲稱能「解鎖」或「修復」錢包的請求:透過私訊提供的付費復原服務是遭駭後常見的二次詐騙。
如何把代幣轉出遭駭的 Solana 錢包?
使用由另一個錢包支付網路手續費、遭駭錢包只以代幣所有者身分簽名的交易。錢包應用程式會向傳送方錢包收取手續費,所以請使用專為遭入侵錢包打造的復原工具,例如 Sol Recovery,並把所有資產傳送到新錢包。
Sol Recovery 是針對遭入侵 Solana 錢包的獨立服務。它能辨識被轉換的錢包,其免費帳戶可以把接收資產的錢包與支付手續費的錢包分開。
- 建立新錢包。 如果你曾在網站上輸入過助記詞或私鑰,請用全新的助記詞建立新錢包。舊助記詞下的另一個帳戶並不是新錢包。
- 查看還剩什麼。 把遭駭地址貼到 Sol Recovery。它不需連接錢包,就能掃描代幣、質押部位、DeFi 部位、收藏品和網域。
- 設定安全錢包和付款錢包。 把新錢包加為目標地址,再加入一個獨立的錢包來支付網路手續費。只為付款錢包儲值,永遠不要為遭駭地址儲值。
- 檢查並簽名。 遭駭錢包以代幣所有者身分簽署每一筆轉帳。核准前請確認每筆交易的作用,並確認資產已經到帳。
Sol Recovery 也為在固定時間解鎖的質押中或鎖定部位提供機器人服務,在解鎖的瞬間與攻擊者搶先。該服務收取所復原資產的 10%,並需要遭駭錢包的私鑰以便即時簽名。這是一個真正攸關信任的決定:只分享已經遭入侵的錢包的金鑰,絕不要分享新錢包的助記詞。
Sol Recovery 與 Sol Incinerator 沒有關聯。簽名前請確認它目前的費用和每一筆交易。開發者也可以自行建立同樣的轉帳:只要代幣所有者簽名,代幣轉帳就有效,無論由哪個錢包支付手續費。
你還能領取代幣帳戶裡的 SOL 嗎?
可以。空代幣帳戶裡有可退還的 rent 押金,關閉帳戶就能取回這些 SOL。一般領取會把 SOL 付給錢包本身,在這裡就等於付給攻擊者,所以 Sol Incinerator 會以不同方式處理被轉換的錢包。
當你連接被轉換的錢包時,Sol Incinerator 會要求你提供一個安全錢包地址,並把回收的 SOL 付到那裡。它自行支付網路手續費,這筆手續費和一般清理費會從回收的 SOL 中扣除。不會向遭駭地址傳送任何東西。支援關閉空代幣帳戶和提取多餘的 rent;不支援銷毀以及其他需要錢包自行支付手續費的操作。
轉走代幣後,這些代幣帳戶會變空。如果你的復原工具沒有關閉它們,之後請再領取一次,把這部分 rent 也收回來。
你還應該檢查什麼?
- 完整閱讀接管交易。 它可能還轉走了資產或核准了某個 delegate。請記下交易簽名和所有陌生地址,以便檢舉。
- 列出質押中和鎖定的部位。 有些部位需要先解除質押或度過等待期才能轉移,而攻擊者可能也在等待同一時刻。
- 在所有收款的地方替換舊地址。 交易所的提領地址清單、收款設定和 airdrop 登記中凡是付款到遭駭地址的,現在都會付給攻擊者。
- 停止使用這個地址。 資產轉出後,不要再使用這個錢包,哪怕是小額。
