【文献】
大田原 渉 他,異なる計算機間で正常動作情報を共有する異常検知システム,情報処理学会研究報告 IPSJ SIG Technical Reports,日本,社団法人情報処理学会,2009年 1月21日,第2009巻 第6号,第11頁-第18頁
(58)【調査した分野】(Int.Cl.,DB名)
前記相関性の算出に際しては、個々の活動について、各端末における実施の有無を要素とするベクトルを生成し、前記ベクトル間の類似度が高い二つの活動を相関性が高いと判断することを特徴とする請求項1記載のホワイトリスト作成装置。
前記相関性の算出に際しては、活動の種類が通信の場合は、ドメイン名の類似度、IPアドレスの類似度を用いることを特徴とする請求項1記載のホワイトリスト作成装置。
前記既存運用端末の前記ホワイトリストの中に記録された活動のクラスタリングに際して、各々のクラスタの品質を評価し、クラスタの品質の総和が最大となるまでクラスタリングする手法であって、
前記クラスタリングにおける前記クラスタの品質指標は、各既存運用端末が前記クラスタに含まれる活動を実施する数の二乗の総和に比例し、前記クラスタのサイズに反比例することを特徴とする請求項2記載のホワイトリスト作成装置。
【発明を実施するための形態】
【0013】
以下、本発明に係る一実施形態を、
図1ないし
図14を用いて説明する。
【0014】
本実施形態では、3台の既存運用端末から構成される業務システムを想定する。そして、1台の新規導入端末が導入された際に、既存の3台の端末のホワイトリストを基に、新規導入端末用のホワイトリストであるインスタントホワイトリストを作成するものとする。
【0015】
先ず、
図1を用いて一実施形態に係る業務システムにおけるホワイトリスト作成の処理概要について説明する。
【0016】
先ず、既存運用端末において、学習期間が終了したタイミングでホワイトリストが作成される。ここで、既存運用端末での学習期間の長さを、Ltimeと表記することとする。
【0017】
その後、新規導入端末が導入され、インスタントホワイトリストを作成する。インスタントホワイトリストとは、本実施形態の業務システムにおいて、学習期間の活動(上記のように、特定のプロセスの起動、特定のWEBサーバへのアクセスなど、後に詳述)のほかに、既存のホワイトリストに基づいて、作成されるホワイトリストであり、「インスタント」とは、通常のホワイトリストより短期間で作成可能であることを示唆している。インスタントホワイトリストの学習期間の長さの最大値は、Ltime′であるとする。ここで、Ltime′<Ltimeが成り立つ。Ltime′は、あくまで最大値であり、条件によっては、学習はLtime′よりも短い期間で完了する。インスタントホワイトリストは、新規導入端末がLtime′中に発生する活動、既存運用端末のホワイトリストを基に作成される。
【0018】
次に、
図2および
図3を用いて本発明の一実施形態に係る業務システムのシステム構成と、データフローについて説明する。
【0019】
本実施形態の業務システムは、
図2に示されるように、ホワイトリスト作成装置10、既存運用端末X20a、既存運用端末X20b、既存運用端末Z20c、新規導入端末30、通信ネットワーク40からなる。また、ホワイトリスト作成装置10は、オペレータ50によって操作される。
【0020】
ホワイトリスト作成装置10は、既存運用端末のホワイトリストと新規導入端末のインスタントホワイトリストを作成し、それらを管理する装置である。
【0021】
活動情報受信部1000は、既存運用端末X20a、既存運用端末Y20b、既存運用端末Z20cから活動情報1を受信し、新規導入端末30から活動情報2を受信する。活動情報1、活動情報2には、各端末の活動状況(いつ、どのような活動をおこなったか)の情報が含まれる。活動情報1と活動情報2は、各端末にエージェントプログラムを導入して記録してもよいし、通信ネットワーク40上での通信を取得してもよい。活動の種類としては、プロセス起動、WEB通信、ファイルアクセス、レジストリアクセスなど、通常の端末がおこなう活動が含まれる。活動情報受信部1000は、取得した活動情報を、通信ネットワーク40を介して受信し、活動記録テーブル100に記録する。また、活動情報を送信した端末が運用中の場合は、ホワイトリスト照合の判定結果を実績記録テーブル600に記録する。
【0022】
実績記録テーブル600は、運用中の端末のホワイトリストに関する情報を記録するテーブルであり、運用中のホワイトリストに含まれている活動が発生した回数、含まれなかった活動が発生した回数を管理する。
【0023】
ホワイトリスト作成部1100は、活動記録テーブル100に格納された活動情報に基づいて、既存運用端末向けのホワイトリストを作成して、既存運用端末ホワイトリスト200に格納する。
【0024】
活動相関性算出部1200は、既存運用端末ホワイトリスト200と活動相関ルールテーブル300に基づいて、活動間の相関を算出して活動相関性テーブル400に格納する。
【0025】
インスタントホワイトリスト作成部1300は、新規導入端末30の活動記録テーブル100および活動相関性テーブル400を基に、新規導入端末30のインスタントホワイトリストを作成して、インスタントホワイトリスト500に格納する。
【0026】
既存運用端末X20a、既存運用端末Y20b、既存運用端末Z20c、新規導入端末30は、一般的なパーソナルコンピュータ、サーバ、スマートフォン、モバイル端末など計算機リソース(ハードウェアリソース、ソフトウェアリソース)をもつものがこれに該当する。
【0027】
通信ネットワーク40は、WAN(World Area Network)やLAN(Local Area Network)、携帯電話、PHS等と通信する公衆回線網でもよい。各装置間の通信は、通信ネットワーク40を介しておこなわれる。
【0028】
オペレータ50は、ホワイトリスト作成装置10を、操作部3を介して各部をコントロールする。操作内容としては、既存運用端末ホワイトリストの作成、活動相関性算出、インスタントホワイトリストの作成がある。また、適時、インスタントホワイトリスト500と既存運用端末ホワイトリスト200にアクセスし、ホワイトリストの手動更新など変更を実施する。
【0029】
次に、
図3を用いてホワイトリスト作成装置10のハードウェア構成とソフトウェア構成について説明する。
【0030】
ホワイトリスト作成装置10は、
図3に示されるように、CPU(Central Processing Unit)11、主メモリ12、外部記憶装置13、ネットワークI/F(Interface)14、入出力装置15がバス16により接続された構成である。
【0031】
CPU11は、ホワイトリスト作成装置10の各部を制御し、主メモリ12内に記憶されているプログラムを実行し、各機能部(活動情報受信部1000、ホワイトリスト作成部1100、活動相関性算出部1200、インスタントホワイトリスト作成部1300)の機能を実現する。
【0032】
主メモリ12は、揮発性の半導体メモリであり、外部記憶装置13からロードされたプログラム、ワークデータなどを格納する。
【0033】
外部記憶装置13は、HDD(Hard Disk Drive)、SDD(Solid State Drive)などの磁気記憶装置や不揮発性の半導体記憶装置から構成され、データの長期記憶をおこなうのに用いられる。外部記憶装置13は、ホワイトリスト作成装置10に含まれる各テーブル(活動記録テーブル100、既存運用端末ホワイトリスト200、活動相関ルールテーブル300、活動相関性テーブル400、インスタントホワイトリスト500、実績記録テーブル600)を格納する。また、外部記憶装置13には、ホワイトリストの機能を実現するプログラム群(活動情報受信プログラム31、ホワイトリスト作成プログラム32、活動相関性算出プログラム33、インスタントホワイトリスト作成プログラム34)がインストールされる。活動情報受信プログラム31、ホワイトリスト作成機能プログラム32、活動相関性算出機能プログラム33、インスタントホワイトリスト作成プログラム34は、それぞれ、
図2に示した活動情報受信部1000、ホワイトリスト作成部1100、活動相関性算出部1200、インスタントホワイトリスト作成部1300の機能を実現するプログラムである。
【0034】
ネットワークI/F14は、ホワイトリスト作成装置10を通信ネットワーク40に接続し、データを送受信するインタフェースを取り持つ部分である。
【0035】
入出力装置15は、ホワイトリスト作成装置10を、ユーザおよび管理者により、各種情報の入力、および格納されている情報の出力をおこなう装置であり、例えば、液晶ディスプレイ、タッチパネル、キーボード、マウス、プリンタなどである。
【0036】
バス16は、CPU11、メモリ12、外部記憶装置13、ネットワークI/F14、入出力装置15を接続し、機能間の情報のやりとりを実現する。
【0037】
なお、既存運用端末、新規導入端末30のハードウェア構成も、ホワイトリスト作成装置10と同様に、一般のコンピュータで実現することができる。
【0038】
次に、
図4ないし
図9を用いてホワイトリスト作成装置が用いるデータ構造について説明する。
【0039】
活動記録テーブル100は、各端末で発生した活動を記録するためのテーブルであり、
図4に示されるように、ID101、活動開始時刻102、活動端末103、活動タイプ104、活動内容105の各フィールドを有する。ID101には、各レコードを一意に識別するための識別子が格納される。活動開始時刻102には、活動が発生した時刻が格納される。活動端末103には、活動を実施した端末を一意に示す識別子が格納される。活動タイプ104には、活動の種類を示す識別子が格納される。具体例としては、プロセス、通信、ファイルアクセス、レジストリアクセスなどがある。活動内容105には、具体的な活動内容の情報が格納され、その内容は、活動タイプ104に依存する。例えば、活動タイプ104がプロセスの場合は、起動したプロセス名が、活動タイプ104が通信の場合は、通信先(URL(Uniform Resource Location)、IP(Internet Protocol)アドレス)などが記録される。
【0040】
例えば、
図4に示した例では、ID101=1のレコードには、活動開始時刻102は「2016−07−16 10:00」、活動端末103は「既存運用端末X」、活動タイプ104は「プロセス」、活動内容105は「P1」が設定されている。また、ID101=4のレコードには、活動開始時刻102は「2016−07−16 10:20」、活動端末103は「既存運用端末Z」、活動タイプ104は「通信」、活動内容105は「WEB1」が設定されている。
【0041】
既存運用端末ホワイトリスト200は、各既存運用端末で生成されたホワイトリストを、各端末ごとに示すリストであり、
図5に示されるように、ID201、端末202、ホワイト認定活動203の各フィールドを有する。ID201には、各ホワイトリストを一意に識別するための識別子が格納される。端末202には、対象となる端末を一意に識別するための識別子が格納される。ホワイト認定活動203には、ホワイトリストに含まれる活動が格納される。
【0042】
図5に示した例では、ID201=1のレコードには、端末202=「既存運用端末X」のホワイト認定活動203は「P1,P3,P4,P5,P10,P14…」であることが示されている。
【0043】
活動相関ルールテーブル300は、活動の相関を計量するためのルールを格納するテーブルであり、
図6に示されるように、ID301、相関条件302、相関値算出303、重み304の各フィールドを有する。ID301には、相関性算出のルールを定めた各レコードを一意に識別するための識別子が格納される。相関条件302には、ある活動が当該レコードの対象に入るか否かを示す条件が格納される。相関値算出303には、具体的な相関性算出方法が格納される。このフィールドには、ピアソン相関係数やコサイン類似度(後述)など、一般的な相関性算出手法を用いてもよいし、独自の手法を用いてもよい。重み304には、相関値算出303の重み付けが格納される。
【0044】
以上のように、活動相関ルールテーブル300は、各活動の相関性を定量的に算出するための指標(相関値の算出方法)、および、その重み付けが記録されている。活動の種類によって、算出するべき指標は異なる。例えば、二つの活動が共に、プロセス活動のときには、「プロセス名類似度」で相関を評価され、通信活動のときには、「ドメイン名類似度」で評価される如くである。そして、ある二つの活動の相関値は、相関条件が該当するレコードで求められた相関値算出303の加重平均により決定される。
【0045】
図7に示した例では、ID301=1のレコードは、相関条件302が「全活動」、相関値算出303が「利用端末ベクトルのコサイン類似度」、重み304が「W1」であることを示している。
【0046】
相関条件302の設定は、「全活動」となっているので、このレコードは全ての活動の類似度算出に用いられる。
【0047】
ここで、利用端末ベクトルのコサイン類似度について説明する。利用端末ベクトルとは、個々の端末がその活動を実施したか否か、あるいは、その実施頻度を表現するベクトルである。ある活動の利用端末ベクトルは、各座標に端末の使用の有無を表すフラグを有するベクトルと定義する。本実施形態でのある活動Aの利用端末ベクトルは、(活動Aの既存端末Xの実施の有無,活動Aの既存端末Yの実施の有無,活動Aの既存端末Zの実施の有無)とする。例えば、
図5の既存運用端末ホワイトリスト200の例によると、プロセスP1を実施した端末は、既存運用端末Xのみで、既存運用端末Yおよび既存運用端末Zはおこなっていない。このため、プロセスP1の利用端末ベクトルは、v1=(1,0,0)となる。また、同様にプロセスP4は2台の端末で実行されているため、利用端末ベクトルはv2=(1、1、0)となる。最後に、二つの利用端末ベクトルv1、v2のコサイン類似度は、v1・v2/(|v1||v2|)で求める。P1とP2の例では、1/√2となる。ここで、・は、ベクトルの内積を表し、||は、ベクトルの長さを表している。
【0048】
ID301=2のレコードは、相関条件302が「プロセス活動」、相関値算出303が「プロセス名類似度」、重み304がW2であることを示している。ここでの相関条件302は「プロセス活動」なので、対象となる活動はプロセスのみである。プロセス名類似度は、各プロセスの名前の類似度であり、名称を評価するような任意の指標を用いることができる。具体的には、最小編集距離などの指標がある。
【0049】
プロセス活動の相関の算出に際しては、この他にもプロセスの起動元となる実行ファイルのコンテンツの類似性、実行ファイルの作成期間の類似度なども、相関性算出に利用することができる。
【0050】
ID301=3のレコードは、相関条件302が「通信活動」、相関値算出303が「ドメイン名類似度」、重み304がW3であることを示している。ここでの相関条件302は「通信活動」なので、対象となる活動は、通信のみである。ドメイン名類似度は、各通信の通信先ドメイン名の類似度であり、名称に関する任意の指標を用いることができる。具体的には、最小編集距離などの指標がある。
【0051】
通信活動の相関の算出に際しては、この他にもドメイン名を逆引きしたIPアドレスの類似度、レジストラの類似度なども相関性算出に用いることができる。
【0052】
以下、相関値の算出の具体例について説明する。例えば、相関値算出対象となる活動A1、A2が両方ともプロセスに関するものである時、ID301=1、ID302=2のレコードが適用され、相関値は、以下の(式1)で求めることができる。
【0054】
また、活動A1がプロセス、活動A2が通信と、種類が異なる場合は、ID301=1のルールのみが適用されるため、両者の相関値は、コサイン類似度(A1、A2)のみとなる。
【0055】
活動相関性テーブル400は、各活動が属するクラスタを示したテーブルであり、
図7に示されるように、ID401、相関クラスタ402、クラスタ要素403の各フィールドを有する。活動相関性テーブル400の各レコードは、活動相関ルールテーブル300に基づいたクラスタリング処理により、相関性が高いと判断された活動がグルーピングされて記載されている。ID401には、各グループを一意に識別するための識別子が格納される。相関クラスタ402には、各クラスタのクラスタ名称が格納される。クラスタ要素403は、各クラスタに含まれる活動の識別子が格納される。
【0056】
図7に示した例では、ID401=1のレコードは、相関クラスタ402が「クラスタ1」、クラスタ要素403が「P4,P10」であるクラスタを示している。
【0057】
インスタントホワイトリスト500は、新規導入端末のホワイトリストを示すテーブルであり、
図8に示されるように、ID501、端末502、種別503、ホワイト認定活動504の各フィールドを有する。
【0058】
ID501には、各レコードを一意に識別するための識別子が格納される。端末502には、対象となる端末の名称または識別子が格納される。種別503には、当該レコードに示されるホワイトリストが、端末が学習期間Ltime′中で実施した活動なのか、あるいは、後述の方法(
図13)により追加された活動なのかを示す種別が格納される。前者であれば、種別503には「オリジナル」が、後者であれば「追加」が記載される。
図5に示した既存運用端末ホワイトリスト200とは異なり、新規導入端末のインスタントホワイトリストは、複数のレコードにまたがって記載される。
【0059】
図8の例では、ID501=1のレコードは、端末502が「新規導入端末」、種別503が「オリジナル」、ホワイト認定活動504が「P4,P5」であるホワイトリストを示している。
【0060】
ID501=2のレコードは、端末502が「新規導入端末」、種別503が「追加」、ホワイト認定活動504が「P10,P14」であるホワイトリストを示している。
【0061】
本例では、P4、P5を実施した新規導入端末のインスタントホワイトリストに、P10、P14も記載されることが示されている。これは、
図7の活動相関性テーブル400に示されているように、P4とP10、およびP5とP14が同じクラスタに含まれるため、それぞれが「追加」で、ホワイトリストに加えられたものである(詳細は、
図13により後述)。
【0062】
実績記録テーブルは、各ホワイトリストの運用状況を統計として記録するテーブルであり、
図9に示されるように、ID601、端末602、タイプ603、運用開始604、誤アラート数605、一致数606の各フィールドを有する。ID601には、各レコードを一意に識別するための識別子が格納される。端末602には、ホワイトリストが対象とする端末の名称または識別子が格納される。タイプ603には、対象とするホワイトリストの種類が格納される。タイプ603には、既存運用端末向けのホワイトリストなら「通常」、新規導入端末向けのインスタントホワイトリストなら「インスタント」が記載される。運用開始604には、当該ホワイトリストが運用された時期が格納される。誤アラート数605には、運用中に発生したホワイトリストに記載されていない活動のうち、その後の調査によってマルウェアや攻撃には類さないことが明らかになったものの件数が格納される。ここで、「誤アラート」という名称は、ホワイトリストに記載されていない活動が認められたときには、マルウェアでなくとも全てアラートを発生させることによるものである(
図10により後述)。一致数606には、運用中に発生したホワイトリストに記載されている活動の数が格納される。
【0063】
誤アラート数605と比べて一致数606が大きいホワイトリストは、精度が高い良好なホワイトリストと言える。反対に、誤アラート数が大きいホワイトリストは精度が低いホワイトリストであり、再度の学習が必要になる場合がある。
【0064】
そのような場合には、オペレータ50は、実施状況を勘案し、良好なインスタントホワイトリストを、通常ホワイトリストに格上げしてもよい。通常ホワイトリストに格上げされたインスタントホワイトリストは、既存運用端末ホワイトリスト200に転載され、活動相関性テーブル400のレコードの作成に用いられる。
【0065】
反対に、精度が低いホワイトリストについて、オペレータ50が運用から得られた知見に従って新しい活動を追加したり、ホワイトリストを破棄して、再度の学習をおこなう場合もある。
【0066】
図9に示された例では、ID601=1のレコードは、端末602=「既存運用端末X」であり、タイプ603=「通常」、運用開始604=「2016/01/01」、誤アラート数605=「34444」、一致数606=「100000」である、ホワイトリストの運用実績を示すレコードを示している。
【0067】
ID601=4のレコードは、端末602=「新規運用端末」であり、タイプ603=「インスタント」、運用開始604=「2016/09/01」、誤アラート数605=「3」、一致数606=「333013」である、ホワイトリストの運用実績を示すレコードである。
【0068】
ここで、ID601=1のレコードは、他のレコードに比べて、誤アラート数605が非常に大きい。このため、オペレータ50は、既存運用端末Xを再学習対象と判断する場合がある。
【0069】
一方、ID601=4のレコードは、他のレコードに比べて、誤アラート数605が小さい。このため、このレコードに示されるインスタントホワイトリストは、通常タイプのホワイトリストに格上げしてもよい。
【0070】
次に、
図10ないし
図14を用いてホワイトリスト作成装置の処理について説明する。
【0071】
先ず、
図10を用いて活動情報受信部1000の処理について説明する。
【0072】
活動情報受信部1000は、ホワイトリスト作成装置10の起動中、継続的に実行される。
【0073】
先ず、活動情報受信部1000は、各端末から活動情報を受信する(S2001)。
【0074】
次に、活動情報受信部1000は、受信した活動情報を活動記録テーブル100に追記する(S2002)。
【0075】
活動情報受信部1000は、活動情報を送信した端末が運用中であるか否かを判断し(S2003)、運用中でない場合(S2003:No)には、すなわち、ホワイトリストの学習中である場合は、S2001に戻る。運用中の場合(S2003:Yes)には、S2004に進む。端末が運用中であるか学習中であるかは、図示しなかったが、システムの端末の運用履歴などを参照することにより知ることが可能である。
【0076】
活動情報受信部1000は、S2001で受信した活動情報が、当該端末のホワイトリストに含まれるか否かを判断し(S2004)、含まれる場合(S2004:Yes)には、処理S2007に進み、含まれない場合には(S2004:No)、処理S2005に進む。
【0077】
S2004がYesの場合には、活動情報受信部1000は、実績記録テーブル600を更新する(S2008)。この場合には、活動がホワイトリストに含まれるものなので、その分の一致数6060をインクリメントする。
【0078】
S2004がNoの場合には、活動情報受信部1000は、ホワイトリストに含まれない活動に関するアラートをオペレータ50に通知する(S2005)。アラートの通知方法としては、表示装置におけるインタフェース画面への表示、EメールやSNMP(Simple Network Management Protocol)トラップ、独自の通信プロトコルの使用など、一般的にアラート送信に用いられる手段を用いる。
【0079】
活動情報受信部1000は、アラートに対するフィードバックをオペレータ50から受信する(S2006)。フィードバックには、アラート対象となった活動がマルウェアや攻撃に類するものか、あるいは誤アラートかの情報が含まれる。
【0080】
次に、活動情報受信部1000は、実績記録テーブル600を更新する(S2008)。活動がホワイトリストに含まれる場合は、該当レコードの一致数606をインクリメントする。一方、S2006で得られたフィードバックに誤アラートが含まれる場合は、その分の一致数6060をインクリメントする。更新処理の後、S2001に戻る。
【0081】
次に、
図11を用いてホワイトリスト作成部の処理について説明する。
【0082】
ホワイトリスト作成部はオペレータ50の操作により実行される。
【0083】
ホワイトリスト作成部1100は、過去Ltimeの間の、各既存運用中端末の活動を活動記録テーブル100より取得する(S2101)。なお、Ltimeとしては任意の期間を設定できるが、通常の運用では数週間から数か月が妥当の値と考えられる。
【0084】
ホワイトリスト作成部1100は、S2101で取得した活動のうち、発生頻度が一定以上であるものを抽出する(S2102)。例えば、Ltimeの期間中での発生頻度が10回以上である活動を抽出する。
【0085】
ホワイトリスト作成部1100は、S2102で抽出した活動をホワイト認定活動203とする既存運用端末ホワイトリスト200の新規レコードを作成・記録する(S2103)。
【0086】
次に、
図12を用いて活動相関性算出部1200の処理を説明する。
【0087】
活動相関性算出部1200は、オペレータ50の操作により実行される。
【0088】
先ず、活動相関性算出部1200は、既存運用端末ホワイトリスト200中のレコードを読み込む(S2201)。
【0089】
活動相関性算出部1200は、読み込んだ複数の活動間の相関値を算出し、相関地に基づきクラスタリングをおこなう(S2202)。
【0090】
最後に、活動相関性算出部1200は、クラスタリングの結果を、活動相関性テーブルに400に記録する(S2203)。
【0091】
以下、クリスタリングの詳細について説明する。
【0092】
相関値の算出には、活動相関ルールテーブル300に定義した各ルールを用いる。
図5の既存運用端末ホワイトリスト200に示された例では、P4とP10は、いずれも既存運用端末X、既存運用端末Yで実行されているため、利用端末ベクトルのコサイン類似度が高く、相関値が高いと判断される。同様に、P5とP14、P8とP11も相関値が高いと判断される。逆に、その他の組合せ(例えば、P5とP8)では、相関値は低いと判断される。
【0093】
クラスタリングに用いる方法は、相関値や距離(一般に、距離は相関値に反比例する)に基づくクラスタリングアルゴリズムであればよく、例えば、K−means法、2−means法、デンドログラムなどが対象となる。クラスタリングアルゴリズムには、個々の要素を集約してクラスタを再帰的に作成していくものと、一つのクラスタを再帰的にサブクラスタに分割していくものがあるが、どちらの方法についても、どこまでクラスタリングをおこなうかの基準が必要になる。この基準については任意に設定してもよいが、ここでは、特に2−means法を用いた場合の基準について説明する。
【0094】
2−means法では、先ず、すべての活動を含む一つのクラスタを作り、K−means法を適用して再帰的に2分割していく。ここで、あるクラスタC={a1、a2,a3,a4}を、二つのサブクラスタC1={a1、a2}、C2={a3,a4}に分割するべきか否かの基準について述べる。後述の通り、Ltime′中にクラスタ内の一つの活動を実行した新規導入端末は、同一クラスタに含まれる他の活動を全てインスタントホワイトリストに持つことになる(
図13により後述)。ここで、Cに含まれる活動を学習期間中に1回以上実施した既存運用端末の集合をHとする。このときC内に含まれる活動のうち、端末h∈Hが実施した活動数を、f(C,h)(≦|C|、ただし、|C|は、Cに含まれる活動の数)とする。f(C,h)が大きい程、そのクラスタには端末が実施する活動が多く含まれることになる。また一方で、不要な活動を登録しないためには、f(C,h)と比較してCのサイズは小さい方が望ましい。このため、あるクラスタCの品質Q(C)を、以下の(式2)で定める。
【0096】
そして、
Q(C)<Q(C1)+Q(C2)
が成り立つ限り、すなわち、分割した方が品質が高くなる限り、クラスタリングを継続するものとする。
【0097】
次に、
図13および
図14を用いてインスタントホワイトリスト作成部1300の処理について説明する。
【0098】
インスタントホワイトリスト作成部1300は、オペレータ50の操作により実行される。インスタントホワイトリスト作成部1300は、最大でLtime′(<Ltime)の間の学習期間で、インスタントホワイトリストを作成する。ホワイトリスト作成部1100は、一定間隔で学習および学習結果の検証をおこない、満足な性能が得られた時点で学習を打ち切る。このため、学習効率がよい端末については、Ltime′よりも早期に学習を完了することができる。インスタントホワイトリスト作成部1300は、学習スロットというある期間の間、新規導入端末を動作させ、業務をおこなわせる(S2301)。ここで、学習スロットは、学習期間の小分割単位であり(
図14)、以下の(式3)が成り立つ関係にある。
Ltime′=K×学習スロット …(式3)
ただし、Kは、K>1なる整数
Ltime′および学習スロットには任意の期間を設定できるが、想定する代表的な、設定の一つとしては、Ltime=2週間、学習スロット=1日(すなわち、K=14)が考えられる。
【0099】
インスタントホワイトリスト作成部1300は、活動記録テーブル100から、過去の1学習スロット分の活動内容を取得する(S2302)。
【0100】
次に、インスタントホワイトリスト作成部1300は、S2302で取得した活動内容から、発生頻度が一定回数以上のユニークなエントリを抽出し、インスタントホワイトリスト500に追加する(S2303)。なお、種別503は「オリジナル」となる。
【0101】
次に、インスタントホワイトリスト作成部1300は、S2303で追加した個々のエントリと同一のクラスタに属する活動を、活動相関性テーブル400から抽出し、インスタントホワイトリスト500に加える(S2304)。なお、この場合は、種別503は「追加」となる。
【0102】
例えば、S2303で取得したエントリの一つがP4であった場合、ID401=1にあるP10が追加される(
図7参照)。
【0103】
インスタントホワイトリスト作成部1300は、全てのエントリに対してS2306を適用し、完了(S2305:Yes)の後、S2306に進む。
【0104】
S2305がYesの場合、インスタントホワイトリスト作成部1300は、総学習期間を示す変数に対して学習スロットを加算する(総学習期間←総学習期間+学習スロット)(S2306)。
【0105】
インスタントホワイトリスト作成部1300は、次の学習スロットの期間の間、インスタントホワイトリストを運用する(S2307)。ここでの運用の目的は、現状のインスタントホワイトリストでの性能(誤アラートや一致数)を測定するためのものである。このため、一時的に、当該端末に対するS2003は「Yes」となる。この期間の間は、実績記録テーブル600に実績が記録される。
【0106】
すなわち、1〜n番目の学習スロットでの学習結果から得られたインスタントホワイトリストの性能を、n+1番目の学習スロットの期間で評価することになる。
【0107】
次に、インスタントホワイトリスト作成部1300は、学習スロット期間中で発生した誤アラート数を実績記録テーブル600から取得し、閾値以上であるか否かを判断する(S2308)。誤アラートが閾値以上であり、かつ総学習期間がLtime′未満であるとき(S2308:Yes)、未だ学習の余地があると判断され、処理はS2302に戻る。この場合、誤アラートが閾値以上発生した期間の活動がホワイトリストに追記されることになる。
【0108】
誤アラート数が閾値を超えない、または総学習期間がLtime′以上になった時、学習は完了する。誤アラート数が閾値を超えなくなったとは、インスタントホワイトリストに属していないホワイトリストに含めるべき活動があまり見つからなくなった、すなわち、学習の効果がなくなってきたと考えられるからである。
【0109】
以上述べてきたように、本実施形態のホワイトリスト作成装置は、業務システム内の既存運用端末向けに事前作成されたホワイトリストを分析して相関性が高い活動をクラスタとして分類する。そして、新規導入端末の導入時には、新規導入端末を、既存運用端末の学習期間と比べて短期間の間動作させ、その間に発生した活動、これらの活動と相関性が高いクラスタの活動を、新規導入端末のホワイトリストに格納するものである。
【0110】
本実施形態のホワイトリスト作成装置は、以下の二つの着眼点に基づくものである。
【0111】
一つ目の着眼点は、各端末で発生する個々の活動の発生パターンの間には相関性が見られるということである。例えば、ある活動をおこなう端末では、それと相関のある別の活動が一定期間内におこなわれる可能性が高いという関係が存在するということである。
【0112】
二つ目の着眼点は、新規導入端末と構成・役割の一部が一致する既存運用端末が業務システム内に存在する可能性は高く、新規導入端末の構成・役割の多くは、全ての既存運用端末の構成・役割の集合の部分集合として捉えられるということである。例えば、ある業務に使用していた古い端末を新しい端末に変えた場合、オペレーティングシステム(OS)構成は変わったとしても、新規端末の業務はこれまでの業務と同じとなる。また、新規端末と同じOS構成を持つ端末が業務システムに存在するということである。
【0113】
本実施形態のホワイトリスト作成装置は、この二つの着眼点が成り立つ業務システム・端末において、特に有効性を発揮する。
【0114】
以上のように、本実施形態では、新規端末の導入のときには、既存運用端末で作成されているホワイトリストを基に、活動の相関性を考慮したクラスタリング処理により、インスタントホワイトリストを作成する。これにより、新規端末の導入のときのホワイトリスト作成の期間、手間を大幅に軽減することができる。