筋金入りのハッカーが「フィッシング」に取り組み始めたとき、あなたのNFTはまだ安全ですか?
少し前に、JayChouのBoringApe NFTがフィッシングに襲われ、損失は300万元を超えました。
その後、世界最大のNFT取引プラットフォームの1つであるOpenSeaの多数のユーザーがフィッシング攻撃を受け、多くの人々の資産が被害を受けました。
Web3の世界では、ハッカーが依然として横行していることがわかります。ハッカーの傲慢さに対抗するために、ドライに関する一連の記事を引き続き出力します。 NFTの詐欺防止スキルを教えるための商品。

このペーパーでは、2つの典型的なNFTフィッシング攻撃について調査します。1つは盗難フィッシング攻撃です。 Openseaフィッシングメールインシデントなどのユーザー署名。模倣ドメイン名とコンテンツが高いNFTフィッシングWebサイトの一種。私たちと一緒に見てください

このインシデントを再度再現します。攻撃者の情報は次のとおりです:
攻撃アドレス(偽_ Phishing5169):
0x3e0defb880cd8e163bad68abe66437f99a7a8a74
攻撃者契約(Fake_Phishing5176):
0xa2c0946ad444dccf990394c5cbe019a858a945bd
攻撃者のトランザクション関連するNFTを取得するには、次の図に示します。

0xee038a31ab6e3f06bd747ab9dd0c3abafa48a51e969bcb666ecd3f22ff989589、次のとおりです。


上の図からわかるように、攻撃者はユーザーの承認を取得し、transferfromメソッドを直接呼び出してユーザーのNFTを盗みます。
OpenseaCEOのDevinFinzerが投稿したTwitterによると、攻撃者はフィッシングを通じてOpenseaでのユーザーの注文承認を取得しました。

攻撃トランザクションを分析すると、ハッカーの攻撃は主に次の3つに分けられます。ステップ。
1。署名する正しいトランザクションを作成します;
2。ユーザーをだまして認証をクリックさせます;
まず、攻撃者が作成したトランザクションシグネチャコンテンツを分析し、関数呼び出しを追跡しますスタック特定の署名情報は次のとおりです。

上の図、署名の計算方法次のとおりです。keccak256( "\ x19 Ethereum署名付きメッセージ:\ n32"、hashOrder(order));この署名方法は、注文の前にメッセージプレフィックスを追加します:'\ x19 Ethereum署名付きメッセージ: \ n32'、署名が変更されていることを確認するためにEthereumの外部では使用できません。その後、メッセージのプレフィックスが付いた完全なデータが計算され、keccak256値が計算され、最後に秘密鍵で署名されます。
ただし、この方法では所有権を主張することしかできず、リプレイ攻撃を防ぐことはできません。たとえば、ユーザーAがメッセージに署名して契約Mに送信し、別のユーザーBがこの署名を契約Nに再生できます。次の図は、注文署名に関連する特定の情報を示しています。

攻撃者は、上記の注文情報に基づいて署名を作成し、上記の署名に含まれるbasePriceパラメータの量を0に設定し、受信アドレスを自分自身に設定できます。 、など。
攻撃者が署名するデータを作成した後、攻撃者はユーザーをだますことができます承認をクリックします。署名のメタデータはKeccak256によって計算された0xを含む66の16進文字であるため、ユーザーは署名の特定の意味を知ることができず、署名を直接クリックして、攻撃者がユーザーの保留中の注文承認を取得できるようにする可能性があります。

上の写真の署名は、ユーザーのブラインド署名に似ています。つまり、署名メッセージの内容は署名者には見えず、署名者はメッセージの特定の内容を見ることができません。
ステップ2では、攻撃者はECDSA署名メッセージでR、Sを取得します。 V値は、ユーザーNFTを盗むための攻撃コントラクトを構築するために使用できます。次の図はOpenSeaです。WyvernExchangev1コントラクトの注文を検証する関数validateOrder()。具体的なソースコードは次のとおりです。

ソースコードからわかるように、注文の確認では、最初に注文の有効性と有効なパラメータが含まれているかどうかを確認し、次に注文が合格したかどうかを確認します。 -チェーン検証。ここで、approvedOrdersはマピンですg変数。オンチェーン承認によって検証されたすべての注文を保持します。注文が確認された場合、それは直接trueを返し、ECDSA署名を確認するためにecrecover()を使用する必要がないため、スマートコントラクトは直接注文を行うことができます。
以下はNFT盗用トランザクションの1つであり、攻撃者がユーザーの署名を使用して攻撃者の契約を呼び出すことがわかります(Fake _ Phishing5176):
0xa2c0946ad444dccf990394c5cbe019a858a945bd、0エーテルの価格でユーザーのNFTを盗みます。
「高模倣ドメイン名用のNFTフィッシング」
1は、元の公式Webサイトのトップレベルのドメイン名のみを置き換えます
ケース1
公式ウェブサイト:https://invisiblefriends.io/
フィッシングサイト:https://invisiblefriends.ch/

フィッシングサイトのWebページのソースコードを表示すると、次の攻撃アドレスを見つけることができます:

表示

公式ウェブサイト:https://cyberbrokers.io/
< p cms-style = "font-L">フィッシングサイト:https://cyberbrokers.live/
フィッシングWebサイトのソースコードを確認し、次の攻撃アドレスを見つけます。

包括的このタイプのイベントは、主に、ユーザーがトランザクション署名に署名するときに、署名されたトランザクションコンテンツが暗号化された文字列であるため、ユーザーが署名されたトランザクションの特定のコンテンツを直感的に確認できず、習慣的にクリックして確認するためです。したがって、攻撃者は注文を販売してユーザーのNFTを盗むためのユーザーの許可を取得します。
2混乱を招くためにメインドメイン名に単語や記号を追加する
公式ウェブサイト:https://
フィッシングウェブサイト:

フィッシングWebサイトのソースコードを確認し、setApprovalForAll()関数がページに存在することを確認します。 _演算子は、すべてのトークンを正しく制御します。ユーザーが攻撃者を承認した場合、ユーザーのアカウント内のすべてのNFTが盗まれます。

3混乱のためにセカンドレベルドメイン名を追加する
公式ウェブサイト:https://
フィッシングサイト:https://okaybears.co.uk/

solana web3の公式ドキュメントAPIに従って、Webページのソースコードを表示し、次のアドレスが攻撃アドレスであることを確認します。

フィッシングインシデントが頻繁に発生するため、ユーザーはセキュリティ意識を高め、身を守る必要があります。セキュリティに関する推奨事項は次のとおりです。

識別できないコンテンツがある場合(次のような場合)署名されたコンテンツはバイナリ文字列コンテンツのみであり、署名しないでください。
2リンクや添付ファイルをクリックしたり、電子メールに個人情報を入力したりしないでください。
3 NFTの公式ウェブサイトにアクセスすると、公式のTwitter、不和、その他のソーシャルアカウントは、通常、公式ウェブサイトの右上隅などに表示されます。公式ウェブサイトのアドレスは公式アカウントで確認する必要があります。
4フィッシングプラグインをインストールして、フィッシングWebサイトを特定します。たとえば、次の例です(Google Chromeをコピーして直接インストールします)

- 記事リンク : https://jp.sdqirong.com/article/dangyingheheikekaishiyanjiudiaoyunideNFThaianquanma_88606.html
- 記事のタイトル : 筋金入りのハッカーが「フィッシング」に取り組み始めたとき、あなたのNFTはまだ安全ですか?
- この記事はQirong.comのネチズンによって公開されたものであり、ウェブサイトの見解や位置を表すものではありません。転載が必要な場合は、記事へのリンクを追加してください。