Back to Blog

TransitSwapとBabySwapの盗難資金回収方法

2022年10月10日
4 min read

はじめに

10月1日、BSC上のBabySwapとTransitSwapが攻撃を受けました。一部の攻撃トランザクションは、ボットによってフロントランされました。興味深いことに、このボットはProfanityツールの脆弱性の影響を受けやすく、我々はボットの秘密鍵を復旧することに成功しました。また、ボットコントラクトのリバースエンジニアリングを行い、ボットコントラクトから資金を安全なアカウントに引き出すことに成功しました。資金はTransitSwapに送金済みで、現在BabySwapとの連携を進めています。

タイムライン

BabySwapにおける攻撃の検知

2022年10月1日 14:47 (UTC)、内部システムが攻撃トランザクションを報告しました。その後の分析で、これはスマートルーターコントラクトの制御されたファクトリーに起因することが判明しました。しかし、プロジェクトがまだ脆弱であったため、当時は詳細を公開しませんでした。Twitter DMとTGを通じてBabySwapに連絡しましたが、返答はありませんでした。

調査中、このトランザクションはボットアカウントによって発行されたものであり、元の攻撃トランザクションをフロントランしたことが判明しました。また、このアカウントは先頭に8つのゼロがあり、Profanityツールによって生成された可能性が高く、Profanityツールの脆弱性の影響を受けます。

ボットの秘密鍵の復旧

2022年10月1日 16:10 (UTC)、我々のツールは約20分でこのボットの秘密鍵を正常に復旧しました。復旧した秘密鍵については、資金を安全なアカウントに転送しました(これは我々の救出の典型的なプロセスです)。そうでなければ、秘密鍵を復旧した他の誰かがアカウントを乗っ取り、アカウント内の資金が危険にさらされる可能性があります。

ボットからの資金の移動

課題は、資金がボットのEOAアカウント自体ではなく、ボットによってデプロイされたコントラクト内にあることです。資金を移動させる方法が課題でした。

コントラクトを逆コンパイルしたところ、コントラクト内にwithdraw関数があることが判明しました(以下の図を参照)。

この関数を利用して、コントラクト内の資金を引き出すことができます。最初の引数はトークンアドレス、2番目の引数はゼロである必要があります。

トランザクションを送信し、コントラクトからボットへ資金を正常に引き出し、その後安全なアカウントへ資金を転送しました。

また別の攻撃が発生!

数時間後、我々のシステムはTransSwapに対する別の攻撃を報告しました。異なるアドレスからの複数の攻撃トランザクションがあり、そのうちの1つのトランザクションが再びこのボットによってフロントランされました! しかし、ボットによってデプロイされたコントラクトは異なるため、資金を移動させるための関数も異なります。

資金の返還

社内での検討の結果、我々は以下の理由により、攻撃を受けたプロジェクト(ボットではなく)に資金を返還することを決定しました。

  • 第一に、資金はボットが脆弱なコントラクトを攻撃して得たものです。ボットは攻撃トランザクションをフロントランした(本来の攻撃を開始したのではなく)としても、我々は攻撃トランザクションのフロントランも攻撃であると考えています。

  • 第二に、資金は攻撃の被害者、すなわち影響を受けたDeFiプロトコルのユーザーに属しています。ユーザーはDeFiプロトコルの脆弱性により多大な損害を被りました。彼らは攻撃者からの資金を受け取るべきです。

資金はTransitFinanceの公式資金受取アドレスに送金済みで、BabySwapに連絡しています。

救出のアップデート

我々はまだ脆弱なアドレスの救出プロセスを進めています。課題は、秘密鍵を復旧するまでアドレスが脆弱かどうかを判断できないことです。最適化されたアルゴリズムがあっても、計算能力の限界により、全体の救出を完了するにはまだ時間がかかります。後日、詳細なレポートを公開し、プロセス全体を説明し、以下の質問に回答します。

  • 脆弱なアドレスはいくつありますか?
  • 脆弱性の影響はどの程度ですか?つまり、脆弱性によりどれだけの資産がリスクにさらされていますか?
  • この脆弱性による攻撃の全体的な状況はどうなっていますか?

続報にご期待ください。安全にお過ごしください。

まとめ

DeFiプロジェクトのセキュリティを確保することは容易ではありません。コード監査に加えて、コミュニティはプロジェクトの状況を積極的に監視し、攻撃が発生する前にブロックするべきだと考えています。

BlockSecについて

BlockSecは、2021年に世界的に著名なセキュリティ専門家グループによって設立された、先駆的なブロックチェーンセキュリティ企業です。同社は、Web3の普及を促進するために、Web3の世界のセキュリティとユーザビリティの向上に貢献しています。そのために、BlockSecはスマートコントラクトとEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威のプロアクティブなブロックのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、そしてWeb3ビルダーが仮想通貨の世界を効率的にサーフィンするためのMetaDock拡張機能を提供しています。

現在までに、MetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300以上の著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを受け入れています。

公式ウェブサイト: https://blocksec.com/

公式Twitterアカウント: https://twitter.com/BlockSecTeam

Sign up for the latest updates
約387万 USDの損失:Autheo NetworkとUNCXへのハッキング | BlockSecウィークリー
Security Insights

約387万 USDの損失:Autheo NetworkとUNCXへのハッキング | BlockSecウィークリー

この週次レポートでは、2026年10月12日–2026年10月18日に発生した3件のセキュリティインシデントを取り上げます。推定損失額の合計は約387万 USDです。Autheo Networkでは秘密鍵の侵害により約176万 USD、Qubic Walletでは脆弱なシード生成により約130万 USDの損失が発生しました。また、Ethereum、BNB Chain、Base、Robinhood Chain上のUNCX NetworkのSmart Token Vesting V2コントラクトでは、会計処理上の誤りにより約80.7万 USDの損失が発生しました。重点的に取り上げるUNCXの分析では、シェア総数の計算に欠陥があり、異なるトークン対シェア比率で作成されたベスティングのトランシェが混同された結果、共通プールからの過剰な引き出しが可能になった仕組みを説明します。

SEAL認証とは?暗号資産における運用セキュリティの保証
Security Insights

SEAL認証とは?暗号資産における運用セキュリティの保証

SEAL認証は、合意された範囲内で暗号資産分野の運用セキュリティについて独立した保証を提供します。その6つのモジュール、証拠資料の要件、認証の限界、BlockSecの評価プロセスを解説します。

約54万2,000ドルの損失:MakerDaoBotへの攻撃 | BlockSec週間ニュース
Security Insights

約54万2,000ドルの損失:MakerDaoBotへの攻撃 | BlockSec週間ニュース

本レポートは2026/10/05~10/11にEthereumで発生したセキュリティ事故1件を扱う。推定損失は約54.2万ドル。攻撃コントラクトは悪意あるアダプターを展開し、アクセス制御のないMakerDaoBot関数に渡して、ボット内部のMakerDAO残高への操作権限を付与させた。アダプターは旧ETH-Aオークション4件を決済し、ETH-A担保200単位をWETHに変換。攻撃コントラクトがWETHをETHに戻し、攻撃者へ200 ETHを送金した。

TransitSwapとBabySwapの盗難資金回収方法