企業のドメイン名が期限切れのクラウド DNS レコード経由で乗っ取られる

米国のセキュリティ研究者 Zach Edwards 氏は先日、250 もの企業のドメイン名がサイバー犯罪者に乗っ取られていることを発見したと Twitter 上で明らかにしました。

Edwards 氏は以下のツイートで、具体的な企業名は明らかにしなかったものの、影響を受けた企業には銀行、医療関係会社、レストランチェーン、市民団体などが含まれていたと述べています。

今回の問題は、企業の Web サイトそのものがハッキングされたのではなく、それらの DNS レコードが乗っ取られたことにあります。

「DNS ハイジャック」として知られるこの攻撃では、サイバー犯罪者は Web サイトそのものに侵入して乗っ取ることはせず、代わりにその場所を指し示すインターネット上の「案内標識」に変更を加えます。

すでにご存知かもしれませんが、DNS はドメインネームシステムの略称です。DNS は広く普及している全世界共通のデータベースであり、たとえば nakedsecurity.sophos.com のように利用者にとって分かりやすいサーバー名を、インターネット上のパケット送受信の際にコンピューターが処理しやすい IP アドレスへと自動的に変換する役割を担っています。

現在閲覧頂いているソフォスのサイトについては、DNS 上で以下のように確認できます (イギリス時間2020 年 7 月 7 日 11 時 15 分時点)。

nakedsecurity.sophos.com: alias (CNAME record) -> news-sophos.go-vip.net (cache for 5 mins)
news-sophos.go-vip.net:   IP number (A record) -> 192.0.66.200           (cache for 1 hr)

つまり、ブラウザのアドレスバーに nakedsecurity.sophos.com と打ち込むと、ソフォスのホスティングプロバイダーである WordPressVIP に運営されている実際のドメイン名 (DNS 用語で言えば CNAME または Canonical Name) がブラウザに通知されます。

次に、ブラウザは news-sophos.go-vip.net を検索し、そのドメインの IP アドレス (DNS 上では Adress の頭文字をとって A レコードと呼ばれます) を見つけ出します。ブラウザは、この IP アドレスをネットワークトラフィック上の目的地として利用します。

キャッシュ時間は、ブラウザやローカル DNS サーバーがそれらの検索結果を保持できる時間を表します。これにより、Web ページ内の画像、スクリプトファイルやスタイルファイルを読み込む度にアドレスの検索を行う必要がなくなります。

このキャッシュ時間により、DNS は完全な形での検索回数を大幅に減らすことができますが、比較的短時間で設定されているため、Web サイト内で変更があった際に古い検索結果が長い間適用され続けることはありません。

ドメイン名への変更があった場合には、最大でも 5 分以内に利用者全員に変更が行き渡り、サーバーネットワークに問題が発生している場合であってもネットワークトラフィックは迅速にリダイレクトされるようになります。

当然、もしサイバー犯罪者が DNS を通じて Web サイトの CNAME や A レコードを変更することができれば、サイバー犯罪者はあっという間にネットワークトラフィックを受信できるようになってしまいます。

新規のサイト訪問者はすぐに偽サイトへ転送され、普段利用しているユーザーも DNS レコード上のキャッシュ時間が経過するとリダイレクトされるようになります。

ほとんどのクラウドサービスは、変更適用までの時間を短縮するため TTLs (Time-To-Live entries) と呼ばれる DNS キャッシュ時間をかなり短く設定しています。

Web サーバーのハッキングと異なり、DNS レコードのハッキングでは HTTPS トラフィックを認証するための電子証明書を入手できないため、攻撃者は実物の Web サイトとうり二つのクローンサイトを作成する必要があります。とはいえ、企業のブランドを大きく毀損する可能性があり大変危険であることに変わりはありません。

DNS ハイジャックの場合、Web サイトのサーバー上では何の変更も行われないため、侵入検知システムやシステムログに許可されていないアクセスが表示されることはありません。にもかかわらず突然サイト訪問者が消え、代わりに他の Web サイトへ転送されるようになるので、従来型のサーバーハッキングよりも厄介な問題になり得ます。

マイクロサイトが標的に

Zack Edwards 氏が述べているケースの場合、標的となる DNS レコードはすでに使われなくなり、管理者から忘れられた古いものでした。これらの DNS レコードが後々、見えないところで悪意のあるサイバー犯罪者により復活させられる危険性があります。

直近の警告で Edwards 氏が挙げたサイトは、いずれも Microsoft Azure を利用した一時的な Web サイトでした。

企業は短期の利用のためにしばしば「マイクロサイト」として知られるサブドメインを作成します。販売キャンペーンのための期間限定の Web サイトへのリンクに、企業の公式なドメイン名のサブドメインを使うような形式です。ユーザーはこのリンクから、一時的なサーバーでホストされている期間限定の Web サイトを閲覧することができます。

たとえば、example.com という企業のメインサイトが www.example.com であるとすれば、期間限定セールで商品販売する短期的なマイクロサイトのサブドメインは、7 月限定セール (July Offer) なら julyoffer.example.com のようになります。

7 月限定セールのページが必要になるのは一時的なので、これらをメインサイトへ追加することはしないと思います。代わりに、一時的な Web サーバーをホスティングプロバイダーに作成し、以下のような短期の DNS レコードを得ることになります。

julyoffer.example.com: alias (CNAME record) -> temp-1234.hostco.example (cache for 5 mins)

Microsoft Azure といったホスティングプロバイダーの問題点は、temp-1234 のサーバー名を利用しなくなり、料金の支払いを終了すると、それらのサーバー名は他の誰かが使用できるようになることです。サイバー犯罪者は、こういった利用が終わり存在が忘れられ、しかし DNS から適切に削除されていないサーバー名を探しています。

スマートフォンのプリペイド型の SIM カードに例えると分かりやすいかもしれません。期間が終了すると電話番号は使えなくなり、誰もあなたに電話をかけることはできなくなります。

しかし、携帯会社が電話番号をリサイクルして新たな利用者へ発行されると、その電話番号を知っている人たちは突然、他人である新たな利用者へ電話をかけることができるようになります。

プリペイド型 SIM カードで新しい電話番号を使い始めると、まず間違いなく知らない番号からの電話に煩わされることになります。これは数か月か、ともすれば数年続くこともあります。こういった迷惑電話は特に勧誘や詐欺などが多いですが、彼らは実際に以前の利用者のことを知っているわけではなく、どこからか電話番号を入手しています。

漂流する DNS レコード

Web サイト名について言えば、放置されている DNS レコードは再利用された電話番号よりもさらに危険です。

ただの番号の羅列である電話番号と異なり、サブドメインは企業ブランドと密接に結びついており、サイト訪問者もドメイン名を見てその Web サイトが信用できるかを判断します。

Edwards 氏が追跡した事例では、多数のサイバー犯罪者が現在も DNS レコードを信頼している放置 Azure サーバー名を監視し、これらの無効なサーバー名を復活させることで、詐欺やマルウェアキャンペーンに利用できる URL を生成しているようです。

どうやら、サイバー犯罪者らはメインページに 404 エラー (存在しないページ) や、「近日公開」などのメッセージを表示することで、ドメインが単に機能を止めているか、まだアクティブでないように見せかけているようです。こうすることで、犯罪活動の形跡を隠しています。

サイバー犯罪者はこの手口を用いて、検索エンジンに表示されない場所で同じサーバー上のサブディレクトリ内に好きなだけ詐欺やマルウェアのコンテンツを設置することができます。しかし、これらは信頼できるブランド名で始まる URL で表示されるため、スパムキャンペーンやマルウェア攻撃を受けている被害者に安全であると錯覚させてしまいます。

対策

  • 一時的なクラウド名を簡単にリサイクルされないようにしましょう。ホスティングプロバイダーの場合は、一時的なクラウド名には特殊なプレフィックスまたはサフィックスを付けるか、可能であれば月単位または年単位でリサイクルを許可しないという対策が考えられます。(この場合、Microsoft Azure を責めるのは簡単ですが、ドメイン名のレジストラは期限が切れた後のドメイン名については元の顧客に決定権はないため、同じドメイン名で販売することが許可されています。ホスティングプロバイダーも同様の対応が許されています。)
  • ハイジャックを招く可能性のある余分な DNS レコードがないか確認してください。不要になったアカウントとパスワードは普通有効なまま放置しないでしょうし、放置するべきではありません。インターネット上の「標識」も、期限切れの宛先を指したまま放置しないようにしましょう。現在は管理していないサーバーまたは IP アドレスに Web サイトのドメイン名を転送する CNAME または A レコードをそのままにしておくことは、DNS ハイジャックを待っているようなものです。サイバー犯罪者は自動化されたツールを使用して、このような放置 DNS レコードを探し出すことができます。
  • ホスティングプロバイダーが提供している DNS のセキュリティ対策を確認しましょう。たとえば Azure では、Azure そのものを使用して DNS エイリアスを実行できます。これらの Azure を用いたエイリアス (通常の公開されている CNAME や A レコードとは異なります) は、Azure サーバーを廃止すると自動的に消滅します。また、「DNS エントリの削除」と呼ばれるオプションを有効化することも検討してください。これにより、放置されている DNS レコードが残っている間は Azure のサーバーの廃止プロセスを完了できません。また、ソフォスが提供する Sophos Cloud Optix などのサードパーティのクラウド管理ツールのクラウドポリシーに、DNS に関するアクションを追加することもできます。