忘れ去られたドメイン名に宿る付喪神
2022年10月13日 木曜日
CONTENTS
こんにちは。IIJ Engineers Blog編集部です。
IIJの社内掲示板では、エンジニアのちょっとした技術ネタが好評となって多くのコメントが付いたり、お役立ち情報が掲載されています。
そんな情報を社内に留めておくのはもったいない!ということで、IIJ Engineers Blog編集部より、選りすぐりの情報をお届けします。
今回は、使わなくなったドメイン名はどのようにすればよいかを紹介します。
そのまま放置しておいてよいのか?(ダメ)
廃止すればよいのか?(もっとダメ)
どういった対応を行えばよいのか?
どうぞご覧ください。
終わったサービス・キャンペーンのドメイン名、放置されていませんか?
ドメイン名を放置すると付喪神がやどり、ひとりでにサイトを公開したりメールを出し始めたりするような祟りを起こすことがあります。
祟りに遭わないためには正しく供養することが重要です。
・・・嘘です。嘘ですが、起きることは嘘ではありません。
ドメイン名を放置すると何が起こるのか
こうした放置ドメイン名には多くのリスクがあります。
実際によくある例を見ていきましょう。
サービス・キャンペーン終了後、放置されたAレコードやCNAMEレコードが生き続ける
筆者が個人的に経験した例ですが、VPSを新規契約して Web サーバを上げてみたら謎のホスト名に対するリクエストが大量に来ている、ということがありました。
これはドメイン名やDNSレコードが放置されたまま、サービスの実体の VPS サービスが解約されたことにより、IPアドレスが使いまわされて筆者のもとにやってきた、という状況です。
筆者はとりあえずその放置されていたホスト名でアクセスされた場合に 410 Gone を返すように Web サーバを設定しておきましたが、IPアドレスを得た人が悪いことを考えないとも限らないので、サービスが終わったら適切なタイミングで A / AAAA レコード等を消しましょう。
最近ではCDN等の事業者に向いていたCNAMEレコードの放置により発生する類似の事例も報告されています。
このような攻撃手法をサブドメインテイクオーバーと呼びます。
サブドメインテイクオーバーに成功すると、攻撃者はかつて正規に利用されていたURLで勝手にサイトを立ち上げることが可能になります。
正規のURLとして使われた経歴を持つホスト名は、しばしば違法な商品やサービスを取り扱う闇オンラインショップ、正規のサイトの復活を装ったフィッシングサイトやマルウェア配布サイト等として使われるため、アクセスした自社の顧客に被害が出る恐れがあります。
かつてあったサイトへのリンクが多ければ多いほど、また有名であれば有名であるほど、そのドメイン名は「力」を持っています。
「力」を持っていたドメイン名ほど付喪神化したときの祟りも強くなるのです。
サービス・キャンペーン終了後、DNSサービスを解約したけどNSレコードが生き続ける
上記の類例として、共用DNSホスティングサービスを解約したものの、ドメインレジストラに、サブドメインのNSレコードを消していない状況も起こりえます。
これが全顧客共通のDNSサーバ名を使うようなサービスの場合、第三者がそのDNSホスティングサービスを契約することでドメイン全体、あるいはサブドメインのDNSをまるごと乗っ取ることができてしまいます。このような攻撃手法をNSテイクオーバーと呼びます。
(IIJ DNSプラットフォームサービスでは最悪放置された場合にもこのようなことが起こらないように、お客様ごとに個別のDNSサーバ名としています。)
起きることはサブドメインテイクオーバーと同様ですが、ドメインのDNS全体のコントロールを得られるため、攻撃者はより自由にドメインを制御することが可能になります。
たとえばメールサーバを設置して、そのドメインに対して送られてきたメールを掠め取ったり、メールアドレスに紐づいて発行されたアカウントのパスワードを再発行して奪い取ったり、というさらなる攻撃が考えられます。
サービス・キャンペーン終了後、放置されたMXレコードが生き続ける
サービス・キャンペーンの終了後も一応メールを受けられるようにしておこう、と思って残されたMXレコードが放置されるとそれがフィッシングメールの温床になります。
最近の迷惑メールフィルタは、メールの本文やヘッダ、送信元などの情報を総合的に評価して「迷惑メールっぽさ」をスコアリングする手法が使われています。このとき、ドメインにMXレコードが残っていると「このドメインはメールを使っている」という情報になり、「本物っぽさ」のスコアが上がってしまいます。結果、そのドメインを送信元にした迷惑メールが流通しやすくなるのです。さらに、SPFレコードが適切に管理されていない、記載されていないと、ますます差出人として詐称されやすくなってしまいます。
また、これは利用中のドメイン名に対してもそうですが、SPF レコードが書いてあったとしてもそれはサブドメイン名に対しては無意味です。
こういったSPFレコードの書かれていないサブドメイン名を使ったフィッシングメールも観測されています。
一時的なキャンペーンで使い終わったWebサイトのホスト名を残しておくとこのようなことに使われやすくなります。
さらに、使用されていたメールサーバやメールホスティングサービスが放置されているとよりリスクが高まります。
最近の迷惑メールでは、他人のメールアカウントのパスワードを入手して、それを使って正規のメールとして送信されているものが増えています。放置されたメールアカウントは何らかのきっかけでパスワードが盗まれても気づかれる可能性が低く、延々と不審なメールをばら撒き続けることになります。
使い終わったサービス・終わったサービスのSPFレコードが残り続けている
これはちょっと違う例になりますが、使い終わった・サービス終了したメールサービスのSPFレコードを include したままにしているのも危険です。
特にサービス終了したものは、サービス事業者がちゃんとドメインを「供養」してくれるかはわかりません。サービス事業者のドメインが乗っ取られると、そのサービスのSPFレコードをincludeしているドメインのSPFレコードを自由にできてしまうことになります。結果、そのドメインを詐称した迷惑メールを送り放題になります。
(ちなみに、長年ご利用いただきつつも先日終了した「IIJメールボックスサービス」「メーリングリストサービス」「大規模同報通知サービス」等で使用されていたドメイン名は著者監督の下で供養されています。)
乗っ取りリスクの他に、単純に外部DNSレコードの参照上限10回に当たってSPF検証ができなくなったり、突然そのレコードが消えることにより include 先不明で permerror になるリスクもあります。permerrorになると、逆に正規のメールが迷惑メール扱いされて受け取ってもらえなくなる恐れもあります。
SPFレコードを検証する実装は外部DNSレコードの参照回数・参照先の不在にかなり敏感なので、サービス終了したドメイン名に限らず、常日頃から意識しておく必要があります。
ドメイン名を廃止すると何が起こるのか
「放置するのが駄目なら廃止してしまおう!」
それが一番ダメです。
詳しくは JPRS の「ドメイン名の廃止に関する注意」に譲りますが、登録廃止されたドメイン名を狙って掠め取ろうとする人がたくさんいます。(ドロップキャッチといいます)
特に有名なサービスや多数の被リンクを擁するキャンペーンサイトで使われたドメイン名は「力」が強いため人気が高く、即座にドロップキャッチされることになります。
こうしてドロップキャッチされたドメイン名は、広告・マルウェア配信・フィッシングメール送信等に悪用されていくことになります。
起きることはNSテイクオーバーとほぼ同じですが、ドロップキャッチした人は「正規のドメイン名の管理者」になるので、どのような用途に使うかはレジストリ・レジストラの規則に違反しない限り自由です。
もともとの管理者が何と言おうともはやその利用を止めることはできません。ドメイン名に宿った付喪神と悪人が手を組み、もともとの管理者への逆襲が始まるのです。
じゃあどうすればいいの?
まず大前提として、「使ったドメイン名は一生登録維持する」という覚悟でドメイン名を登録してください。
短期間のキャンペーンのためだけに登録して使い捨てるような、ドメイン名を粗末にする運用は祟られやすくなります。
ではその「使い終わった後抱えているドメイン名」をどのように扱うかですが、大きく分けて2つのパターンが考えられます。
パターン1: 登録は維持しつつも、DNSから抹消する
実はドメイン名は登録を維持したまま、DNSサーバを削除することが可能です。(レジストラによってはできないこともあります)
登録は維持されているのでドロップキャッチはできず、一方でDNS的には存在していないので名前を引けない(NXDOMAINが返る)状態になります。
パターン2: DNSを残しつつ、適切に利用終了する
DNSを残す場合は、各レコードが指し示す先のサービスを「利用終了した」という状態にしておくべきです。
Webサイトはサービス終了を案内するページを返しつつ HTTP 410 Gone のステータスコードを返すのも良いでしょう。
(410 Gone は単なる 404 Not Found とは異なり、明確に「提供を終了し、復活することはない」ことを示すステータスコードです。検索エンジンが積極的にキャッシュやインデックスを削除してくれることが期待できます。)
メールの悪用防止には、SPFレコード として “v=spf1 -all” を書いて、このドメインから一切のメールを出すつもりがないことを宣言しておきます。
また、併せて DMARCレコード として “v=DMARC1; p=reject; aspf=s” を書いておくとより有効です。こうすれば SPFの書かれていないサブドメインまでカバーして守ることができます。
加えてサブドメインテイクオーバーやNSテイクオーバーに遭わないよう、最低限のレコードを残して掃除しておくことも重要です。
「何に使っていたのかわからない・・・」と思ったレコードも思い切って消してしまいましょう。
いずれにしても、墓参り
いずれのケースにおいてもドメイン名の登録を維持する、悪用されていないことを確認するなどのメンテナンスは必要です。つまり、ドメイン名の墓参りです。
また、数年も経つとサービス運用当時を知る人がいなくなり、無駄なコストに見えるドメイン名を廃止しようとする人が出てくる可能性もあります。
意図しない廃止を防ぐため利用終了したドメイン名を維持するための組織的な仕組みが必要です。
ちなみにIIJのサービスでかつて利用されていたドメイン名は利用終了時にドメイン名の台帳を管理しているチームに引き渡され、サービス運用組織が解散してもそのチームによって登録が維持されるようになっています。
おわりに
放置されたドメイン名の「祟り」の正体と対策について、ご理解いただけたでしょうか。
祟りに遭ってから慌てることがないよう、ドメイン名の新規登録はその最期まで見据えて計画的に行いましょう。
また、サービス終了の際はドメイン名をしっかり供養し、また組織的に維持し続けられる体制を検討しましょう。