論文紹介:Ethereum Name Service: the Good, the Bad, and the Ugly

お知らせ
Table of Contents

この論文では、Ethereum上に構築された名前解決サービス、Ethereum Name Service(ENS)におけるセキュリティ問題や不正行為を体系的にまとめています。伝統的な DNS のセキュリティ問題と、ENS スマートコントラクトによってもたらされた新しい問題を含む、いくつかのセキュリティ問題と不正行為が確認されています。

[1]: Ethereum Name Service: the Good, the Bad, and the Ugly

ENS とは?

ENS は、EmerDNS や Handshake、Namecoin などの BNS(Blockchain-based DNS)ソリューションとは異なり、イーサリアム上のスマートコントラクトを活用してドメイン名の登録と解決を管理することで、DNS を補完するソリューションを提案することを目的としています。ENS は約4年前から導入されていますが、研究コミュニティでは体系的に研究されていませんでした。私たちは、このネームサービスの現状、特にセキュリティ問題やシステムのダークサイドについて、まだ知らないのです。例えば、

  • ENS にはどのくらいの数のドメイン名が登録されているのか
  • 人々はENSをどのように利用しているのか
  • セキュリティ問題やグレーな行動はENSに蔓延しているのか

などです。

ENS のベースとなっている DNS とは、ドメイン名とさまざまなネットワーク情報を関連付けるネットワークプロトコルのことです。DNS の最も一般的な用途は、ドメイン名を IP アドレスにマッピングすることです。典型的な DNS 名前解決プロセスを下図に示します。クライアントがドメイン名の IP を問い合わせようとすると、まず再帰的リゾルバ(フルリゾルバー)に問い合わせを行います。リゾルバが適切な情報を持っている場合は、その情報を直接返します。そうでない場合は、トップレベルドメイン(TLD)の情報を持つルートサーバに問い合わせ、該当する TLD サーバの情報を取得します。

ENS の名前解決は、2 つのステップで行われます。名前解決したいユーザは、レジストリに問い合わせて正しいリゾルバを見つけ、次にリゾルバから解決結果を得る必要があります。

ENS は主に、レジストリ(Registry)、レジストラ(Registrar)、リゾルバ(Resolver)の 3 種類のスマートコントラクトで構成されています。

  • レジストリ
    レジストリは、(あらゆるレベルの)ENS 名の所有者、リゾルバ、および ENS 名のレコードのキャッシュ TTL(time-to-live)へのマッピングを保存します。最初のオークションでの名前の些細な列挙を避け、スマートコントラクトでは異なる長さの名前を固定長の識別子とすることを強制するために、ENSは名前を "namehash" というプロセスで生成されたハッシュの形で保存します。namehash は、ENS ドメイン名のトップレベルのハッシュ("labelhash"と呼ばれる)と他の部分の namehash を組み合わせ、それに対して再度ハッシュを行うことで計算できます。このアルゴリズムにより、ENS 名の階層的な特性が維持されます

    namehash(example.eth) = keccak256(keccak256(example) + namehash(eth))
  • レジストラ
    レジストラとは、名前を所有する一種のスマートコントラクトで、いくつかのルール(支払いなど)に基づいてユーザにサブドメイン名を自動的に割り当てることができます。ENS チームはこれまでに、.eth の登録に Vickrey オークションレジストラやパーマネントレジストラなど、いくつかのレジストラコントラクトを使用してきました。また、パーマネントレジストラに加えて、名前の所有者に名前の管理を委任するレジストラコントローラという概念も導入されました。特に、ENS でサポートされている DNS ドメイン名(.kred や .luxe のような TLD)を登録しているユーザーは、DNSSEC によって所有権を証明し、Ethereum アドレスを含む TXT レコードを設定することで、ENS で自分の DNS ドメイン名を主張することができます。
  • リゾルバ
    リゾルバは、名前とレコードのマッピングを保存します。ENS は任意のレコードを保存できますが ENS チームが実装した「パブリックリゾルバ」では、あらかじめ 8 種類のレコードが定義されています(以下表参照)。

ENS の歴史

このセクションでは、ENS がどのように機能し、ENS の歴史における各段階でどのように ENS 名が登録されたかを詳しく説明します


ENS の公式ブログによると、ENS の進化のタイムラインは上図のようになっています。2017 年 3 月に ENS のサービスを開始したが、2 つの深刻なバグに遭遇し、サービスは開始後すぐにオフラインになりました。コードの修正後、2017 年 5 月 4 日にサービスを再開始し、名前登録に Vickrey オークションを採用しました。

Initial Auction(Vickrey オークション)

2017 年 5 月 4 日に ENS が正式にローンチした際、ENS チームは 6 文字以上の長さの名前を登録するためのVickrey オークションを実装したスマートコントラクトをデプロイしました。

Vickrey オークションは、封印入札型オークションの一種で、入札者は他の人がいくら入札したかを知らずに入札を行い、落札者は最高入札者でありながら、2 番目に高い価格を支払えばよいというものです。

また、ENS の Vickrey オークションでは、.eth の名前をハッシュに変換して、ただの列挙を避け、8 週間かけて徐々に名前を公開していきます。これらの方式は、ある程度、人々が希望する名前を手に入れる確率を高めるのに役立ちます。名前の入札者が支払ったイーサは、「deed」と呼ばれるスマートコントラクトに入金され、オークションの敗者は 0.5% の少ない返金を受けることができます。名前の落札者は、2 番目に高い価格を支払うだけでよく、登録後に支払ったすべてのイーサを 1 年間引き出すために所有権を放棄することができます。

Permanent Registrar, Short Name Claim, Short Name Auction

パーマネントレジストラ

ENS チームは 2 年間のオークションを経て、2019 年 5 月 4 日にオークションレジストラの代わりに 6 以上の長さの名前を登録する「パーマネントレジストラ」を開始しました。パーマネントレジストラは、レジストラコントラクトが深刻な欠陥のために交換しなければならなくなるまで、継続して運営することを目的としています。.eth の名前の課金方法は、年間賃料モデルに変更され、1 つの名前につき年間 5 ドルの課金が必要となります。パーマネントレジストラとともに、名前の管理を名前の所有者に委ねるために、レジストラコントローラという概念が導入されました。レジストラコントローラによって登録された名前は、登録トランザクション内でリゾルバと名前のレコードを設定することができ、登録プロセスが簡素化されます。

ショートネーム請求

2019 年 7 月、ENS チームは短い .eth 名(長さ 3~6 の名前)の予約を開始しました。これは、対象となる従来の TLD 名の所有者が、対応する .eth 名を要求し、事前に賃料を支払うことで、対応する .eth 名へのアクセス権を 1 年間取得できることを意味します(3 文字の名前の場合は ETH で 640 ドル、4 文字の名前の場合は 160 ドル、5~6 文字の名前の場合は 5 ドル)。2019 年 5 月 4 日以前に登録された短い第 2 レベルドメイン名の所有者は、以下のいずれかの名前を主張することができます。

  1. 元の名前と完全に一致すること(例:foo.com → foo.eth)
  2. 元の名前の eth 接尾辞を削除したもの(例:fooeth.com → foo.eth)
  3. 元の名前の 2LD と TLD を組み合わせる(foo.com → foocom.eth)

申請があった場合、ENS チームがリクエストの有効性を審査します。

ショートネームオークション

2019 年 9 月、長さ 3~6 の残りの短い名前の別のオークションが始まりました。ENS チームは、オークションプラットフォームとして有名な暗号資産マーケットプレイスである OpenSea を選択し、オークション方法として English Auction を使用しました。English Auction では、入札は公開され、入札者は複数回入札することができます。最も高い価格を提示した入札者が名前を落札し、預けた支払いは初年度の登録料となりますが、これは Vickrey オークションの期間とは全く異なります。ショートネームオークションの後、残りのショートネームは、その長さに応じた価格で登録が可能になります。この研究の分析によると、DNS 名の所有者が対応する ENS 名を主張することはほとんどありませんでしたが、一方で多くの有名ブランド名が短名オークションで高値で販売されています。

The Great Renewal

ENS が「パーマネントレジストラ」を導入して以来、従来のドメイン名のような有効期限や更新の仕組みも、この分散型ネーミングサービスに導入されました。現在 ENS では、すべての .eth の名前が名前の長さに応じて毎年課金され、誰でもその名前を所有しているかどうかに関係なく、.eth の名前を更新することができます。Vickrey オークションで登録された古い名前については、更新されなければ 2020 年 5 月 4 日に失効するように設定されていました。さらに、すべての .eth の名前には、有効期限終了後 90 日間の猶予期間があり、所有権を維持するために支払いを行うことができます。

このように、Vickrey オークション期間中に大量の名前が登録されたため、ほとんどの名前が 2020 年 5 月 4 日に失効し(実際には 90 日の猶予期間を考えると 8 月 2 日に失効)、2020年8月頃の更新期間は「The Great Renewal」と呼ばれました。

研究設計

研究課題

本研究では、ENS エコシステムの現状を把握し、セキュリティ上の問題点を調査することを目的としています。このため、本研究は以下の研究課題(RQ)により進めています。

  • RQ1: ENSの普及状況
    ENS は 4 年以上前に開始され、その目的は DNS を補完することであるため、その普及度、つまり、どれだけのドメイン名が登録され、どれだけのアドレスが ENS に関与しているのかを調査する必要があります。
  • RQ2: ENS の使用状況
    ENS が提供するユニークな機能を考慮すると、明示的なアドレス変換以外の ENS の利用方法は未知数です。したがって、すべての ENS 名の記録を分析することは興味深いことです。
  • RQ3: ENS のセキュリティ問題
    既存の研究では、ENSのエコシステムのセキュリティ問題を系統的に分析していないため、セキュリティ問題(従来の DNS のセキュリティ問題と新たに出現した ENS 固有の問題の両方)が ENS に蔓延しているか、また、それらがどの程度深刻かを理解することは重要です。これは、ブロックチェーンベースのネームサービスの設計に示唆を与える可能性があります。

データ収集

ENS に関連するあらゆる情報を採取することは、簡単ではありません。ENS は ENS ドメイン名(略して ENS 名、以下同じ)をハッシュ値の形で保存しているため、人間が読める名前を直接取得することはできません。また、ENS には複数のリゾルバ(サードパーティリゾルバを含む)があり、それらは異なる種類のプロトコルを使用して ENS 名のレコードをエンコードしています。そこで、下図に示すようなハイブリッドなワークフローに従って、ENS の包括的な情報を抽出しています。この研究でのデータセット収集には、3つの主要なステップがあります。

  1. ENS関連のスマートコントラクトを収集
    最初のステップは、ENS のコア機能(例えば、名前登録や名前更新など)に関連する公式スマートコントラクトをEtherscan から収集しています。Etherscan は、28 の ENS 公式スマートコントラクトに人間にとって意味のある名前をラベル付けしています。例えば、Vickrey オークションに使用されているコントラクトは、「Old Registrar」とラベル付けされています。この研究では、レジストリコントラクト、リゾルバコントラクト、レジストラコントラクト(レジストラコントローラコントラクトとショートネームクレームコントラクトを含む)を含む、ENS の解決に関連するスマートコントラクトにのみ焦点を当てています。

  2. イベントログのデコード
    関連するコントラクトを収集した後、各コントラクトの状態変化を取得するために、ブロックチェーンからイベントログを抽出します。そして、ENS の各コントラクトの ABI(Application Binary Interface)を取得し、その ABI に基づいてイベントログをデコードします。このようにして、レジストリコントラクトから名前所有者マッピング、名前リゾルバマッピングを取得し、リゾルバコントラクトからネームレコード履歴を取得し、レジストラコントラクトからオークション/登録履歴を収集します。さらに、ネームリゾルバのマッピングでは、多くの名前が追加のリゾルバに向けられることがわかります。そこで、オープンソースの追加リゾルバを含めるように努力し、それらのイベントログを取得し、それらの ABI に基づいてデコードしました。

  3. データ処理
    復号化されたイベントログには、Vickrey オークションの履歴など、今後の研究に直接利用できる情報もあります。しかし、これらのコントラクトの設計上、いくつかの追加的なデータ処理タスクがまだ必要です。具体的には、名前-所有者マッピングからハッシュ化されていない ENS 名を取得し、非 ETH ウォレットアドレスとコンテンツハッシュをそのエンコーディング規則に基づいてデコードし、対応するトランザクションからテキストレコードの値をフェッチする必要があります。

ENS スマートコントラクトは名前そのものではなく、ENS 名のハッシュ値を保存するため、これらのハッシュ値を読み取り可能な名前に復元する努力を行っています。まず、ENS の開発者は、Ethereum データのクエリ、抽出、可視化のためのプラットフォームである Dune Analytics に名前-ハッシュ辞書をアップロードしました。このウェブサイトから辞書を取得し、それに基づいてデータベースを更新します。さらに、460K 以上の英単語リストと Alexa トップ 100K ドメインリスト(2020 年 9 月 18 日にダウンロード)を元にラベルハッシュを生成し、レジストリイベントログのハッシュと照合します。また、新しい ENS レジストラコントローラの「NameRegistered」と 「NameRenew」イベントには、新しく登録された名前のプレーンテキストが含まれており、それらをデータベースに追加するだけでよい。名前レコードについては、ETH以外のアドレスやコンテンツハッシュは統一的にエンコードされているため、EIP-2304 と EIP-1577 のルールに基づいてデコードしています。テキストレコードについては、EIP-634 や ENS のドキュメントにあるように、そのイベントログにはキーだけで、値は含まれていません。そこで、これらのイベントログに関連するトランザクションデータを Ethereum 台帳から取得し、ABI に基づいてデコードしてテキスト値を取得します。

データセット概要

最終的に、Ethereum のブロック 10,746,639(2020-08-28 03:03:42 UTC)までのすべての元帳情報を取得することができました。全体の統計は以下の図の通りです。合計でレジストリログが 200 万件以上、レジストラログが 340 万件、リゾルバログが 20 万件取得できています。イベントログに加え、テキストレコードに関連する 3,000 以上のトランザクションを取得し、デコードしています。レジストリレコードから 465,827 件の ENS 名を発見しました。また、合計で 373,950 の名前(323,255 の .eth 名を含む、全 .eth 名の 86.6% を占める)を復元しています。

RQ1: ENS の普及状況

ENS 全体概要

以下の図は、465,827 件の ENS 名の概要を示したものです。ENS の .eth 名登録に参加したことのあるアドレスは 107,617 件、調査時点では 183K 件以上の有効な名前があり、74.4% のアドレス(80,081 件)に関連しています。また、ENS では .eth の他に 2,254 件の DNS 名(EN Sは 2020 年 8 月 26 日に伝統的な DNS TLD .ceo を導入しました)が登録されており、DNS サービスを補完するという ENS のビジョンの一端を見ることができます。

ENS 名の進化

以下の図は、月別の登録件数を示したものです。名前の「NewOwner」イベントの最初のブロック時刻を初回登録時刻としており、図は毎月の ENS 名(全 ENS 名と .eth 名)の初回登録の推移を示しています。ENS チームは 2017 年 3 月に一度サービスを開始したが、2 つの深刻なバグに遭遇し、サービスがオフラインになっています。そのため、2017 年 3 月には .eth や addr.reverse といった基本的な ENS 名しか登録されず、すぐに登録解除されました。2017 年 5 月 4 日に ENS が再始動し、5 月 9 日に(5 日間のオークション期間を経て)登録された最初の ENS 名は「rilxxlir.eth」です。ローンチ後の最初の 7 カ月で 192,471 件(全 .eth 名の 51.6%)が登録されました。2018 年 11 月にピークがあり、43,832 件が登録されました。この月は、4 アドレスが中国語のピンイン名(例:tianxian.eth)や日付や数字を組み合わせた名前(例:20140409.eth)を大量に登録し、その結果、オークション期間の登録数で 2~5 位にランクインしています。2019 年 5 月 4 日、ENS チームは旧来のオークションプロセスに代えて、新しい登録レジストラを立ち上げました。9 月から 11 月にかけてショートネームオークションが始まるまで、登録数は微増しました。ショートネームオークションは、10 月と 11 月の他の名前の登録にも影響を与えました 2 月には、分散型バーチャルリアリティプラットフォームの Decentraland が、独自のネーミングシステムのために 12K 以上のサブドメイン名を作成し、名前の数が増加することにつながりました。

ENS 名の所有者

ENS レジストリの .eth 名の所有者変更に関連するすべてのイベント(「NewOwner」と「Transfer」イベント)を追跡し、各アドレスが保有する .eth 名の数を分析します。これら 373K の ENS .eth 名は、42,154 の Ethereum アドレスによって所有されたことがあります。この調査時点で 35% 以上のアドレスが複数の名前を所有しており、ENS は現在 .eth 名に対して年会費の仕組みを設けていますが、依然として多数の .eth 名を保有するユーザーが存在することが分かります。この調査の時点における上位10名の名前所有者は、登録されている .eth 名のおよそ 10% を所有しており、将来の利益のために登録した名前を保持する傾向があると推察されます。最も多くの名前を保有しているアドレスは 0xbcbd4885ee8b2b74249c5ad9b8b668fb256a51b1 で 2,262 件の名前を保有しており、辞書にある単語(例:plead.eth、 height.eth)や有名ブランド(例:disneyplus.eth)が多く登録されていることがわかります。このアドレスと他のトップホルダーは、不法占拠行為に関与している疑いがあります。

名前の長さ

長さの異なる .eth 名の人気度を、復元した ENS 名と一緒に分析します。上の図(左)は、長さが 20 未満の .eth の名前の分布を示しています。ENS は当初、長さが 6 以上の名前登録のみを受け付け、クレームとオークションの後に短い名前登録を開始しました。また、現在、長さが 5 未満の名前には、年間 160 ドル以上の費用がかかります。これは、長さが 6 以上の .eth の名前がより人気がある理由を説明しています。調査時点では、長さが 5〜8 の名前が期限切れでないの .eth の50.4%を占め、登録の主な選択肢となっています。長さが 20 を超える .eth 名は 2, 705 件あり、最も長い名前は 242 文字の "a "である。

Initial Auction(Vickrey オークション)

この期間中に入札された名前は 361,751 件でした。このうち、274,052 件の名前が登録され、17,625 件のアドレスから 338,252 件の有効入札がありました。なお、8 万件以上の名前がオークションにかけられなかったり、他のユーザが見つけた短い名前によってオークションがキャンセルされたりしています。以下の図は、入札数と最終的なオークション価格の分布を示しています。興味深いことに、入札の 45.7% は 0.01ETH であり、92.8% のオークション名が 0.01ETH と評価されています。最高入札額は ethfinex.eth の 201,709 ETH で、そのオークション価格は 0.01 ETH でした。

Short Name Claim

この間、344 件のリクエストがあり、193 件が承認されました。このうち、nba.com、paypal.cn、ebay.net、opera.com、infura.io といった有名な伝統的サイトが申請し、対応する .eth 名を取得しており、ENS がブロックチェーンコミュニティを越えて注目されていることが分かります。

Short Name Auction

このオークションは OpenSea で行われ、このオークションの詳細は ENS コントラクトのイベントログに表示されないため、ENS ブログで OpenSea が共有しているデータを活用し、今回のオークションの傾向を分析します。このオークションでは、合計で 50K 以上の入札があり、7, 670 の名前が 5,697ETH で落札されています。価格分布は以下の図(左)の通りである。およそ 10% の名前が 1.5ETH(調査時間では約 594 ドル)以上の価格を持ち、22% 以上の名前が 10 回以上入札されています。Vickrey オークション期間中の名前価格と比較すると、短い名前の価格は、ユーザが証書に入金する代わりに、実際に入札額を支払う必要があるため、比較的低い傾向にあります。ショートネームの請求期間中に対応する .eth 名を請求したブランドが少なかったことを考慮すると、悪質な業者が有名なブランド名を入札して悪用した可能性があります。

The Great Renewal

上図(中)は、期限切れ名と更新名の分布(調査時点の状況)を示したものです。なお、90 日の猶予期間を考慮しています。2020 年 8 月に失効した名前が多く、更新は主に 2020 年 8 月頃に発生していることがわかります。
上図(右)は、389 件のプレミアムネーム登録の分布です。初日(8 月 2 日)に登録されたプレミアムネームは 44 件であり、ほぼ満額のプレミアムで登録されたことがうかがえます。例えば、makerdao.eth や balancer.eth といった分散型金融(DeFi)関連の ENS 名は、これらの ENS 名公開と同時にほぼ満額登録されています。デザイン通り、8 月 30 日にプレミアムなしで登録可能な名前の最初のバッチが公開されるため、8 月末頃に急増するのはそのためです。このプレミアム方式は、ある程度狙った名前を取得できる可能性が高くなります。

RQ1 の回答:
ENS は 4 年間の進化の中で、徐々に人気が出てきている。今回の調査では、465,000 件以上の ENS 名が登録され、そのうち 180,000 件がアクティブになっている。希少性の高い ENS 名を高い値段で購入したり、できるだけ多くの ENS 名を取得しようとするユーザーも少なくない。

RQ2: ENS の使用状況

次にユーザが ENS 名をどのように使っているのかを分析して、RQ2 の回答を示しています。前述の通り、ENS はブロックチェーンアドレスへのリンクの他に、ユーザがテキストレコードや web3 コンテンツハッシュなどをアップロードする機能も提供しています。

ENS レコードの概要

取得したリゾルバのイベントログを解読した結果、140K以上の名前が170K回以上レコードを設定されていることがわかりました。下図(a)はレコード設定の分布を示しています。ENS が最も広く利用されているのはブロックチェーンアドレスの代替であり、レコード変更総数の 67.3% 以上を占めていることがわかります。その他のレコードとしては、コンテンツハッシュレコード、公開鍵レコードテキストレコードなどがあります。レコードを持つ名前の分布は上の表の通りです。興味深いのは、これまでにレコードを持ったことのある名前が 22% しかなく、.eth の名前では 12%(31% 未使用)しかレコードを持っていないことです。具体的には、最大で異なるブロックチェーンアドレス、異なるキーワードを含むテキストレコード、その他の単一レコードを含むことができる。また、上の表は、名前ごとのレコード数の分布を示しています。ほとんどの名前が 1 つのレコードを持ち、98% のレコードがイーサリアムアドレスです。

ブロックチェーンアドレスレコードの使用

アドレス設定のほとんどは、イーサリアムとビットコインのアドレスに関連するものです。前者は 114,542 件の設定記録があり、後者は 873 件の設定記録があります。上位 5 位までの非 ETH アドレスの分布を上図(b)に示しています。他の種類のアドレスは設定回数が 200 回未満です。他のブロックチェーン上のアドレスはサポートされているものの、イーサリアムアドレス以外の目的で ENS を活用している人はまだ少ないと推察されます。

コンテンツハッシュレコードの使用

ENS のもう一つの大きな用途はコンテンツハッシュの保存であり、これまでに約 5,300 件の名前がコンテンツハッシュレコードに設定されています。空でない値を持つ名前はおよそ 2,700 件あり、その分布を上図((c)に示しています。コンテンツハッシュの大部分(98%)は、IPFS と Swarm という分散型公開・保存のためのソリューションに設定されています。

テキストレコードの使用

ENS では、ユーザーが任意のテキストレコードを、あらかじめ定義されたキーを持つ Key-Value レコードの形で同時に設定することができます。空値を除いたテキストレコードのキーについて分析を行ったところ、上図(d)に示すような上位 9 件が得られた。ほとんどの設定が URL であり、履歴レコードの半数が OpenSea のサブドメインに設定されていることから、これらの名称が販売されていたことがわかります。その他の URL は、公式サイト(tokenfactory.global など)、個人ブログサイト(marvin-elsen.com など)などに使用されています。「vnd.twitter」(Twitterアカウント)、「description」(名前の説明)などの定義済みのキーワードのほかに、テキストレコードにはカスタマイズされたキーワードもあります。214 のレコード設定から 44 のカスタマイズされたキーワードが確認され、人々が ENS との新しい付き合い方を模索していることが分かります。

RQ2 の回答:
ENS は、ENS ドメイン名をあらゆる種類のレコードに設定できるフルオープンシステムです。最も多い用途は、ブロックチェーンアドレスへのリンクで、レコード変更の 67.3% を占めています。そのほか、dWebs や従来の Web サイトなどに ENS 名を利用することも人気です。また、テキストレコードを通じて、人々が ENS との新しい関わり方を模索していることもわかります。これは、ENS が DNS の補完的なシステムになりつつあることを示唆しています。

RQ3: ENS のセキュリティ問題

従来の問題点と ENS の性質上新たに導入された問題点を含めて、ENSにセキュリティ上の問題がないかを調査して、RQ3 の回答を示しています。

ドメイン不法占拠

ドメンス不法占拠とは、有名なランドマークと同一または紛らわしい名前のドメインを登録する行為で、通常、悪意を持って利用されます。ドメイン不法占拠の問題は、従来の DNS で広く研究されています。この一般的な悪意ある行為が ENS で流行しているかどうかを理解するために、登録された ENS のドメイン名を 3 つの観点から分析します。まず、ほとんどの TLD で有名なブランド名がブランド所有者によって登録されている DNS のドメイン占拠とは異なり、ENS が導入した .eth TLD は新しいネームスペースです。上述したように、.eth の名前を主張するブランドはほとんどないため、明示的なドメイン占拠の余地を残しています。第二に、DNS に関する先行研究で観察されたように、攻撃者は、よく知られた DNS ドメインに類似したドメイン名を登録するために、ドメインのタイポスクワッティング手法を使用する傾向があります。したがって、同じ手法が ENS 名を登録するために悪用される可能性があります。最後に、ENS が新しい .eth TLD を導入したため、スクワッターは Alexa リストの上位ドメイン名以外に、より多くの ENS 名を登録する可能性が高くなりました。

有名ブランドの明示的なスクワット

上述したように、Alexa トップ 100K 名前リストを利用して、ENS の各レベルの名前を照合しています。つまり、Alexa のリストにある各 2LD のラベルハッシュ(名前の keccak256 ハッシュ)を計算し、ENS 名の各ラベルハッシュとマッチングさせている。Alexa のトップ 10 万件のうち、ENS のネイティブ 2LD と一致するものは 18,233 件、つまり、18,233 件の ENS .eth 名(うち 31 件はショートネーム請求期間で請求)が、Alexa リストの名前と同じ名前を持っていることがわかりました。ただし、実際の所有者によって登録された名前である可能性があるため、一致する ENS 名がすべて不法占拠の名前であるとは限りません。ここで、1つの Ethereum アドレスが、DNS ドメイン名において異なる所有者に属する複数の既知の ENS 名(例えば、google.eth と facebook.eth)を所有している場合、これらの既知のブランドの .eth 名は、明示的に不法占拠された名前と見なします。例えば、0x782cf6b6e735496f7e608489b0c57ee27f407e7d というアドレスには google.eth、mcdonalds.eth、redbull.eth などの登録があり、これらのブランドは同じオーナーに属しているわけではありません。したがって、このアドレスは明示的な ENS 名不法占拠に関与していると考えられます。

このようにして、1,532 のイーサリアムアドレスが管理する 15,179 の ENS .eth スクワッティングネームが発見された。有名ブランドが不法占拠のために多く登録されていた。これらの明示的な不法占拠の ENS .eth 名のうち、42.7% 以上が現在アクティブであり、一部の攻撃者はこれらの明示的な不法占拠名を長期間保持する傾向があることが示唆されました。

タイポスクワッティング ENS 名

タイポスクワッティングされた ENS 名を検出するために、Alexa のトップ 10 万件の名前のタイポスクワッティング変種を生成するツールとして広く利用されているdnstwist を活用しました。ドメイン google.com を例にとると、dnstwist はこのドメインに、加算(例:googlea.com)、bitsquatting (例:ggogle.com)、ホモグリフ(例:goglë.com)、ハイフネーション(例:, g-oogle.com )、挿入(例:g0oogle.com)、省略(例:goge.com)、繰り返し(例:goggle.com)、置換(例:gogl4.com)、転置(例:goolge.com)、母音置換(例:geogle.com)、各種(例:googlecom.com)などがあります。Alexa トップ 100K に含まれる全てのドメインを dnstwist に与え、755,908,096 の変種を得ることができます。同様に、その 2LD のラベルハッシュを計算し、これらの不法占拠名がすでに ENS に登録されているかどうかをチェックします。

その結果、13,450 の Alexa ドメイン名をターゲットとした 18,483 の ENS タイポスクワッティング .eth 名を特定し、その例を付録の表に示しています。下の図(左)は、変種タイプの分布を示しています。およそ 5K の bitsquatting の変種と1,270のホモグリフドメインがあります。タイポスクワッティングの ENS .eth 名の 52% 以上が、調査の時点までにアクティブになっています。

不法占拠名前分析

合計で 33,662 件の不法占拠 ENS .eth の名前を過去のヒューリスティックに基づいて収集しています。次に、これらの不法占拠ドメインの記録と所有者を調査し、「guilt-by-association」展開法に基づき、より疑わしい名前を特定することを目指します。

不法占拠されたドメイン名の記録
不法占拠された ENS .eth 名は 4,474 件(有効なものは 3,775 件)しか記録が設定されておらず、そのほとんど(85%)はブロックチェーンアドレスの記録のみが設定されています。イーサリアムアドレス以外の記録は、Opensea のリンクや IPFS のサイトがセール情報を掲載しているなど、セールに関するものがほとんどです。これらの特定された名前の不法占拠性を示しています。

アドレス間の関係
特定された ENS .eth の不法占拠名について、名前-所有者間および所有者-所有者間の関係をさらに調査しています。全体として、これらの 33,662 の名前は、6,548 のアドレスによって所有されたことがあります。下図は、名前と所有者の関係を、所有期間の長さに応じて示しています(ENS ドメイン名は所有者を変更できることに注意してください)。興味深いのは、いくつかの名前が複数のアドレスによって所有されていることです。さらに調べると、いくつかのアドレスは、名前を譲渡したこともあることがわかります。たとえば、0xbd21109e2bdcb24c4fbcdc16a4c90f34e81228e2 というアドレスは、図中の 3 つのアドレスから ENS .eth 名を受け取りました。また、いくつかのアドレスが大量の ENS .eth 名を保持していることがわかります。上図(右)に示すように、10% 以上のアドレスが 10 個以上の不法占拠 ENS .eth 名を保持しており、これらの名前は不法占拠 ENS 名全体の 70% を占めています。

"Guilt-by-Association" の拡大
著者らのヒューリスティックは、不法占拠ドメインを登録する不法占拠者については、これまでの探索で最も人気のある Alexa ドメインしか考慮していないので、著者らが特定したよりも多くの不法占拠ドメインを保有している可能性が十分にあるということです。著者らはこれを「Guilt-by-Association」の原理と呼んでおり、これまでの研究で悪意のあるドメインやマルウェアを特定するために使われてきました。そこで、特定された不法占拠者が保有するすべての ENS 名を分析します。
合計で 279,193 件の疑わしい不法占拠 .eth 名が見つかり、これらも不法占拠名である疑いが高いと判断されました。上図(Fig12)は、これらのアドレスの分布を示しています。不法占拠者の 40% 以上が 10 個以上の ENS .eth 名を保有したことがあり、これは疑わしい名前全体の 96% 以上を占めます。不法占拠名が多い上位 10 名の保有者を以下の表に示します。これらが所有する ENS 名の多くは、中国語のピンイン(例:jianshu.eth)や数字(例:8062222.eth)を含んでいます。トップのアドレス 0xbd21109e2bdcb24c4fbcdc16a4c90f34e81228e2 は、これまでに 1,276 件の ENS 不法占拠名を取得し、合計で 40K 件以上の名前を保有していることがわかります。これらの上位 10 アドレスは、これまで全名前の約 17% を占めており、無視できる数ではありません。これらのことから、不法占拠者は、Alexa リストの上位にランクインしない場合でも、他の ENS 名をより多く登録する可能性があることがわかります。

不法占拠名の進化
下図に示すように、これら疑わしい ENS の不法占拠名の変遷も調査しています。最初の不法占拠名(例えば、zhifubao.eth、Alipayのピンイン)は、最初のオークション開始とほぼ同時の 2017 年 5 月 9 日頃に登録されています。さらに、全体の不法占拠の傾向は、一般名称の傾向を踏襲しており、ENS の各期間において一定の不法占拠行動があったことがある程度示唆されています。しかし、ENS チームが永久レジストラを立ち上げた後、ほとんどの期限切れの名前はこれらの不法占拠者によって手放されましたが、67,614 件の疑わしい ENS 不法占拠名(調査時点で有効な ENS .eth 名の 75%)がまだ保持されています。例えば、2018 年 11 月に大規模な不法占拠行為が起こったとき、0xbd21109e2bdcb24c4fbcdc16a4c90f34e81228e2 というアドレスは 40K 以上の名前を登録しましたが、調査時間までに彼は 1 つの名前のみしか所有していません。

誤動作に関する Web サイト

ENS は、URL 情報を「TextRecord(テキストレコード)」や「DNSRecord(DNS レコード)」に、分散型 Web 識別子やオニオンサイトハッシュを「ContentHash」に格納する機能を提供しているため、悪意のある事業者がこれらの機能を利用して悪質・不正な Web コンテンツを配信する可能性があります。そこで、ENS に格納されたことのあるウェブサイトを対象に分析を試みました。

まず、70 以上のアンチウイルスエンジンを提供する有名なアンチウイルスサービスである VirusTotal に全 URL をアップロードし、悪意のある Web サイトをスキャンしています。先行研究に従い、ある URL が 2 つ以上のアンチウイル スエンジンによって報告された場合、その URL は悪意ある URL と してマークされます。次に、Eyewitness を使って、これらすべてのウェブサイトのスクリーンショットとソースコードを取得し、Google Cloud Natural Language API と Vision API にアップロードして、検閲対象(成人や賭博など)のコンテンツが含まれているかどうかをチェックします。そのほか、名前やコンテンツに「カジノ」や「ジェネレーター」などのキーワードが含まれる URL は、怪しい URL としてマークしています。疑わしい URL はすべて手動で検査し、誤検出を減らしています。

合計で 19 件(第 2 レベルの ENS 名 17 件)の悪質な dWeb URL を取得しました。発見された悪意のある Web サイトは、ギャンブル(7)、アダルト(5)、詐欺行為(7)に関与していました。なお、dWeb はオンライン上にデータを永続的に保存しない場合があるため、分析期間中に到達できないコンテンツがあります。したがって、実際の悪質な dWebs の数は、今回確認した数よりも多いはずです。分散型であるがゆえに、これらの悪意のあるdWebは、長期間にわたってオンライン上に存在し、ユーザに一定の損失を与える能力を有しています。テキストレコード内の従来型 URL については、ENS 上で悪意のある従来型 DNS ウェブサイトは見つかっておらず、ENS を通じて DNS ドメインにアクセスする便利な方法も今のところありませんが、将来的にこの機能が悪用される危険性はあります。

詐欺アドレス

ENS は主にブロックチェーンのアドレス記録を保存するために使用されています。したがって、さらに悪意のある目的で使用されるアドレスがあるかどうかを分析します。

詐欺ブロックチェーンアドレスの利用可能な包括的なデータセットがないことを考慮し、様々なソースから詐欺アドレスリストを作成します。Etherscan と Bloxy は、「フィッシング」または「ハッキング」されたイーサリアムアドレスのリストをラベリングしています。BitcoinAbuse と CryptoScamDB は、悪意のあるブロックチェーンアドレスを追跡するためのホスティングサイトです。上記のすべてのアドレスをクロールし、合計で 58K 以上の詐欺アドレスを取得します。そして、ENS に保存されているアドレスと詐欺アドレスのリストを照合します。

下図(Table 6)に示すように、ENS に登録されている詐欺アドレスは 3 件であることがわかった。手作業による検査では、2 番目のアドレスは詐欺のアドレスではない可能性がありますが、その ENS 名はネズミ講のようなウェブサイトにリンクされていました。このような事例は少ないものの、悪意のある行為者は、ENS を悪意のある活動に悪用する方法を見つけ出しています。

レコード持続性

攻撃シナリオ

ENS の名前が期限切れになったとき、その名前とそのサブドメイン名のレコードは保持され、一部の ENS サポートウォレットはそれらをブロックチェーンアドレスや他のレコードに解決することができることが分かっています。これにより、以前のユーザーがこれらの期限切れの ENS 名をまだ使用している場合、詐欺に遭う可能性があります。想定される攻撃の一例を上図(左)に示します。記録を持っている期限切れの名前を攻撃者が再登録し、名前の記録をあらかじめ自分のアドレスに変更しておくと、この変更に気づかず受取人アドレスを確認しない人が、最終的に攻撃者に送金してしまいます。

脆弱 ENS 名

さらに、このような攻撃に対して脆弱な ENS 名、つまり、レコードを持つ期限切れの ENS 名がどのくらいあるのかを探る。履歴レコードに頼った結果、16,017 の期限切れ .eth 名が、その中またはそのサブドメイン(3,116 のサブドメイン)にレコードを持っています。これらの名前には、ブロックチェーンアドレスだけでなく、悪用されるとユーザーをフィッシング/悪意のあるウェブサイトに誘導する可能性のある dWeb ハッシュも含まれています。特に、ENS 名 thisisme.eth は 706 のサブドメイン名を持ち、その全てにイーサリアムのアドレスレコードがあります。enslisting.com に無料登録で掲載されており、この名前のサブドメイン名のレコードが簡単に変更されないようにスマートコントラクトに移行されました。また、ENSListing チームは、毎年の更新費用を負担すると主張していた。しかし、この名前は 2020 年 5 月 4 日に有効期限が切れていたため、保護のために再登録しました。なお、この名前のサブドメイン名を使っている人がまだいるようです。上図(右)はその例で、thisisme.eth の名前でエアドロップの活動に参加していた人がいました。このように、攻撃者は脆弱なENS名を特定し、再登録することで利益を得ることが可能です。ENS チームでは、2020 年 6 月に更新を促すメール通知機能を新たに提案していますが、ENS 名のセキュリティ上の懸念は依然として深刻です。

RQ3 の回答:
ENS の動作メカニズムは進化の過程で大きく改善されましたが、攻撃者がシステムを悪用する余地はまだ残っています。私たちは、従来の DNS のセキュリティ問題や ENS のスマートコントラクトによってもたらされた新しい問題など、いくつかのセキュリティ問題や不正行為を確認しています。少数の不法占拠者が有名ブランド名とその亜種を大量に保有していることが判明し、悪用される可能性があります。いくつかの悪意のある分散型ウェブサイトや詐欺のアドレスが ENS の名前のレコードで発見されています。さらに、潜在的な攻撃を引き起こす可能性のあるレコードの永続性の問題が発見され、ユーザーに経済的損失をもたらす可能性があります。

影響

ENS 上の一定のアクティブなアドレスとユーザーを考慮すると、統合された dApps と DNS TLD とともに、ENS はまだ比較的健全なエコシステムを有しています。公式チームによると、彼らはほとんどの DNS 2LD の統合を可能にするために Ropsten テストネット上にスマートコントラクトを展開し、レイヤー 2 でのスケーリングを含む多くの改善などを計画し、ENS ユーザーの日々の使用を非常に容易にし、コストを削減することができます。しかし、ENS にはいくつかのセキュリティ問題があるため、ENS チームは ENS のセキュリティを強化するための解決策を検討する可能性があります。展開されているスマートコントラクトに変更を加えることの難しさとコストを考慮すると、ENS をサポートする dAPP またはブロックチェーンウォレットの開発者は、不法占拠名または悪意のある記録を検出し、これらの疑わしい ENS 名と対話しようとしているユーザにリマインダーを与えるために本研究で用いた同様の方法を展開してもよいでしょう。ENS ユーザにとっては、ENS 名とやり取りする際に、ENS 名下の実アドレスを確認した方が良い可能性があります。また、BNS は耐タンパ性記録など共通の性質を持つため、本研究で用いた手法は他の BNS システムの研究にも拡張可能です。

タイトルとURLをコピーしました