(57)【要約】      （修正有）【課題】ホワイトリスト型のセキュリティを導入する業務システムにおいて、新規導入端末へのホワイトリスト作成に必要な学習期間を短縮化するようにして、運用コストを低減し、セキュリティを確保しつつシステムの可用性を向上させることのできるホワイトリスト作成装置を提供する。【解決手段】ホワイトリスト作成装置は、既存運用端末のホワイトリストを保持する手段と、新規導入端末で一定期間内に発生した活動を記録する手段と、新規導入端末で一定期間内で発生した活動と、既存運用端末のホワイトリストとして記録された活動の相関性を算出する手段とを有する。そして、一定期間内で発生した活動と既存運用端末のホワイトリストとして記録された活動の相関性に基づいて関連付け、新規導入端末で一定期間内で発生した活動と、その関連付けられた活動とを新規導入端末での新たなホワイトリストとして、記録する。【選択図】図１３
2018106634.tif 000002
【特許請求の範囲】
【請求項１】
業務システムで実行される活動をホワイトリストとして記録するホワイトリストを作成するホワイトリスト作成装置であって、
既存運用端末のホワイトリストを保持する手段と、
新規導入端末で一定期間内に発生した活動を記録する手段と、
新規導入端末で前記一定期間内で発生した活動と、前記既存運用端末のホワイトリストとして記録された活動の相関性を算出する手段とを有し、
前記一定期間内で発生した活動と前記既存運用端末のホワイトリストとして記録された活動の相関性に基づいて関連付け、新規導入端末で前記一定期間内で発生した活動と、その関連付けられた活動とを前記新規導入端末での新たなホワイトリストとして、記録することを特徴とするホワイトリスト作成装置。
【請求項２】
前記一定期間内で発生した活動と前記既存運用端末のホワイトリストとして記録された活動の相関性に基づいて関連付けに際しては、前記既存運用端末の前記ホワイトリストの中に記録された活動を、相関性に基づき複数のクラスタにクラスタリングし、前記新規導入端末で前記一定期間内で発生した活動を含むクラスタ内の活動を前記新規導入端末での新たなホワイトリストに取り込むことを特徴とする請求項１記載のホワイトリスト作成装置。
【請求項３】
前記相関性の算出に際しては、個々の活動について、各端末における実施の有無を要素とするベクトルを生成し、前記ベクトル間の類似度が高い二つの活動を相関性が高いと判断することを特徴とする請求項１記載のホワイトリスト作成装置。
【請求項４】
前記相関性の算出に際しては、活動の種類がプロセスの場合は、プロセス名の類似度、起動元実行ファイルの類似度を用いることを特徴とする請求項１記載のホワイトリスト作成装置。
【請求項５】
前記相関性の算出に際しては、活動の種類が通信の場合は、ドメイン名の類似度、ＩＰアドレスの類似度を用いることを特徴とする請求項１記載のホワイトリスト作成装置。
【請求項６】
前記一定期間内とは、新規端末導入端末の学習期間であり、
前記学習期間を、複数の時間幅に区切り、前記時間幅ごとに、前記新規導入端末での新たなホワイトリストに取り込まれる活動の数を検証し、その活動の数が一定の閾値以下になったときに、学習期間を終了することを特徴とする請求項１記載のホワイトリスト作成装置。
【請求項７】
前記既存運用端末の前記ホワイトリストの中に記録された活動のクラスタリングに際して、各々のクラスタの品質を評価し、クラスタの品質の総和が最大となるまでクラスタリングする手法であって、
前記クラスタリングにおける前記クラスタの品質指標は、各既存運用端末が前記クラスタに含まれる活動を実施する数の二乗の総和に比例し、前記クラスタのサイズに反比例することを特徴とする請求項２記載のホワイトリスト作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホワイトリスト作成装置に係り、業務システムに新規導入される端末に対するホワイトリストを短期間で作成して、システムの可用性を向上させるのに好適なホワイトリスト作成装置に関する。
【背景技術】
【０００２】
近年、情報漏えいや不正アクセスなどの脅威をもたらすコンピュータウイルスやスパイウェア、ボットプログラムといった悪意ある不正プログラム（マルウェア）が増加している。マルウェアの脅威からシステムやネットワークを防御するためには、最初に、マルウェアを検知する必要がある。ここで、マルウェア検知には様々な方法があり、例えば、統計データに基づいてマルウェアを認識する方法があるが、このような方法では、検知に時間がかかるという問題がある。また、高度なマルウェアに対しては検知精度が低下するという問題がある。さらに、ここ数年では、高度なマルウェアを巧みに活用して特定の官庁や企業、組織のネットワークに侵入し、機密情報の窃取やシステム破壊をおこなういわゆる「標的型攻撃」が、セキュリティ上の大きな脅威となっている。
【０００３】
これらの攻撃に対する対策の一つとして、ホワイトリスト型の対策がある。ホワイトリスト型対策では、システム単位、端末単位、ユーザ単位で、業務に必要な正常な活動（特定のプロセスの起動、特定のＷＥＢサーバへのアクセスなど）を予め定義し、ホワイトリストというデータベースに記録する。そして、ホワイトリスト作成後の業務中に、ホワイトリストに記録されていない活動が発見された場合、活動を実施したシステムや端末・ユーザは、攻撃を受けている可能性があると判断する。
【０００４】
ホワイトリストの作成方法には様々あるが、最も一般的なものは、攻撃が発生していないことが何らかの手段で保証されている一定期間内に、端末がおこなった活動をホワイトリストに記録する方法である。以下では、ホワイトリスト作成にかかる期間を「学習期間」、学習後、実際にホワイトリストを使って攻撃を検知する期間を「運用期間」と呼称する。
【０００５】
ここで、ホワイトリスト運用の課題の一つとして、ホワイトリスト作成後の運用期間中に、端末が学習期間に、たまたまおこなわなかった活動を業務の一環として実施した場合、誤検知が発生するということがある。誤検知を防ぐために最も容易に想定しうる対策は、学習期間長くとり、抜け漏れが無いホワイトリストを作ることである。しかしながら、学習期間の長大化は、（１）攻撃が無いことを保証する必要がある期間が増えるため運用コストが増大する（２）学習期間中に攻撃をおこなうマルウェアによる活動が、ホワイトリストに混入するリスクが高くなるという問題が生じる。
【０００６】
このような問題に対して、特許文献１では、運用期間中、端末でホワイトリストに載っていないプログラムが起動した場合、電子署名などを検証し、害が有るものか否かを判断する。そして、害が無いと判断された場合は、ホワイトリストに追加することにより、誤検知を防止する情報処理システムが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−９６１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載されたシステムでは、対象となる端末では、あくまで基準となるホワイトリストを作成済みであることを前提としている。しかしながら、実際の業務システムでは、様々な理由で、運用中においても新規端末が導入される。これらの新規端末は、導入時にはホワイトリストを有していないため新規にホワイトリストを作成することが必要になる。このため、頻繁に新規端末が導入されるシステムでは、学習期間中の端末が存在する期間が多くなり、上述のような運用コストの増大や、マルウェアによる活動が混入するという問題点は解決されない。
【０００９】
本発明の目的は、ホワイトリスト型のセキュリティを導入する業務システムにおいて、新規導入端末へのホワイトリスト作成に必要な学習期間を短縮化するようにして、運用コストを低減し、セキュリティを確保しつつシステムの可用性を向上させることある。
【課題を解決するための手段】
【００１０】
本発明のホワイトリスト作成装置の構成は、業務システムで実行される活動をホワイトリストとして記録するホワイトリストを作成するホワイトリスト作成装置であって、既存運用端末のホワイトリストを保持する手段と、新規導入端末で一定期間内に発生した活動を記録する手段と、新規導入端末で一定期間内で発生した活動と、既存運用端末のホワイトリストとして記録された活動の相関性を算出する手段とを有するものである。そして、一定期間内で発生した活動と既存運用端末のホワイトリストとして記録された活動の相関性に基づいて関連付け、新規導入端末で一定期間内で発生した活動と、その関連付けられた活動とを前記新規導入端末での新たなホワイトリストとして、記録する。
【発明の効果】
【００１１】
本発明によれば、ホワイトリスト型のセキュリティを導入する業務システムにおいて、新規導入端末へのホワイトリスト作成に必要な学習期間を短縮化するようにして、運用コストを低減し、セキュリティを確保しつつシステムの可用性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る業務システムにおけるホワイトリスト作成の処理概要を示す図である。
【図２】一実施形態に係る業務システムのシステム構成図である。
【図３】ホワイトリスト作成装置のハードウェア・ソフトウェア構成図である。
【図４】活動記録テーブル１００の一例を示す図である。
【図５】既存運用端末ホワイトリスト２００の一例を示す図である。
【図６】活動相関ルールテーブル３００の一例を示す図である。
【図７】活動相関性テーブル４００の一例を示す図である。
【図８】インスタントホワイトリスト５００の一例を示す図である。
【図９】実績記録テーブル６００の一例を示す図である。
【図１０】活動情報受信部１０００の処理を示すフローチャートである。
【図１１】ホワイトリスト作成部の処理を示すフローチャートである。
【図１２】活動相関性部の処理を示すフローチャートである。
【図１３】インスタントホワイトリスト作成部の処理を示すフローチャートである。
【図１４】学習スロットの概念を説明する図である。
【発明を実施するための形態】
【００１３】
以下、本発明に係る一実施形態を、図１ないし図１４を用いて説明する。
【００１４】
本実施形態では、３台の既存運用端末から構成される業務システムを想定する。そして、１台の新規導入端末が導入された際に、既存の３台の端末のホワイトリストを基に、新規導入端末用のホワイトリストであるインスタントホワイトリストを作成するものとする。
【００１５】
先ず、図１を用いて一実施形態に係る業務システムにおけるホワイトリスト作成の処理概要について説明する。
【００１６】
先ず、既存運用端末において、学習期間が終了したタイミングでホワイトリストが作成される。ここで、既存運用端末での学習期間の長さを、Ｌｔｉｍｅと表記することとする。
【００１７】
その後、新規導入端末が導入され、インスタントホワイトリストを作成する。インスタントホワイトリストとは、本実施形態の業務システムにおいて、学習期間の活動（上記のように、特定のプロセスの起動、特定のＷＥＢサーバへのアクセスなど、後に詳述）のほかに、既存のホワイトリストに基づいて、作成されるホワイトリストであり、「インスタント」とは、通常のホワイトリストより短期間で作成可能であることを示唆している。インスタントホワイトリストの学習期間の長さの最大値は、Ｌｔｉｍｅ′であるとする。ここで、Ｌｔｉｍｅ′＜Ｌｔｉｍｅが成り立つ。Ｌｔｉｍｅ′は、あくまで最大値であり、条件によっては、学習はＬｔｉｍｅ′よりも短い期間で完了する。インスタントホワイトリストは、新規導入端末がＬｔｉｍｅ′中に発生する活動、既存運用端末のホワイトリストを基に作成される。
【００１８】
次に、図２および図３を用いて本発明の一実施形態に係る業務システムのシステム構成と、データフローについて説明する。
【００１９】
本実施形態の業務システムは、図２に示されるように、ホワイトリスト作成装置１０、既存運用端末Ｘ２０ａ、既存運用端末Ｘ２０ｂ、既存運用端末Ｚ２０ｃ、新規導入端末３０、通信ネットワーク４０からなる。また、ホワイトリスト作成装置１０は、オペレータ５０によって操作される。
【００２０】
ホワイトリスト作成装置１０は、既存運用端末のホワイトリストと新規導入端末のインスタントホワイトリストを作成し、それらを管理する装置である。
【００２１】
活動情報受信部１０００は、既存運用端末Ｘ２０ａ、既存運用端末Ｙ２０ｂ、既存運用端末Ｚ２０ｃから活動情報１を受信し、新規導入端末３０から活動情報２を受信する。活動情報１、活動情報２には、各端末の活動状況（いつ、どのような活動をおこなったか）の情報が含まれる。活動情報１と活動情報２は、各端末にエージェントプログラムを導入して記録してもよいし、通信ネットワーク４０上での通信を取得してもよい。活動の種類としては、プロセス起動、ＷＥＢ通信、ファイルアクセス、レジストリアクセスなど、通常の端末がおこなう活動が含まれる。活動情報受信部１０００は、取得した活動情報を、通信ネットワーク４０を介して受信し、活動記録テーブル１００に記録する。また、活動情報を送信した端末が運用中の場合は、ホワイトリスト照合の判定結果を実績記録テーブル６００に記録する。
【００２２】
実績記録テーブル６００は、運用中の端末のホワイトリストに関する情報を記録するテーブルであり、運用中のホワイトリストに含まれている活動が発生した回数、含まれなかった活動が発生した回数を管理する。
【００２３】
ホワイトリスト作成部１１００は、活動記録テーブル１００に格納された活動情報に基づいて、既存運用端末向けのホワイトリストを作成して、既存運用端末ホワイトリスト２００に格納する。
【００２４】
活動相関性算出部１２００は、既存運用端末ホワイトリスト２００と活動相関ルールテーブル３００に基づいて、活動間の相関を算出して活動相関性テーブル４００に格納する。
【００２５】
インスタントホワイトリスト作成部１３００は、新規導入端末３０の活動記録テーブル１００および活動相関性テーブル４００を基に、新規導入端末３０のインスタントホワイトリストを作成して、インスタントホワイトリスト５００に格納する。
【００２６】
既存運用端末Ｘ２０ａ、既存運用端末Ｙ２０ｂ、既存運用端末Ｚ２０ｃ、新規導入端末３０は、一般的なパーソナルコンピュータ、サーバ、スマートフォン、モバイル端末など計算機リソース（ハードウェアリソース、ソフトウェアリソース）をもつものがこれに該当する。
【００２７】
通信ネットワーク４０は、ＷＡＮ（World Area Network）やＬＡＮ（Local Area Network）、携帯電話、ＰＨＳ等と通信する公衆回線網でもよい。各装置間の通信は、通信ネットワーク４０を介しておこなわれる。
【００２８】
オペレータ５０は、ホワイトリスト作成装置１０を、操作部３を介して各部をコントロールする。操作内容としては、既存運用端末ホワイトリストの作成、活動相関性算出、インスタントホワイトリストの作成がある。また、適時、インスタントホワイトリスト５００と既存運用端末ホワイトリスト２００にアクセスし、ホワイトリストの手動更新など変更を実施する。
【００２９】
次に、図３を用いてホワイトリスト作成装置１０のハードウェア構成とソフトウェア構成について説明する。
【００３０】
ホワイトリスト作成装置１０は、図３に示されるように、ＣＰＵ（Central Processing Unit）１１、主メモリ１２、外部記憶装置１３、ネットワークＩ／Ｆ（Interface）１４、入出力装置１５がバス１６により接続された構成である。
【００３１】
ＣＰＵ１１は、ホワイトリスト作成装置１０の各部を制御し、主メモリ１２内に記憶されているプログラムを実行し、各機能部（活動情報受信部１０００、ホワイトリスト作成部１１００、活動相関性算出部１２００、インスタントホワイトリスト作成部１３００）の機能を実現する。
【００３２】
主メモリ１２は、揮発性の半導体メモリであり、外部記憶装置１３からロードされたプログラム、ワークデータなどを格納する。
【００３３】
外部記憶装置１３は、ＨＤＤ（Hard Disk Drive）、ＳＤＤ（Solid State Drive）などの磁気記憶装置や不揮発性の半導体記憶装置から構成され、データの長期記憶をおこなうのに用いられる。外部記憶装置１３は、ホワイトリスト作成装置１０に含まれる各テーブル（活動記録テーブル１００、既存運用端末ホワイトリスト２００、活動相関ルールテーブル３００、活動相関性テーブル４００、インスタントホワイトリスト５００、実績記録テーブル６００）を格納する。また、外部記憶装置１３には、ホワイトリストの機能を実現するプログラム群（活動情報受信プログラム３１、ホワイトリスト作成プログラム３２、活動相関性算出プログラム３３、インスタントホワイトリスト作成プログラム３４）がインストールされる。活動情報受信プログラム３１、ホワイトリスト作成機能プログラム３２、活動相関性算出機能プログラム３３、インスタントホワイトリスト作成プログラム３４は、それぞれ、図２に示した活動情報受信部１０００、ホワイトリスト作成部１１００、活動相関性算出部１２００、インスタントホワイトリスト作成部１３００の機能を実現するプログラムである。
【００３４】
ネットワークＩ／Ｆ１４は、ホワイトリスト作成装置１０を通信ネットワーク４０に接続し、データを送受信するインタフェースを取り持つ部分である。
【００３５】
入出力装置１５は、ホワイトリスト作成装置１０を、ユーザおよび管理者により、各種情報の入力、および格納されている情報の出力をおこなう装置であり、例えば、液晶ディスプレイ、タッチパネル、キーボード、マウス、プリンタなどである。
【００３６】
バス１６は、ＣＰＵ１１、メモリ１２、外部記憶装置１３、ネットワークＩ／Ｆ１４、入出力装置１５を接続し、機能間の情報のやりとりを実現する。
【００３７】
なお、既存運用端末、新規導入端末３０のハードウェア構成も、ホワイトリスト作成装置１０と同様に、一般のコンピュータで実現することができる。
【００３８】
次に、図４ないし図９を用いてホワイトリスト作成装置が用いるデータ構造について説明する。
【００３９】
活動記録テーブル１００は、各端末で発生した活動を記録するためのテーブルであり、図４に示されるように、ＩＤ１０１、活動開始時刻１０２、活動端末１０３、活動タイプ１０４、活動内容１０５の各フィールドを有する。ＩＤ１０１には、各レコードを一意に識別するための識別子が格納される。活動開始時刻１０２には、活動が発生した時刻が格納される。活動端末１０３には、活動を実施した端末を一意に示す識別子が格納される。活動タイプ１０４には、活動の種類を示す識別子が格納される。具体例としては、プロセス、通信、ファイルアクセス、レジストリアクセスなどがある。活動内容１０５には、具体的な活動内容の情報が格納され、その内容は、活動タイプ１０４に依存する。例えば、活動タイプ１０４がプロセスの場合は、起動したプロセス名が、活動タイプ１０４が通信の場合は、通信先（ＵＲＬ（Uniform Resource Location）、ＩＰ（Internet Protocol）アドレス）などが記録される。
【００４０】
例えば、図４に示した例では、ＩＤ１０１＝１のレコードには、活動開始時刻１０２は「２０１６−０７−１６  １０：００」、活動端末１０３は「既存運用端末Ｘ」、活動タイプ１０４は「プロセス」、活動内容１０５は「Ｐ１」が設定されている。また、ＩＤ１０１＝４のレコードには、活動開始時刻１０２は「２０１６−０７−１６  １０：２０」、活動端末１０３は「既存運用端末Ｚ」、活動タイプ１０４は「通信」、活動内容１０５は「ＷＥＢ１」が設定されている。
【００４１】
既存運用端末ホワイトリスト２００は、各既存運用端末で生成されたホワイトリストを、各端末ごとに示すリストであり、図５に示されるように、ＩＤ２０１、端末２０２、ホワイト認定活動２０３の各フィールドを有する。ＩＤ２０１には、各ホワイトリストを一意に識別するための識別子が格納される。端末２０２には、対象となる端末を一意に識別するための識別子が格納される。ホワイト認定活動２０３には、ホワイトリストに含まれる活動が格納される。
【００４２】
図５に示した例では、ＩＤ２０１＝１のレコードには、端末２０２＝「既存運用端末Ｘ」のホワイト認定活動２０３は「Ｐ１，Ｐ３，Ｐ４，Ｐ５，Ｐ１０，Ｐ１４…」であることが示されている。
【００４３】
活動相関ルールテーブル３００は、活動の相関を計量するためのルールを格納するテーブルであり、図６に示されるように、ＩＤ３０１、相関条件３０２、相関値算出３０３、重み３０４の各フィールドを有する。ＩＤ３０１には、相関性算出のルールを定めた各レコードを一意に識別するための識別子が格納される。相関条件３０２には、ある活動が当該レコードの対象に入るか否かを示す条件が格納される。相関値算出３０３には、具体的な相関性算出方法が格納される。このフィールドには、ピアソン相関係数やコサイン類似度（後述）など、一般的な相関性算出手法を用いてもよいし、独自の手法を用いてもよい。重み３０４には、相関値算出３０３の重み付けが格納される。
【００４４】
以上のように、活動相関ルールテーブル３００は、各活動の相関性を定量的に算出するための指標（相関値の算出方法）、および、その重み付けが記録されている。活動の種類によって、算出するべき指標は異なる。例えば、二つの活動が共に、プロセス活動のときには、「プロセス名類似度」で相関を評価され、通信活動のときには、「ドメイン名類似度」で評価される如くである。そして、ある二つの活動の相関値は、相関条件が該当するレコードで求められた相関値算出３０３の加重平均により決定される。
【００４５】
図７に示した例では、ＩＤ３０１＝１のレコードは、相関条件３０２が「全活動」、相関値算出３０３が「利用端末ベクトルのコサイン類似度」、重み３０４が「Ｗ１」であることを示している。
【００４６】
相関条件３０２の設定は、「全活動」となっているので、このレコードは全ての活動の類似度算出に用いられる。
【００４７】
ここで、利用端末ベクトルのコサイン類似度について説明する。利用端末ベクトルとは、個々の端末がその活動を実施したか否か、あるいは、その実施頻度を表現するベクトルである。ある活動の利用端末ベクトルは、各座標に端末の使用の有無を表すフラグを有するベクトルと定義する。本実施形態でのある活動Ａの利用端末ベクトルは、（活動Ａの既存端末Ｘの実施の有無，活動Ａの既存端末Ｙの実施の有無，活動Ａの既存端末Ｚの実施の有無）とする。例えば、図５の既存運用端末ホワイトリスト２００の例によると、プロセスＰ１を実施した端末は、既存運用端末Ｘのみで、既存運用端末Ｙおよび既存運用端末Ｚはおこなっていない。このため、プロセスＰ１の利用端末ベクトルは、ｖ１＝（１，０，０）となる。また、同様にプロセスＰ４は２台の端末で実行されているため、利用端末ベクトルはｖ２＝（１、１、０）となる。最後に、二つの利用端末ベクトルｖ１、ｖ２のコサイン類似度は、ｖ１・ｖ２／（｜ｖ１｜｜ｖ２｜）で求める。Ｐ１とＰ２の例では、１／√２となる。ここで、・は、ベクトルの内積を表し、｜｜は、ベクトルの長さを表している。
【００４８】
ＩＤ３０１＝２のレコードは、相関条件３０２が「プロセス活動」、相関値算出３０３が「プロセス名類似度」、重み３０４がＷ２であることを示している。ここでの相関条件３０２は「プロセス活動」なので、対象となる活動はプロセスのみである。プロセス名類似度は、各プロセスの名前の類似度であり、名称を評価するような任意の指標を用いることができる。具体的には、最小編集距離などの指標がある。
【００４９】
プロセス活動の相関の算出に際しては、この他にもプロセスの起動元となる実行ファイルのコンテンツの類似性、実行ファイルの作成期間の類似度なども、相関性算出に利用することができる。
【００５０】
ＩＤ３０１＝３のレコードは、相関条件３０２が「通信活動」、相関値算出３０３が「ドメイン名類似度」、重み３０４がＷ３であることを示している。ここでの相関条件３０２は「通信活動」なので、対象となる活動は、通信のみである。ドメイン名類似度は、各通信の通信先ドメイン名の類似度であり、名称に関する任意の指標を用いることができる。具体的には、最小編集距離などの指標がある。
【００５１】
通信活動の相関の算出に際しては、この他にもドメイン名を逆引きしたＩＰアドレスの類似度、レジストラの類似度なども相関性算出に用いることができる。
【００５２】
以下、相関値の算出の具体例について説明する。例えば、相関値算出対象となる活動Ａ１、Ａ２が両方ともプロセスに関するものである時、ＩＤ３０１＝１、ＩＤ３０２＝２のレコードが適用され、相関値は、以下の（式１）で求めることができる。
【００５３】
【数１】
2018106634.tif 000003
【００５４】
また、活動Ａ１がプロセス、活動Ａ２が通信と、種類が異なる場合は、ＩＤ３０１＝１のルールのみが適用されるため、両者の相関値は、コサイン類似度（Ａ１、Ａ２）のみとなる。
【００５５】
活動相関性テーブル４００は、各活動が属するクラスタを示したテーブルであり、図７に示されるように、ＩＤ４０１、相関クラスタ４０２、クラスタ要素４０３の各フィールドを有する。活動相関性テーブル４００の各レコードは、活動相関ルールテーブル３００に基づいたクラスタリング処理により、相関性が高いと判断された活動がグルーピングされて記載されている。ＩＤ４０１には、各グループを一意に識別するための識別子が格納される。相関クラスタ４０２には、各クラスタのクラスタ名称が格納される。クラスタ要素４０３は、各クラスタに含まれる活動の識別子が格納される。
【００５６】
図７に示した例では、ＩＤ４０１＝１のレコードは、相関クラスタ４０２が「クラスタ１」、クラスタ要素４０３が「Ｐ４，Ｐ１０」であるクラスタを示している。
【００５７】
インスタントホワイトリスト５００は、新規導入端末のホワイトリストを示すテーブルであり、図８に示されるように、ＩＤ５０１、端末５０２、種別５０３、ホワイト認定活動５０４の各フィールドを有する。
【００５８】
ＩＤ５０１には、各レコードを一意に識別するための識別子が格納される。端末５０２には、対象となる端末の名称または識別子が格納される。種別５０３には、当該レコードに示されるホワイトリストが、端末が学習期間Ｌｔｉｍｅ′中で実施した活動なのか、あるいは、後述の方法（図１３）により追加された活動なのかを示す種別が格納される。前者であれば、種別５０３には「オリジナル」が、後者であれば「追加」が記載される。図５に示した既存運用端末ホワイトリスト２００とは異なり、新規導入端末のインスタントホワイトリストは、複数のレコードにまたがって記載される。
【００５９】
図８の例では、ＩＤ５０１＝１のレコードは、端末５０２が「新規導入端末」、種別５０３が「オリジナル」、ホワイト認定活動５０４が「Ｐ４，Ｐ５」であるホワイトリストを示している。
【００６０】
ＩＤ５０１＝２のレコードは、端末５０２が「新規導入端末」、種別５０３が「追加」、ホワイト認定活動５０４が「Ｐ１０，Ｐ１４」であるホワイトリストを示している。
【００６１】
本例では、Ｐ４、Ｐ５を実施した新規導入端末のインスタントホワイトリストに、Ｐ１０、Ｐ１４も記載されることが示されている。これは、図７の活動相関性テーブル４００に示されているように、Ｐ４とＰ１０、およびＰ５とＰ１４が同じクラスタに含まれるため、それぞれが「追加」で、ホワイトリストに加えられたものである（詳細は、図１３により後述）。
【００６２】
実績記録テーブルは、各ホワイトリストの運用状況を統計として記録するテーブルであり、図９に示されるように、ＩＤ６０１、端末６０２、タイプ６０３、運用開始６０４、誤アラート数６０５、一致数６０６の各フィールドを有する。ＩＤ６０１には、各レコードを一意に識別するための識別子が格納される。端末６０２には、ホワイトリストが対象とする端末の名称または識別子が格納される。タイプ６０３には、対象とするホワイトリストの種類が格納される。タイプ６０３には、既存運用端末向けのホワイトリストなら「通常」、新規導入端末向けのインスタントホワイトリストなら「インスタント」が記載される。運用開始６０４には、当該ホワイトリストが運用された時期が格納される。誤アラート数６０５には、運用中に発生したホワイトリストに記載されていない活動のうち、その後の調査によってマルウェアや攻撃には類さないことが明らかになったものの件数が格納される。ここで、「誤アラート」という名称は、ホワイトリストに記載されていない活動が認められたときには、マルウェアでなくとも全てアラートを発生させることによるものである（図１０により後述）。一致数６０６には、運用中に発生したホワイトリストに記載されている活動の数が格納される。
【００６３】
誤アラート数６０５と比べて一致数６０６が大きいホワイトリストは、精度が高い良好なホワイトリストと言える。反対に、誤アラート数が大きいホワイトリストは精度が低いホワイトリストであり、再度の学習が必要になる場合がある。
【００６４】
そのような場合には、オペレータ５０は、実施状況を勘案し、良好なインスタントホワイトリストを、通常ホワイトリストに格上げしてもよい。通常ホワイトリストに格上げされたインスタントホワイトリストは、既存運用端末ホワイトリスト２００に転載され、活動相関性テーブル４００のレコードの作成に用いられる。
【００６５】
反対に、精度が低いホワイトリストについて、オペレータ５０が運用から得られた知見に従って新しい活動を追加したり、ホワイトリストを破棄して、再度の学習をおこなう場合もある。
【００６６】
図９に示された例では、ＩＤ６０１＝１のレコードは、端末６０２＝「既存運用端末Ｘ」であり、タイプ６０３＝「通常」、運用開始６０４＝「２０１６／０１／０１」、誤アラート数６０５＝「３４４４４」、一致数６０６＝「１０００００」である、ホワイトリストの運用実績を示すレコードを示している。
【００６７】
ＩＤ６０１＝４のレコードは、端末６０２＝「新規運用端末」であり、タイプ６０３＝「インスタント」、運用開始６０４＝「２０１６／０９／０１」、誤アラート数６０５＝「３」、一致数６０６＝「３３３０１３」である、ホワイトリストの運用実績を示すレコードである。
【００６８】
ここで、ＩＤ６０１＝１のレコードは、他のレコードに比べて、誤アラート数６０５が非常に大きい。このため、オペレータ５０は、既存運用端末Ｘを再学習対象と判断する場合がある。
【００６９】
一方、ＩＤ６０１＝４のレコードは、他のレコードに比べて、誤アラート数６０５が小さい。このため、このレコードに示されるインスタントホワイトリストは、通常タイプのホワイトリストに格上げしてもよい。
【００７０】
次に、図１０ないし図１４を用いてホワイトリスト作成装置の処理について説明する。
【００７１】
先ず、図１０を用いて活動情報受信部１０００の処理について説明する。
【００７２】
活動情報受信部１０００は、ホワイトリスト作成装置１０の起動中、継続的に実行される。
【００７３】
先ず、活動情報受信部１０００は、各端末から活動情報を受信する（Ｓ２００１）。
【００７４】
次に、活動情報受信部１０００は、受信した活動情報を活動記録テーブル１００に追記する（Ｓ２００２）。
【００７５】
活動情報受信部１０００は、活動情報を送信した端末が運用中であるか否かを判断し（Ｓ２００３）、運用中でない場合（Ｓ２００３：Ｎｏ）には、すなわち、ホワイトリストの学習中である場合は、Ｓ２００１に戻る。運用中の場合（Ｓ２００３：Ｙｅｓ）には、Ｓ２００４に進む。端末が運用中であるか学習中であるかは、図示しなかったが、システムの端末の運用履歴などを参照することにより知ることが可能である。
【００７６】
活動情報受信部１０００は、Ｓ２００１で受信した活動情報が、当該端末のホワイトリストに含まれるか否かを判断し（Ｓ２００４）、含まれる場合（Ｓ２００４：Ｙｅｓ）には、処理Ｓ２００７に進み、含まれない場合には（Ｓ２００４：Ｎｏ）、処理Ｓ２００５に進む。
【００７７】
Ｓ２００４がＹｅｓの場合には、活動情報受信部１０００は、実績記録テーブル６００を更新する（Ｓ２００８）。この場合には、活動がホワイトリストに含まれるものなので、その分の一致数６０６０をインクリメントする。
【００７８】
Ｓ２００４がＮｏの場合には、活動情報受信部１０００は、ホワイトリストに含まれない活動に関するアラートをオペレータ５０に通知する（Ｓ２００５）。アラートの通知方法としては、表示装置におけるインタフェース画面への表示、ＥメールやＳＮＭＰ（Simple Network Management Protocol）トラップ、独自の通信プロトコルの使用など、一般的にアラート送信に用いられる手段を用いる。
【００７９】
活動情報受信部１０００は、アラートに対するフィードバックをオペレータ５０から受信する（Ｓ２００６）。フィードバックには、アラート対象となった活動がマルウェアや攻撃に類するものか、あるいは誤アラートかの情報が含まれる。
【００８０】
次に、活動情報受信部１０００は、実績記録テーブル６００を更新する（Ｓ２００８）。活動がホワイトリストに含まれる場合は、該当レコードの一致数６０６をインクリメントする。一方、Ｓ２００６で得られたフィードバックに誤アラートが含まれる場合は、その分の一致数６０６０をインクリメントする。更新処理の後、Ｓ２００１に戻る。
【００８１】
次に、図１１を用いてホワイトリスト作成部の処理について説明する。
【００８２】
ホワイトリスト作成部はオペレータ５０の操作により実行される。
【００８３】
ホワイトリスト作成部１１００は、過去Ｌｔｉｍｅの間の、各既存運用中端末の活動を活動記録テーブル１００より取得する（Ｓ２１０１）。なお、Ｌｔｉｍｅとしては任意の期間を設定できるが、通常の運用では数週間から数か月が妥当の値と考えられる。
【００８４】
ホワイトリスト作成部１１００は、Ｓ２１０１で取得した活動のうち、発生頻度が一定以上であるものを抽出する（Ｓ２１０２）。例えば、Ｌｔｉｍｅの期間中での発生頻度が１０回以上である活動を抽出する。
【００８５】
ホワイトリスト作成部１１００は、Ｓ２１０２で抽出した活動をホワイト認定活動２０３とする既存運用端末ホワイトリスト２００の新規レコードを作成・記録する（Ｓ２１０３）。
【００８６】
次に、図１２を用いて活動相関性算出部１２００の処理を説明する。
【００８７】
活動相関性算出部１２００は、オペレータ５０の操作により実行される。
【００８８】
先ず、活動相関性算出部１２００は、既存運用端末ホワイトリスト２００中のレコードを読み込む（Ｓ２２０１）。
【００８９】
活動相関性算出部１２００は、読み込んだ複数の活動間の相関値を算出し、相関地に基づきクラスタリングをおこなう（Ｓ２２０２）。
【００９０】
最後に、活動相関性算出部１２００は、クラスタリングの結果を、活動相関性テーブルに４００に記録する（Ｓ２２０３）。
【００９１】
以下、クリスタリングの詳細について説明する。
【００９２】
相関値の算出には、活動相関ルールテーブル３００に定義した各ルールを用いる。図５の既存運用端末ホワイトリスト２００に示された例では、Ｐ４とＰ１０は、いずれも既存運用端末Ｘ、既存運用端末Ｙで実行されているため、利用端末ベクトルのコサイン類似度が高く、相関値が高いと判断される。同様に、Ｐ５とＰ１４、Ｐ８とＰ１１も相関値が高いと判断される。逆に、その他の組合せ（例えば、Ｐ５とＰ８）では、相関値は低いと判断される。
【００９３】
クラスタリングに用いる方法は、相関値や距離（一般に、距離は相関値に反比例する）に基づくクラスタリングアルゴリズムであればよく、例えば、Ｋ−ｍｅａｎｓ法、２−ｍｅａｎｓ法、デンドログラムなどが対象となる。クラスタリングアルゴリズムには、個々の要素を集約してクラスタを再帰的に作成していくものと、一つのクラスタを再帰的にサブクラスタに分割していくものがあるが、どちらの方法についても、どこまでクラスタリングをおこなうかの基準が必要になる。この基準については任意に設定してもよいが、ここでは、特に２−ｍｅａｎｓ法を用いた場合の基準について説明する。
【００９４】
２−ｍｅａｎｓ法では、先ず、すべての活動を含む一つのクラスタを作り、Ｋ−ｍｅａｎｓ法を適用して再帰的に２分割していく。ここで、あるクラスタＣ＝｛ａ１、ａ２，ａ３，ａ４｝を、二つのサブクラスタＣ１＝｛ａ１、ａ２｝、Ｃ２＝｛ａ３，ａ４｝に分割するべきか否かの基準について述べる。後述の通り、Ｌｔｉｍｅ′中にクラスタ内の一つの活動を実行した新規導入端末は、同一クラスタに含まれる他の活動を全てインスタントホワイトリストに持つことになる（図１３により後述）。ここで、Ｃに含まれる活動を学習期間中に１回以上実施した既存運用端末の集合をＨとする。このときＣ内に含まれる活動のうち、端末ｈ∈Ｈが実施した活動数を、ｆ（Ｃ，ｈ）（≦｜Ｃ｜、ただし、｜Ｃ｜は、Ｃに含まれる活動の数）とする。ｆ（Ｃ，ｈ）が大きい程、そのクラスタには端末が実施する活動が多く含まれることになる。また一方で、不要な活動を登録しないためには、ｆ（Ｃ，ｈ）と比較してＣのサイズは小さい方が望ましい。このため、あるクラスタＣの品質Ｑ（Ｃ）を、以下の（式２）で定める。
【００９５】
【数２】
2018106634.tif 000004
【００９６】
そして、
Ｑ（Ｃ）＜Ｑ（Ｃ１）＋Ｑ（Ｃ２）
が成り立つ限り、すなわち、分割した方が品質が高くなる限り、クラスタリングを継続するものとする。
【００９７】
次に、図１３および図１４を用いてインスタントホワイトリスト作成部１３００の処理について説明する。
【００９８】
インスタントホワイトリスト作成部１３００は、オペレータ５０の操作により実行される。インスタントホワイトリスト作成部１３００は、最大でＬｔｉｍｅ′（＜Ｌｔｉｍｅ）の間の学習期間で、インスタントホワイトリストを作成する。ホワイトリスト作成部１１００は、一定間隔で学習および学習結果の検証をおこない、満足な性能が得られた時点で学習を打ち切る。このため、学習効率がよい端末については、Ｌｔｉｍｅ′よりも早期に学習を完了することができる。インスタントホワイトリスト作成部１３００は、学習スロットというある期間の間、新規導入端末を動作させ、業務をおこなわせる（Ｓ２３０１）。ここで、学習スロットは、学習期間の小分割単位であり（図１４）、以下の（式３）が成り立つ関係にある。  
Ｌｔｉｍｅ′＝Ｋ×学習スロット    …（式３）
ただし、Ｋは、Ｋ＞１なる整数
Ｌｔｉｍｅ′および学習スロットには任意の期間を設定できるが、想定する代表的な、設定の一つとしては、Ｌｔｉｍｅ＝２週間、学習スロット＝１日（すなわち、Ｋ＝１４）が考えられる。
【００９９】
インスタントホワイトリスト作成部１３００は、活動記録テーブル１００から、過去の１学習スロット分の活動内容を取得する（Ｓ２３０２）。
【０１００】
次に、インスタントホワイトリスト作成部１３００は、Ｓ２３０２で取得した活動内容から、発生頻度が一定回数以上のユニークなエントリを抽出し、インスタントホワイトリスト５００に追加する（Ｓ２３０３）。なお、種別５０３は「オリジナル」となる。
【０１０１】
次に、インスタントホワイトリスト作成部１３００は、Ｓ２３０３で追加した個々のエントリと同一のクラスタに属する活動を、活動相関性テーブル４００から抽出し、インスタントホワイトリスト５００に加える（Ｓ２３０４）。なお、この場合は、種別５０３は「追加」となる。
【０１０２】
例えば、Ｓ２３０３で取得したエントリの一つがＰ４であった場合、ＩＤ４０１＝１にあるＰ１０が追加される（図７参照）。
【０１０３】
インスタントホワイトリスト作成部１３００は、全てのエントリに対してＳ２３０６を適用し、完了（Ｓ２３０５：Ｙｅｓ）の後、Ｓ２３０６に進む。
【０１０４】
Ｓ２３０５がＹｅｓの場合、インスタントホワイトリスト作成部１３００は、総学習期間を示す変数に対して学習スロットを加算する（総学習期間←総学習期間＋学習スロット）（Ｓ２３０６）。
【０１０５】
インスタントホワイトリスト作成部１３００は、次の学習スロットの期間の間、インスタントホワイトリストを運用する（Ｓ２３０７）。ここでの運用の目的は、現状のインスタントホワイトリストでの性能（誤アラートや一致数）を測定するためのものである。このため、一時的に、当該端末に対するＳ２００３は「Ｙｅｓ」となる。この期間の間は、実績記録テーブル６００に実績が記録される。
【０１０６】
すなわち、１〜ｎ番目の学習スロットでの学習結果から得られたインスタントホワイトリストの性能を、ｎ＋１番目の学習スロットの期間で評価することになる。
【０１０７】
次に、インスタントホワイトリスト作成部１３００は、学習スロット期間中で発生した誤アラート数を実績記録テーブル６００から取得し、閾値以上であるか否かを判断する（Ｓ２３０８）。誤アラートが閾値以上であり、かつ総学習期間がＬｔｉｍｅ′未満であるとき（Ｓ２３０８：Ｙｅｓ）、未だ学習の余地があると判断され、処理はＳ２３０２に戻る。この場合、誤アラートが閾値以上発生した期間の活動がホワイトリストに追記されることになる。
【０１０８】
誤アラート数が閾値を超えない、または総学習期間がＬｔｉｍｅ′以上になった時、学習は完了する。誤アラート数が閾値を超えなくなったとは、インスタントホワイトリストに属していないホワイトリストに含めるべき活動があまり見つからなくなった、すなわち、学習の効果がなくなってきたと考えられるからである。
【０１０９】
以上述べてきたように、本実施形態のホワイトリスト作成装置は、業務システム内の既存運用端末向けに事前作成されたホワイトリストを分析して相関性が高い活動をクラスタとして分類する。そして、新規導入端末の導入時には、新規導入端末を、既存運用端末の学習期間と比べて短期間の間動作させ、その間に発生した活動、これらの活動と相関性が高いクラスタの活動を、新規導入端末のホワイトリストに格納するものである。
【０１１０】
本実施形態のホワイトリスト作成装置は、以下の二つの着眼点に基づくものである。
【０１１１】
一つ目の着眼点は、各端末で発生する個々の活動の発生パターンの間には相関性が見られるということである。例えば、ある活動をおこなう端末では、それと相関のある別の活動が一定期間内におこなわれる可能性が高いという関係が存在するということである。
【０１１２】
二つ目の着眼点は、新規導入端末と構成・役割の一部が一致する既存運用端末が業務システム内に存在する可能性は高く、新規導入端末の構成・役割の多くは、全ての既存運用端末の構成・役割の集合の部分集合として捉えられるということである。例えば、ある業務に使用していた古い端末を新しい端末に変えた場合、オペレーティングシステム（ＯＳ）構成は変わったとしても、新規端末の業務はこれまでの業務と同じとなる。また、新規端末と同じＯＳ構成を持つ端末が業務システムに存在するということである。
【０１１３】
本実施形態のホワイトリスト作成装置は、この二つの着眼点が成り立つ業務システム・端末において、特に有効性を発揮する。
【０１１４】
以上のように、本実施形態では、新規端末の導入のときには、既存運用端末で作成されているホワイトリストを基に、活動の相関性を考慮したクラスタリング処理により、インスタントホワイトリストを作成する。これにより、新規端末の導入のときのホワイトリスト作成の期間、手間を大幅に軽減することができる。
【符号の説明】
【０１１５】
１…活動情報、２…活動情報、３…操作部、１０…ホワイトリスト作成装置、２０ａ…既存運用端末Ｘ、２０ｂ…既存運用端末Ｙ、２０ｃ…既存運用端末Ｚ、３０…新規導入端末、４０…通信ネットワーク、５０…オペレータ、１００…活動記録テーブル、２００…既存運用端末ホワイトリスト、３００…活動相関ルールテーブル、４００…活動相関性テーブル、５００…インスタントホワイトリスト、６００…実績記録テーブル、１０００…活動情報受信部、１１００…ホワイトリスト作成部、１２００…活動相関性算出部、１３００…インスタントホワイトリスト作成部
【図１】
2018106634.tif 000005
【図２】
2018106634.tif 000006
【図３】
2018106634.tif 000007
【図４】
2018106634.tif 000008
【図５】
2018106634.tif 000009
【図６】
2018106634.tif 000010
【図７】
2018106634.tif 000011
【図８】
2018106634.tif 000012
【図９】
2018106634.tif 000013
【図１０】
2018106634.tif 000014
【図１１】
2018106634.tif 000015
【図１２】
2018106634.tif 000016
【図１３】
2018106634.tif 000017
【図１４】
2018106634.tif 000018