QRコードをスキャンしてダウンロードしてください。
BTC $74,687.38 -0.55%
ETH $2,323.30 -1.54%
BNB $627.88 +0.50%
XRP $1.43 +1.60%
SOL $87.65 +2.61%
TRX $0.3252 -0.19%
DOGE $0.0969 +0.39%
ADA $0.2530 +1.23%
BCH $448.30 +1.08%
LINK $9.36 +0.32%
HYPE $43.44 -4.49%
AAVE $111.88 +4.87%
SUI $0.9780 +0.97%
XLM $0.1650 +3.17%
ZEC $331.70 -2.95%
BTC $74,687.38 -0.55%
ETH $2,323.30 -1.54%
BNB $627.88 +0.50%
XRP $1.43 +1.60%
SOL $87.65 +2.61%
TRX $0.3252 -0.19%
DOGE $0.0969 +0.39%
ADA $0.2530 +1.23%
BCH $448.30 +1.08%
LINK $9.36 +0.32%
HYPE $43.44 -4.49%
AAVE $111.88 +4.87%
SUI $0.9780 +0.97%
XLM $0.1650 +3.17%
ZEC $331.70 -2.95%

あなたの財布はまだ安全ですか?ハッカーはどのようにPermit、Uniswap Permit2、承認サインを利用してフィッシングを行うのか。

Summary:
話李話外
2024-09-02 14:53:36
コレクション

以前、グループで仲間が言っていた言葉を思い出しました:もし誰が利益を提供しているのかがわからなければ、あなたがその利益を提供している人です。この言葉には非常に理にかなったことがあると感じます。暗号ウォレットの使用における安全性も同様です。自分が行っている操作が何を意味するのかが不明であれば、行うすべてのオンチェーンの相互作用や署名は、ウォレット内の資産を失う可能性があります。

少し前、Scam Snifferが2024年中のフィッシングレポートを発表しました:今年の上半期、EVMチェーン(イーサリアム系チェーン)上で26万人の被害者がフィッシングに遭い、合計3.14億ドルの損失がありました。昨年(2023年)のフィッシング攻撃で盗まれた2.95億ドルと比較すると、今年はわずか6ヶ月でこの数字に達しました。以下の図の通りです。

このレポートによると、現在ほとんどのERC20トークンの盗難はフィッシング署名の署名から発生しており、Permit(オフライン認証署名方式)、Increase Allowance(許可額の増加方式)、Uniswap Permit2などが含まれています。フィッシング攻撃は間違いなくオンチェーンの安全性問題の重症地帯です。

数日前、ある仲間が問題を報告しました。この仲間は2ヶ月前(6月14日)にCoinbase WalletからBinanceに3回送金しました(イーサリアムチェーンに基づく送金)。最初の送金は成功しましたが、残りの2回は受け取っておらず、すでに2ヶ月が経過しました。何が問題だったのかわかりません。

そこで、私はEtherscanを使ってオンチェーンのトークン取引記録を確認しましたが、対応する送金(Transfer)の記録しか見つかりませんでした。他の2回の記録は見当たりませんでした。以下の図の通りです。

さらに、6月14日のすべてのオンチェーン取引記録を確認したところ、確かに3回の送金(Transfer)の記録がありましたが、後の2回は取引失敗と表示されていました。以下の図の通りです。

次に、失敗(Fail状態)の取引記録の1つを開いてみると、表示されたエラーメッセージは「契約実行中にエラーが発生しました」となっていました。この種のエラーは理論的にはウォレット内の資産を失うことはありません。Etherscanの公式文書によると、この種のエラーが発生した場合、送信者が送信した資産(トークン)は送信者のウォレットアドレスから離れず、ガス代のみが差し引かれることになります。以下の図の通りです。

したがって、このような問題を解決するために確認すべきことは:

  • ウォレット内の資金がその日に本当に転送されたか、または失われたか(つまり、取引が失敗した後にウォレットに戻っていないか)

  • 資産が転送されたり失われたりしたことが確認された場合、対応するウェブサイトのカスタマーサポートに連絡する必要があるかもしれません(この場合、主に送信者または出金プラットフォームに連絡し、この送金の発信元を確認し、受取側または入金アドレスのプラットフォームは処理できません)

この問題に基づいて、私の一般的なアドバイスは:日常の取引プロセスで、取引記録表を作成することをお勧めします。たとえば、Excelなどのツールを使用して日常の取引(買い/売り)記録や資金の出入(入金/出金)記録を作成します。そして、問題が発生した場合、この表をオンチェーンの取引記録と比較して確認できます。実際、私自身もそのような表を持っており、取引を行うたびに詳細に記録しています(後で取引の感想などもメモすることがあります)。

ここまでで、上記の問題はほぼ理解できたようです。しかし、オンチェーンで取引記録を確認する過程で、この仲間のウォレットにはさらに深刻な問題があることに気付きました:ハッカーに狙われている!

どういうことかというと、次を見てみましょう(以下の図の通りです):

まず、上の図の赤い枠(実際の取引)を見てみましょう:

ウォレットの保有者は1万ドルのスワップ操作を行い、交換したUSDTを0x8Fで始まる(f103で終わる)ウォレットに送金しました。

次に、上の図の緑の枠(フィッシングの取引)を見てみましょう。

その直後、ハッカーは数件の偽の取引を作成しました。注意すべきは、ハッカーが作成したアドレスウォレットも0x8Fで始まる(f103で終わる)ものであることです。

これらのウォレットアドレスを比較してみましょう:

以下はウォレット保有者の実際のアドレスです:

0x8F773C2E1bF81cbA8ee71CBb8d33249Be6e5f103

以下はハッカーのウォレットアドレスです:

0x8F7cCF79d497feDa14eD09F55d2c511001E5f103

0x8F776d5623F778Ea061efcA240912f9643fdf103

この時点で、皆さんは問題に気付いたはずです。これらのウォレットの最初の4桁と最後の4桁はすべて同じです。注意深く見なければ、気付かないかもしれません。この時点で取引記録からウォレットアドレスをコピーして送金すると、基本的にお金は直接ハッカーに送られることになります。

したがって、この仲間のウォレットは確実にハッカーに狙われており、ハッカーはフィッシングの方法でこの仲間の資産を騙し取ろうとしています。また、取引ハッシュページのデータによると、対応するトランザクションアクションもFake_Phishingとマークされており、これは100%ハッカーのアドレスです。以下の図の通りです。

補足知識:Etherscanを使用しているときに無効な取引やゼロ送金記録が見えない理由は?また、イーサリアムブラウザを簡体字中国語のインターフェースに設定する方法は?

これは、イーサリアム公式ブラウザがデフォルトで無効な取引やゼロ送金記録を非表示にするためです。このようなデータを確認する必要がある場合は、Etherscanの設定ページで高度な機能を有効にすることができます。同様に、簡体字中国語のインターフェースを使用したい場合も、設定ページで選択できます。以下の図の通りです。また、Oklinkのようなサードパーティのマルチチェーンブラウザ(簡体字中国語表示もサポート)を使用することも検討できます。

ウォレット使用の安全性問題は特に注意が必要です。特に大額(100万ドル以上)の資産を持つウォレットに対しては、資産を使用状況に応じて異なるウォレットに分配することをお勧めします。これにより安全性が向上します。私自身のウォレットは以下のように分けています:

  1. 一級はAppleのスマートフォンで作成したコールドウォレットで、コインを保管するためのもので、オフライン状態であり、取引や送金操作は行いません。この資産は少なくとも10年間は動かすことを考えていません。もちろん、コールドウォレットで取引を行いたい場合は、TrezorやLedgerなどの有名なハードウェアウォレットを正規のルートで購入することを検討してください。

  2. 二級は比較的大額の資金を持つホットウォレットで、Trust Walletを使用しています。dAppの認証は行わず、他の自分のウォレットとの送金のみを行います。Binanceへの出金や送金操作も含まれます。

  3. 三級は数十の小さなウォレットで、いくつかはテスト用(さまざまな新しいプロジェクトに参加して製品を体験したり、エアドロップを受け取ったりするため)で、いくつかは以前に草コインやミームコインを購入するためのものです(ただし、ここ数年はこの分野での取引はほとんど行っていません)。各ウォレットには少額の資金があり、数百から数千ドルの範囲です。このようなウォレットの通常の認証/署名は比較的自由で、盗まれても構いません。これらのウォレットの使用と管理は少し面倒に見えるかもしれませんが、主に安全のためです。

要するに、異なる人々はウォレットの使用において異なる好みを持つかもしれません。これは自分の状況によります。古参の投資家は資産をチェーン上に保管することを好むかもしれませんが、この分野に新しく入ったほとんどの人々にとっては、BinanceやOKXのような大手取引所に資産を保管する方が(10万ドルを超えない範囲で)安全です。

次に、現在一般的なフィッシング手法をいくつか整理していきます:

1. Permitフィッシング攻撃

まず、基本的な知識を普及させる必要があります:私たちがイーサリアム上でトークンを送金する際、通常はそのトークンのスマートコントラクトのTransfer関数またはTransfer From関数を呼び出して実行します。Transferは資産の所有者自身が認証操作を行い、トークンを他のアドレスに移転することを指し、Transfer Fromは第三者が直接アドレス内のトークンを他のアドレスに移転することを指します。

Permitフィッシング攻撃の攻撃プロセスは以下の通りです:

まず、攻撃者はフィッシングリンクやフィッシングサイトを偽造し、ユーザーを誘導してウォレットで署名させます(オンチェーンには記録されません)。

次に、攻撃者はPermit関数を呼び出して認証を完了します。

その後、攻撃者はTransfer From関数を呼び出して、被害者の資産を転出し、フィッシング攻撃を完了します。

このフィッシング手法の特徴は、攻撃者が署名の認証を取得した後にPermitとTransfer Fromの操作を実行することです。被害者のアドレスのオンチェーン取引記録には認証記録が表示されませんが、攻撃者のアドレスには表示されます。

一般的に、このような署名認証攻撃は一度限りであり、繰り返しまたは持続的なフィッシングリスクを生じることはありません。簡単に言えば、署名フィッシングはあなたのウォレットのリカバリーフレーズ(または秘密鍵)を盗むことはできず、一度の署名フィッシングは一度だけ使用され、特定のアカウントに対応するチェーンの特定の通貨に対してのみ有効です(たとえば、USDTを認証した場合、ハッカーはあなたのUSDTのみを盗むことができます)。簡単に言えば、フィッシングに遭った場合、ハッカーは一度だけその署名を使用でき、あなたがその後誤って署名を続けない限り、再利用されることはありません。 (上図はbocaibocai@wzxznlからのものです)

2.Uniswap Permit2フィッシング攻撃

このフィッシング手法は、上記のPermitと似ており、オフチェーン署名フィッシングに分類されます。Uniswap Permit2とは、Uniswapが2022年に導入したスマートコントラクトで、公式の説明によれば、これはトークンの承認契約であり、異なるアプリケーション間でトークンの承認を共有および管理することを可能にし、より統一された、コスト効率の良い、安全なユーザー体験を創出します。現在、多くのプロジェクトがPermit2と統合されています。

最近、bocaibocai(X@wzxznl)が書いた数篇の文章を読み、Uniswap Permit2のフィッシング攻撃の方法についてさらに理解を深めました。ここで簡単に概要を説明します:

私たちがあるDEXでスワップ操作を行う際、従来のインタラクション方法では、まずこのDEXに承認を与え、その後スワップ取引を行う必要があります。これには通常、2回のガス代がかかります。ユーザーにとって摩擦コストが大きすぎるため、Permit2はこのステップを省略することができ、ユーザーのインタラクションコストを非常に効果的に削減し、より良いユーザー体験を提供します。

つまり、Permit2はユーザーとdAppの間の仲介者として機能し、ユーザーはトークンの権限をPermit2契約に承認するだけで、すべてのPermit2契約を統合したdAppがこの承認額を共有できます。ユーザーにとっては、インタラクションコストが削減され、ユーザー体験が向上し、dAppにとってはユーザー体験の向上がより多くのユーザーと資金をもたらします。

これは本来、ウィンウィンの状況ですが、同時にこれは両刃の剣でもあります。従来のインタラクション方法では、承認や資金の移転は操作するユーザーにとってオンチェーンのインタラクションでした。しかし、Permit2はユーザーの操作をオフチェーン署名に変え、すべてのオンチェーン操作は中間者(Permit2契約やPermit2を統合したプロジェクトなど)によって実行されます。このソリューションの利点は、オンチェーンインタラクションの役割がユーザーから中間者に移行したことですが、ユーザーにとってはオフチェーン署名が最も警戒を解く部分であり、たとえば、私たちがウォレットで特定のdAppにログインする際に署名を求められることがあり、ほとんどの人は署名の内容を注意深く確認せず、理解もしていません(一般のユーザーにとって、署名画面は一連のコードに見えます)。これが最も恐ろしい点です。

もう一つ非常に恐ろしい点は、Swapする金額がいくらであっても、UniswapのPermit2契約はデフォルトでそのトークンの全残高の承認を求めます。MetaMaskなどのウォレットは金額をカスタマイズすることを許可しますが、ほとんどの人は最大またはデフォルト値を直接クリックするでしょう。Permit2のデフォルト値は無限の承認額です。以下の図の通りです。

これにより、あなたがUniswapとインタラクションし、Permit2契約に承認を与えた場合、あなたはこのフィッシング詐欺のリスクにさらされることになります。

たとえば、小李は以前Uniswapを使用する際にUniswap Permit2に無限のUSDTの承認を与えましたが、小李が日常のウォレット操作中にハッカーが設計したPermit2署名フィッシングの罠に不注意で引っかかり、ハッカーが小李の署名を取得すると、小李の資産をPermit2契約内でPermitとTransfer Fromの2つの操作を利用して移転することができます。

このフィッシング攻撃の具体的なステップは大体以下の通りです:

まず、ユーザーのウォレットはフィッシングに遭う前にUniswapを使用し、トークンの承認額をUniswap Permit2契約に与えています(上記で述べたように、Permit2のデフォルト値は無限の承認額です)。

次に、攻撃者はフィッシングリンクやフィッシングサイトのページを偽造し、ユーザーを誘導してフィッシングリンクやサイトでウォレット署名を行わせ、攻撃者は必要な署名情報を取得します(このステップはPermitフィッシングと似ています)。

その後、攻撃者はPermit2契約のPermit関数を呼び出して認証を完了します。

最後に、攻撃者はPermit2契約のTransfer From関数を呼び出して、被害者の資産を転出し、フィッシング攻撃を完了します。

一般的に、この攻撃手法で資産を受け取るアドレスは比較的多く、フィッシングを実施するためのアドレス(被害者のウォレットアドレスと同じ末尾のアドレスを偽造することもあります)や、フィッシングサービスを提供するためのブラックマーケットアドレス(DaaSプロバイダーのアドレスなど、現在の暗号ウォレットに対するフィッシングはすでに完全な黒い産業チェーンを形成しているようです)があります。以下の図の通りです。

では、PermitやPermit2の問題をどのように防ぐべきでしょうか?

まず、Scamsnifferのようなブラウザセキュリティプラグインを使用してフィッシングリンクを防ぐことを検討できます(私のGoogleブラウザでは常にこのプラグインを使用しています)。次に、Revoke Cashのようなツールを使用して、定期的に見知らぬまたは不要な承認や署名を確認し、キャンセルすることを検討できます。以下の図の通りです。

また、Scamsnifferが提供するUniswap Permit2専用の承認管理ツールを使用して定期的に確認し、異常な承認があれば、速やかに承認をキャンセルすることをお勧めします。以下の図の通りです。

もちろん、最も重要なのは自分の安全意識です。来歴不明のリンクやウェブサイトに安易にアクセスせず、日常的にdAppとのインタラクションを行う際には必要な確認を行うことが重要です。 (上図はbocaibocai@wzxznlからのものです)

補足知識:ウォレット署名がPermitかPermit2に属するかを識別する方法は?

日常的にさまざまな署名を行う際、承認確認画面にいくつかのコードが表示されます。これらのコードを通じて識別する必要があります。以下の図の通りです。

上図のOwner(承認者アドレス)、Spender(被承認者アドレス)、Value(承認数量)、Nonce(ランダム数)、Deadline(期限)。

3.Claimフィッシング攻撃

このフィッシング手法も非常に一般的です。たとえば、私たちがXプラットフォームを頻繁に利用していると、多くのいわゆる無料のエアドロップ情報を見かけることがあります。時には、私たちのウォレットに無造作にエアドロップされたNFTの小さな画像が届くこともあります(画像にはドメインアドレスが表示されているかもしれません)。

指定されたフィッシングサイトにアクセスし、Claim操作を行うと、あなたのウォレット内の資産が直接ハッカーに転送される可能性があります。

では、このような問題をどのように防ぐべきでしょうか?

まず、天から降ってくるような話(つまり、来歴不明の無料NFTやエアドロップのリンクをクリックしないこと)を信じないことが重要です。次に、いかなるClaim操作を行う際にも、自分がアクセスしているアドレスが本当に公式のウェブサイトのアドレスであるかを確認し、油断しないことが重要です。

4.類似アドレス送金フィッシング

今年の5月3日、ある巨額の投資家が同じ先頭と末尾の番号のアドレスフィッシング攻撃に遭い、1155枚のWBTC(当時の価値約7000万ドル)を盗まれる事件が発生しました。

慢雾はこの事件について具体的な分析を行ったことがありますので、ここでは詳しく述べません。興味のある方は検索して振り返ってみてください。

このフィッシング手法は実際には比較的単純に見えます:

まず、ハッカーは大量のフィッシングアドレスを事前に生成します。これらのアドレスは一定の混乱を引き起こすもので、たとえば先頭4桁と末尾6桁が被害者のターゲット送金アドレスと一致するアドレスです。

次に、分散型プログラムを展開し、チェーン上のユーザーの動態に基づいて、ターゲット送金アドレスに対して同じ先頭と末尾の番号のアドレスフィッシング攻撃を仕掛けます。

その後、ターゲットユーザー(被害者)が送金を行うと、ハッカーはすぐに衝突したフィッシングアドレスを使用して取引を行い、このフィッシングアドレスがユーザーの取引記録に表示されます。以下の図の通りです。

その後、ユーザーはウォレットの履歴から最近の送金情報をコピーする習慣があるため、このフィッシング取引を見て、コピーしたアドレスが正しいかどうかを注意深く確認せず、結果として1155枚のWBTCをフィッシングアドレスに誤って送金してしまいました。

では、このような問題をどのように防ぐべきでしょうか?

まず、よく使うアドレスをウォレットのアドレス帳に保存すること(またはホワイトリストに追加すること)を検討し、次回の送金時にウォレットのアドレス帳からターゲットアドレスを見つけることができます。次に、アドレスが正しいかどうかを注意深く確認し、単に先頭の数桁や末尾の数桁だけを確認して送金しないようにし、大額の送金を行う前に小額の送金テストを行うことをお勧めします。

5.承認署名フィッシング

実際、上記で述べたPermit、Uniswap Permit2、Claimもすべて承認フィッシングの範疇に入ります。承認に関しては、ハッカーが利用できる他の方法もいくつかあります。たとえば、Approve(承認、USDTの契約に対してUniswapが私のウォレット内のUSDTを使用できるようにすること)、Increase Allowance(承認額の増加)などがあります。

攻撃の方法は基本的に次のようになります:攻撃者はフィッシングリンクやフィッシングサイトを通じて、またはプロジェクトの公式ウェブサイトをハッキングしてマルウェアを仕込むことで、ユーザーを誘導してクリックさせ、ウォレットを承認させます。

もちろん、私たちは上記で現在一般的な5つのフィッシング攻撃手法を挙げただけであり、現在のハッカーの攻撃手段は多岐にわたり、次々と新しい手法が登場しています。言うまでもなく、あなたが考えられないことは、ハッカーが考えられないことはありません。ウォレット使用の安全性問題は無視できません。

今回の内容はここまでです。さらに多くの記事は話李話外のホームページで確認できます。

声明:以上の内容は個人的な見解と分析に過ぎず、学習記録と交流のためのものであり、投資のアドバイスを構成するものではありません。暗号分野は非常に高リスクの市場であり、多くのプロジェクトにはいつでもゼロになるリスクがあります。冷静に考え、自分自身で責任を持ってください。

warnning リスク警告
app_icon
ChainCatcher Building the Web3 world with innovations.