
暗号資産ハッカー対策ガイド:複数の対策で資産をしっかり保護
TechFlow厳選深潮セレクト

暗号資産ハッカー対策ガイド:複数の対策で資産をしっかり保護
すべてを失ったり、大きな資産を失ったりしてからでないとセキュリティを学ぼうとしない人になってはいけません。
著者:INSIGHTFUL
翻訳:TechFlow
免責事項
本ガイドはいかなる保証も提供するものではなく、「暗号化またはネットセキュリティの専門家」の視点から書かれたものでもありません。複数の情報源と個人的な経験に基づく継続的な学習の成果です。
例えば、私がこの分野に入ったばかりの頃、FOMO(取り残される恐怖)や貪欲さによって騙されたことがあります(偽ライブ配信詐欺や偽MEVロボット詐欺)。そのため、安全性について真剣に学び、設定し、理解することに時間を費やしました。
すべてまたは大量の資産を失って初めて安全について学ばざるを得ない人にならないでください。
ハッキング? それともユーザーのミス?
あらゆるタイプのウォレット、トークン、NFTの「ハッキング」または侵害は、大まかに以下の2つに分けられます:
-
以前に付与されたトークン承認の悪用。
-
秘密鍵またはリカバリフレーズの漏洩(通常ホットウォレットで発生)。
トークン承認
トークン承認とは、スマートコントラクトがウォレット内の特定の種類または数量のトークンにアクセスして移動できるようにする権限のことです。
例:
-
OpenSeaにNFTを移動する権限を与えることで、売却できるようにする。
-
Uniswapにトークンを使用する権限を与えることで、交換を可能にする。
背景として、ETHを除くイーサリアムネットワーク上のほぼすべてのものはERC-20トークンです。
ERC-20トークンの特徴の一つとして、他のスマートコントラクトに承認を与える機能があります。
DEXでの交換やブリッジなどの主要なDeFi操作を行うには、いずれかの時点でこれらの承認が必要になります。
NFTはそれぞれERC-721およびERC-1155トークンであり、その承認メカニズムはERC-20と似ていますが、NFTマーケットプレイス向けに設計されています。
MetaMask (MM) の初期のトークン承認プロンプトには、以下のような重要な情報が含まれます:
-
承認しようとしているトークン
-
連携しているウェブサイト
-
連携しているスマートコントラクト
-
トークン権限の数量を編集する能力

「詳細を表示」ドロップダウンメニューでは、追加情報として「承認機能」が表示されます。
すべてのERC-20トークンは、ERC-20標準で定められた特定の特性と属性を持っている必要があります。
その一つが、承認された数量に基づいてスマートコントラクトがトークンを移動できる能力です。
これらの承認の危険性は、悪意のあるスマートコントラクトに承認を与えてしまった場合、資産が盗まれたり使い果たされたりする可能性があることです。

無制限承認 vs カスタム制限承認(ERC-20トークン)
多くのDeFiアプリケーションは、デフォルトでERC-20トークンに対して無制限の承認を要求します。
これはユーザーエクスペリエンスを向上させるためであり、将来の追加承認の必要性を排除することで、時間とガス代を節約できます。

なぜこれが重要なのか?
無制限のトークン承認を許可すると、資金がリスクにさらされる可能性があります。
承認数量を手動で特定の値に設定することで、dAppが新たな大きな額の承認署名なしに移動できるトークンの最大量を制限できます。
これにより、スマートコントラクトが悪用された場合のリスクを軽減できます。もしdAppに無制限の承認を与え、そのdAppに脆弱性があった場合、その承認を付与したすべてのウォレットから対象となるすべてのトークンを失う可能性があります。
例:MultichainのWETH(ETHのERC-20ラップドトークン)がこのような脆弱性に見舞われました。
この一般的なブリッジは、過去の無制限トークン権限の悪用により攻撃を受け、ユーザーの資金が盗まれました。

以下はZerionウォレットを使用した例で、デフォルトの無制限承認を手動承認に変更する方法を示しています。
NFTの承認
“setApprovalForAll”はNFTに使用されます。
これはよく使われるが潜在的に危険な承認で、NFTを売りたいときに信頼できるNFTマーケットプレイスに付与されることが多いです。
これにより、マーケットプレイスのスマートコントラクトがユーザーのNFTを移動できるようになります。つまり、購入者が現れたとき、自動的にNFTを購入者のアドレスに送ることができます。
この承認は、特定のコレクションまたはコントラクトアドレスのすべてのNFTトークンへのアクセス権を付与します。
しかし、悪意のあるウェブサイトやコントラクトによってNFTを盗むために利用されることもあります。



“setApprovalForAll”が悪用された実例
FOMOによる無料ミントの状況下での典型的な「ウォレット資産縮小」は次の通りです:
ユーザーが正当なものだと信じて悪意あるウェブサイトにアクセスします。
-
ウォレットを接続すると、サイトはその中身を閲覧できるだけです。
-
しかし、悪意あるサイトはユーザーのウォレット内で最も価値の高いNFTを探し出し、MetaMask (MM) 経由でそのNFTのコントラクトアドレスに対する「setApprovalForAll」の承認を求めます。
-
ユーザーは自分がNFTをミントしていると思い込みますが、実際には悪意あるコントラクトにトークン移動の権限を与えているのです。
-
その後、詐欺師がすぐにそのトークンを盗み、OpenSeaやBlurでの入札に清算してしまいます(盗難マークが付く前まで)。
署名と承認
承認は取引処理を伴うため、ガス代がかかります。
一方、署名はガス不要で、dAppにログインする際に使用され、ウォレットの所有権を証明します。
署名は通常低リスクですが、OpenSeaのような信頼できるサイトに以前に与えた承認を悪用される可能性はあります。
ERC-20トークンについては、最近イーサリアムに導入された「Permit機能」により、ガス不要の署名で承認を変更することも可能です。
1inchのような分散型取引所(DEX)を使うと、この仕組みが確認できます。
トークン承認の要点
承認を与える際は注意深くなり、どのトークンを、どのスマートコントラクトに承認しているのかを必ず確認してください(etherscanなどを活用)。
承認リスクを抑える方法:
-
複数のウォレットを使用する(承認はウォレット固有)― 高価値資産を持つ「金庫ウォレット」には承認署名をしない。
-
理想は、ERC-20トークンへの無制限承認を減らす、または完全に避けること。
-
定期的にetherscanやrevoke.cashを使って承認を確認・撤回する。

ハードウェアウォレット/コールドウォレット
ホットウォレットはコンピュータやスマホを通じてインターネットに接続されており、キーとウォレット情報がオンラインまたはブラウザ内に保存されます。
コールドウォレットはハードウェアデバイスであり、キーは完全にオフラインで生成・保管され、物理的にユーザーの近くに存在します。
Ledgerの価格が約120ドルであることを考えると、1000ドル以上の暗号資産を持っているなら、Ledgerの購入とセットアップを検討すべきです。LedgerをMetaMask (MM) に接続すれば、一定のセキュリティを維持しつつ、他のホットウォレットと同じ機能を使えます。
LedgerとTrezorが最も人気があります。私はLedgerが好きで、RabbyやMMのようなブラウザウォレットとの互換性が最も優れているからです。

Ledger購入時のベストプラクティス
常に公式メーカーのサイトから購入し、EbayやAmazonでの購入は厳禁 ― 改ざんやマルウェアプリインストールの恐れがあるためです。
受け取った商品のパッケージが密封されていることを確認してください。
Ledgerの初回セットアップ時に、リカバリフレーズ(12〜24語)が生成されます。
リカバリフレーズは物理的な紙に書き留めるか、将来的には金属プレートに刻むべきです。火災や水害にも備えられます。
決して写真を撮ったり、キーボード(スマホ含む)に入力したりしないでください ― そうするとリカバリフレーズがデジタル化され、安全なコールドウォレットが不安定なホットウォレットと同等になります。
暗号資産はハードウェアウォレット自体に保存されているわけではなく、リカバリフレーズから生成されたウォレット「上に」存在しています。
リカバリフレーズ(12〜24語)こそがすべてであり、何としても保護・管理しなければなりません。
このフレーズがあれば、そのフレーズから生成されたすべてのウォレットに対して完全な制御とアクセス権が得られます。
リカバリフレーズはデバイス固有ではありません。必要に応じて別のハードウェアウォレットに「インポート」できます(バックアップとして)。
リカバリフレーズが紛失または破損し、元のハードウェアウォレットも紛失・破損・ロックされた場合、すべての資産へのアクセスを永久に失います。
リカバリフレーズの保管方法はさまざまです。たとえば、複数の部分に分け、物理的距離を離して、目立たない場所(冷蔵庫の底にあるスープ缶、土地の地下など)に保管する方法があります。
最低でも2〜3部のコピーを持ち、そのうち1つは金属製にして火災・水害対策を講じるべきです。
「秘密鍵」はリカバリフレーズに似ていますが、特定の1つのウォレットのみに適用されます。新しいMetaMask (MM) アカウントにホットウォレットをインポートしたり、トレーディングロボットなどの自動化ツールで使う際に使われます。
第25番目の単語 ― Ledger
Ledgerは、オリジナルの24語のリカバリフレーズに加えて、オプションの追加セキュリティ機能を提供しています。
パスフレーズは高度な機能で、最大100文字の任意の「第25番目の単語」をリカバリフレーズに追加できます。
パスフレーズを使用すると、24語のフレーズだけではアクセスできないまったく異なるアドレス群が生成されます。
セキュリティ強化に加え、脅迫された状況での合理的否認(plausible deniability)も可能になります。
パスフレーズを使う場合は、正確に覚えたり安全に保管したりする必要があります。文字ごとに正確で、大文字小文字も区別されます。
これは「5ドルのハンマー攻撃($5 wrench attack)」という物理的脅威に対して唯一かつ最終的な防御手段です。
なぜここまで面倒な手順を経てハードウェアウォレットを設定するのか?
ホットウォレットは秘密鍵をインターネットにつながった場所に保存しています。
こうした資格情報を騙し、誤導、操って漏洩させることは極めて簡単です。
コールドウォレットを持つということは、詐欺師が物理的にあなたのLedgerやリカバリフレーズを見つけ出さない限り、ウォレットやその中の資産にアクセスできないということです。
リカバリフレーズが漏洩すれば、悪意あるサイトやコントラクトとやりとりしていないウォレットであっても、すべてのホットウォレットとその資産がリスクにさらされます。
過去に人々が「ハッキング」された主な方法
-
ホットウォレット経由で「ハッキング」(リカバリフレーズ漏洩)された主な方法には以下があります:
-
仕事の求人PDF、ベータ版ゲーム、Googleスプレッドシートでのマクロ実行、正規サービスを模倣したサイトなどを通じて、悪意あるソフトウェアをダウンロードさせられる。
-
悪意あるコントラクトと連携:模倣サイトでのFOMOミント、未知のエアドロップや受信したNFTコントラクトとのやり取り。
-
秘密鍵やリカバリフレーズを「カスタマーサポート」や関連プログラム/フォームに挿入または送信してしまう。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














