IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌティーティー セキュリティー コーポレイションの特許一覧

特許7382350効率的なラベル伝搬のためのアンサンブルベースのデータキュレーションパイプライン
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-08
(45)【発行日】2023-11-16
(54)【発明の名称】効率的なラベル伝搬のためのアンサンブルベースのデータキュレーションパイプライン
(51)【国際特許分類】
   G06N 20/20 20190101AFI20231109BHJP
【FI】
G06N20/20
【請求項の数】 19
(21)【出願番号】P 2020567157
(86)(22)【出願日】2019-05-31
(65)【公表番号】
(43)【公表日】2021-10-07
(86)【国際出願番号】 US2019035072
(87)【国際公開番号】W WO2019232489
(87)【国際公開日】2019-12-05
【審査請求日】2022-05-30
(31)【優先権主張番号】15/996,213
(32)【優先日】2018-06-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520046557
【氏名又は名称】エヌティーティー セキュリティー コーポレイション
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ダレク ダニエル
(72)【発明者】
【氏名】シンハ ヒマンシュ
(72)【発明者】
【氏名】アクスバーグ ジョセフィン
【審査官】福西 章人
(56)【参考文献】
【文献】米国特許出願公開第2009/0319457(US,A1)
【文献】特開2015-176175(JP,A)
【文献】特表2008-529105(JP,A)
【文献】特開2013-161298(JP,A)
【文献】特開2001-195379(JP,A)
【文献】国際公開第2018/096685(WO,A2)
【文献】国際公開第2017/023416(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のラベルが識別できるデータのセットを受け取るステップであって、データの前記セットが、多数派クラスサンプルおよび少数派クラスサンプルを含む、ステップと、
各分類処理によって、前記少数派クラスサンプル内のラベルグループを自動的に識別するために、データの前記セットの前記少数派クラスサンプルに対して複数の分類処理を実施するステップと、
選択したラベルグループを決定するために、各分類処理によって前記少数派クラスサンプルに投票するステップと、
クラスタリングした少数派データセットを生成するために、少数派クラスサンプルの前記選択したグループをクラスタリングするステップと、
前記多数派クラスサンプルのアンダーサンプリング、および前記クラスタリングした少数派データセットを使用して、機械学習分類器を生成するステップと、
キュレーションしたラベルつきデータセットを生成するステップであって、前記キュレーションしたラベルつきデータセットが、データの前記セット、および前記選択したラベルグループを含む、ステップと
を含む、方法。
【請求項2】
前記機械学習分類器が、ダイバースレジスタンス分類器をさらに備える、請求項1に記載の方法。
【請求項3】
前記複数の分類処理に前記ダイバースレジスタンス分類器を挿入するステップと、選択したラベルグループを決定するために、各分類処理によって前記少数派クラスサンプルに投票する前記ステップ、および、クラスタリングした少数派データセットを生成して、前記キュレーションしたデータセットを生成するために、少数派クラスサンプルの前記選択したグループをクラスタリングする前記ステップという、前記少数派クラスサンプルに対する前記複数の分類処理の前記実施を繰り返すステップとをさらに含む、請求項2に記載の方法。
【請求項4】
前記複数の分類器が、NIDSアラート分類器、キルチェーン分類器、およびSIEM分類器をさらに備える、請求項1に記載の方法。
【請求項5】
選択したラベルグループを決定するために投票するステップが、前記複数の分類器のそれぞれに等しい重みを割り当てるステップをさらに含む、請求項1に記載の方法。
【請求項6】
前記分類器の1つまたは複数の重みを調節するステップをさらに含む、請求項5に記載の方法。
【請求項7】
前記複数の分類器のそれぞれのためのフォーマットに、前記少数派クラスサンプルを変換するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記データセットが、マルウェアデータをさらに含む、請求項1に記載の方法。
【請求項9】
少数派クラスサンプルの前記選択したグループをクラスタリングするステップが、DB SCANクラスタリング法を使用するステップをさらに含む、請求項1に記載の方法。
【請求項10】
プロセッサ、メモリ、および、1つまたは複数のラベルが識別できるデータのセットを受け取るインターフェースを有するコンピュータシステムであって、データの前記セットが、多数派クラスサンプルおよび少数派クラスサンプルを含む、コンピュータシステムと、
データの前記セット内のラベルグループを自動的に識別するために、データの前記セット内の前記少数派クラスサンプルを処理する前記コンピュータシステムによって実行される第1の分類器と、
データの前記セット内のラベルグループを自動的に識別するために、データの前記セット内の前記少数派クラスサンプルを処理する前記コンピュータシステムによって実行される第2の分類器と
を備え、
前記コンピュータシステムが、
選択したラベルグループを決定するために、各分類処理によって前記少数派クラスサンプルに投票することと、
クラスタリングした少数派データセットを生成するために、少数派クラスサンプルの前記選択したグループをクラスタリングすることと、
前記多数派クラスサンプルのアンダーサンプリング、および前記クラスタリングした少数派データセットを使用して、機械学習分類器を生成することと、
キュレーションしたラベルつきデータセットを生成することであって、前記キュレーションしたラベルつきデータセットが、データの前記セット、および前記選択したラベルグループを含む、生成することと
を行うようにさらに構成される、
システム。
【請求項11】
前記機械学習分類器が、ダイバースレジスタンス分類器をさらに備える、請求項10に記載のシステム。
【請求項12】
前記コンピュータシステムが、前記複数の分類処理に前記ダイバースレジスタンス分類器を挿入することと、選択したラベルグループを決定するために、各分類処理によって前記少数派クラスサンプルに前記投票すること、および、クラスタリングした少数派データセットを生成して、前記キュレーションしたデータセットを生成するために、少数派クラスサンプルの前記選択したグループを前記クラスタリングすることという、前記少数派クラスサンプルに対する前記複数の分類処理の実施を繰り返すこととを行うようにさらに構成される、請求項11に記載のシステム。
【請求項13】
前記第1の分類器が、NIDSアラート分類器であり、前記第2の分類器が、キルチェーン分類器である、請求項10に記載のシステム。
【請求項14】
データの前記セット内のラベルグループを自動的に識別するために、データの前記セット内の前記少数派クラスサンプルを処理し、前記選択したラベルグループに対して投票するSIEM分類器をさらに備える、請求項13に記載のシステム。
【請求項15】
前記コンピュータシステムが、前記分類器のそれぞれに等しい重みを割り当てるようにさらに構成される、請求項14に記載のシステム。
【請求項16】
前記コンピュータシステムが、前記分類器の1つまたは複数の重みを調節するようにさらに構成される、請求項15に記載のシステム。
【請求項17】
前記コンピュータシステムが、前記分類器のそれぞれのためのフォーマットに、前記少数派クラスサンプルを変換するようにさらに構成される、請求項10に記載のシステム。
【請求項18】
前記データセットが、マルウェアデータをさらに含む、請求項10に記載のシステム。
【請求項19】
少数派クラスサンプルの前記選択したグループをクラスタリングすることが、DB SCANクラスタリング法を使用することをさらに含む、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、機械学習に関し、詳細には、教師あり機械学習のために使用されるラベルつきデータセットを拡大させることに関する。
【背景技術】
【0002】
今日、コンピュータが、マルウェア検出などのトピックについて「学習する」ことができ、その後、マルウェア検出を実施することができる機械学習および教師あり機械学習のための多くの知られている、および、まだ発見されていない用途がある。それでも、教師あり機械学習は、正しく機能するように、安定的かつ正確なラベルつきデータセットにアクセスする必要がある。不完全なラベルつきデータセットの影響は、「Automatic Training Data Cleaning for Text Classification, Hassan H.Malik,Vikas S.Bhardwaj」などの研究で調査されてきた。図10は、Irisデータセット内の間違ったラベルつきエントリの数とともに、ランダムフォレスト分類器の正確さがどのように低下するかを示す。
【0003】
これらのラベルつきデータセットの作成は、エラーが発生しやすく、時間のかかるものであることが多く、これが、大量のデータへのアクセスにもかかわらず、ラベルつきデータセットの不足が多く存在する理由である。典型的には、利用可能なデータセットは、サンプルがほとんどない(しばしばノイズを伴う)関心のある少数派クラス、および大量の多数派クラスのエントリを有する。
【0004】
これらのラベルつきデータセットを生成し、ラベル伝搬を使用してデータセットを拡大させることができるのが望ましい。この分野における以前の実用的なリサーチは、ノイズ感度に注目してきており、すなわち、分類器が、ノイズの存在下で、適度にうまく実施できることを確実にする。データキュレーションについてのリサーチは、データを変換する間にデータ喪失またはエラーが導入され得るキュレーション処理自体の脅威に多く注目してきた。既存のリサーチでは、キュレーションのための主要なドライバは、ラベルの一貫性と正確さではなく、保護の必要性からのものである。
【発明の概要】
【0005】
既存の技法のいくつかの例は、データセット内のラベルの手動検証および訂正を含む。このアプローチは、人間の検証、および、データセットが大きいことによる時間の浪費を伴うので、非常に誤差が発生しやすい。他の技法は、試験データセットのラベルだけを手動で検証し、訂正する。このアプローチは、時間の浪費は少なくなるが、間違ったラベルつきデータによって、モデル性能がどれだけ影響を受けるかを判定するのを不可能にしている。
【0006】
別の現在の技法は、間違ったラベルつきインスタンスの可能性があるデータセット内の外れ値を識別して、除去するが、ラベルの正確さと一貫性の問題に完全に対処しているわけではない。他の技法は、ノイズレベルの増加とともに優雅に低下するが、同時に、ラベルの正確さと一貫性の問題を解決しない機械学習アルゴリズムを使用する。
【0007】
したがって、ラベルつきデータセットが正確でなく、一貫してもいないので、ラベルを伝搬させ、これらのラベルつきデータセットを生成する既知および既存のシステムおよび方法による技術的問題が存在する。したがって、ラベルの正確さと一貫性の問題に対処するラベル伝搬のためのシステムおよび方法を提供し、この技術的問題に対する技術的解決策を提供することが望ましく、この目的に本開示は向けられる。
【図面の簡単な説明】
【0008】
図1】典型的な教師あり機械学習処理を示す図である。
図2】ラベル伝搬システムをホストすることができるコンピュータシステムアーキテクチャの例を示す図である。
図3】マルウェアファミリラベルにカテゴライズされる悪意のあるネットワークトラフィックのノイズを伴うサンプルに対して使用されるラベル伝搬システムのラベル伝搬要素のさらなる詳細を示す図である。
図4】ノイズを伴う不安定なデータセットを、キュレーションした安定的なデータセットに拡大させるために使用されるラベル伝搬システムのラベル伝搬要素の分類器、モデル訓練、投票ブロック、およびクラスタリング処理の詳細を示す図である。
図5】キルチェーン分類器が使用できるキルチェーンアクティビティテンプレートの例を示す図である。
図6】RIG_EK変異体を検出するために、SIEM分類器が使用するルールの例を示す図である。
図7】RIG_EK分類器c3.0が多数派クラスに適用される例を示す図である。
図8A-8D】ラベル伝搬システムおよび方法の一定のユーザインターフェース画面の例を示す図である。
図9A-9B】ラベル伝搬システムおよび方法の一部を実装できる擬似コードを示す図である。
図10】Irisデータセット内の間違ったラベルつきエントリの数とともに、ランダムフォレスト分類器の正確さがどのように低下するかを示す図である。
図11】分類器への実例の投票を示す図である。
図12A】NEUTRINO_EK(URL構造特徴)に対するDBSCANクラスタリングの結果の例を示す図である。
図12B】NEUTRINO_EKクラスタの例を示す図である。
【発明を実施するための形態】
【0009】
本開示は、マルウェア検出で使用するために下記で開示される要素を有するラベル伝搬システムに特に適用でき、この文脈で本開示を説明する。それでも、本システムおよび方法は、ラベル伝搬システムを様々なタイプのデータセットに使用できるので、より大きな実用性を有し、下記で論じるマルウェアの例に限定されないということ、ならびに、ラベル伝搬システムおよび方法は、下記で開示されるものとは異なって実装されてもよく、これらの他の実装形態は、本開示の範囲内にあるということが認識されよう。
【0010】
開示のシステムおよび方法は、ラベリング処理を著しく自動化すること、およびラベルつきデータセットを拡張したときに、データが、キュレーションしたままであることを保証することによって、教師あり機械学習についてのラベルの正確さと一貫性による上記で説明した技術的問題に対する技術的解決策を提供する。システムおよびキュレーションしたデータセット自体によって使用されるデータセットの特徴は、その後、教師あり機械学習の訓練能力を有する任意のプラットフォームによる予測のために使用することができる。したがって、開示のシステムおよび方法は、正確かつ一貫したラベルを有するデータセットを生み出し、データセットは、その後、開示のシステムおよび方法によって生成された正確かつ一貫したラベルつきデータセットを利用することができるまだ開発されていない教師あり機械学習を含めて、任意の既知の教師あり機械学習のためのデータセットとして使用することができる。
【0011】
図1は、不正確または一貫性のないラベルつきデータセットによる技術的問題を有する典型的な教師あり機械学習処理10を示し、この教師あり機械学習は、下記で説明されるような、ラベル伝搬、およびラベル伝搬システムによって生成されたラベルつきデータセットを利用することができる。教師あり機械学習機械処理10は、データ獲得処理12、データラベリング処理14、特徴抽出処理16、モデル訓練処理18、モデル検証処理20、および予測処理22を含むことができる。図1に示したように、特徴抽出処理16、モデル訓練処理18、およびモデル検証処理20は、繰り返すことができる。データ獲得処理12は、複数のクラスを有することができる1つまたは複数のデータセットなどの未加工データを集めることができる。データラベリング処理14は、下記で説明されるラベル伝搬システムによって改善されている処理である。データラベリング処理14は、クラス、および、クラスの選別に影響を及ぼす可能性のある属性ノイズを識別する処理を含むことができる。また、データラベリング処理14は、クラス不均衡問題、およびこれらの問題に対処するための可能なステップを識別すること含むことができ、多数派クラスをアンダーサンプリングすること、少数派クラスをオーバーサンプリングすること、または、SMOTE(N.V.Chawla、K.W.Bowyer、L.O.Hall、およびW.P.Kegelmeyer(2002年)「SMOTE:Synthetic Minority Over-sampling Technique」)などの技法を使用して合成サンプルを作り出すことを含む。上記で説明したように、このラベリング処理は、既知の技法で実施することができるが、これらの既知の技法には、不正確および/または一貫性のないラベルについての技術的問題があり、教師あり機械学習に悪影響を及ぼす。対照的に、下記で説明されるラベル伝搬処理およびシステムは、上記の問題に対する技術的解決策を提供し、教師あり機械学習処理を強化する正確かつ一貫したラベルつきデータセットを提供する。図1に見えるように、大多数の教師あり機械学習処理は、不正確なまたは一貫性のないラベルつきデータが、教師あり機械学習にとって重大な技術的問題になるようなラベルつきデータ処理14に依存する。
【0012】
教師あり機械学習は、(ドメイン固有の)特徴抽出16、モデル訓練18、およびモデル検証20を実施し、繰り返すことができ、ラベルつきデータ(およびその正確さと一貫性)が、教師あり機械学習処理の品質における非常に重要な要因になるような、ラベルつきデータに全て依存する。モデル訓練18は、例えば、ランダムフォレスト、アダブースト、SVM、およびロジスティック回帰など、様々な機械学習アルゴリズムを含むことができる。モデル検証20の中で、処理は、データセットを相互検証することができる。
【0013】
機械学習モデルが訓練され、検証されると、モデルは、信頼度閾値を用いた予測のために使用することができる。これは、scikit-learn(http://scikit-learn.org)、SMILE(https://haifengl.github.io/smile/)、またはtensorflow(https://www.tensorflow.org/)などの、任意の利用可能な機械学習ライブラリを使用して行うことができる。
【0014】
したがって、(ラベルつきデータの正確さと一貫性に基づいて)訓練され、検証されたモデルは、正確かつ一貫したラベルつきデータで訓練したときに、最高の力を発揮する。図10は、間違ったラベルつきエントリの数とともに、分類器の正確さがどのように低下するかを示す。
【0015】
図2は、ラベル伝搬システムをホストすることができるコンピュータシステムアーキテクチャ100の例を示す。システム100は、下記で説明されるようなデータセットラベル伝搬を実施するバックエンド要素104に通信経路102で接続された、1つまたは複数のフロントエンド要素を有することができる。フロントエンド要素は、通信経路102に連結し、バックエンド104と通信することができる(図2に示したコンピューティングデバイス106A~106Nなどの)1つまたは複数のコンピューティングデバイス106を含むことができ、各コンピューティングデバイス106によって、各ユーザは、下記で説明されるようなバックエンドおよびその処理と対話することができる。各コンピューティングデバイス106は、少なくとも1つのプロセッサ、メモリ、永続ストレージ、ディスプレイ、および、コンピューティングデバイス106がバックエンド104に接続し、バックエンド104と通信し、バックエンド104とデータを交換することができるような接続回路を有することができる。1つの実施形態では、各コンピューティングデバイス106は、バックエンド104とのデータの交換、および通信を容易にする既知の、またはまだ開発されていないブラウザアプリケーション、モバイルアプリケーション、または別のアプリケーションを記憶し、(コンピューティングデバイスのプロセッサを使用して)実行することができる。フロントエンド要素は、データベース、または他のデータストレージデバイスもしくはメカニズムなどの、(図2のデータセット108A~データセット108Nなどの)1つまたは複数のデータセットソース108をさらに含むことができ、バックエンド104は、下記でより詳細に説明されるように、受け取ったデータセットについてのラベルを伝搬させるために、データセットからデータを受け取るインターフェースを有することができる。例えば、ひとつの例証となる例では、データセットは、マルウェアデータセットであってもよい。
【0016】
通信経路102は、フロント要素とバックエンド104との間でデータを通信することができる経路であってもよい。経路は、1つもしくは複数のワイヤレス通信経路、1つもしくは複数の有線通信経路、または、1つもしくは複数のワイヤレス通信経路と、1つもしくは複数の有線通信経路との組合せであってもよい。例えば、1つまたは複数のワイヤレス通信経路は、セルラーネットワーク、WiFiネットワーク、デジタルデータネットワーク、等であってもよく、有線通信経路は、インターネット、イーサネット、等であってもよい。通信経路102は、通信プロトコルおよびデータ転送フォーマットを含む様々なプロトコルを利用することができる。例えば、TCP/IP、HTTPSまたはHTTP、JSON、HTML、等を使用することができる。
【0017】
バックエンド104は、データセットインターフェース110を含むことができ、データセットインターフェース110は、ラベル伝搬処理を使用して複数のラベルが伝搬されることになるデータセットを受け取る。1つの実施形態では、このインターフェースは、RESTベースであり、メッセージングのためにJSONフォーマットを使用する。
【0018】
バックエンド104は、ユーザインターフェース生成器112も含むことができ、ユーザインターフェース生成器112は、各コンピューティングデバイス106に対する、下記で説明されるような、ラベル伝搬システムおよび処理のためのユーザインターフェースを生成する。例えば、ユーザインターフェース生成器112は、各コンピューティングデバイス106からデータを集めるためのユーザインターフェースを生成することができ、各コンピューティングデバイス106へのラベル伝搬処理から生じたデータを表示することができる。また、バックエンド104は、ラベル伝搬器114をも含むことができ、ラベル伝搬器114は、入ってきたデータセットを受け取り、従来と異なる典型的でないラベル伝搬処理を実施して、(不正確なまたは一貫性のないラベルつきデータセットについての上記の技術的問題に対する技術的解決策を提供するために)データセットについての正確かつ一貫したラベルの数を拡大し、データセットは、その後、任意の教師あり機械学習処理で使用し、この教師あり機械学習処理を改善することができる。
【0019】
図2に示したバックエンド104、およびその要素のそれぞれは、ハードウェア、ソフトウェア、および/または、ハードウェアとソフトウェアの組合せとして実装することができる。ハードウェアに要素を実装するとき、要素は、集積回路、ASIC、ステートマシンなどであってもよく、下記で説明されるような、この要素の従来と異なる非標準処理を実施するように設計/プログラムされる。ソフトウェアに要素を実装するとき、要素は、下記で説明されるように、この要素の従来と異なる非標準処理を実施するようにプロセッサを構成するような、バックエンド104のプロセッサによって実行することができる複数のラインのコンピュータコードであってもよい。バックエンド104は、1つまたは複数のコンピューティングリソースを使用して実装することができ、少なくとも1つのプロセッサ、メモリ、等を含むことができ、サーバコンピュータまたはブレードサーバなどを使用して実装することができる。
【0020】
1つの実施形態では、コンピュータシステムアーキテクチャのハードウェアは、Java Virtual Machine(JVM)を動かすことができるオペレーティングシステムをサポートするか、実行する任意のハードウェア(少なくとも1つのプロセッサ、メモリ、ストレージ、等)であってもよい。システムによって生成され、使用されるユーザインターフェース(UI:user interface)は、任意の現代のブラウザ(例えば、Chrome、Safari、Firefox、Internet Explorer(IE)、等)をクライアント側で利用することができるウェブベースであってもよいが、UIバックエンドには、Pythonコードを動かせることへの依存がある。バックエンドは、ソフトウェアスタックを有することができ、ソフトウェアスタックは、例えば、Apache Flink/Gelly(このさらなる詳細は、//flink.apache.org/で見つけることができ、参照により本明細書に組み込まれる)、および、MongoDB(このさらなる詳細は、www.mongodb.com/で見つけることができ、参照により本明細書に組み込まれる)を含むことができるが、RethinkDB(このさらなる詳細は、www.rethinkdb.com/で見つけることができ、参照により本明細書に組み込まれる)も使用することができる。さらに、AngularJSを、フロントエンド/クライアントのUI開発のために使用することができ、pymongoを、バックエンドのために使用することができる。
【0021】
ラベル伝搬器114は、ラベル伝搬の使用、クラスタリング、および、各データセットに対する専用分類器の作成によって、ラベルつきデータを初期化し、キュレーションすることができる方法およびアーキテクチャを実装する。これらの専用分類器は、データセットが大きくなるにつれて再訓練され、各データセットが外れ値およびノイズのない状態を保つことを保証する。方法は、データのセットを受け取ることと、データのセット内のラベルグループを各分類処理によって自動的に識別するためにデータのセットに対して複数の分類処理を実施することと、複数の分類処理のそれぞれによって識別したデータのセット内のラベルグループに基づいて、選択したラベルグループを決定するためにデータのセットに投票することと、キュレーションしたラベルつきデータセットを生成することであって、キュレーションしたラベルつきデータセットが、データのセットおよび選択したラベルグループを含む、生成することと、キュレーションしたデータセットを拡張するためにゲートキーパとして機能するキュレーションしたデータセットから分類器を構築することとを伴う。
【0022】
ラベル伝搬器114は、システムとして実装することができ、プロセッサ、メモリ、および、データのセットを受け取るインターフェースを有する特に構成されたコンピュータシステムと、データのセットを処理してデータのセット内のラベルグループを識別するコンピュータシステムによって実行される1つまたは複数のブートストラップ分類器と、データのセットを処理して、データのセット内のラベルグループを自動的に識別するコンピュータシステムによって実行されるクラスタ器とを備え、コンピュータシステムは、分類器およびクラスタ器のそれぞれによって識別したデータのセット内のラベルグループに基づいて、選択したラベルグループを決定するためにデータのセットに投票すること、およびキュレーションしたラベルつきデータセットを生成することであって、キュレーションしたラベルつきデータセットが、データのセットおよび選択したラベルグループを含む、生成することを行うようにさらに構成される。このキュレーションしたラベルつきデータは、その後、データセットに対する専用分類器を生成するために使用され、データセットは、その後、さらなる投票の繰返しに使用される。新しいデータを受け取ると、処理を再び繰り返し、ここで、データセットが大きくなるにつれて、専用分類器の投票の重みを増加させる。
【0023】
(データ入力層として知られることもある)データセットインターフェース110は、ハードウェアまたはソフトウェアインターフェースであり、データセット、およびデータセットのデータサンプルを受け取り、予測を実行する予定のデータのクラスである少数派クラス、ならびに多数派クラスなどの1つまたは複数のクラスにデータサンプルを分けるように特に構成される。多数派クラスサンプルは、このクラスの目的が、少数派クラスに属していない全てのサンプルを表すことなので、典型的には、大量に利用可能である。システムによって使用することができる例示的かつ例証的なデータセットを下記のテーブルA1.1に示し、ここで、24時間に1つのRIG感染がURLアクセスログにある。完全なURLアクセスログは、2百万個を越えるURLリクエストからなるが、RIG相互作用は、このデータセット内の3つの個々のリクエストをトリガしてきた。
【0024】
テーブルA1.1:RIG感染を含むURLアクセスログ
【表1】

【0025】
各URLリクエストが2項分類器への入力データとみなされた場合、このデータセットは、全ての非RIGエントリが多数派クラスに属するので、2000000対3の比率で不安定になる。教師あり機械学習アプローチを進める前に、RIGサンプルの量の著しい増加が必要である。
【0026】
システムおよび方法の性能は、ダイバースレジスタンスアンダーサンプリング法を使用して訓練データを安定的にするときに、下記でさらに説明される、著しい量の多数派クラスサンプルを追加することによって向上させることができる。不安定なデータ入力および2項分類のシナリオは、ありふれた特殊なケースにすぎず、アプローチは、安定的なデータセットおよびマルチラベル分類のために等しく良好に機能するということに留意されたい。
【0027】
図3は、マルウェアファミリラベルにカテゴライズされる悪意のあるネットワークトラフィックのノイズを伴うサンプルに対して使用されるラベル伝搬システムの独創的概念の一部である、従来と異なり一般的でないラベル伝搬処理を実施するラベル伝搬システムのラベル伝搬要素114のさらなる詳細を示す。1つの実施形態では、図3におけるラベル伝搬要素114の要素のそれぞれは、プロセッサが従来と異なるラベル伝搬処理を実施するように特に構成されるようなプロセッサによってそれぞれ実行することができる複数のラインのコンピュータコード/命令として実装することができる。代替として、要素のそれぞれは、従来と異なるラベル伝搬処理を実施するように構成された、特別に構成されたハードウェアデバイス(ASIC、集積回路、DSP、ステートマシン、マイクロコントローラ、マイクロプロセッサ、等)を使用して実装することができる。
【0028】
図3に示したように、ラベル伝搬要素114は、少数派クラスサンプル302および多数派クラスサンプル304を入力として受け取ることができる。例示的実施形態では、少数派クラスサンプルは、ノイズを伴うマルウェアデータである可能性があり(したがって、ラベル伝搬を必要とし、クラスタリングしてラベルを分ける)、多数派クラスサンプルは、ラベル伝搬システムがマルウェア検出システムとともに使用されているとき、非マルウェアログである可能性がある。それでも、ラベル伝搬システムは、システムおよび方法が、本開示で使用されるマルウェアの例に限定されないようなきれいなラベルを有することが望ましい任意のタイプのデータとともに使用することができる。図3に示したマルウェアの例では、少数派クラスサンプルは、少数派クラスサンプルのダウンロード(DBD)キャプチャ、およびサンドボックスキャプチャによる公開ドライブを含むことができ、これらの例は、上記で説明した。これらの少数派サンプルは、既知のパケットキャプチャ技法(PCAP)306Aを使用して入力することができる。少数派クラスサンプル302は、プロダクションマルウェアログをさらに含むことができる。図3の例では、多数派クラスサンプル304は、このクラスの意図が、予測しようとしている少数派クラス(マルウェアファミリ)の逆のクラスとして機能することなので、プロダクション非マルウェアログであってもよい。多数派クラスサンプルは、プロダクションマルウェアログとともに、既知のロギング技法306Bに入力することができる。PCAPおよびLOG306A、306Bは、図2に示したデータセットインターフェース110の一部、または図3に示したような入力層であってもよいということに留意されたい。したがって、(マルウェアの例についての)ネットワークデータサンプルのフォーマットは、PCAPおよびLOGという2つのフォーマットのうちの1つでシステムに提示することができる。PCAPフォーマットは、ネットワークデータをキャプチャするための事実上のバイナリフォーマットであり、LOGフォーマットは似ているが、限定的なアプリケーションレベルの詳細を収める。入力データは、図3に示したような非常に多くのソースから取得される。
【0029】
ラベル伝搬要素114は、図3に示したような、変換層308、分類層310(分類器のセットを含む)、訓練層312、投票ブロック/層314、およびクラスタリングブロック316をさらに含むことができ,これらは相互接続される。図4は、下記で説明される分類器310、訓練ブロック312、投票ブロック314、およびクラスタリングブロック316のセットの代替実施形態を示す。
【0030】
変換層308では、少数派クラスサンプルは、分類器が、データを正しく解釈し、票を投じることができるような分類器ブロック310における利用可能な分類器のいずれかによって少数派クラスサンプルにラベルをつけるのを可能にするフォーマットに変換することができる。このサンプルのフォーマットはドメイン固有であり、システムは、特徴を抽出し、分類器が利用できるようにすることができると仮定する。図3に示したように、変換は、少数派クラスデータセットを変換するSuricata NIDS変換器308AおよびPCAP2LOGコンバータ308Bを含むことができる。図示のように、少数派クラスサンプルは、ネットワーク侵入検知システム(NIDS:network intrusion detection system)アラート分類器c0に、PCAPフォーマットで、変換した308Aを介して渡すことができ(この動作は、下記で説明される)、また、PCP2LOGコンバータ308Bによって既知のLOGフォーマットにコンバートすることができ、他の分類器(図3に示した例におけるキルチェーン分類器c1およびSIEM分類器c2)に入力することができる。
【0031】
分類器のセット/分類器ブロック310は、複数の分類器を有することができ、複数の分類器は、少数派クラスデータセットをそれぞれ受け取り、投票ブロック314に入力された1つまたは複数のラベル投票をそれぞれ生成する。図4に示したように、1つの実施形態では、分類器のセット310は、所定のラベル分類器cg0、ルールベースの分類器cg1、手動式分類器cg2、~、およびデータセット(1つの例ではマルウェア)専用機械学習分類器DRを含むことができる。第1の繰返しでは、分類器ブロック310は、利用可能な任意の分類器を利用することによって、ラベリング処理のブートストラップを担当する。ラベリング処理をブートストラップするために少なくとも1つの分類器が必要であり、最後の手段として、処理は、手動式処理(分類器cg2)であってもよい。しばしば、署名/ルールベースのシステムを使用することができ(分類器cg1)、またはデータセットは、予めラベルをつけられ、このアーキテクチャでは分類器cg0によって表される。
【0032】
図3に示した別の実施形態では、分類器のセット310は、NIDSアラート分類器c0、キルチェーン分類器c1、SIEM分類器c2、およびデータセットML分類器c3.1を含む、ラベル投票処理をブートストラップするための3つの分類器を有することができる。
【0033】
NIDS分類器c0は、ネットワークベースの侵入検知システムからの出力(EVE JSONフォーマット)を受け取り、投票にアラートをマッピングする。この分類器によって実施されるラベルマッピングに対するアラートの例を、例示的なマルウェアデータ実施形態として、下記のテーブルA1.2に示す。
【0034】
テーブルA1.2:NIDS分類器c0についての投票マッピングに対するNIDSアラートの例
【表2】
【0035】
キルチェーン分類器c1は、票を投じたときの、ドライブバイダウンロード(DBD:Drive-by-Download)およびコマンドアンドコントロール(C&C:Command-and-Control)シナリオの典型的なシーケンス特性を活用する。より具体的には、キルチェーン分類器c1は、www.lockheedmartin.com/content/dam/lockheed/data/corporate/documents/LM-White-Paper-Intel-Driven-Defense.pdfにおいて、2014年5月1日に検索したLockheed Martin-Cyber Kill Chain,Campaigns and Intrusion Kill Chainsの記事(記事は、参照により本明細書に組み込まれる)によって開示されたものなどの、サイバーセキュリティキルチェーンに、データセット内のホストおよびIP-アドレスをマッピングする。キルチェーン分類器に実装されたアクティビティテンプレートルールの例を図5に示す。これらのアクティビティテンプレートは、(悪意のあるランディングページへのリダイレクトの前にC&Cアクティビティが起こるのを防ぐことなど)キルチェーンシーケンスが検知可能であることを確実にすることによってラベリングの間違いを防ぐ。
【0036】
この分類器からの実例の投票を図11に示し、ここで、「DBDアクティビティテンプレート」は、キルチェーン状態「EXPLOITATION_DELIVERY_CLIENT」への投票を追加する。このテンプレートは、キルチェーン状態「COMPROMISED_SITE」および「DELIVERY」についての候補が満たされた直後に、共有ソースによるバイナリダウンロードが見られるときに、アクティブになる。
【0037】
SIEM分類器c2は、特定のマルウェアファミリについてのアラートを生成するルールを収める。これらのルールは、統計学的性質および正規表現に基づくことができる。SIEM分類器の一部であるルールエンジンは、例えば、(github.com/espertechinc/esperにおいて開示され、参照により本明細書に組み込まれる)Esperと呼ばれるCEPエンジンを使用して実装することができる。図6は、RIG_EK変異体を検出するための、SIEM分類器のルールエンジンにおけるルールの例である。これらのルールは、主に、時間的特徴、統計学的性質、および正規表現を使用して、悪意のある挙動の一意の性質を識別する。これは、偵察、搾取、横方向の動き、およびC&Cアクティビティについてのパターンを含むがこれらに限定されない。
【0038】
分類器のそれぞれは、ML分類器c3.1(下記でより詳細に説明される)を含めて、上記で説明したようなラベルへのもう1つの票を生成することができ、票は、図3図4に示したような投票ブロック314に供給することができる。投票ブロックは票を処理し、それぞれの識別したラベルに対して行われることになる集約分類(collective classification)およびエンティティ解決(entity resolution)を生成する。最初に、投票結果モジュールは、分類器間で重みを均一に分散した等しい値の全ての分類器の投票を扱う。これらの重みは、訓練ブロック312を参照しながら下記で説明するような、システムのそれぞれの繰返しの間に調節される。投票結果モジュールは、クラスタ処理316にラベルつきサンプルを出力する。
【0039】
いくつかの実施形態では、投票ブロック314は、最終的なラベルに決定する前に、全ての分類器がその票を投じるまで待つことができる。最初に、各分類器の重みを固定値にセットし、多数派の投票を実行する。同点が発生すると、システムは、解決のためにドメインエクスポートへのシナリオを強調する。同じ種類の全てのラベルを同じデータセット内に置き、クラスタリングブロック316に送る。
【0040】
クラスタ処理316は、教師なし機械学習を使用して、サンプルをサブグループにクラスタリングすることができる。このブロックによって使用されるクラスタリングアルゴリズムは、自力でクラスタの数を決定し、外れ値を分離できる必要がある。例えば、既知のDBSCAN法を使用することができ、DBSCAN法は、Ester M,Kriegel HP,Sander J,Xu Xによる記事「A density-based algorithm for discovering clusters in large spatial databases with noise」、1996年 Di dalam:Simoudis E,editor.Proceedings of 2nd International Conference on Knowledge Discovery and Data Mining(KDD-96);1996年8月4日~6日 hlm 226-231で説明され、参照により本明細書に組み込まれる。クラスタリング処理は、使用される特徴および距離メトリックに基づいて、データセットをサブセットにグループ化する。図12Aは、DBSCANを使用したNEUTRINO_EK URL構造をクラスタリングした結果を示し、ここで、t分布型確率的近傍埋め込み法(t-SNE:t-Distributed Stochastic Neighbor Embedding)を、次元を2まで減らす技法として使用する。図12Bは、NEUTRINO_EK URLクラスタ例の例を示す。
【0041】
より詳細には、クラスタリング処理316は、投票ブロック314からラベルつきデータセットを受け取り、クラスタリング処理を適用する。1つの例では、クラスタリングのためにDBSCANを使用し、DBSCANについてのパラメータ(半径+minPts)および距離メトリックをドメインに合わせる(TCP/IPベースのネットワークキャプチャ)。次に、クラスタリングしたデータセットは、図3に示したような訓練ブロック312に送る。
【0042】
モデル訓練または訓練ブロック312は、モデル訓練の処理を実施することができ、クラスタリングしたデータセットは、訓練ブロック312に入力することができる。訓練ブロック312は、多数派クラスのランダムなアンダーサンプリングを実施して、入力データの2つのクラスのバランスをとることができる。入力データは、以下からなる。
・ 少数派データセット
(同じDBSCANクラスタに属した)類似のサンプルからなり、固定ラベルを有するデータセット。実例の入力データセットは、
RIG_EK_cluster0.json
NEUTRINO_EK_cluster3.json
FIESTA_EK_cluster0.json
である。
・多数派データセット
少数派クラスに一致するサンプルを何も含まないプロダクションからキュレーションしたデータのデータセット。このキュレーションは、公開ブラックリストおよび評判サービスを使用して行われる。
【0043】
少数派データセットに一致するように、多数派データセットをランダムにアンダーサンプリングすることによって、クラス不均衡に対処する。このマージされたデータセットのサブセットを使用して、(A.Liaw and M.Wiener(2002年).Classification and Regression by randomForest.R News 2(3)、18-22で説明され、参照により本明細書に組み込まれる)初期のランダムフォレストの(c3.0という名前の)機械学習分類器を訓練する。
【0044】
次に、この初期の分類器を多数派クラス内の全てのエントリに適用し、各サンプルは、分類器のクラス信頼度レベルに基づいてビンの中に置かれる。次に、これらのビンを使用して、多数派クラスから均一にアンダーサンプリングすることによって、新しい安定的なデータセットを作り出す。この方法は、多数派クラスの利用(「レジスタンス」)を最大化することによって、機械学習分類器c3.1を作り出すことを可能にする。図7に例を示し、ここでは、RIG_EK分類器c3.0を多数派クラスに適用する。
【0045】
このようにして、多数派クラスサンプルのダイバースレジスタンスに専用データセット分類器をさらす。このように訓練された専用データセット分類器を、図4に示したように、DR-分類器と呼ぶ。訓練ブロック312がDR-分類器を生み出すと、DR-分類器は、分類器ブロック310に挿入され、自動キュレーション処理が確立される。次に、分類器c3.1は、分類器ブロックのメンバとして追加され、処理の将来の繰返しに関与する。分類器c3.1の票の重みは、クラスタあたりのサンプルの数が増加するにつれて、徐々に増加させることができる。
【0046】
1つの実施形態では、システムは、図9Aおよび図9Bにおける擬似コードを使用して実装することができる。コードは、有名な、グラフのためのScatter/Gather(Signal/Collectとしても知られる)処理モデルを使用したFlink/Gellyコードであってもよく、さらなる情報は、ci.apache.org/projects/flink/flink-docs-release-1.3/dev/libs/gelly/iterative_graph_processing.html#scatter-gather-iterationsで見つけることができ、参照により本明細書に組み込まれる。したがって、このScatter/Gatherアプローチは、二部グラフセットアップおよび重みつき投票と組み合わせて、ラベルを決定するために使用するものである。
【0047】
図8Aは、システムのユーザが利用できる起動方法を示し、ここで、キュレーション処理は、バックエンドインターフェース104へのアクティブ接続の有無にかかわらず行うことができる。システムは、競合する手動式投票を異なるユーザが投入するシナリオをサポートするためにユーザ識別も行う。この場合、別個の手動式分類器を、各ユーザに対して起動することになる。
【0048】
図8Bは、データセットを選択して見直すためのユーザインターフェースを示し、ここで、(PitbossID要素を含む)システムは、システムの全体にわたって一意のデータセット識別子として使用される。「D」列は、データセットの継続時間を表し、「O」列は、データセット内にラベルを有することができるオブザーバブルの数である。
【0049】
図8Cは、データセットの詳細なビューを示し、ここで、上のテーブルは、全てのオブザーバブル、および各オブザーバブルに割り当てられた現在のラベルを示す。このテーブル内のオブザーバブルを選択すると、各分類器からの各票の重み/強度を示す「票」という名前の真ん中のテーブルを更新する。下のテーブルは、選択したオブザーバブルについての正規化したデータセットの内容を示し、任意選択の設定は、特定のデータセットタイプ(プロキシ、ファイアウォール、またはDNSタイプ)にビューを制限するためのものである。
【0050】
図8Dは、DR分類器ML3.1の自動作成が今完了したことを除いて、図8Cにおけるものと同じ詳細なビューを示す。この分類器は、RIG_EKアクティビティを識別することに注目し、他の分類器の強度/重みを低くした。この分類器についてのデータセットが大きくなるにつれて、他の分類器(NIDSc0、KCc1、およびSIEMc2)の強度/重みが、徐々に弱くなる。
【0051】
1つの実施形態では、システムは、Irisデータセット(https://en.wikipedia.org/wiki/Iris_flower_data_set)上で利用することができ、ここで、目標は、機械学習分類器を訓練して、花びらの長さ、花びらの幅、萼片の長さ、および萼片の幅という4つの特徴に基づいて、アイリスの花の種(セトサ、バージニカ、またはバージカラー)を予測することである。この参照データセットは、公的に利用可能であり、正しくラベルをつけられ、安定している(各クラスが、正確な測定による50個サンプルを収める)。現実のシナリオでは、データコレクション処理は、1000個のサンプルのセトサ、500個のバージニカ、および50個のバージカラーを見つけることなどの、難題に遭遇する可能性がある。データコレクション処理は誤差も含み、ここで、セトサ種およびバージニカ種のおよそ10%に間違ったラベルがついている(バージニカとラベルがついたセトサ、逆もまた同様)。
【0052】
このシナリオでは、本発明/システムは、新しいサンプルの継続的な収集、および測定を可能にし、ここで、3つのDR-分類器が作り出される(セトサc3.1、バージニカc4.1、およびバージカラーc5.1)。最初にキュレーションしたデータセットは、150個のエントリの安定的なデータセットからなり、ここで、クラスタリング処理は、セトサ/バージニカのラベルのつけ間違いの影響を減らしている。より多くの測定値が取得されるにつれて、バージカラーのサンプルの数は、キュレーションしたデータセットをどれだけ素早く拡大できるかを明らかにするが、ラベリング処理は、DR分類器に徐々に移行することができる。ダイバースレジスタンスアプローチは、キュレーションしたデータセット内のセトサおよびバージニカのサンプルのアンダーサンプリングしたセットを選んで、データセットを依然として安定に保ちつつ、クラス選別を最大化することを保証することになる。
【0053】
前述の説明は、説明のために、特定の実施形態を参照しながら説明してきた。それでも、上記の例証的な議論は、網羅的であること、または、開示された厳密な形に本開示を限定することを意図するものではない。上記の教示を考慮して、多くの修正および変更が可能である。本開示の原理、およびその実用的な用途を最もよく説明し、それにより、想定される特定の使用に適するような様々な修正とともに、本開示および様々な実施形態を当業者が最もうまく利用できるように、実施形態を選び、説明した。
【0054】
本明細書で開示したシステムおよび方法は、1つもしくは複数の構成要素、システム、サーバ、アプライアンス、他のサブコンポーネントによって実装するか、または、このような要素間に分散させることができる。システムとして実装するとき、このようなシステムは、特に、汎用コンピュータにおいて見つかるソフトウェアモジュール、汎用CPU、RAM、等などの構成要素を含む、および/または伴うことができる。イノベーションがサーバ上にある実装形態では、このようなサーバは、汎用コンピュータにおいて見つかるものなどの、CPU、RAM、等などの構成要素を含むか、伴うことができる。
【0055】
追加として、本明細書におけるシステムおよび方法は、上記で記載したもの以上の、完全に異なるまたは全面的に異なるソフトウェア、ハードウェア、および/またはファームウェア構成要素を伴う実装形態によって達成することができる。本発明と関連付けられるか、本発明を具現化する、このような他の構成要素(例えば、ソフトウェア、処理構成要素、等)、および/またはコンピュータ可読媒体について、例えば、本明細書におけるイノベーションの態様は、非常に多くの汎用または特殊用途のコンピューティングシステムまたは構成と一致して実装することができる。本明細書におけるイノベーションとともに使用するのに適した可能性のある様々な例示的なコンピューティングシステム、環境、および/または構成は、ルーティング/接続構成要素、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、コンシューマ電子デバイス、ネットワークPC、他の既存のコンピュータプラットフォーム、上記のシステムまたはデバイスの1つまたは複数を含む分散コンピューティング環境、等など、パーソナルコンピュータ、サーバ、またはサーバコンピューティングデバイス上に含まれる、または具現化されるソフトウェアまたは他の構成要素を含むことができるがこれらに限定されない。
【0056】
いくつかの事例では、システムおよび方法の態様は、例えばこのような構成要素または回路機器を伴って実行されるプログラムモジュールを含むロジックおよび/もしくはロジック命令を介して達成すること、またはこれらによって実施することができる。一般に、プログラムモジュールは、本明細書における特定のタスクを実施するか、または特定の命令を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含むことができる。また、本発明は、分散型ソフトウェア、コンピュータ、または回路設定の背景で実践することもでき、ここで、回路機器は、通信バス、回路機器、またはリンクを介して接続される。分散型環境では、制御/命令は、メモリストレージデバイスを含むローカルとリモート両方のコンピュータストレージ媒体から発生してもよい。
【0057】
本明細書におけるソフトウェア、回路機器、およびコンポーネントは、1つまたは複数のタイプのコンピュータ可読媒体も含むこと、および/または利用することができる。コンピュータ可読媒体は、このような回路および/またはコンピューティング構成要素上に常駐している、これらと関連付けることができる、または、これらによってアクセスできる任意の利用可能な媒体であることが可能である。例として、また限定ではなく、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含むことができる。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のために、任意の方法または技術で実装された揮発性および不揮発性の、取外し可能および取外し不能媒体を含む。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を記憶するために使用することができ、コンピューティング構成要素によってアクセスできる他の任意の媒体を含むがこれらに限定されない。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および/または他の構成要素を含むことができる。さらに、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体を含むことができるが、本明細書における任意のこのようなタイプの媒体は、一時的な媒体を含まない。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれる。
【0058】
本説明では、用語構成要素、モジュール、デバイス、等は、様々な方式で実装することができる任意のタイプの論理的または機能的ソフトウェア要素、回路、ブロック、および/または処理を指すことができる。例えば、様々な回路および/またはブロックの機能は、他の任意の数のモジュールに互いに組み合わせることができる。各モジュールは、本明細書におけるイノベーションの機能を実装するために、中央処理装置によって読み込まれることになる、有形メモリ(例えば、ランダムアクセスメモリ、リードオンリメモリ、CD-ROMメモリ、ハードディスクドライブ、等)に記憶したソフトウェアプログラムとして実装することさえできる。または、モジュールは、汎用コンピュータに、もしくは処理/グラフィックスハードウェアに、伝送搬送波を介して伝送されるプログラミング命令を含むことができる。また、モジュールは、本明細書におけるイノベーションによって包含される機能を実装するハードウェア論理回路機器として実装することができる。最後に、モジュールは、所望のレベル性能およびコストをもたらす特殊用途命令(SIMD命令)、フィールドプログラマブルロジックアレイ、またはその任意の混合を使用して実装することができる。
【0059】
本明細書で開示したように、本開示と一致した特徴は、コンピュータハードウェア、ソフトウェア、および/またはファームウェアを介して実装することができる。例えば、本明細書で開示したシステムおよび方法は、データベース、デジタル電子回路機器、ファームウェア、ソフトウェア、またはこれらの組合せも含むコンピュータなどの、例えばデータプロセッサを含む様々な形で具現化することができる。さらに、開示の実装形態のうちのいくつかは、特定のハードウェア構成要素を説明するが、本明細書におけるイノベーションと一致したシステムおよび方法は、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組合せによって実装することができる。その上、本明細書におけるイノベーションの、上記に記した特徴および他の態様、ならびに原理は、様々な環境で実装することができる。このような環境および関連アプリケーションは、本発明による様々なルーチン、処理、および/もしくは動作を実施するために特に構築することができ、または、これらは、必要な機能を提供するために、コードによって選択的にアクティブにされた、もしくは再構成された汎用コンピュータもしくはコンピューティングプラットフォームを含むことができる。本明細書で開示した処理は、本来的には、どの特定のコンピュータ、ネットワーク、アーキテクチャ、環境、または他の装置にも関連しておらず、ハードウェア、ソフトウェア、および/またはファームウェアの適切な組合せによって実装することができる。例えば、本発明の教示に従って書かれたプログラムとともに、様々な汎用マシンを使用することができ、または、必要な方法および技法を実施するために特化された装置もしくはシステムを構築することがより便利である可能性がある。
【0060】
ロジックなど、本明細書で説明した方法およびシステムの態様は、フィールドプログラマブルゲートアレイ(「FPGA」)、プログラマブルアレイロジック(「PAL」)デバイス、電気的プログラマブルロジックおよびメモリデバイスおよび標準セルベースのデバイス、ならびに特定用途向け集積回路などのプログラマブルロジックデバイス(「PLD」)を含んだ、様々な回路機器のいずれかにプログラムされた機能として、同様に実装される。態様を実装するための他のいくつかの可能性は、メモリデバイス、(EEPROMなどの)メモリを伴うマイクロコントローラ、埋込型マイクロプロセッサ、ファームウェア、ソフトウェア、等を含む。さらに、態様は、ソフトウェアベースの回路エミュレーション、ディスクリートロジック(連続および組合せ)、カスタムデバイス、ファジー(神経)ロジック、量子デバイス、ならびに、上記のデバイスタイプのいずれかのハイブリッドを有するマイクロプロセッサで具現化することができる。基礎となるデバイス技術は、例えば、相補型金属酸化膜半導体(「CMOS」)のような金属酸化膜半導体電界効果トランジスタ(「MOSFET」)技術、エミッタ結合型ロジック(「ECL」)のようなバイポーラ技術、ポリマー技術(例えば、シリコン共役高分子および金属共役高分子金属構造)、混合型アナログおよびデジタル、など、様々な構成要素のタイプで提供することができる。
【0061】
本明細書で開示した様々なロジックおよび/または機能は、これらの行動、レジスタ転送、ロジック構成要素、および/もしくは他の特性の観点から、ハードウェア、ファームウェアの任意の数の組合せを使用して、ならびに/または、様々な機械可読もしくはコンピュータ可読媒体にで具現化されるデータおよび/もしくは命令として、可能にされてもよいということにも留意されたい。このようなフォーマットされたデータおよび/または命令を具現化することができるコンピュータ可読媒体は、様々な形式の不揮発性ストレージ媒体(例えば、光、磁気、または半導体ストレージ媒体)を含むがこれらに限定されず、やはり、一時的な媒体を含まない。文脈が別途明確に要求しない限り、説明の全体にわたって、単語「備える(comprise)」、「備える(comprising)」などは、排他的または網羅的な意味とは対照的に、包括的な意味で、つまり、「含むがこれらに限定されない(including,but not limited to)」の意味で解釈されるべきである。単数または複数の数を使用する単語は、複数または単数の数もそれぞれ含む。追加として、単語「本明細書で(herein)」、「下文に(hereunder)」、「上記の(above)」、「下記の(below)」、および類似の意味の単語は、全体として本出願を指し、本出願の任意の特定の部分を指さない。2つ以上の項目のリストへの参照として単語「または」を使用するとき、この単語は、リスト内の項目のいずれか、リスト内の項目の全て、および、リスト内の項目の任意の組合せという単語の解釈の全てをカバーする。
【0062】
本発明の一定の現時点の好ましい実装形態を本明細書で特に説明してきたが、本明細書で示し、説明した様々な実装形態の変更および修正を、本発明の趣旨および範囲から逸脱することなく行うことができるということが、本発明が関係する当業者には明らかであろう。したがって、本発明は、法律の適用可能なルールによって要求される範囲にのみ限定されるということを意図するものである。
【0063】
前述は、本開示の特定の実施形態を参照しながらのものであったが、本実施形態の変更は、本開示の原理および趣旨から逸脱することなく行うことができ、その範囲は、添付の特許請求の範囲によって定義されるということが当業者によって認識されよう。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図8C
図8D
図9A
図9B
図10
図11
図12A
図12B