私たちは、お客様を保護し、攻撃が成功するのを阻止する新しい方法を発見するために日々活動しています。最近、そのための新たな調査手法を手に入れました。それは、ドメイン情報の大量のデータセットに対して教師なし機械学習を使用することです。このような機械学習ベースの手法は、新しい脅威がお客様に影響を及ぼす前にその脅威を発見し、ブロックする役に立ちます。これは、大規模キャンペーンの一部である悪意のあるドメインがアクティブになるとこれを素早く特定でき、このようなキャンペーンに対して従来の方法より大幅に広いカバレッジを提供します。
このブログでは、この教師なし機械学習の詳細の一部および使用方法を説明します。具体的には、最近のあるフィッシング キャンペーンで333のアクティブ ドメインを見つけました。このキャンペーンがアクティブになった初日、よく知られているオンライン マルウェア データベースで既知になっていたドメインは87だけで、すべてのドメインが良く知られたブロック リストでは未知のものでした。その後2週間で、最も優れたパフォーマンスを示したブロック リストでもブロックできたのは333のドメインのうち247だけで、マルウェア データベースが認識したのは93だけでした。
私たちの教師なし機械学習は、これらのキャンペーンが脆弱なユーザーに影響を及ぼす前に、キャンペーンの合計カバレッジを広げ、早期にこれらを特定しています。以下説明するキャンペーンや同じ手法を使用して検出したその他のキャンペーンでは、パロアルトネットワークスのお客様は、ドメインがアクティブになってから1日以内に保護されました。
背景
ある種類の悪意のあるオンライン アクティビティは、短期間で同じ目的に大量のドメインを使用します。これらのキャンペーンは、ワールドカップなど最近話題になったイベントを利用することが多く、そのドメイン名は、合法的なドメイン名のタイプミスを無断で利用し、合法的なサービスとの関連を示すことが多いです(company.comに似せてc0mpany.comとするなど)。
この過去の例は、2017年のEquifaxのデータ漏洩後の悪意のあるキャンペーンのリリースです。Equifaxのデータ漏洩では、興信所が合法的なWebサイト「www.equifaxsecurity2017[.]com」をセットアップし、人々が自分が影響を被ったかどうかを分かるようにしました。これがトリガになり、実際のURLに良く似せた数百のドメインを登録した1つ以上の悪意のあるキャンペーンが発生しました。例:www.equifaxsecurity3017[.]com。
一般的に、1つのドメイン名を詳しく確認してそれが不正なものであることを見分けることは簡単ですが、キャンペーンではそのようなドメインが数百作成されることがあるため、多くの人に影響が出始める前に不正なドメインをすべて見つけることは困難です。ドメイン名は少しだけ異なっていますが、それでも同じキャンペーンに属している悪意のあるドメインは、IPサブネット、自律システム番号(ASN)、DNSのTTL(Time-To-Live)、Whois情報やその他多くの属性など多くの特性が共通しています。この観察に基づいて、DNSトラフィックから属性を抽出し、その類似性に基づいてドメインをクラスタ化するシステムを実装しました。私たちのシステムは、既存の方法を補完し、この方法以外では特定できないキャンペーンのドメインを特定します。
図1: ハイレベル プロセス
アプローチ
私たちのアプローチ(図1参照)は、パッシブDNSレコードで観察されたドメインをクラスタ化することです。パッシブDNSは、DNSクエリ/レスポンスのトラフィックを記録するメカニズムです。このレコードは、さまざまなデータの中でも、主にタイムスタンプ、リクエストされたドメイン、対応するIPアドレスから構成されています。プライバシーの理由から、個々のクライアントからのDNSトラフィック(「反復希望」のビットが設定)は、収集されず、クライアントIPも除去されます。
パッシブDNSレコードは、さまざまなソースから入手でき、インターネット トラフィックを大規模に理解するためにリサーチャーが使用することが多いです。一般的に、1日あたり6テラバイトを超えるパッシブDNSレコードを分析に利用できます。
私たちは、パッシブDNSレコードの情報(IPアドレス、BGP、Whoisなど)から生成した特徴を使用してこれらのドメインをクラスタ化します。このアプローチによって、相互に関係するドメインのクラスタが提供されますが、無害か悪意があるかのラベルは付けられません。
このデータはこの時点ではラベル付けされていないため、これは教師なし機械学習の適用です。私たちは、一緒にグループ化されているドメインの多くの特性が共通であることは分かりますが、それらが悪意があるかどうかは分かりません。悪意のあるクラスタを見つけるために、新しいキャンペーンの一部であると思われ、悪意があると確認したシード ドメインを使用します。
シード ドメイン
シード ドメインは、グループで出現しているように見える悪意のあるドメインの例です。
シードはさまざまな方法で見つかります。私たちは現在、シード ドメインの候補を特定するために3つの情報源に注目しています。ドメインの登録、新たに確認したドメイン、および話題となっているトピックです。
ドメインの登録
私たちは、最近登録されたドメインを確認し、名前が似ているグループを見つけます。キャンペーンが最近のイベントを利用している場合、そのイベントに対応する名前を持つ大きなドメイン グループが登録される場合があります。私たちは、既知の悪意のあるドメインのグループを確認し、その結果はシード ドメインのリストに配置されます。私たちは、独自の検出およびよく知られているオンライン マルウェア データベースなどのサードパーティの脅威インテリジェンスに基づいて既知の悪意のあるドメインを特定します。多くの悪意のあるドメインは、この時点で既知ではないまたは報告されていない場合がありますが、プロセスを開始するために数例を見つける必要があるだけです。
新たに確認したドメイン
また、パッシブDNSレコード内に、これまで確認されたことがない、新しいドメインがないかチェックしました。これらのドメインは、登録されてから長期間経つものの、このキャンペーンが開始されるまで使用されていない可能性があります。これらを同じ名前のグループで検索し、悪意があることがわかったドメインからシードを特定します。
話題となっているトピック
また、ソーシャル メディアの話題となっているトピックも検索します。広く知られているイベントが発生した場合、日常のソーシャル メディアのトレンドに現れることがよくあります。最近確認されたドメイン名で、GoogleやTwitterで話題となっているワードを照合します。例えば、スポーツ イベントなど、最近のイベントに関連したGoogleのトレンドを確認する場合、そのスポーツ イベントに言及する、最近確認されたドメインをチェックします。また同じ名前のグループをチェックし、悪意があるとわかったものがないか確認します。弊社のシード ドメインのリストを使用し、これでこれらのシードを含むドメインのクラスタを検索する準備ができました。
悪意のあるクラスタの検索
使用するシード ドメインのグループを特定したら、前にパッシブDNSデータから算出したドメインのクラスタ内でそれらを検索します。(図2参照)シード ドメインの比率が高いクラスタは、悪意のあるキャンペーンと考えられ、そのクラスタ内のすべてのドメインは、悪意があるとマークされます。
図2: ドメインのクラスタ
結果
例のように、弊社は、check-box-with-money##[.]loanのような名前を持つ悪意のあるドメインを使用したフィッシング キャンペーンを最近観測しました。同時に登録された同様のドメインのグループを観測することによって、弊社はこのドメインのグループをピックアップしました。初日に、77件のドメインの登録を確認しました。そのうち、よく知られているオンライン マルウェア データベースで既知だったものは17件のみですが、これはシード グループに追加するのに十分な数です。パッシブDNSで確認されたドメインのクラスタリング分析によって、登録から確認されなかった追加のドメインを即時に2つ見つけました。
次の日にこのキャンペーンで別のドメインを16件見つけました、さらに次の日に58件、また次の日には88件のドメインを見つけました。このキャンペーンの最初の2週間で、このフィッシング キャンペーンに関連したドメインを333件見つけました。
さらに興味深いことに、その333件のドメイン中、247件は、ドメインが出回っていることが確認された最初の日に、よく知られているオンライン マルウェア データベースで既知ではなかったことがわかりました。続く2週間で、最終的にフラグが立ったのはこれらのドメイン中、7件のみでした。2週間後も、240件のドメインはそのデータベースによってフィッシングとしてフラグが立ちませんでした。ドメインがインターネット上に活動状態で存在し、明らかに同じキャンペーンの一部であるにもかかわらずです。
また、2つのよく知られているブロックリストでもチェックしました。これらのブロックリストのどちらも、インターネットで観測された最初の日に、このドメインのブロックを開始していません。続く2週間で、333件のドメイン中、1つがドメインのうち80件のみをブロックし、もう1つが247件をブロックしました。
これらの結果から、キャンペーンの一部のドメインがセキュリティ コミュニティによって発見されているものの、大半のドメインは容易にブロックをすり抜けることができ、これが攻撃者の最終的な目標だったことがわかります。
結論
これはほんの一例に過ぎません。過去数か月で、1,000件を超えるアクティブ ドメインから成る、15の異なるキャンペーンが観測されています。アクティブであり、キャンペーンの一部であるにもかかわらず、これらのドメインの多くは、いくつかのよく知られているサードパーティ サービスによって個別に識別されていません。サードパーティ サービスが識別したドメインでは、オンライン マルウェア データベースが識別するまでに平均2.8日、よく知られているブロック リストの1つが識別するまでに平均3.9日、もう1つのブロック リストが識別するまでに平均2.4日要しています。サードパーティが識別したドメインでこれまでに確認された、識別までの最大日数は、マルウェア データベースの場合46日、1番目のブロック リストの場合15日、2番目のブロック リストの場合32日でした。図3は、識別に要した時間の全体的な比較を示しています。
図3: サードパーティによって識別されるまでの時間
保護と行動喚起(CTA)
パロアルトネットワークスのお客様は、脅威防御サブスクリプションの一部である、PAN-DB URLフィルタリングおよびDNS C2シグネチャによって、これらの悪意のあるフィッシング ドメインから保護されます。パロアルトネットワークスのファイアウォールのお客様は、弊社のパッシブDNSリサーチに、予防的に悪意のあるフィッシング ドメインを検出させることができます。PAN-OSバージョン8.0以降で、パッシブDNS共有を有効にするには、「Passive DNS Monitoring(パッシブDNSモニタリング)」(「Device(デバイス)」 > 「Setup(セットアップ)」 > 「Telemetry(テレメトリ)」)を選択します。PAN-OS 7.1以前の場合、アンチスパイウェア セキュリティ プロファイルでパッシブDNS共有は有効化されます。このパッシブDNSレコードは、さまざまなデータの中でも、主にタイムスタンプ、リクエストされたドメイン、対応するIPアドレスから構成されています。プライバシーの理由から、個々のクライアント(「RD(recursion desired)」ビットを指定)からのDNSトラフィックは、収集されず、クライアントIPも除去されます。