サブドメインのレピュテーション: パブリックApexドメイン以下の悪性サブドメインの検出手法

By and

Category: Malware

Tags: ,

A pictorial representation of a crybercriminal like those who execute attacks with subdomains. It shows a criminal opening a door on a laptop screen.

This post is also available in: English (英語)

概要

サイバー犯罪者たちは、コンテンツの保存や配信を行うさい、常習的にポピュラーなダイナミックDNS (DDNS)やWebホスティングサービスを利用しています。また脅威アクターたちは、コマンド&コントロール(C2)やマルウェアの配布、フィッシングにこれらのサービスを利用しています。こうした悪用の多さから、悪性サブドメインの検出に向けた新たな手法が求められてきました。

DDNSやWebホスティングサービスの場合、サービスプロバイダーの登録したドメインのサブドメインからコンテンツを提供できる場合が少なくありません。こうしたサブドメインは、悪質なアクティビティをDNSレベルで検出することへの道を拓くものですが、その検出は悪性登録ドメインそのものを検出するよりも難しくなります。

悪性ドメインの検出は、登録ドメインのサブドメインでは利用できないような情報に依存していることが多いのです。たとえばWHOIS情報は、あるドメインが「最近登録されたものか」や(場合によっては)「誰がドメインを登録したか」については教えてくれますが、「公開されているドメイン ルート(Apexドメイン)のサブドメイン」については教えてくれません。

悪性ドメインの検出に常用できる情報がないことから、悪性サブドメインを特定する新たな方法が求められています。そこで弊社は、公開Apexドメインの悪性サブドメインを検出する検出器を開発しました。

この検出器の生成した情報はパロアルトネットワークスの次世代ファイアウォール製品をご利用のお客様でDNSセキュリティ高度なURLフィルタリングなどのクラウド配信型セキュリティサービスをお持ちの方にご利用いただけます。

関連するUnit 42のトピック DNS

目次

DNSと委任
悪性ドメインの検出
悪性サブドメイン: 新たな課題
公開Apexドメインの悪性サブドメインの検出
結論
追加リソース

DNSと委任

DNSはインターネットの住所録として機能しています。DNSは世界中に分散されたデータベースで、インターネットに存在するすべてのドメイン名の情報を含んでいます。膨大な数のドメインの情報を保存・取得するにあたって、DNSは「委任」というしくみをとっています。

企業、政府、教育機関などのさまざまな団体が、こうしたDNS名前空間の一部を管理する責任を負っています。これらの団体は、自分たちが管理している名前空間にどのようなドメインを登録するかを管理し、登録したドメインのドメイン レコードを管理し、それらドメイン レコードを配布するサーバーを運営します。

たとえば、Verisignは、.comのトップ レベル ドメイン(TLD)を管理しています。Verisignはレジストラと協力し、インターネット ユーザーがpaloaltonetworks.comなどの.com TLDに名前を登録できるようにしています。またこれらのドメインに関する情報をインターネット ユーザーが参照できるよう、ネームサーバーも管理しています。

同様に、弊社もpaloaltonetworks.comドメインを管理しています。弊社はwww.paloaltonetworks.comなどのサブドメインを作成し、これらのサブドメインのDNSレコードが権威DNSサーバーで利用できる状態にしています。

通常、ドメインの権限委任はドメイン登録時に行われます。ただし.com.eduなどのトップ レベル ドメイン(TLD)は特殊ケースで、IANA (Internet Assigned Numbers Authority)がTLD独自のプロセスにもとづいてTLDの権限を委任しています。権限委任のほとんどはDNS名前空間のさらに下位レベルで行われていて、あるドメインに対する責任は当該ドメインの登録者に帰属します。

通常は、ドメイン登録者のみがドメインのルート(Apexドメイン)とそのサブドメインを使ってコンテンツやサービスを提供します。たとえば、paloaltonetworks.comとそのサブドメインを使うのはパロアルトネットワークスだけ、ということです。ただし、登録されたドメインしだいでは、多数の関係者がサブドメインを管理することがあります。私たちはこうしたドメインを「パブリックApexドメイン」と呼んでいます。図1はこの2つのシナリオを示したものです。

「ある登録ドメインのサブドメインを複数人で管理する」というケースは、ドメイン登録者が当該ドメインのサブドメインをユーザーに利用させるサービスを運営しているような場合に多く発生します。ダイナミックDNSプロバイダーやWebホスティング プラットフォームはこうしたオプションをよく提供しています。

画像1はトップ レベル ドメイン(TLD)を含む登録ドメインの利用イメージ図です。図の左側には、ドメイン登録当事者がルートドメイン以下の.comのTLDを管理するシナリオを示しています。ここでは登録ドメインの管理者であるパロアルトネットワークスがapps.paloaltonetworks.comページや、メインのサイト(www.paloaltonetworks.comやpaloaltonetworks.com)を提供している例を示しています。図の右側には、複数人でサブドメインを管理する例としてduckdns[.]orgの例をあげています。
図1. 登録ドメインの2つの利用シナリオ
これらのプロバイダーは悪性ドメインやコンテンツを削除できますし、実際に削除することも多いのですが、彼ら自身がこれらのサブドメインで提供されるコンテンツやサービスを作成しているわけではありません。こうした建て付けが悪性サブドメイン検出上の課題となっています。

悪性ドメインの検出

悪性ドメインの検出はさまざまな情報源に依存して行われています。まずは、攻撃の観測と関連ドメインのブロックリストへの登録というアプローチがあげられます。これも有用かつ標準的なアプローチではありますが、DNS内の明白な脅威の一部にしか対応しませんし、事後的対策であるために悪性ドメイン検出に遅れが生じ、攻撃の多くを阻止できないおそれがあります。

ほかには、観測されたドメイン名やそのサブドメインの特性を調べてそれらがドメイン生成アルゴリズム(DGA)で生成されたものか、DNSトンネリングに使われているものかを特定する、というアプローチがあげられます。さらにドメインのレピュテーション(評判)を評価すれば多くのことが学べます。

レピュテーションは、ドメインの古さ、使われかた、人気、使っているIPアドレス、同じIPアドレスを使っているほかのドメインなどの情報からなります。新規登録ドメイン(NRD)や登録後休止しているドメイン(戦略的熟成ドメイン)には慎重に対応する必要があります。

あるドメインが短期間にさまざまなネットワークのIPアドレスに解決されている場合、そのドメインは高速フラックスドメインである可能性が高いでしょう。これらはほんの一例ですが、あるドメインの特徴がどのようにレピュテーションを醸成し、そのドメインの悪性度を示すことになるのかを示してくれています。ところが、パブリックApexドメインのサブドメインについてはこうした情報の多くが利用できないか、役に立ちません。

悪性サブドメイン: 新たな課題

DDNS技術を使うと、ネットワーク オペレーターが手動でDNSレコードを変更しなくても、一定時間内にドメインが新しいIPアドレスにマッピングされます。DDNSサービスのプロバイダーによっては、プロバイダーが登録したドメインのサブドメインをユーザーに管理させてくれるところがあります。

たとえばNo-IPは、ddns[.]netcouchpotatofries[.]orgなどの80の登録ドメインの下にユーザーがサブドメインを作れるようにしていますし、FreeDNSもユーザーがchickenkiller[.]comundo[.]itなどの数千のドメインのサブドメインを使えるようにしています。これら無料サブドメインのおかげで、ドメイン登録にかかる手間や費用をかけなくても、自分たちのサーバーの場所をDNSで特定できます。

ほかにも、各種ホスティング プラットフォームがインターネットの参入障壁を下げていますし、多数の有名企業が、コンテンツ作成・配信を容易にするツールやリソースを提供してくれています。

これらのプロバイダーのなかには、コンテンツ提供用のサブドメインを無料で提供しているところもあります。たとえばブロガーならblogspot[.]comのサブドメインでコンテンツを共有できますし、リサーチャーならgithub[.]ioのサブドメインでプロジェクトを紹介できるでしょう。企業ならnetlify[.]appのサブドメインでWebサイトを構築・ホストできます。

パブリックApexドメインのプロバイダーのなかには、利用者数が多く、DNSトラフィックのシェーピングに少なからぬ影響を与えるところもあります。たとえばパロアルトネットワークスの1日分のパッシブDNSデータによれば、トップ レベル ドメインの93%のレコードに含まれる一意な登録ドメインは8万7,000個未満でした。これはgithub[.]ionetlify[.]appddns[.]netなどのパブリックApexドメインで見られるサブドメインより少ない数です。

同じパッシブDNSデータセットにおけるnetlify[.]appのサブドメイン数は、.tokyo.work TLD (いずれもグレーウェア利用トップ10にはいるTLD)の登録ドメイン数より多くなっています。こうしたパブリックApexドメインは観測されたDNSトラフィックのごく一部を占めるに過ぎません。それにもかかわらず、多くのTLDよりもまだサブドメイン数が多いのです。ここから、これらのもつ特異なダイナミクスや当該サブドメインの適切な特徴づけ手法を検討すべきである、ということがわかります。

攻撃者はパブリックApexドメインのサブドメインでキャンペーンを仕掛ける傾向があるので、こうした検討はいっそう重要となっています。攻撃者たちはインフラ管理にDDNSを常用しています。たとえば、AdwindマルウェアのC2サーバーや、COVID-19関連のフィッシング キャンペーン用のホストにもDDNSが悪用されています。

ほかにもさまざまなホスティングサービスが悪質なキャンペーンに組み込まれています。たとえば、AggahキャンペーンではBloggerを使って悪意のあるスクリプトが配信され、攻撃者はGitHub Pagesでさまざまなフィッシングキャンペーンをホストしてきました。

パブリックApexドメインのどのサブドメインが悪質なのかを検出することには、それに特有の難しさがあります。従来のアプローチが通用しなかったり、調整が必要な場合があるのです。ドメイン名の特徴はそれでもある程度は参考になります。たとえばyjhtbgvfdcsdx[.]duckdns[.]orgのようなランダムなドメイン名や、非常によく似たドメイン名のグループ(たとえば、nicetshirt171[.]blogspot[.]comnicetshirt180[.]blogspot[.]comnicetshirt186[.]blogspot[.]com)は、本質的に疑わしいと言えます。

ところがこうした特徴を検出に使うのはなかなかにやっかいです。プロバイダーのなかには、DGAに似たデフォルト サブドメイン名をアルゴリズム的に生成して提供しているところがありますし、互いによく似たサブドメイン名を提供している場合もあります。典型的なDGA検出アプローチを用いた場合、こうした特徴のせいで誤検出が多発するでしょう。

サブドメインのレピュテーション確立は登録ドメインのそれよりさらにやっかいです。WHOISデータからの情報は役に立ちません。WHOIS情報はサブドメインのものではなくApexドメインのものだからです。

ネームサーバーや兄弟ドメインの情報も役に立ちません。ネームサーバーを管理しているのはサービス プロバイダーですし、兄弟ドメインを所有しているのは何千もの異なるユーザーです。DDNSドメインではIPレピュテーションがまだ役に立つかもしれませんが、ホスティング プロバイダーに属するサブドメインではIPアドレス情報はほぼ役に立ちません。これらのサブドメインはプロバイダーのIPアドレスに解決されますが、これらのIPアドレスもネームサーバー同様、無関係の第三者が管理する何千ものサブドメインに共有されているからです。

要するに、従来のドメイン レピュテーション醸成のアプローチはパブリックApexドメインのサブドメインの特徴づけには不十分で、それには新たなアプローチが必要なのです。それが今回、パロアルトネットワークスが開発した検出器です。

公開Apexドメインの悪性サブドメインの検出

弊社が開発したパブリックApexドメイン以下の悪性サブドメイン検出器は、従来の悪性ドメイン検出アプローチと同じ基本原理を採用しています。すなわち、疑わしい語彙上の特徴をチェックしてレピュテーションを評価するというものです。ただし、何が疑わしいかを判断し、レピュテーションの手がかりを見つける方法は変えています。

典型的な情報源の多くは利用できないことから、創造的になる必要がありますし、さまざまな入力を考慮する必要がありますし、そうした入力をプロバイダーの慣行やポリシーにもとづいてフィルタリングする必要があります。それらの入力をまとめることで、パブリックApexドメインのサブドメインを特徴づけられるようになります。

現在私たちの検出器は、評価用に選ばれた6つのパブリックApexドメインのサブドメインを中心に見ています。この選定は主に、弊社のほかの検出器が報告した頻度にもとづいています。この検出器は日次平均で300個以上の新しいサブドメインを検出しています(図2参照)。

画像2は2022年12月中旬から2023年1月中旬までの棒グラフです。この棒グラフは、新たに検出されたサブドメインの日次平均が300を超えているようすを表しています。12月下旬と1月上旬に2つピークがあります。
図2. 新たに検出されたサブドメイン数(1日あたり)

検出されたサブドメインは、さまざまな詐欺コンテンツ、アダルト コンテンツ、不審コンテンツ、悪性コンテンツを提供するサイトに使用されていました。観測されたなかには、大規模なSMSフィッシング キャンペーンや、無料のRobux (Robloxというゲーム内の仮想通貨)詐欺という、興味深い事例2つが含まれていました。

事例1: SMSフィッシング

私たちのシステムは数ヶ月にわたり、マルウェアの配布と認証情報の窃取キャンペーンに関与しているduckdns[.]orgサブドメインを検出していました。当該キャンペーンは、Roaming Mantisという脅威アクターグループが仕掛けていたもので、複数の国々のモバイル端末ユーザーを標的としています。

この攻撃は通常、SMSのフィッシング メッセージから始まります。Androidユーザーの場合は被害者にMoqHaoマルウェアをインストールさせ、iPhoneユーザーの場合は被害者の認証情報を盗むように設計されています。攻撃者はジオフェンシング(位置情報を使って仮想的な境界を設けるしくみ)を使って、狙った地域からの訪問者のみがランディング ページに到達できるようにします。

攻撃はつねに進化しています。2022年なかば、私たちはau IDユーザーを狙ったキャンペーンの一部を観測しました。au IDは日本の通信事業者のauが作成しているIDです。ユーザーはこのIDを使うことで、アカウント情報へのアクセスや購入処理を簡単に行えます。

当初はAndroidユーザーとiPhoneユーザーに対して異なる攻撃をしていましたが、数週間後、戦略に変化が見られるようになりました。図3は当初(2022年3月)の観測時のキャンペーンのしくみです。

画像3は2022年3月に観測されたRoaming Mantisによるキャンペーンのしくみを示したフローチャートです。このキャンペーンは自動リダイレクトから始まります。標的がAndroidを使っているかiPhoneを使っているかで結果が異なります。
図3. 2022年3月に観測されたRoaming Mantisのキャンペーンのしくみ

この攻撃はユーザーを自動リダイレクトするあるWebページから始まっていました。次のぺージでUser-Agentにもとづいてリダイレクトされます(図4)。

画像4は、Android利用者かiPhone利用者かでユーザーのリダイレクト先を決めるコード行のスクリーンショットです。
図4. User-Agentにもとづいてリダイレクト

User-AgentがiPhoneであれば、au IDのログインを装ったログイン ページにリダイレクトされます。ただしこのページは実際にはduckdns[.]orgのDGAのようなサブドメインに存在していました(図5a参照)。User-AgentがAndroidであれば、迷惑メールや不正SMS/電話を検出すると称するサービスのインストール推奨ページにリダイレクトされます(図5b参照)。このページもau IDのものと似ていましたが、やはりDGAのようなduckdns[.]orgのサブドメインに存在していました。

画像5aはiPhoneユーザーに送られた偽のログインページのスクリーンショットです。
図5a. 当初iPhoneユーザーに送信されていた偽ログインページ
画像5bはAndroidユーザに送られた偽のログインページのスクリーンショットです。ソフトウェアのダウンロードを促す警告ポップアップが表示されています。
図5b. Androidユーザーがリダイレクトされたソフトウェアのダウンロード推奨ページ

2022年6月上旬までには攻撃が図6のように変化し、AndroidユーザーもiPhoneユーザーも同じページに到達するようになりました。

画像6は2022年6月に観測されたRoaming Mantisキャンペーンのしくみを示したフローチャートです。2022年3月のキャンペーンとは異なり、最終的にiPhoneユーザーにもAndroidユーザーにも決済リクエストが来ます。このキャンペーンは自動リダイレクトから始まります。
図6. 2022年6月に観測されたRoaming Mantisのキャンペーンのしくみ

このバージョンのキャンペーンでは、User-Agentにもとづくリダイレクト ページは攻撃チェーンにまだ存在しているものの、どちらのリダイレクトも同じメッセージのページに到達していました。このページはユーザーに電気料金の未納があると伝え、ただちに支払いがなければ電気が止まると警告します(図7a)。

決済用リンクをたどると別のページにたどり着きます(図7b)。このページにはVプリカ(Visaのプリペイドカード)の情報を入力し、支払いを行うための架空請求用フォームが表示されています。この支払いは当然攻撃者に渡ります。

画像7aは、電気料金を架空請求して支払いを求めるページのスクリーンショットです。
図7a. 請求書の支払いを促す警告ページ
画像7bは訪問者が支払い情報を入力するフォームのあるページのスクリーンショットです。この支払いは直接攻撃者に渡ります。
図7b. 決済用Vプリカ情報の入力フォーム

事例2: 無料のRobux生成ツール

2022年12月中旬以降、弊社の検知システムは、Robloxユーザーを狙ったフィッシング キャンペーンに関与した人気ブログ ホスティング サービスのサブドメインを3,000個以上特定してきました。Robloxのプラットフォームは無料ですが、「Robux」と呼ばれるRobloxの通貨を購入することにより、ユーザーはRoblox仮想世界である種の特典を利用できるようになります。最近までRobloxユーザーの多くは13歳未満で、このプラットフォームのユーザーの多くを子どもたちが占めていました。Robloxのサイトにははっきり「無料のRobuxといったものは存在しません」と書いてありますが、詐欺師たちはその程度では引き下がりません。どうにかして無料のRobuxの存在をユーザーに信じこませようとします。

キャンペーンに関与したブログは2、3のテンプレートから自動生成したもののようで、Robloxに関連するテキストや画像が含まれています(図8参照)。

画像8は2枚のスクリーンショットを並べたものです。これらのスクリーンショットは、無料のRobux(Robloxにおける仮想通貨)をうたう詐欺ブログの例です。左はRunners Path Codesのページ、右はFasthinkのページです。どちらのページも自動生成されたコンテンツを含んでいるようです。
図8. 無料Robux詐欺に使われたブログの例

これらのページのスクリプトはユーザーを自動的にbux[.]wellter[.]deにリダイレクトします。ブラウザからの警告をクリックで無視したユーザーは、無料Robuxの提供を謳うページに到達します(図9)。

画像9は、無料Robuxを宣伝するページのスクリーンショットで、「Roblox robux generator (RobloxのRobux仮想通貨生成ツール)」という見出し文と生成用ボタンが表示されています。
図9. 無料のRobuxを宣伝するサイト

当該の生成ツールを実行すると、ユーザーは再びappinstallcheck[.]comにあるページにリダイレクトされます。このページには、検証完了のためにユーザーが実行すべきタスクが一覧表示されています。たとえば「ソフトウェアをインストールする」、「賞金獲得に向けてコンテストに参加する」、「クレジットスコア監視ツールを使用する」といったタスクです(図10)。

画像10は画像10で[GENERATE (生成)]ボタンを押したさいの動作をあらわすスクリーンショットです。[GET FREE ROBUX - VERIFY]というタイトルのページが表示されていて、ユーザーは異なる5つの選択肢のボタンを使ってオファーを完了するよう求められます。
図10. 無料のRobuxをリクエストした後、ユーザーはさらに2つのタスクを完了する必要がある

結論

従来の悪性登録ドメイン用の検出アプローチを採用しただけでは、パブリックApexドメイン以下にある悪性サブドメインをうまく検出できません。これらのサブドメインにはそれぞれに特徴があるため、防御側はサブドメインのレピュテーションを確立できるよう、検出手法を適応させていく必要があります。このような手法の開発は、セキュリティ リサーチャーやネットワーク防御側にとっての重要課題です。

パロアルトネットワークスはクラウド配信型セキュリティサービスを通じ、検出されたパブリックApexドメインのサブドメインを「Grayware (グレイウェア)」のカテゴリに割り当てています。これらのサブスクリプションには、DNSセキュリティ高度なURLフィルタリングが含まれます。

追加リソース