(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-10
(45)【発行日】2024-12-18
(54)【発明の名称】効率的なサブグラフ検出のためのグラフストリームマイニングパイプライン
(51)【国際特許分類】
G06F 16/28 20190101AFI20241211BHJP
【FI】
G06F16/28
(21)【出願番号】P 2021557956
(86)(22)【出願日】2020-03-30
(86)【国際出願番号】 US2020025846
(87)【国際公開番号】W WO2020198754
(87)【国際公開日】2020-10-01
【審査請求日】2023-02-24
(32)【優先日】2019-03-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520046557
【氏名又は名称】エヌティーティー セキュリティー コーポレイション
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ダレク ダニエル
(72)【発明者】
【氏名】ハリソン マティアス
(72)【発明者】
【氏名】シンハ ヒマンシュ
(72)【発明者】
【氏名】高橋 健司
【審査官】早川 学
(56)【参考文献】
【文献】特開2018-049602(JP,A)
【文献】米国特許第09787640(US,B1)
【文献】米国特許出願公開第2018/0329958(US,A1)
【文献】米国特許出願公開第2017/0251005(US,A1)
【文献】米国特許出願公開第2017/0374084(US,A1)
【文献】米国特許出願公開第2011/0179164(US,A1)
【文献】米国特許第08813236(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/00-21/46
(57)【特許請求の範囲】
【請求項1】
ボットネットノード検出のためのコンピュータによって実施される方法であって、
複数のネットワークデータフローを受信することであって、各ネットワークデータフローは、第1のIPアドレスを有するソースノードと第2のIPアドレスを有する宛先ノードとの間のデータ通信についてのデータを含んでおり、前記複数のネットワークデータフローは、ボットネットの一部であることが既知であるボットネットノード、および前記ネットワークデータフローが受信されたときに悪意のあるものとして既知ではない未知のノードを含む、受信することと、
前記複数のネットワークデータフローから、複数のネットワークデータフローデータストリームを同時に抽出することと、
前記複数のネットワークデータフローのためのグラフを生成することであって、前記グラフは、各ネットワークデータフローデータストリームに対するものであり、前記グラフは、前記ソースノードと、前記宛先ノードと、前記ソースノードおよび前記宛先ノードの間のデータ通信を表す、前記ソースノードおよび前記宛先ノードの間のエッジとを有し、前記グラフの前記エッジは前記複数のネットワークデータフローデータストリームに基づいて生成される、生成することと、
前記複数のネットワークデータフローデータストリームから少なくとも1つのシードサブグラフを生成することであって、前記少なくとも1つのシードサブグラフは、前記ボットネットノードであるシードノードと、前記生成されたグラフによって決定されるのに従って前記シードノードと通信する1つまたは複数の未知のノードとを有し、前記1つまたは複数の未知のノードはピボットノード構造内で識別されるものである、生成することと、
少なくとも1つのボットネットノードと少なくとも1つの候補ノードとを含む1つまたは複数のサブグラフを検出するために、
生成された前記少なくとも1つ
のシードサブグラフを用いて、サブグラフ検出基準のセットを行うことであって、前記候補ノードは前記ボットネットに対する候補ノードである、行うことと
を含む方法。
【請求項2】
前記少なくとも1つのシードサブグラフを生成することは、第1のピボット深さにおいて前記シードノードと通信する少なくとも1つの未知のノードを識別することと、前記第1のピボット深さにおいて前記少なくとも1つの
未知のノードと通信する第2のピボット深さにおける少なくとも1つの未知のノードを識別することとをさらに含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つのシードサブグラフを生成することは、前記第2のピボット深さにおける特定の未知のノードが、前記シードノードと直接通信する場合、前記第2のピボット深さにおける前記複数の未知のノードの内
の特定のノードを、前記第1のピボット深さに移動させることをさらに含む、請求項2に記載の方法。
【請求項4】
サブグラフ検出基準のセットを行うことは、高中心性の未知のノードを有するサブグラフが、所定の数のネットワークデータフローのための宛先ノードであることを識別することをさらに含み、前記高中心性の未知のノードは、前記少なくとも1つのボットネットノードとの通信のための前記ソースノードであるリンカーノードとの通信のための宛先ノードである、請求項1に記載の方法。
【請求項5】
サブグラフ検出基準のセットを行うことは、前記少なくとも1つのボットネットノードとの通信のための宛先ノードである未知のコールバックノードを有するサブグラフを識別することをさらに含む、請求項1に記載の方法。
【請求項6】
サブグラフ検出基準のセットを行うことは、未知のリンカーノードを有するサブグラフを識別することをさらに含み、前記未知のリンカーノードは、少なくとも1つのボットネットノードおよび前記未知のノードの内の1つとの通信のためのソースノードである、請求項1に記載の方法。
【請求項7】
システムであって、
複数のネットワークデータフローを受信するデータストリームマイニングシステムであって、各ネットワークデータフローは、第1のIPアドレスを有するソースノードと第2のIPアドレスを有する宛先ノードとの間のデータ通信についてのデータを含んでおり、前記複数のネットワークデータフローは、ボットネットの一部であることが既知であるボットネットノード、および前記ネットワークデータフローが受信されたときに悪意のあるものとして既知ではない未知のノードを含む、データストリームマイニングシステムを備え、
前記データストリームマイニングシステムは、同時に実行される複数のジョブを生成するメッセージングキューを有し、前記メッセージングキューは、前記複数のネットワークデータフローから、複数のネットワークデータフローデータストリームを抽出することと、前記複数のネットワークデータフローのためのグラフを生成することであって、前記グラフは、各ネットワークデータフローデータストリームに対するものであり、前記グラフは、前記ソースノードと、前記宛先ノードと、前記ソースノードおよび前記宛先ノードの間のデータ通信を表す、前記ソースノードおよび前記宛先ノードの間のエッジとを有し、前記グラフの前記エッジは前記複数のネットワークデータフローデータストリームに基づいて生成される、生成することと、前記複数のネットワークデータフローデータストリームから少なくとも1つのシードサブグラフを生成することであって、前記少なくとも1つのシードサブグラフは、前記ボットネットノードであるシードノードと、前記生成されたグラフによって決定されるのに従って前記シードノードと通信する1つまたは複数の未知のノードとを有し、前記1つまたは複数の未知のノードはピボットノード構造内で識別されるものである、生成することとを行い、
前記データストリームマイニングシステムは、前記メッセージングキューに結合されたサブグラフ検出ユニットを有し、前記サブグラフ検出ユニットは、少なくとも1つのボットネットノードと少なくとも1つの候補ノードとを含む1つまたは複数のサブグラフを検出するために、
生成された前記少なくとも1つ
のシードサブグラフを用いて、サブグラフ検出基準のセットを行い、前記候補ノードは前記ボットネットに対する候補ノードである、システム。
【請求項8】
前記メッセージングキューは、第1のピボット深さにおいて前記シードノードと通信する少なくとも1つの未知のノードを識別し、および前記第1のピボット深さにおいて前記少なくとも1つの
未知のノードと通信する第2のピボット深さにおける少なくとも1つの未知のノードを識別する、請求項7に記載のシステム。
【請求項9】
前記メッセージングキューは、前記第2のピボット深さにおける特定の未知のノードが、前記シードノードと直接通信する場合、前記第2のピボット深さにおける前記複数の未知のノードの内
の特定のノードを、前記第1のピボット深さに移動させる、請求項8に記載のシステム。
【請求項10】
前記サブグラフ検出ユニットは、高中心性の未知のノードを有するサブグラフが、所定の数のネットワークデータフローのための宛先ノードであることを識別し、前記高中心性の未知のノードは、前記少なくとも1つのボットネットノードとの通信のための前記ソースノードであるリンカーノードとの通信のための宛先ノードである、請求項7に記載のシステム。
【請求項11】
前記サブグラフ検出ユニットは、前記少なくとも1つのボットネットノードとの通信のための宛先ノードである未知のコールバックノードを有するサブグラフを識別する、請求項7に記載のシステム。
【請求項12】
前記サブグラフ検出ユニットは、未知のリンカーノードを有するサブグラフを識別し、前記未知のリンカーノードは、少なくとも1つのボットネットノードおよび前記未知のノードの内の1つとの通信のためのソースノードである、請求項7に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般にグラフ分析に関し、特に、特定の目的および/または理由のために構築されたサブグラフの検出に関する。
【背景技術】
【0002】
グラフマイニングは、バイオインフォマティクス、プログラムフロー分析、コンピュータネットワーク、およびサイバーセキュリティを含む様々な領域で広く用いられる。グラフマイニングにおいて、データセットはグラフとして表され、グラフから知見を得るために分析される。グラフストリームマイニングは、グラフデータのストリームを分析するある種のグラフマイニングである。グラフストリームマイニングは、例えば、サイバーセキュリティ領域における「ボットネット」の検出のために用いられ得る。ボットネットは、多くのやり方でインターネットにわたって攻撃者によって制御され用いられる悪意のあるコンピュータのグループである。今日、多くのサイバーセキュリティ攻撃はボットネットを用いる。例えば、大規模な分散サービス拒否(DDoS)攻撃 のために、数万台の悪意のあるコンピュータが用いられる。これらの悪意のあるコンピュータの多くは、消費者によって所有され、マルウェアに感染して、攻撃者によって悪用される。ボットネットはインターネットサービスに影響を及ぼし、したがって世界的に社会に対する非常に大きな脅威になりつつある。したがって、コンピュータネットワークがボットネット攻撃から保護されることができ、究極的にボットネットが識別され無力化され得るように、ボットネットの構造を検出し、それらの構成体を識別することが重要である。
【0003】
インターネットサービスプロバイダ(ISP)は通常、ネットワークフローデータ(「ネットフロー」)を収集し、これはインターネット上のコンピュータの間の通信の記録、すなわち互いに通信するコンピュータを示す履歴データである。ネットワークフローデータは、有向グラフとして表現されることができ、それにおいてコンピュータはノードとして、フロー(またはコンピュータの間の通信)はエッジとして表される。グラフとして表されたネットワークフローデータは、次いでインターネット内のボットネットを検出するために分析される。このような検出は、分析されるべきデータの莫大な量および複雑さのために時間がかかり、間違いを起こしやすい。
【0004】
したがって、グラフマイニングを遂行する、知られている既存のシステムおよび方法には技術的問題があり、なぜならそれらは、ネットワークフローデータなど、連続的に更新されるデータの大きなセットに適用するには非効率的過ぎ、したがって例えば、ボットネットを効果的に検出するために用いられることができないからである。したがって、非効率性およびスケーラビリティ問題に対処し、この技術的問題に対する技術的解決策をもたらす、グラフマイニングのためのシステムおよび方法をもたらすことが望ましく、それが本開示が対象とする目的である。
【図面の簡単な説明】
【0005】
【
図1A】グラフストリームマイニング処理システムによって検出され得るボットネットの例を示す図である。
【
図1B】トリックボット(Trickbot)ボットネットのスナップショットを示す図である。
【
図2】グラフストリームマイニング処理システムを含むボットネット検出システムの実施形態を示す図である。
【
図3】
図2の悪意のあるシード発生器によって生成された例示の悪意のあるIPアドレスシードを示す図である。
【
図4A】ボットネット検出のために用いられ得るグラフストリームマイニング処理システムを示す図である。
【
図4B】ボットネット検出のために用いられ得るグラフストリームマイニング処理システムを示す図である。
【
図5】グラフストリームマイニング処理を用いたボットネット検出のための方法を示す図である。
【
図6】グラフストリーム処理方法に入力され得るシードサブグラフマッチング基準のセットの例を示す図である。
【
図7A-7C】グラフストリームマイニング処理システムによって実施され得るサブグラフ検出基準(subgraph detection rules)の例を示す図である。
【
図8】ネットワークフローデータの例を示す図である。
【
図9】例示的ネットワークフローデータから生成されるネットワークフローグラフの例を示す図である。
【
図10】ボットネットについてのデータを示すシステムのためのユーザインターフェースの例を示す図である。
【
図11】トリックボットについてのデータを示すユーザインターフェースの例を示す図である。
【発明を実施するための形態】
【0006】
本開示は、ボットネット検出における使用のために、以下で開示される要素を有するグラフストリームマイニングパイプラインシステムに特に適用可能であり、この関連において本開示が述べられる。しかし、グラフストリームマイニングパイプラインシステムは様々なタイプのデータセットに対して用いられることができ、以下で論じられるボットネット例に限定されず、グラフストリームマイニングパイプラインシステムおよび方法は、以下で開示されるものとは異なって実施されることができるので、システムおよび方法はより大きな有用性を有し、それらの他の実装形態は本開示の範囲内であることが理解されるであろう。
【0007】
開示されるシステムおよび方法は、プロセスを著しく並列化およびパイプライン化することによって、非効率性およびスケーラビリティによる上述の技術的問題に対する技術的解決策をもたらす。したがって、システムおよび方法は、大量のグラフストリーミングデータから、所与のシードノードに関連のあるノードを検出するための、任意のグラフストリーミングマイニングタスクにおいて用いられ得る。したがって、開示されるシステムおよび方法は、開示されるシステムおよび方法によって実施される効率的およびスケーラブルな処理能力を活用することができる、今後開発されるようになるグラフストリームマイニングを含む、グラフストリーミングマイニングとして用いられ得る、効率的およびスケーラブルなパイプラインを可能にする。
【0008】
本明細書の以下で、グラフストリームマイニングの例示的な例は、トリックボットマルウェアのために用いられるボットネットを検出するシステムである。ボットネットは、被害者、コマンドおよびコントローラサーバ(またはC&Cサーバ:command & controller server)、およびボットマスタからなる。被害者は、トリックボットマルウェアに感染したコンピュータである。例えば、被害者は、銀行の従業員によって用いられる、およびなりすましの電子メールメッセージに添付されたマルウェアによって感染した、コンピュータとすることができる。被害者は、例えば、顧客のアカウント番号およびパスワードを盗み出して、ボットネットの背後の犯罪者に送る。C&Cサーバは、コマンドを送ることによって被害者を制御するコンピュータである。ボットマスタはC&Cサーバを制御するコンピュータである。この例において、ネットワークフローデータを、ノードとしてのコンピュータと、エッジとしてのコンピュータの間のネットワークフローとからなる有向グラフとして表す。例えば、
図8は、2つのノード(xxx.23.23.23IPアドレスでのソースノードと、yyy.33.44.55IPアドレスでの宛先ノード)の間のデータフローについての情報を示す、ネットワークフローデータの例を示す。ネットワークフローデータはまた、開始時間、持続時間、ソースおよび宛先ポート番号、データフローにおけるパケットの数およびパケットのサイズを含み得る。上記に基づいて、
図9に示されるようなネットワークフローグラフは、例示的ネットワークフローデータから生成され、そこではグラフ内の各ノードは、IPアドレスである識別子を有するノード(ネットワークフローデータ内のソースまたは宛先)であり、ノード間のエッジはデータフローである。これらのグラフは、時間と共に絶えず変化され、したがってボットネット検出のために、開示されるグラフストリームマイニングを必要とする。
【0009】
図1Aは、グラフストリームマイニング処理システムを用いて検出され得る一般的ボットネット100の例を示す。
図1Aに示されるように、ボットネット100は、多くのやり方でインターネットにわたって攻撃者によって制御され用いられる、悪意のあるコンピュータのグループを含むことができ、目標は、ボットネットの一部であるそれぞれの悪意のあるコンピュータ(およびそのIPアドレス)を検出/識別することである。ボットネット100は、C&Cコンピュータおよびボットマスタが顧客コンピュータを制御することを可能にするマルウェアをインストールした、複数の感染した顧客コンピュータ106A~Nを制御するコマンドおよび制御ソフトウェアを実行することができる、複数のコマンドおよび制御コンピュータ/サーバ104A~Nを制御するボットマスタコンピュータ102を含み得る。
図1Aに示されるコンピュータのすべては、悪意のあるコンピュータのグループである。
【0010】
コンピュータセキュリティにおいて、上述のトリックボットなど、そのボットネットの脅威を取り除くまたは低減するために、ボットネットの一部であるコンピュータ(およびそのIPアドレス)のそれぞれまたは好ましくはすべてを検出できることが望ましい。トリックボットボットネットのスナップショットの例は、
図1Bに示される。以下で述べられるグラフストリームマイニング処理システムによれば、開示されるシステムは、C&Cコンピュータ104N(
図1の最も右側)を識別することができ、識別されたC&CコンピュータおよびそのIPアドレスをシードとして用いて、
図1に示される3つの他のC&Cコンピュータ/ノードを検出することができる。前に未知であったそれらのC&Cノード104A~Cは、次いでブラックリスト/MSSに追加され得る。これは、グラフストリームマイニング処理システムからの結果/データの何が、達成するために用いられ得るかの例である。
【0011】
図2は、ボットネットコンピュータ検出を達成することができるグラフストリームマイニング処理システムを含む、ボットネット検出システム200の実施形態を示す。システム200は、PCAPフィード(ネットワークについてのパケットデータ)と、TI/MISPフィード(オープンソース脅威情報)とを受信し、それらのフィードに基づいて1つまたは複数の識別された悪意のあるIPアドレスを生成する、キュレートされた悪意のあるIPアドレスシード発生器202を有することができる。発生器202のさらなる詳細、その実装形態、および詳しい動作は、参照によりその全体が本明細書に組み込まれている、2018年6月1日に出願した「Ensemble-Based Data Curation Pipeline for Efficient Label Propagation」という名称の米国特許出願第15/996,213号に示されている。
図3は、
図2の悪意のあるシード発生器によって生成された、例示の悪意のあるIPアドレスシードを示す。
図3の例に示されるように、フィードに基づいて1つまたは複数の悪意のあるIPアドレスが識別されている。
【0012】
1つまたは複数の悪意のあるIPアドレス、および既知のネットフローデータは、グラフストリームマイニングプロセッサ204に入力され、グラフストリームマイニングプロセッサ204は、ボットネットおよびボットネットコンピュータを検出するようにその中でシステムが用いられている例において、検出されたボットネットコンピュータを出力する。グラフストリームマイニングプロセッサ204およびその要素は、
図4Aおよび4Bにより詳しく示される。
【0013】
図4Aおよび4Bは、ボットネット検出のために用いられ得るグラフストリームマイニング処理システム/モジュール204のより詳細を示すが、他のタイプのデータの処理のために用いられてよく、ボットネット検出に限定されない。システム204は、到来するデータストリームを各ジョブ(カスタムジョブ1、カスタムジョブ2、・・・、カスタムジョブn、またはシードサブグラフ生成ジョブ)に分配するメッセージングキュー400内に、1つまたは複数の未処理のデータストリーム(例えば、ボットネット検出例に対するネットワークフローデータ)を受信することができる。メッセージングキューは、異なるジョブの並列処理を実施するために用いられる。ボットネット検出の例示の実装形態において、並列処理されるジョブの各ジョブは、特定のポートからのまたはそれへのネットワークフローデータからの通信などデータを抽出し、および/または以下で述べられるようにネットワークフローデータ内の関連のあるサブグラフを検出し得る。メッセージングキューは、並列処理を実施するやり方については知られているが、ネットワークフローデータに対する並列処理を行うために用いられること、またはボットネット(またはトリックボット)検出プロセスにおいてボットネットに対する候補ノードを生成することについては知られていない。各ジョブ(その詳細は以下で述べられる)は、ジョブを作り出し、更新し、終了し、または削除するジョブ管理モジュール402によって管理され得る。ジョブ管理モジュール4021はまた、並列処理の実装形態の一部である。ジョブ(結果)のそれぞれの出力は、
図4Aに示されるようにストレージ管理モジュール404によって、1つまたは複数のストアに記憶されることができ、ストレージ管理モジュール404は、データに対してそれがそれのストアに記憶される前に、データ処理またはデータフォーマット化動作を行い得る。各ジョブの出力は、CSV/JSONその他、または圧縮化フォーマットなど、様々なフォーマットで受信されることができ、出力はネットワークフローデータまたはシードサブグラフから抽出されたデータとすることができる。
【0014】
例示的なボット検出例に加えて、
図4Aおよび4Bに示されるシステムは、データセットがグラフとして表され得る関係を含む、任意の無限のデータに対して用いられ得る。例えば、他の応用例は、自動車および道路データストリームに基づく道路最適化およびプランニングのための自動車の通行量分析、ならびに医療診断のための血液(および他の体液)の流れ分析を含み得る。
【0015】
システム204はまた、1つまたは複数のユーザのためのジョブ要求をジョブマネージャ402に送り、ジョブ結果についてストレージマネージャ404と通信するAPIサーバ406を有し得る。APIサーバ406は、カスタムジョブ結果と、サブグラフ検出結果(その結果がストレージマネージャ404によって記憶される、サブグラフ検出モジュール408からの)とを分析モジュール410に通信し得る。APIサーバ406はまた、シードサブグラフを、以下でより詳しくその動作が述べられるサブグラフ検出モジュール408に通信し得る。サブグラフ検出モジュール408は、サブグラフ検出結果を、APIサーバ406と、分析モジュール410とに返し得る。分析モジュール410は、以下でより詳しく述べられるように、ボットネット検出例における候補ボットネットノードのセットなど、結果に達するために分析および検証を行い得る。分析モジュール410は、分析結果をユーザに表示し得る。ボットネット検出のための分析モジュール410からのグラフィック表示の2つの例が、
図10および11に示される。
図10は、国ごとのボットネットのノードをグラフィック的に表示し、
図11は、検出されたトリックボットの異なるレイヤ内のノードを示す。
【0016】
Bilge, Leyla, et al. "Disclosure: detecting botnet command and control servers through large-scale netflow analysis.".Proceedings of the 28th Annual Computer Security Applications Conference.ACM, 2012など、ボットネットを検出するためのフローデータの統計的分析に基づく機械学習モデルを用いる既存のシステムがある。これらのシステムは、3つの重大な問題、(1)、最終結果を得るための時間が長いことと、(2)フォールスポジティブ率が高いことと、(3)不十分な解釈可能性とを有する。開示されるグラフストリームマイニング方法およびシステムは、(1)統計量を計算するならびにシードサブグラフを記憶および処理する必要性を取り除くことによって、リアルタイムで最終結果を生じる、(2)必要に応じて検出基準を用いることによってより低いフォールスポジティブ率を達成する、および(3)結果を特定の、人間が読める基準に帰することを用いることおよびしたがってそれらを可能にすることによって、より高い解釈可能性を実証する。
【0017】
図5は、グラフストリームマイニング処理を用いたボットネット検出のための方法500を示す。方法は、
図2および4A~4Bに示されるシステムによって行われ得るが、またソフトウェア実施形態において複数の行のコンピュータコードをプロセッサが実行する、プロセッサを有する他のコンピュータシステムによって、またはハードウェア実施形態において、マイクロプロセッサ、GPU、データプロセッサなどの他のハードウェア要素によって行われ得る。方法において、ネットワークフローデータ(
図4Aに示される未処理のデータストリームとすることができる)は、一連のプロセスを用いてボットネットを検出するために分析される、グラフストリームとすることができる。第1のプロセス502は、グラフストリーム準備とすることができ、その間にユーザは、ジョブ要求、シードノード、およびシードサブグラフマッチング基準を準備し、
図4Aおよび4Bに示される例示のシステムなどの、システムに入力する。ジョブ記述/要求は、グラフストリーム処理モジュール/システムにおいて実行されるようになるジョブを記述する。例えば、ジョブ記述は、しばしばボットネット攻撃において用いられる、ポート447を通じたトラフィックを含むネットワークフローデータを収集し、記憶することとすることができる。ジョブの他の例(行われるカスタムジョブの1つとすることができる)は、そのことがそれらのホストをボットネットの一部であることの候補にする、所与の閾値より多くの1秒当たりのフローを有するホストを含むネットワークフローデータを収集し、記憶することである。ジョブ記述は、グラフストリーム処理システムのAPIサーバを通して提出され得る。各シードノードは、システムがトリックボットマルウェアの悪意のあるコンピュータを検出するために用いられているときの、トリックボットマルウェアのそれぞれの既知のC&CサーバのIPアドレスである(例えば、
図3に示されるような、94.23.252.37)。
【0018】
シードサブグラフマッチング基準は、グラフストリームとして表されるネットワークフローデータ内の関心のあるサブグラフを検出する条件のセットを定義する。例えば、基準は、シードノードを用いた、一定の閾値量より多いトラフィックを有するC&Cサーバ候補を検出する。
図6は、グラフストリーム処理方法に入力され得る、シードサブグラフマッチング基準のセットの例600を示す。示されるように、シードサブグラフマッチング基準のセットは、
図6の例においてdst1であるシードノードからの、ピボットノード構造を用いることができる。シードサブグラフマッチング基準のセットは、ピボットノード構造内に見出されるネットワークフローデータ内のノードを検出することができ、それらのノードはボットネットインフラストラクチャのための候補である。ピボットノード構造(以下でより詳しく述べられる)を用いて、
図6の例でのsrc1など、第1のピボットノードからまたはそれへの各ネットワークフローデータストリームにおける通信は、閾値Nまで、追加の依存性が捕捉されるのを可能にするように記憶される。さらに、通信は深さDにおいて記憶される。S個の出現は、エッジがピボットノードになることを示し得る。値Nは、グラフに記憶するための(およびしたがって次のレベルにおいてピボット候補と見なす)、内向きおよび外向きのエッジの数を決定する。アルゴリズムは同じままであるが、Nがより大きな値になるのに従って、計算的により重くなる。Dは、単一のシードに基づいて、グラフがどれだけ「深く」なり得るかの制限を設定し、すなわちこれは、関心がもたれるシードからの最大距離(関係性リンク)である。Sのより高い値は、代わりに、それらがピボットノードに拡大する、すなわちゆっくりとグラフ構造を成長させるのを可能にするように、ノードの間のより連続した関係性を必要とする。
【0019】
図6の例において、シードサブグラフマッチング基準のセットは、t1において深さ0での第1のフェーズ、t2において深さ1での第2のフェーズ、およびt3において深さ2での第3のフェーズを有し得る。各ノードは、ネットワークフローデータから導き出されるsrc1などのラベルを有するが、各ノードはまたそれのIPアドレスラベルを有する。例えば、src1ノードは、
図8の例に示される、xxx.23.23.23IPアドレスを有し得る。第1のフェーズにおいて、src1ノード(ピボットノード)は、シードノードdst1に関連付けられる。src1ピボットノードは、シードノード、dst1との、ネットワークフローデータ内のトラフィックの閾値量に基づいて決定される。ピボット深さ1での第2のフェーズにおいて、src2およびdst2ノードが識別される。ピボット深さ2での第3のフェーズにおいて、src3が深さ2でのピボットノードとして識別され、
図6に示されるように、dst2とdst1との間で直接パスが識別されたので、dst2は深さ1から深さ0に移動される。
【0020】
準備プロセス502の間、ユーザはまた、ネットワークフローデータフィードを準備し、それらをグラフストリーム処理モジュールに供給する。このようなデータは、ネットワークデバイス、例えば、ルータから収集され得る。外部情報は、
図4Bに示されるような分析モジュールにおける分析結果を検証するために用いられ得る。以下で述べられるように、外部ソースの例は、よく知られているウイルストータル(Virus Total)データである。ウイルストータル(VT)は、所与のIPアドレスに悪意があるか否かを示す。グラフストリームマイニングシステムの結果を、VTからの結果と比較することによって、システムは開示されるシステムからの予測が、VTと同じであるかどうかをチェックすることができる。VTとの一致は、グラフストリームマイニングシステムの結果をベンチマークテストするために用いられ得る。例えば、グラフストリームマイニングシステムからの結果は、同じケースにおいて、2週間より大きくVTの知見を先行したことが見出された。
【0021】
図5に戻ると、方法は、504でグラフストリームデータを取り込み得る。具体的にはネットフローフォーマットでのネットワークフローデータは、
図4Aおよび4Bに示されるシステムのメッセージングキュー400に連続して供給され得る。ネットフローデータ(グラフストリームの形での)が取り込まれた後、方法はユーザのジョブ506を実行し得る。具体的には、カスタムジョブおよびシードサブグラフ生成ジョブは、メッセージングキュー400からデータを取り出し、ジョブ記述と一致するデータを収集し、
図6および7A~7Cに示されるように収集されたデータからサブグラフを構築する。次いでシステムのAPIサーバ406はサブグラフを、よく知られているやり方で、適切な認証情報を用いてHTTPSを通じて専用のURLを通して、他のモジュール(サブグラフ検出器408および/または分析モジュール410)にアクセス可能にすることができる。
【0022】
方法は次いで、サブグラフ検出プロセス508を行い得る。このプロセスの間、サブグラフ検出モジュール408は、1つまたは複数のノイズ低減基準を適用することによって、シードサブグラフストア内の被害者および無害のコンピュータをフィルタで取り除く。例えば、ノイズ低減基準は、グーグル検索サイトなど、人気があるウェブサイトにアクセスすることを含む、通常の消費者のウェブブラウジングトラフィックパターンを示す消費者のコンピュータを検出し、除外することである。このプロセス508は次いで、例示的目的のために用いられるボットネット検出例におけるC&Cサーバおよびボットマスタ候補を検出するために、1つまたは複数のサブグラフ検出基準を、ストレージマネージャ404に接続されたシードサブグラフストア内のデータに適用することができる。
【0023】
図7A~7Cは、グラフストリームマイニング処理システムによって実施され得るサブグラフ検出基準700、702、704の例を示す。方法において、これらのサブグラフ検出基準の1つまたは複数は、関連のあるサブグラフを識別するために、ストレージマネージャ404に接続されたシードサブグラフストア内の各データに適用され得る。第1のサブグラフ検出基準700は、
図7Aに示されるように1つまたは複数の中間/リンカーノードによって既知の悪意のあるノード(
図7AのB2B IPノード)に接続された、未知の高中心性ノード(複数の内向きネットワークデータフローを有するノード)を有するサブグラフを識別することができる。サブグラフ内の各リンカーノードは、ボットネットにおけるそれの悪意性/参加が既知であり、何らかの形で未知のノードを既知のボットネットノード/IPアドレスにリンクするノードである。各未知のノードは、方法が行われている時点で悪意のあるものとして既知ではないノードである。
【0024】
第2のサブグラフ検出基準702は、2つ以上の既知の悪意のある/ボットネットノード(例におけるB2B IPノード)によって用いられる、未知のコールバックノードを有するサブグラフを識別することができる。未知のコールバックノードは、悪意のあるまたはボットネットの一部であるとのステータスが未知であり、それに対してネットワークフローデータに基づいて2つ以上のボットネットノードがコールバックするノードである。コールバックノードは、ボットネットの例において、ボットネットのボットマスタになる候補である。
【0025】
第3のサブグラフ検出基準704は、リンカーノードからの相関する/並列の一時的通信パターンを有するサブグラフを識別することができる。
図7Cに示される例において、リンカーノードは、既知の悪意のあるノード(例においてB2B IP)および未知のノードとの連続的な通信を有する。したがってサブグラフのそれぞれは、ボットネットノード/悪意のあるノードの候補である少なくとも1つの未知のノードを識別する。一例において、リンカーノードは既知のボットマスタとすることができ、未知のノードはボットマスタによって制御されているC&Cサーバとすることができる。
【0026】
図5に戻ると、サブグラフが識別された後、方法は分析および検証510を行うことができる。例示的目的のために用いられているボットネットの例において、分析および検証は、ボットネットの一部である可能性が高い、1つまたは複数の未知の候補ノードを生成し得る。
図4Aおよび4Bのシステムを用いてより詳細には、このプロセス510は、APIモジュール406からのカスタムジョブからの結果、およびサブグラフ検出モジュールからの結果を取得し、次いでこれらの結果の相関をとって最終候補のセットを作り出す。相関は、カスタムジョブ結果およびサブグラフ検出結果に含まれるIPアドレスのセットの論理的組み合わせを行うことによってなされる。この相関の例は、
図11に示され、そこではボットマスタは、TRICKBOT_C2_MCCONFからTRICKBOT_LAYER2を経て実際のボットマスタへの外向きのエッジによって識別される。最終候補が識別された後、最終候補は、商用マルウェア情報サイトであるウイルストータルなどの、外部ソースを用いて検証される。検証は自動的になされる。プログラムモジュール(またはスクリプト)は、ソースのAPIを通して外部データソースから検証のためのデータを取得し、分析結果を外部データと比較する。
【0027】
上記の記述は、説明のために、特定の実施形態を参照して述べられた。しかし、上記の例示的な考察は、網羅的であることを意図するものではなく、または開示された正確な形に本開示を限定するものではない。上記の教示に鑑みて、多くの変更形態および変形形態が可能である。実施形態は、本開示の原理およびその実用的な応用を最もよく説明し、それによって当業者が、企図される特定の使用に適するように様々な変更を有して、本開示および様々な実施形態を最もよく利用することを可能にするように選ばれている。
【0028】
本明細書で開示されるシステムおよび方法は、1つまたは複数の構成要素、システム、サーバ、機器、その他のサブコンポーネントによって実施されることができ、またはこのような要素の間に分散され得る。システムとして実施されるとき、このようなシステムはとりわけ、汎用コンピュータにおいて見られるソフトウェアモジュール、汎用CPU、RAMなどの構成要素を含むことができ、および/またはそれらが関わり得る。本イノベーションがサーバ上に存在する実装形態において、このようなサーバは、汎用コンピュータで見られるものなど、CPU、RAMなどの構成要素を含むことができ、またはそれらが関わり得る。
【0029】
さらに、本明細書におけるシステムおよび方法は、上記に記載されたものを超えて、異種のまたは全く異なるソフトウェア、ハードウェア、および/またはファームウェア構成要素を用いた実装形態により達成され得る。本発明、例えば、本明細書における本イノベーションの態様に関連付けられたまたはそれを具現化する、このような他の構成要素(例えば、ソフトウェア、処理構成要素など)および/またはコンピュータ可読媒体は、数多くの汎用または専用コンピューティングシステムまたは構成と一貫性を保って実施され得る。本明細書における本イノベーションによる使用のために適し得る、様々な例示的コンピューティングシステム、環境、および/または構成は、パーソナルコンピュータ、経路設定/接続性構成要素などのサーバまたはサーバコンピューティングデバイス、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、民生用電子デバイス、ネットワークPC、他の既存のコンピュータプラットフォーム、上記のシステムまたはデバイスの1つもしくは複数を含む分散コンピューティング環境内の、またはそれらにおいて具現化されたソフトウェアもしくは他の構成要素を含み得るが、それらに限定されない。
【0030】
いくつかの場合において、システムおよび方法の態様は、例えば、このような構成要素または回路に関連して実行される、ロジックおよび/またはプログラムモジュールを含む論理命令によって達成され、または行われ得る。一般に、プログラムモジュールは、本明細書における特定のタスクを行う、または特定の命令を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含み得る。本発明はまた、分散ソフトウェア、コンピュータ、または回路が通信バス、回路もしくはリンクを通じて接続される回路設定の関連において実施され得る。分散設定において、制御/命令は、メモリ記憶デバイスを含む、ローカルおよびリモートの両方のコンピュータ記憶媒体から生じ得る。
【0031】
本明細書においてソフトウェア、回路、および構成要素はまた、1つまたは複数のタイプのコンピュータ可読媒体を含むおよび/または利用することができる。コンピュータ可読媒体は、このような回路および/またはコンピューティング構成要素に常駐する、それらに関連付け可能である、またはそれらによってアクセスされ得る、任意の使用可能な媒体とすることができる。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得るが、それらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータなどの、情報を記憶するための任意の方法および技術で実施される、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタルバーサタイルディスク(DVD)もしくは他の光ストレージ、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を記憶するために用いられることができ、コンピューティング構成要素によってアクセスされ得る任意の他の媒体を含むが、それらに限定されない。通信媒体は、コンピュータ可読命令、データ構造体、プログラムモジュールおよび/または他の構成要素を備え得る。さらに、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体を含み得るが、本明細書においていずれのこのようなタイプの媒体も一時的媒体を含まない。上記の任意のものの組み合わせも、コンピュータ可読媒体の範囲に含まれる。
【0032】
この説明において、構成要素、モジュール、デバイスなどの用語は、多様なやり方で実施され得る、任意のタイプの論理的もしくは機能的ソフトウェア要素、回路、ブロックおよび/またはプロセスを指し得る。例えば、様々な回路および/またはブロックの機能は、任意の他の数のモジュール内に互いに組み合わされ得る。各モジュールはさらには、本明細書における本イノベーションの機能を実施するように、中央処理装置によって読み出されるべく、有形のメモリ(例えば、ランダムアクセスメモリ、読み出し専用メモリ、CD-ROMメモリ、ハードディスクドライブなど)上に記憶されたソフトウェアプログラムとして実施され得る。または、モジュールは、伝送搬送波によって汎用コンピュータに、または処理/グラフィックスハードウェアに送信されたプログラミング命令を備え得る。また、モジュールは、本明細書における本イノベーションによって包含される機能を実施するハードウェア論理回路として実施され得る。最後に、モジュールは、特定目的命令(SIMD命令)、フィールドプログラマブルロジックアレイ、または所望のレベルの性能およびコストをもたらすそれらの任意の混合を用いて実施され得る。
【0033】
本明細書で開示されるように、本開示と一貫性を保つ特徴は、コンピュータハードウェア、ソフトウェア、および/またはファームウェアによって実施され得る。例えば、本明細書で開示されるシステムおよび方法は、例えば、データベース、デジタル電子回路、ファームウェア、ソフトウェア、またはそれらの組み合わせも含むコンピュータなどの、データプロセッサを含む様々な形で具現化され得る。さらに、開示された実装形態のいくつかは特定のハードウェア構成要素を述べるが、本明細書における本イノベーションと一貫性を保つシステムおよび方法は、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせで実施され得る。さらに、本明細書における本イノベーションの上記の特徴および他の態様および原理は、様々な環境において実施され得る。このような環境および関連する応用例は、本発明による様々なルーチン、プロセス、および/または動作を行うように特に構築されることができ、それらは必要な機能をもたらすようにコードによって選択的に活動化または再構成された汎用コンピュータまたはコンピューティングプラットフォームを含み得る。本明細書で開示されるプロセスは、本質的にいずれの特定のコンピュータ、ネットワーク、アーキテクチャ、環境、または他の装置に関連せず、ハードウェア、ソフトウェア、および/またはファームウェアの適切な組み合わせによって実施され得る。例えば、様々な汎用マシンが、本発明の教示に従って書かれたプログラムによって用いられることができ、または必要な方法および技法を行うように専門化した装置またはシステムを構築することがより都合がよくなり得る。
【0034】
ロジックなど、本明細書で述べられる方法およびシステムの態様はまた、フィールドプログラマブルゲートアレイ(「FPGA」)、プログラマブルアレイロジック(「PAL」)デバイス、電気的プログラマブルロジックおよびメモリデバイスなどのプログラマブルロジックデバイス(「PLD」)、および標準セルベースのデバイス、ならびに特定用途向け集積回路を含む、多様な回路の任意のものにプログラムされた機能として実施され得る。態様を実施するためのいくつかの他の可能性は、メモリデバイス、メモリ(EEPROMなど)を有するマイクロコントローラ、埋め込み型マイクロプロセッサ、ファームウェア、ソフトウェアなどを含む。さらに、態様は、ソフトウェアベースの回路エミュレーションを有するマイクロプロセッサ、ディスクリートロジック(シーケンシャルおよび組み合わせ)、カスタムデバイス、ファジー(ニューラル)ロジック、量子デバイス、および上記のデバイスタイプの任意のものの混成物において具現化され得る。基礎をなすデバイス技術は、多様な構成要素タイプ、例えば、相補型金属酸化物半導体(「CMOS」)などの金属酸化物半導体電界効果トランジスタ(「MOSFET」)技術、エミッタ結合ロジック(「ECL」)などのバイポーラ技術、ポリマー技術(例えば、シリコン-共役ポリマー、および金属共役ポリマー-金属構造)、アナログおよびデジタル混合などにおいてもたらされ得る。
【0035】
また本明細書で開示される様々なロジックおよび/または機能は、それらの挙動の観点から、ハードウェア、ファームウェア、および/または様々なマシン可読またはコンピュータ可読媒体において具現化されたデータおよび/または命令としての任意の数の組み合わせ、レジスタ転送、ロジック構成要素、および/または他の特性を用いて可能にされ得ることが留意されるべきである。このようなフォーマットされたデータおよび/または命令が具現化され得るコンピュータ可読媒体は、非限定的に様々な形での不揮発性記憶媒体(例えば、光、磁気、または半導体記憶媒体)を含むが、やはり一時的媒体は含まない。文脈が異なる解釈を明らかに求める場合を除き、本記述にわたって、「備える(comprise、comprising)」という語および類似のものは、排他的または網羅的意味ではなく包含的な意味において、すなわち「含むが、それに限定されない」という意味において解釈されるべきである。単数または複数を用いた語はまた、それぞれ複数または単数を含む。さらに、「本明細書での」、「本明細書の以下での」、「上記の」、「以下の」、および同様の趣旨の語は、本出願全体を指し、本出願のいずれかの特定の部分を指すものではない。「または」という語が2つ以上の品目のリストを参照して用いられるとき、この語は、その語の以下の解釈すなわち、リスト内の品目の任意のもの、リスト内の品目のすべて、およびリスト内の品目の任意の組み合わせの、すべてを包含する。
【0036】
本発明の現在において好ましい実装形態が本明細書で具体的に述べられたが、本発明が関連する当業者には、本明細書で示され、述べられた様々な実装形態の変形形態および変更形態が、本発明の思想および範囲から逸脱せずになされ得ることが明らかになるであろう。したがって、本発明は、適用可能な法規によって要求される範囲にのみ限定されるものである。
【0037】
上記は本開示の特定の実施形態に関するものであるが、この実施形態における変更は、本開示の原理および思想から逸脱せずに行うことができ、その範囲は添付の特許請求の範囲によって定義されることが当業者には理解されるであろう。