Hyperliquid環境における承認Drainer攻撃
-
approval drainer hyperliquid
-
drainer hyperliquid
-
hyperliquid token approval attack
-
ERC20承認攻撃
暗号資産の盗難手口の中でも、承認Drainer(Approval Drainer)は、技術的なハードルが比較的低く、被害規模が拡大しやすい攻撃の一つです。秘密鍵を破ったり、複雑なオンチェーン攻撃を仕掛けたりする必要はありません。ユーザーに「内容を十分に理解しないまま」署名させるだけで成立します。
HyperEVMの登場により、Hyperliquidエコシステムではオンチェーンでのやり取りがより多様になりました。一方で、Hyperliquidユーザーを狙うDrainer攻撃のリスクも高まっています。本記事では、この攻撃がどのように機能するのか、そしてどのように防ぐべきかを解説します。
Chainalysisの調査レポートでも指摘されているように、Drainerツールキットはすでに成熟した地下産業になっています。攻撃者は低コストでカスタムDrainerコントラクトを用意し、フィッシングサイトや悪意あるDAppを通じて大規模に配布できます。
承認Drainerの仕組み
Drainer攻撃を理解するには、まずERC-20トークンの承認(approve)メカニズムを理解する必要があります。
ERC-20標準には approve 関数があり、トークン保有者は別のアドレス、通常はスマートコントラクトに対して、指定した上限額の範囲内でトークンを移動する権限を与えられます。これはDeFiを支える基本的な仕組みの一つです。たとえばDEXでトークンをスワップする場合、まずスワップ用コントラクトに自分のウォレット内のトークンを利用する許可を与える必要があります。
Drainer攻撃は、この仕組みを悪用します。
- 攻撃者が、承認を受けると資産をまとめて移動できる悪意あるコントラクトをデプロイします。
- 偽サイト、偽エアドロップ、悪意あるDAppなどを使い、ユーザーにそのコントラクトへの
approveトランザクションを実行させます。 - ユーザーは一見無害に見えるトランザクションに署名しますが、実際には特定のトークン、場合によっては大きな金額や無制限の移動権限を攻撃者側に与えています。
- 悪意あるコントラクトは、通常同じタイミングまたは直後のトランザクションで、ユーザーのウォレットからトークンを抜き取ります。
この一連の流れは数秒で完了することがあります。また、一度 approve がオンチェーンで承認されると、ユーザーがその承認を取り消すまで、攻撃者はいつでも transferFrom などを使って資産を移動できる可能性があります。
HyperEVM環境特有のリスク
HyperEVMは、Hyperliquidが提供するEVM互換の実行環境です。標準的なEthereumスマートコントラクトをHyperliquid上で動かせるため、HyperliquidエコシステムにDeFiの幅広い可能性をもたらします。一方で、Ethereumエコシステムで見られるのと同種のセキュリティリスクも持ち込まれます。
HyperEVM上で想定されるDrainer攻撃には、次のようなものがあります。
- HyperEVMネイティブDAppを装ったフィッシングページで、悪意あるコントラクトへの承認を誘導する
- EIP-2612 Permit署名を悪用するDrainer。ユーザーにオンチェーン取引ではなくオフチェーンメッセージへ署名させることで、ユーザーがGasを支払わなくても承認を取得でき、気づかれにくくなる
- HyperEVM上の正規プロトコルに似せた画面を作り、通常の操作に見せかけて追加の
approve要求を差し込む
EIP-712の構造化データ署名は、署名内容の可読性を高めるための標準です。しかし、多くのユーザーは表示された構造化データの意味を十分に理解しないまま署名してしまいます。この点が、Permit型Drainerに悪用されやすい理由です。
Permit署名Drainer:最も見抜きにくい亜種
従来のapprove Drainerでは、オンチェーン取引が発生します。多くのウォレットでは「Token Approval」のような表示が出るため、経験のあるユーザーであれば違和感に気づけることがあります。
一方、Permit署名Drainerはより見抜きにくい攻撃です。
ユーザーの画面に表示されるのは、トランザクションではなく「Sign Message」のリクエストです。ポップアップには整形されたデータが表示されるため、ユーザーはログイン認証や本人確認の一部だと思い、深く確認せずに承認してしまうことがあります。
しかし実際には、その署名メッセージがEIP-2612標準に基づくPermit承認である可能性があります。そこには通常、以下のような情報が含まれます。
spender:承認を受けるアドレス。攻撃者の悪意あるコントラクトである可能性がありますvalue:承認額。多くの場合、U256の最大値、つまり実質的な無制限承認ですdeadline:有効期限。かなり先の時点に設定されることがあります
一度このメッセージに署名してしまうと、攻撃者はその署名と transferFrom の呼び出しを使い、オンチェーンでトークンを移動できます。この過程で、ユーザー自身がGasを支払う必要はありません。そのため、「メッセージ署名なら安全」という思い込みは非常に危険です。
Drainer攻撃を防ぐ方法
対策1:署名する内容を毎回理解する
ウォレットに署名リクエストが表示されたら、すぐに承認せず、必ず内容を確認する習慣をつけてください。
- Transaction(トランザクション)の場合:
toアドレスが想定しているコントラクトか、dataフィールドにapprove関数呼び出しが含まれていないかを確認します - Sign Message(メッセージ署名)の場合:メッセージ内に
spender、valueなどPermit承認に関係する項目がないか確認します - 理解できない場合は、署名しないでください
これは最も基本的で、同時に最も重要な防御策です。
対策2:不要な承認を定期的に確認・取り消す
Revoke.cashにウォレットを接続すると、現在有効なオンチェーン承認を確認できます。見覚えのないコントラクトアドレスや、長期間使っていないDAppへの承認は、できるだけ早く取り消すべきです。
特に新しいDAppを使った後は、承認状況を確認することをおすすめします。月に一度程度、定期的に見直すだけでもリスクを下げられます。
対策3:承認額は最小限にする
DAppが approve を求めてきたとき、デフォルトの無制限承認(Max)をそのまま受け入れないようにしてください。可能であれば、その取引に必要な正確な金額だけを承認します。
仮に悪意あるDAppに引っかかったとしても、承認額が限定されていれば、被害額をその範囲内に抑えられる可能性があります。
対策4:HyperEVMのDAppにはより慎重に接する
HyperEVMエコシステムは比較的新しいため、未監査のプロトコルには予期しない脆弱性が含まれている可能性があります。また、悪意あるプロジェクトが本物のプロジェクトに紛れて現れることもあります。
HyperEVM上のDAppを利用する前には、少なくとも以下を確認してください。
- 公式ドキュメントや公式SNSからアクセスしているか
- コントラクトやプロトコルが監査を受けているか
- コミュニティで不審な報告が出ていないか
- 検索広告やDM、Telegram/Discord内のリンクから直接アクセスしていないか
Hyperliquid公式ドキュメントは、HyperEVMエコシステムに関する公式情報を確認するための出発点として有用です。
対策5:OneKeyハードウェアウォレットで物理確認を行う
OneKeyハードウェアウォレットは、approve リクエストを処理する際、ソフトウェアウォレットの画面上の説明だけでなく、デバイス本体の画面に承認先(spender)や承認額を表示します。
これにより、ブラウザ上の悪意あるスクリプトが見た目の説明を偽装していても、ハードウェア画面で実際の取引内容を確認し、問題があれば拒否できます。
Permit型のオフチェーン署名についても、OneKeyは構造化された署名内容をハードウェア画面で確認できるようにします。ユーザーが内容を理解しないままクリックだけで承認してしまうリスクを下げるうえで、物理確認は有効です。
Drainer攻撃の兆候と対応
よくある質問
Q1:承認を取り消せば、Drainerに盗まれたトークンは戻ってきますか?
いいえ。承認の取り消しは、今後の追加移動を防ぐための操作です。すでに完了したオンチェーン送金を元に戻すことはできません。ブロックチェーン上の取引は、一度確定すると原則として取り消せません。
Q2:不審なサイトを「見るだけ」で、ウォレットを接続しなければ安全ですか?
通常、サイトを閲覧するだけで資産が移動することはありません。資産移動には、トランザクションまたは署名が必要です。ただし、悪意あるサイトがブラウザや拡張機能の脆弱性を狙う可能性はあります。不審なサイトを見る場合は、資産の入ったウォレットを含まない別ブラウザや別環境を使う方が安全です。
Q3:EIP-2612 Permit署名と通常のapproveは何が違いますか?
通常の approve はオンチェーン取引であり、ユーザーがGasを支払います。一方、EIP-2612 Permitはオフチェーンの署名メッセージです。署名時にGasは不要ですが、攻撃者はその署名を使ってオンチェーンで transferFrom を実行できます。
「メッセージ署名なら損失は発生しない」という理解は誤りです。Permit署名は、実質的にトークン承認として機能する場合があります。
Q4:OneKeyウォレットを使えばDrainer攻撃を完全に防げますか?
完全に防げるとは限りません。OneKeyは物理確認の仕組みにより、Drainer攻撃に遭う確率を大きく下げることを目的としています。ただし、最終的にはユーザーが取引内容を理解したうえで確認するかどうかが重要です。ツールは安全な操作フローを支援しますが、判断そのものはユーザーに依存します。
Q5:HyperEVM上で特にDrainerリスクが高い操作は何ですか?
「無料エアドロップ」の請求、出所不明の流動性マイニング、検索エンジン経由で見つけたブックマーク外のDApp、TelegramやDiscordで共有されたDAppリンクなどは高リスクです。オンチェーン操作を行う前に、必ず公式チャネルで確認してください。
結論:すべての署名を理解し、OneKeyでハードウェア確認を行う
承認Drainerが厄介なのは、秘密鍵の漏えいや高度な技術的脆弱性ではなく、ユーザーの判断ミスを攻撃の入口にする点です。HyperEVMエコシステムが拡大する2026年において、この種の攻撃はより一般的かつ巧妙になる可能性があります。
最も効果的な防御は、「すべての署名内容を理解してから承認する」習慣を持つことです。そのうえで、OneKeyハードウェアウォレットを使い、ハードウェア画面で承認先や承認額を物理的に確認することで、ブラウザ上の偽装に対する耐性を高められます。
また、Revoke.cashでオンチェーン承認を定期的に整理し、Hyperliquidでの取引にはOneKey Perpsを活用することで、日常的な取引フローの中でもDrainerリスクを抑えやすくなります。
OneKeyの利用を検討する場合は、onekey.so/download から公式アプリを確認し、OneKey Perpsを使ったHyperliquid取引フローを試してみてください。
リスク提示: 本記事は情報提供のみを目的としており、投資、法務、財務上の助言ではありません。オンチェーン資産の安全管理はユーザー自身の責任です。ここで紹介した対策は、すべての攻撃を完全に防ぐことを保証するものではありません。常に最新のセキュリティ情報を確認し、あらゆるオンチェーン操作や署名リクエストに慎重に対応してください。



