イーサリアム上のDeFiでは日々数万件の取引が行われている一方、PancakeswapやCream Financeなどが被害を受けたDNS攻撃(ハック)や、ハッカーによる資産を狙った攻撃が後を絶えません。DNSハックの場合、公式URLをお気に入り登録からアクセスして注意していたとしても、そのURL自体がハッカーの偽サイトにアクセスが飛ばされてしまうため、実質的に”見抜くことは不可能”であるといえるでしょう。
またUSDCやDAIなどのERC20トークンを使用する場合、コントラクトに残高を変更させる”Approve”を許可する必要があります。このApproveはDeFiにとって非常に注意が必要な動作であり、最悪の場合ハッカーに資産を盗まれる可能性があるため最も慎重に署名しなければいけないのです。
これらDNSハックや、ハッカーによるフィッシングにはイーサリアムの特徴を利用することで事前に避けることができ、DeFiユーザーに取って必須知識であると言えるのです。
本稿では墨汁うまいが実際に行っているDeFiのセキュリティ対策と、安全にApproveやコントラクトアドレスに署名する方法について実例を用いて詳しく解説を行います。
- 1 DeFiとNFTのセキュリティ対策一覧
- 2 DNS攻撃/ハックとは?
- 2.1 EtherDeltaのDNSポイズン
- 2.2 PancakeswapのDNS攻撃
- 3 DNSハックとDeFi
- 4 DeFiフィッシングを避けるには?
- 5 DeFiコントラクトの種類
- 6 Uniswapの場合
- 7 Curve Financeの場合
- 8 アグリゲーターの場合
- 9 コントラクトアドレスの確認方法
- 10 DeFiのApprove問題
- 11 Approveの危険性を実例で見る
- 12 安全にApproveの署名をするには?
- 13 Etherscanでの確認
- 14 コントラクトアドレスの確認項目
DeFiとNFTのセキュリティ対策一覧
DeFiやNFTのフィッシングはその仕組みを理解するとほぼ100%防ぐことができます。DeFiやNFTの仮想通貨投資家が知るべきセキュリティ対策については下記リサーチレポートでわかりやすく解説しています。
・99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Pt.1Approveの危険性を理解する
・99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Pt.2フィッシングを避ける安全な署名方法とは?
・99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Pt.3Solidityの背景から理解するUniswapの動作
DNS攻撃/ハックとは?
イーサリアムやBSCなどのDeFiで最も気をつけなければいけないのはDSN攻撃 or DNSハックまたはDNSポイズンです。これはDNSをジャックして偽のサイトへとアクセスを飛ばし、”公式URLから”アクセスさせることでコントラクトなどに署名させて資産を盗むという手法です。
EtherDeltaのDNSポイズン
DeFiにおける初のDNSポイズンによる被害はEtherDeltaで、ハッカーがEtherDeltaの偽サイトへ誘導しETHを盗む被害がありました。当時の被害額は279ETHで、約2650万円に相当。
PancakeswapのDNS攻撃
また2021年に入ってBSC上のSushiswapのフォークであるPancakeswapのDNSがハイジャックされ、他にはCompoundのフォークであるCream Financeも同様の被害にあいました。Pancakeswapでの被害は不明ですが、EtherDeltaの事件とは異なりニーモニックフレーズなどのシードフレーズを入力する初心者向けのフィッシングであったと報告されています。
DNSハックとDeFi
DeFiによってコントラクトの利用がスタンダードとなったイーサリアムにおいて、DNSハックは致命的問題であると言えるでしょう。DeFiのフィッシングでは
小文字のL→数字1
大文字のi→数字の1
などでURLそのものを似せて、Google広告などに出すことが多いです。
こういう場合にはURLに気をつけていれば被害を未然に防ぐことができますが、DNSが書き換えられている場合には”公式からアクセスしてもフィッシングサイトに飛ばされる”のです。そのため注意していても通常のサイトのようにDeFiを使用してしまうと、被害にあう可能性が非常に高いという問題があります。
出典:https://ethereum-japan.net/ethereum/the-world-computer-and-future/
DeFiフィッシングを避けるには?
DeFiのフィッシングを避けるにはコントラクトアドレスを意識することが重要です。あくまで公式サイトはイーサリアムにアクセスするためのインターフェイスでしかなく、
「コントラクトアドレスは偽装をすることができない」
からです。これはブロックチェーンの利点であり、ユーザーが自己防衛として必ず注意しなければいけない鉄則と言えるでしょう。
DeFiコントラクトの種類
DeFiのコントラクトには、いくつかの種類があり署名する場合一定であったり異なったりします。コントラクトアドレスの違いをDeFiの種類から見ていってみましょう。
主にコントラクトには以下のようなものがあります。
1.Uniswap系