教師なし機械学習で攻撃キャンペーンに帰属する不正ドメインを早期検出

By , , , and

Category: Unit 42

Tags: ,

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

概要

弊社は、お客様環境を保護し、攻撃の成功を阻止する新しい方法の発見に日々取り組んでいます。最近、そのための新たな調査手法を確立しました。膨大なドメイン情報のデータセットにたいし、教師なし機械学習を援用する手法です。機械学習ベースに基づくこの手法は、新しい脅威がお客様環境に影響をおよぼす前にその脅威を発見し、防止するのに役立ちます。またこの手法では、大規模キャンペーンに帰属する不正ドメインがアクティブになるとごく短時間でその特定が可能となり、従来の方法とくらべ、キャンペーン全体をより網羅的に検出できるようになります。

本稿では、この教師なし機械学習の利用方法詳細と応用サンプルを取り上げます。このサンプルは最近のフィッシング キャンペーンのもので、そこでは333個のアクティブ ドメインが見つかっています。キャンペーンがアクティブになった初日、著名オンライン マルウェア データベースにより対応済みのドメインは87個のみ、別の著名ブロック リスト2つでは 333ドメインすべてが未登録でした。その後2週間経過しても、一番成績の良いブロック リストで防止可能だったのは333ドメインのうち247のみ、同じくマルウェア データベースが検出可能だったのは333ドメインのうちの93個のみでした。

弊社の教師なし機械学習は、これらのキャンペーンをより網羅的にカバーし、キャンペーンが脆弱なユーザー環境に影響を及ぼす前のより早い段階で攻撃を特定します。以下で説明するキャンペーンや同じ手法を使用して検出されたその他のキャンペーンでは、パロアルトネットワークスのお客様は、ドメインがアクティブになってから1日以内に保護されています。

背景

ある種の悪意のあるオンライン活動(以下「キャンペーン」)は、特定の目的のために短期間に多数のドメインを使用します。こうしたキャンペーンは、ワールドカップなど最近話題になった出来事を利用するケースが多く、そのドメイン名は、正規ドメイン名のタイポスクワッティング(company.comの代わりにc0mpany.comにするなど)によりあたかも正規のサービスとなんらかの関連があるかのように装う場合があります。

過去の例では、2017年のEquifaxのデータ漏えい後、悪意のあるキャンペーンが開始されたことがあげられるでしょう。Equifaxのデータ漏えいでは、興信所が正規のWebサイト「www.equifaxsecurity2017[.]com」を立ち上げ、ユーザーが自身への影響を調査できるようにしていました。これがきっかけとなり、実際のURLに良く似た数百個のドメインを登録した悪意のあるキャンペーンが発生しました (例えば www.equifaxsecurity3017[.]com などのドメインが登録された)

ある特定ドメイン名を詳しく確認し、それが不正なものであるか否かを見分けることはさほど難しいことではありません。ところが、キャンペーンではそのようなドメインが数百個単位で作成されることから、被害者が増える前に不正ドメインをすべて見つけることは困難です。ドメイン名は少しずつ異なっていますが、同じキャンペーンに属している不正ドメインは、IPサブネット、自律システム番号(ASN)、DNSのTTL(Time-To-Live)、Whois情報やその他多くの属性など、多くの特性が共通しています。この観察に基づいて、弊社はDNSトラフィックからそうした属性を抽出し、類似性に基づいてドメインをクラスタ化するシステムを実装しました。この弊社のシステムは、既存の方法を補完し、これ以外の方法では特定できない可能性のあるキャンペーンのドメインを特定します。

図1 高レベルで見たプロセス

アプローチ

弊社のアプローチ(冒頭の図1参照)は、パッシブDNSレコードで観察されたドメインをクラスタ化することです。パッシブDNSとは、DNSクエリとレスポンスのトラフィックを記録しておくメカニズムをさします。この記録にはさまざまなデータが含まれますが、主なものはタイムスタンプ、リクエストされたドメイン、対応するIPアドレスです。なお、プライバシーの観点から個々のクライアントからはDNSトラフィックを収集せず(RD(recursion desired)ビットを指定してサーバーから再問い合わせを行わせる)、クライアントIPも削除されます。

パッシブDNSレコードはさまざまなソースから入手でき、大量のインターネット トラフィックを把握するためにリサーチャーがよく利用しています。弊社の分析では1日あたりおよそ6テラバイト以上のパッシブDNSレコードを利用しています。

私たちはIPアドレスなどのパッシブDNSレコード内の情報と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のドメインのうち80のドメインにのみ対応し、もう一方のリストは同じく333のうち247のドメインに対応していました。

この結果から、セキュリティ コミュニティはキャンペーンに帰属するドメインの一部は発見できたものの、その他ドメインについてほとんどが未対応だったということが言えます。おそらくは、この状態こそが、攻撃者の最終目標だったと考えられます。

結論

上記はほんの一例に過ぎません。過去2か月で、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の共有を有効にするには、[Device]、[セットアップ]、[テレメトリー] の順に選択し、[パッシブDNSモニタリング]にチェックを入れて有効にします。

PAN-OS 7.1以前の場合、パッシブDNSの共有はアンチスパイウェア セキュリティ プロファイルで有効化されます。このパッシブDNSレコードは、さまざまなデータの中でも、主にタイムスタンプ、リクエストされたドメイン、対応するIPアドレスで構成されています。なお、プライバシーの観点から個々のクライアントからはDNSトラフィックを収集せず(RD(recursion desired)ビットを指定してサーバーから再問い合わせを行わせる)、クライアントIPも削除されます。