debiruはてなメモ

はてなブログの HTML が Invalid なの、わたし、気になります

VALUE-DOMAIN に存在していた2種類のドメインハイジャック脆弱性について

2022年3月2日に確認した VALUE-DOMAIN でのサブドメインハイジャックが可能な脆弱性について経緯を説明します。

ついでに2016年の記事「VALUE-DOMAIN に存在していたアカウント乗っ取り可能な CSRF 脆弱性について」の続報も含めて、この記事で2022年現在の VALUE-DOMAIN の状況についてお伝えします。

脆弱性を2つ発見しました

2022年3月2日に第一の脆弱性を、3月9日に第二の脆弱性を発見しました。これらについて順に説明します。

第一の脆弱性については、私よりも先に発見していた方がいます。その方から情報を聞いて検証し、私が IPA に届出したという経緯です。

第一:子ゾーン作成によるサブドメインハイジャック

2012年に「さくらDNSにサブドメインハイジャックを許す脆弱性 | 徳丸浩の日記」という記事が話題になりました。さくらのDNSサービスで、第三者が(正規のユーザの管理するドメイン名の)サブドメインを乗っ取れるという問題です。今回の第一の脆弱性はこれと同様の問題です。

第一の脆弱性の攻撃の原理

VALUE-DOMAIN では「VALUE-DOMAINで登録したドメイン名」または「他社管理のドメイン」のDNS管理(ゾーン作成)ができます。後者は、「VALUE-DOMAIN 以外で登録したドメイン名のDNS管理」を行うための機能のようです。しかし、実際には任意のサブドメインFQDNを指定してゾーンを作成することもできます。次の事例を見てください。

私が VALUE-DOMAINドメイン名を登録してDNS管理している lavoscore.work があります。この状態で第三者が「他社管理のドメイン名」のDNS管理機能を使って www.lavoscore.work ゾーンを作成することが可能でした。そして、その子ゾーンが作成される権威サーバは lavoscore.work (親ドメイン名)が委任されている権威サーバと同じなので、これでサブドメインハイジャックが成立してしまいました。(親子同居状態です。)

これと同様の脆弱性が2012年に「さくらDNS」で発見されたと書きましたが、その際に書かれた記事を示しておきます。詳細を知りたい方は以下の記事をお読みください。

VALUE-DOMAIN のネームサーバについて

VALUE-DOMAIN では ns1.value-domain.com のような形式で ns1, ns2, ns3, ns4, ns5 のセットと、ns11, ns12, ns13 のセットの2セットがあるようにコントロールパネルでは説明されています。しかし実際にはこれらは区別なく運用されています。例えば「ns11-13 のセット」に「DNSレコード XXX」を設定するという操作を行うと、ns1-5, ns11-13 の全ての権威サーバに XXX のDNSレコードが設定されます。

内部的に ns1-5, ns11-13 が区別なく使われているのは意図した仕様だそうです。カスタマーサポートに問い合わせて確認しましたがそのような回答でした。しかしコントロールパネルの説明文ではこれらがまるで区別されるかのように書かれていて、DNSレコード設定画面ではネームサーバの1個目が ns1-5 と ns11-13 のどちらかによって、DNSレコード設定内容の表示が振り分けられています(まるで2セットそれぞれを別々に設定できるかのように見えます)。このような挙動はユーザを混乱させるだけです。このことをカスタマーサポートに指摘しても何が問題か理解できていない様子でした。

結局のところ、これらが区別されていないため、サブドメインハイジャックを防ぐための自衛策が存在しないということになります。区別されていれば、「他社管理のドメイン名」のDNS管理で使われる権威サーバセットとは異なる権威サーバセットを使うことでサブドメインハイジャックを防げます。(親ドメイン名の権威サーバと、子孫ドメイン名の権威サーバを重複なく異なるものに設定できるかどうかがポイントです。)

第一の脆弱性 発見後の経緯

  • 2022年3月1日頃:私より先にこの問題を発見した人達が、自分たちの管理するドメイン名でサブドメインハイジャックの操作を何度か行った。
  • 3月2日:私がサブドメインハイジャックが可能であることを確認し、同日 IPA に届出をした。
  • 3月3日:IPAからは、受理するかどうか検討するので連絡を待ってほしいと連絡が来た。それとは別に、3月3日に VALUE-DOMAINサブドメインハイジャックができなくなっていることを私が検知したので、VALUE-DOMAIN のカスタマーサポートに問い合わせた。
  • 3月4日:3月3日に対策をしたと VALUE-DOMAIN からようやく返答があったので、IPA に対策済みであると通知した。
  • 4月7日:IPAから「受理する」および「事業者に脆弱性情報を通知した」と連絡がきた。
  • 4月11日:事業者からIPAに「対策済みである」と返答したようで、IPAから「本件の取り扱いを終了する」と連絡がきた。
  • 4月12日:IPAが取り扱い中の脆弱性情報については発見者に対して「情報非開示依頼」がされているので公表できませんでしたが、取り扱いが終了したのでこの記事を書いています。

VALUE-DOMAIN からは本件に関するプレスリリースが公開されていないようですが、3月3日の時点で「親ドメイン名がゾーン作成されている」場合には「サブドメインの子ゾーンを作成できない」ように対策を入れたようです。

3月2日まで攻撃可能であったのに VALUE-DOMAIN が3月3日に対策できた理由については、「3月2日までに子ゾーンを作成する操作が多かったことを検知して、この問題に気づいた」らしいことをカスタマーサポートの回答でされました。

サブドメインハイジャック攻撃を受けた場合の影響

サブドメインハイジャックは、正規のドメイン名の所有者に気づかれることなく攻撃をすることが可能です。子ゾーンが作成されても、正規のユーザには何の通知もされません。また、子ゾーンが勝手に作られているかどうかを調べることも簡単にはできません。

また、3月3日の対策後に、過去に攻撃されて作成された子ゾーンが排除されているのかどうかについては不明です。もし、サブドメインハイジャック攻撃を受けていて、VALUE-DOMAIN によってそれらが排除されていない場合、現在もサブドメインを乗っ取られ続けている可能性があります。

本来は VALUE-DOMAIN がこの脆弱性があった事実と、それらを排除したかどうかについて説明すべきでしょう。VALUE-DOMAIN を利用しているユーザがサブドメインハイジャックの被害を受けているか調べるには、VALUE-DOMAIN のカスタマーサポートに問い合わせるしかなさそうです。

サブドメインであっても)ドメインハイジャックという攻撃は非常に凶悪です。HTTPS の信頼性を崩壊させます。簡単に言えば、子どもの実印やパスポートを盗まれているのと同じ程度の問題と言えるでしょう。正規のドメイン名でフィッシングサイトを仕掛けられた場合、一般の閲覧者はそこがフィッシングサイトであることに気付くことは不可能です。ドメイン名というのはそれほど重要なものなのです。それがハイジャックされる可能性があるという話でした。

第二:CSRF 攻撃によるドメインハイジャック

2016年に「VALUE-DOMAIN に存在していたアカウント乗っ取り可能な CSRF 脆弱性について」という記事を書きました。VALUE-DOMAINCSRF 攻撃に脆弱であったという問題です。

2016年の時点でも、私は二度に亘って CSRF 脆弱性を指摘しています。一度目の指摘では「アカウントの削除操作」に対してしか CSRF 対策が施されず、「パスワードの変更操作」が簡単に第三者によって行える状態でした。これによりアカウント乗っ取りが可能だったわけです。

通常、CSRF 脆弱性があると指摘されたら、全ての更新処理について問題がないか検証するべきではないのでしょうか。なぜ VALUE-DOMAIN は指摘した箇所しか修正しないのでしょう。というわけで、まだ CSRF に脆弱な処理が残っていました。

それがネームサーバの設定です。「VALUE-DOMAINで登録したドメイン名」に対する「ネームサーバ」の設定をするフォームはデフォルトは POST リクエストですが、GET リクエストでも受け付けられ、「対象のドメイン名」と、設定したい「ネームサーバ群」と、「ネームサーバ更新を表すactionパラメータ」をまとめたパラメータを URL のクエリにでも書いてそのページにアクセスすると、ネームサーバが書き換わってしまいます。

ドメインハイジャック攻撃を受けた場合の影響

ドメインハイジャックは、正規のドメイン名の所有者に気づかれることなく攻撃をすることが可能です。ネームサーバが変更されても、正規のユーザには何の通知もされません。ただし、サブドメインハイジャックとは異なり、異変に気付くことは容易に可能です。正規のドメイン名のネームサーバ設定を確認することで、ネームサーバの不正な書き換えが行われていないかを確認することができます。

しかしながら、攻撃者が攻撃に気づかれないよう、2回目に元々のネームサーバ設定に戻すような CSRF 攻撃を仕掛けた場合、ドメインハイジャックされていたことに気付くことができなくなってしまいます。

CSRF 攻撃によるドメインハイジャックの対策状況

残念ながら、この脆弱性は2022年4月12日現在も残っています。

VALUE-DOMAIN のコントロールパネルに CSRF 脆弱性があることは2015年末に IPA 経由で指摘済みです。そして指摘に対して修正完了したという報告が IPA からあったので2016年の記事を公開しました。しかし CSRF 脆弱性は残っていたのです。

現在でも CSRF 脆弱性が残っていることを今更私が隠す意味はないでしょう。VALUE-DOMAIN が2016年に何を問題として認識しどのような修正を施したかを公表していれば、この記事で未修正の脆弱性があることを公表しなくても済んだかもしれません。また、IPA に届出ようものなら、また1ヶ月以上待たされてしまいます。IPA に届け出る気もありません。私は無料の脆弱性診断士ではないのです。

VALUE-DOMAIN の唯一の問い合わせ先はカスタマーサポート窓口であり、カスタマーサポート担当者には話が通じず頓珍漢な回答ばかりされるのでうんざりしています[1]

VALUE-DOMAIN ユーザの方へ

今回、何があったのかというと、特に何もありません。悪意のある第三者によって攻撃がなされたという事実はありません。単に「攻撃される可能性があった」という事実を確認したまでです。この記事を読んだからといって何かに怯える必要はありません。VALUE-DOMAIN を使い続けても今までとリスクは変わりません。

何となく VALUE-DOMAIN を使っていたけれど、この機会により信頼のできそうなDNSサービスへ移転しようと考えるのであれば、DNS管理を別のサービスで行うのが良いでしょう。

  第一の脆弱性(ゾーン作成によるサブドメインハイジャック) 第二の脆弱性CSRF 攻撃によるネームサーバの書き換え)
対策されているか 2022年3月3日に対策済み 本記事公開時点で未対策
攻撃を検知できるか 検知できない ネームサーバ設定を確認する
自衛策があるか 自衛策はない ログアウト操作を必ず行う
どうすればいいか 何をすべきか分からなければ、何もしないでよい

この記事では、VALUE-DOMAIN を使うべきではないと主張するつもりはありませんし、他のサービス(例えば Amazon Route 53 など)であれば安全であると主張するつもりもありません。良し悪しはどこにでもあります。他人の評価(こうしたブログ記事)ではなく、自身でそのサービスの価値や信用性を見極めることが重要です。

以上、VALUE-DOMAINサブドメインハイジャックとドメイン名ハイジャックが別々の攻撃手法により簡単に攻撃できたというお話でした。

  • [1] 今回も第一の脆弱性について「セキュリティに関わる重大な内容なので技術担当部門にエスカレーションした上で回答して欲しい。3月3日に何か対策を実施しましたか?」と質問したのに、「そんな問題は仕様上存在せず、メンテナンスや改修は行っていない」と出鱈目な回答をされています。その後の再質問でドメイン管理部門から「3月3日に対策を実施した」と回答されています。また、脆弱性があることを説明するために、問題(第三者による子ゾーンの作成)を再現した状況を残しておいて欲しいとお願いしたのに、説明も無しに一方的に子ゾーンを消されました。

    追記(4/12 20:20):VALUE-DOMAIN から「説明も無しに一方的に子ゾーンを消されました」と書いた部分について誤解があると指摘の連絡が入りました。VALUE-DOMAIN が言うには、「弊社サーバー契約を利用されずに、無料ネームサーバーを利用されることは、注意事項にある通りお断りしており、上記の通り、運用停止になるため、我々が意図して削除した訳ではありませんので、ご了承ください」とのことでした。

Next debiru's HINT 「WebはWEBじゃない