(57)【要約】【課題】  ホワイトリストの作成と更新の基準となる評価として、誤検知のリスクと検知見逃しのリスクからホワイトリストを評価する。【解決手段】  ネットワークで接続された複数の端末のためのホワイトリスト管理システムであって、前記端末の活動が記録された活動ログと、前記端末の活動に対するホワイトリストと、前記活動ログに記録された正常活動が前記ホワイトリストに含まれていないことから誤検知するリスクを算出し、前記活動ログに記録された異常活動が前記ホワイトリストに含まれていることから検知を見逃すリスクを算出し、算出された誤検知するリスクと見逃すリスクに基づいて、前記ホワイトリストを評価する評価算出装置と、を備えたことを特徴とするホワイトリスト管理システム。【選択図】  図１
2019159383.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された複数の端末のためのホワイトリスト管理システムであって、
前記端末の活動が記録された活動ログと、
前記端末の活動に対するホワイトリストと、
前記活動ログに記録された正常活動が前記ホワイトリストに含まれていないことから誤検知するリスクを算出し、前記活動ログに記録された異常活動が前記ホワイトリストに含まれていることから検知を見逃すリスクを算出し、算出された誤検知するリスクと見逃すリスクに基づいて、前記ホワイトリストを評価する評価算出装置と、
を備えたことを特徴とするホワイトリスト管理システム。
【請求項２】
請求項１に記載のホワイトリスト管理システムであって、
前記活動ログは、活動と活動の発生した時刻が記録され、
前記ホワイトリストは、正常とみなす活動が記録され、
前記評価算出装置は、
前記ホワイトリストに含まれない活動を、前記活動ログに記録された活動から抽出し、抽出した活動を基に、誤検知するリスクを算出すること
を特徴とするホワイトリスト管理システム。
【請求項３】
請求項２に記載のホワイトリスト管理システムであって、
前記評価算出装置は、
前記ホワイトリストに含まれない活動を、前記活動ログに記録された活動から抽出し、抽出した活動の発生した時刻が予め設定された一定期間に入る活動の個数を基に、誤検知するリスクを算出すること
を特徴とするホワイトリスト管理システム。
【請求項４】
請求項２に記載のホワイトリスト管理システムであって、
前記評価算出装置は、
検知を見逃すリスクの算出において、前記ホワイトリストに含まれる活動を、前記活動ログに記録された活動から抽出し、抽出した活動を基に、第１のリスクを算出すること
を特徴とするホワイトリスト管理システム。
【請求項５】
請求項４に記載のホワイトリスト管理システムであって、
前記評価算出装置は、
検知を見逃すリスクの算出において、前記ホワイトリストに含まれる活動を、前記活動ログに記録された活動から抽出し、抽出した活動の発生した時刻が、前記ホワイトリストの作成時刻より、活動の内容ごとに最も古い時刻の活動を選択し、選択した第１の活動の最も古い第１の時刻と前記ホワイトリストの作成時刻との第１の時間差が、選択した第２の活動の最も古い第２の時刻と前記ホワイトリストの作成時刻との第２の時間差より小さい場合、第１の活動のリスクを第２の活動のリスクより大きくなるように第１のリスクを算出すること
を特徴とするホワイトリスト管理システム。
【請求項６】
請求項４に記載のホワイトリスト管理システムであって、
前記評価算出装置は、
検知を見逃すリスクの算出において、前記ホワイトリストに記録された活動に対して、予め設定された第２のリスクを設定すること
を特徴とするホワイトリスト管理システム。
【請求項７】
請求項６に記載のホワイトリスト管理システムであって、
前記端末の活動の内容に対するリスクが設定された重点警戒活動リスクのリストをさらに備え、
前記評価算出装置は、
検知を見逃すリスクの算出において、前記ホワイトリストに記録された活動に対して前記重点警戒活動リスクのリストに記録された第３のリスクを設定すること
を特徴とするホワイトリスト管理システム。
【請求項８】
請求項７に記載のホワイトリスト管理システムであって、
前記評価算出装置は、
算出された第１のリスク、設定された第２のリスク、および設定された第３のリスクに基づいて、検知を見逃すリスクを算出すること
を特徴とするホワイトリスト管理システム。
【請求項９】
請求項８に記載のホワイトリスト管理システムであって、
前記評価算出装置は、
算出された誤検知するリスクを正規化し、算出された見逃すリスクを正規化し、正規化した各リスクの重み付き調和平均を算出すること
を特徴とするホワイトリスト管理システム。
【請求項１０】
請求項１に記載のホワイトリスト管理システムであって、
前記活動ログの中から活動ログを抽出し、ホワイトリストの候補を生成し、前記評価算出装置が、抽出した活動ログを前記活動ログとして用い、生成したホワイトリストの候補を前記ホワイトリストとして用いるよう制御するホワイトリスト探索装置を、さらに備えたことを特徴とするホワイトリスト管理システム。
【請求項１１】
請求項１０に記載のホワイトリスト管理システムであって、
前記ホワイトリスト探索装置は、
ホワイトリストの第１の候補群を生成し、第１の候補群の中の各候補に対する前記評価算出装置による評価が、第１の候補群の中で最も良い評価の候補であって、第１の候補群より前に生成した第２の候補群の中で最も良い評価の候補の評価よりも、予め設定された閾値以上に良い評価の候補を、新たなホワイトリストとすること
を特徴とするホワイトリスト管理システム。
【請求項１２】
請求項１０に記載のホワイトリスト管理システムであって、
前記ホワイトリストを取得し、取得したホワイトリストを前記ホワイトリストとして用いて評価するように前記評価算出装置を制御し、前記評価算出装置による評価と、取得したホワイトリスト作成時の評価との差異に基づいて、再学習をするか否かを判定する再学習判定装置を、さらに備えたことを特徴とするホワイトリスト管理システム。
【請求項１３】
請求項１２に記載のホワイトリスト管理システムであって、
前記再学習判定装置は、
再学習すると判定すると、前記ホワイトリスト探索装置が新たなホワイトリストを生成するように制御すること
を特徴とするホワイトリスト管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホワイトリスト管理システムに関するものである。
【背景技術】
【０００２】
近年、情報漏えいや不正アクセスなどの脅威をもたらすコンピュータウイルスやスパイウェア、ボットプログラムといった悪意ある不正プログラム（マルウェア）が増加している。そして、マルウェアを利用して特定の官庁や企業、組織のネットワークに侵入し、機密情報の窃盗やシステム破壊を行う「標的型攻撃」が、セキュリティ上の大きな脅威となっている。
【０００３】
特定の組織ではその組織用に業務が定型化されている場合も多いため、「標的型攻撃」に対する対策の一つとして、ホワイトリスト型の対策がある。ホワイトリスト型対策では、業務に必要な正常な活動（特定のプロセスの起動、特定のＷＥＢサーバへのアクセスなど）が定義されて、ホワイトリストというデータベースに記録され、ホワイトリストに合わない活動が攻撃として検知される。
【０００４】
ホワイトリストの作成方法には様々あるが、その１つであるプロファイル型ホワイトリストは、「学習期間」に監視対象の端末上で観測される活動を、与えられた基準に基づき学習することにより作成される。そして、学習後、学習したホワイトリストを「運用期間」に使って攻撃を検知する。
【０００５】
ホワイトリストの作成と更新に関して、特許文献１には「識別手段は、検知手段によって起動が検知されたプログラムまたは検出されたプログラムのプログラム情報に基づき、前記プログラムが所定の基準を満たすか否かを判定し、登録手段は、前記所定の基準を満たすと判定されたプログラムを（ホワイト）リストに登録する」技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−９６１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示の技術を用いれば、ホワイトリストを作成し、更新することは可能となる。しかしながら、特許文献１には「所定の基準」として「ディジタル署名」などの使用が開示されているのに対し、定型化された業務とはいえ、一般に「プログラム」の構造は複雑であり、すべての「プログラム」に「ディジタル署名」を予め付与することは非常に労力を要する。
【０００８】
そして、「プログラム」への「ディジタル署名」の付与が漏れた場合、その「プログラム」は、ホワイトリストに登録されず、マルウェアあるいは攻撃として誤検知されてしまう可能性もある。
【０００９】
また、「所定の基準」をマルウェアあるいは攻撃が検知されないという基準にしたとしても、マルウェアや攻撃が分析されて検知可能となるまでに時間のかかる場合もあり、検知されるべき「プログラム」が、検知可能となるまでの期間は、ホワイトリストに登録されて、検知見逃しとなってしまう可能性もある。
【００１０】
そこで、本発明では、ホワイトリストの作成と更新の基準となる評価として、誤検知のリスクと検知見逃しのリスクからホワイトリストを評価することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る代表的なホワイトリスト管理システムは、ネットワークで接続された複数の端末のためのホワイトリスト管理システムであって、前記端末の活動が記録された活動ログと、前記端末の活動に対するホワイトリストと、前記活動ログに記録された正常活動が前記ホワイトリストに含まれていないことから誤検知するリスクを算出し、前記活動ログに記録された異常活動が前記ホワイトリストに含まれていることから検知を見逃すリスクを算出し、算出された誤検知するリスクと見逃すリスクに基づいて、前記ホワイトリストを評価する評価算出装置と、を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ホワイトリストの作成と更新の基準となる評価として、誤検知のリスクと検知見逃しのリスクからホワイトリストを評価することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】ホワイトリスト管理システムの例を示す図である。
【図２】学習期間にホワイトリストを作成するシーケンスの例を示す図である。
【図３】運用機関にホワイトリストを再作成するシーケンスの例を示す図である。
【図４】ホワイトリスト評価指標算出装置のハードウェア構成の例を示す図である。
【図５】活動ログＤＢの例を示す図である。
【図６】ホワイトリストＤＢの例を示す図である。
【図７】重点警戒活動ＤＢの例を示す図である。
【図８】評価指標算出の処理手順の例を示す図である。
【図９】誤検知リスク算出の処理手順の例を示す図である。
【図１０】検知見逃しリスク算出の処理手順の例を示す図である。
【図１１】学習時攻撃混入リスク算出の処理手順の例を示す図である。
【図１２】準最適ホワイトリスト探索の処理手順の例を示す図である。
【図１３】再学習必要性判定の処理手順の例を示す図である。
【図１４】評価指標の算出例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を、図面に示す実施例を基に説明する。
【００１５】
（システム概要）
図１は本実施例におけるシステム構成の例を示す図である。本システムを構成する要素として、通信ネットワーク８３、ホワイトリスト評価指標算出装置１０、準最適ホワイトリスト探索装置４０、再学習必要性判定装置５０、活動ログＤＢ６０（ＤＢ：Data Base）、ホワイトリストＤＢ７０、端末群８０、ネットワーク型活動ログ送信装置８２、および重点警戒活動ＤＢ９０、がある。
【００１６】
通信ネットワーク８３は、ＷＡＮ（World Area Network）あるいはＬＡＮ（Local Area Network）、携帯電話あるいはＰＨＳ（Personal Handy-phone System）などの公衆回線網でもよい。図１に示した各装置間の通信は、通信ネットワーク８３を介して行われる。
【００１７】
ホワイトリスト評価指標算出装置１０は、準最適ホワイトリスト探索装置４０または再学習必要性判定装置５０から入力に応じてホワイトリストの質（評価指標）を算出する。この評価指標（評価値）の算出は誤検知リスクおよび検知見逃しリスクの両点に基づき行われる。
【００１８】
これらのリスク算出は、ホワイトリスト評価指標算出装置１０に含まれる誤検知リスク算出部２０と検知見逃しリスク算出部３０のそれぞれにおいて実施される。誤検知リスク算出部２０と検知見逃しリスク算出部３０は、同じホワイトリスト評価指標算出装置１０に存在してもよいし、異なる装置上に分散していてもよい。
【００１９】
誤検知リスク算出部２０は、与えられたホワイトリストが誤検知を引き起こすリスクを評価する。この評価において、指定された活動ログにホワイトリストを適用し誤検知を測定するためのログシミュレータ２１、およびホワイトリストと活動ログの関係がどのような状況になった時に誤検知と見做すかを判定する誤検知スコア基準部２２から構成される。
【００２０】
検知見逃しリスク算出部３０は、与えられたホワイトリストにより検知見逃しが発生するリスクを評価する。検知見逃しリスクの算出では、最初に、ホワイトリスト内の各エントリのリスクを求め、次に、リスクを求めたエントリのリスクを統合して、ホワイトリストの誤検知リスクを算出する。
【００２１】
ここで、エントリの誤検知リスクには、（１）運用時に発生した攻撃が偶々エントリに一致してしまい誤検知が発生してしまう運用時攻撃見逃しリスク、および（２）学習時に発生していた攻撃が検知されず、攻撃を構成する活動がホワイトリストに混入してしまう学習時攻撃混入リスク、の２種類が存在する。
【００２２】
前者に対するリスク算出は運用時攻撃見逃しリスク算出部３１で行い、後者に対するリスク算出は学習時攻撃混入リスク算出部３２で行う。また、これらとは別に、セキュリティ専門家などから、標的型攻撃で悪用されやすい活動と認定されている活動（例えば、攻撃者が頻繁に使用するWindows（登録商標）のコマンド）に対しては、特別なリスク値が割り当てられる。
【００２３】
このような特別なリスク値の処理は、重点警戒活動リスク算出部３３において行なわれる。また、このような特別なリスク値の処理では、セキュリティ専門家などから予め設定された重点警戒活動ＤＢ９０が参照される。
【００２４】
準最適ホワイトリスト探索装置４０は、機械学習アルゴリズムなどを用いて、活動ログＤＢ６０内のログを基に、端末群８０の端末ごとに、評価指標が準最適となるホワイトリストを探索する。探索されたホワイトリストは、新たなホワイトリストとして作成され、ホワイトリストＤＢ７０に格納される。
【００２５】
再学習必要性判定装置５０は、運用期間中に、ホワイトリストの質の経年変化を追跡し、質に劣化があると判定したときに再学習を実施させて、ホワイトリストを作り直させる。質に劣化があると判定されたとき、すなわち再学習が必要なときに、ホワイトリストの作り直しを行うことで、ホワイトリストの維持において不要な計算量を削減することができる。
【００２６】
活動ログＤＢ６０は、ホワイトリスト作成の対象である端末群８０の活動が記録される。活動ログＤＢ６０に記録される活動は、学習期間の活動と運用期間の活動がある。ホワイトリストＤＢ７０には、準最適ホワイトリスト探索装置４０で作成されたホワイトリストが保存される。
【００２７】
端末群８０は、ホワイトリスト作成対象となる端末である。端末の活動の情報は、端末内にインストールされたプログラムを実行する図示を省略した端末のプロセッサが、端末ログ送信部８１となり、この端末ログ送信部８１によって観測され、活動ログＤＢ６０に送信される。
【００２８】
あるいは、端末群８０から端末の活動の情報が活動ログＤＢ６０に送信されず、通信ネットワーク８３上で端末群８０の活動すなわち端末群８０の通信を監視するネットワーク型活動ログ送信装置８２により、活動の観測と活動ログＤＢ６０への送信が行なわれてもよい。
【００２９】
重点警戒活動ＤＢ９０は、標的型攻撃に悪用された活動の情報およびそのリスク値が格納される。重点警戒活動ＤＢ９０の情報は、セキュリティ専門家などから予め格納されてもよい。
【００３０】
（シーケンスの例）
図２は、学習期間におけるシステムの処理シーケンスの例を示す図である。学習期間の開始および終了は、システムのユーザにより設定される。学習期間は例えば１か月間である。ホワイトリストは、学習期間中に発生した端末群８０の活動ログを基に作成される。ホワイトリストを作成するタイミングは、学習期間の終了時、すなわち学習期間開始から既定の一定時間が経った日時である。
【００３１】
端末群８０から活動ログＤＢ６０に送信されるメッセージである活動ログ２０１には、端末群８０の活動ログの情報が含まれる。このメッセージは、端末群８０の端末ログ送信部８１、または端末群８０を監視しているネットワーク型活動ログ送信装置８２により、送信される。また、学習期間と活動期間のいずれにおいても、このメッセージは、端末群８０の端末で新しい活動が発生する度に送信されてもよい。
【００３２】
準最適ホワイトリスト探索装置４０は、学習期間の終了時に、端末群８０に含まれる各端末に対して、ホワイトリストを作成する。その際、学習期間中に蓄積された学習用活動ログ２０２を活動ログＤＢ６０からメッセージとして取得し、ホワイトリスト探索４００の処理を実施する。
【００３３】
準最適ホワイトリスト探索装置４０は、ホワイトリスト探索４００において、作成したホワイトリストの評価指標を算出するため、評価要求２０３をホワイトリスト評価指標算出装置１０にメッセージとして送信する。メッセージ内には評価対象のホワイトリストおよび評価に必要となる学習用活動ログ２０２が含まれる。
【００３４】
評価要求２０３のメッセージを受信したホワイトリスト評価指標算出装置１０は、評価指標算出１００の処理により評価指標を算出し、その値を評価結果２０４として含ませたメッセージを返信する。
【００３５】
準最適ホワイトリスト探索装置４０は、評価結果２０４のメッセージを受けて、評価結果２０４の値が一定基準を下回る場合は、ホワイトリストの探索を再実施する。一方、評価結果２０４の値が一定基準を上回る場合は、作成したホワイトリストを含むホワイトリスト登録２０５をホワイトリストＤＢ７０にメッセージとして送信し、処理を完了する。
【００３６】
図３は、運用期間におけるシステムの処理シーケンスの例を示す図である。まず、再学習必要性判定装置５０は、定期的に（例えば、１週間ごとに）、再学習判定５００を呼び出す（実行する）。再学習判定５００は、端末群８０それぞれのホワイトリストを、ホワイトリスト取得３０２のメッセージとして、ホワイトリストＤＢ７０から取得する。
【００３７】
次に、再学習判定５００は、ホワイトリストを含む再評価要求３０３のメッセージを、ホワイトリスト評価指標算出装置１０に送信する。再評価要求３０３のメッセージを受信したホワイトリスト評価指標算出装置１０は、評価指標再算出１１０を実行し、評価指標算出１００と同様に、ホワイトリストの評価値を算出する。
【００３８】
その際に、評価指標再算出１１０は、再評価用活動ログ３０４のメッセージによって、評価指標算出１００あるいは評価指標再算出１１０が前回呼ばれてから、現在（今回呼ばれる）までに発生した端末群８０の活動ログを、活動ログＤＢ６０から取得する。なお、図２を用いて説明したように、端末群８０は活動ログ３０１のメッセージを活動ログＤＢ６０に送信している。
【００３９】
評価指標算出１００が呼ばれることなく、評価指標再算出１１０が呼ばれるのが運用期間になってから初めての場合は、運用期間が開始してから現在までの運用期間中に観測された活動ログが取得される。評価指標再算出１１０は、再評価の結果を、再評価結果３０５のメッセージとして、再学習必要性判定装置５０に送信する。
【００４０】
再学習必要性判定装置５０は、再評価結果３０５とホワイトリスト作成時点での評価値を比べて、その差が（予め設定された）一定水準を超える場合に再学習を行う。この再学習のために、再学習必要性判定装置５０は、再学習処理５１０を読み出し、再探索要求３０６のメッセージを準最適ホワイトリスト探索装置４０に送信する。
【００４１】
再探索要求３０６のメッセージを受信した準最適ホワイトリスト探索装置４０は、ホワイトリスト再探索４１０を呼び出して、再学習を行う。その際、再学習用活動ログ３０７のメッセージとして、過去一定期間（例えば一か月間）に観測された活動ログを、活動ログＤＢ６０より取得する。ホワイトリスト再探索４１０における探索処理は、ホワイトリスト探索４００と同様である。
【００４２】
再探索の結果として作成されたホワイトリストは、再探索結果３０８のメッセージとして、再学習必要性判定装置５０に返信され、それがそのままホワイトリスト再登録３０９のメッセージとして、ホワイトリストＤＢ７０に登録される。
【００４３】
（ハードウェア構成）
図４は、ホワイトリスト評価指標算出装置１０のハードウェア構成の例を示す図である。なお、図１に示した他の装置や端末のハードウェア構成も、メモリ１２と外部記憶装置１３に保存されるプログラムやデータを除いて、同様である。
【００４４】
ホワイトリスト評価指標算出装置１０は、ＣＰＵ１１（Central Processing Unit）、メモリ１２、外部記憶装置１３、ＩＦ１４（Interface）、入出力装置１５、バス１６から構成される。
【００４５】
ＣＰＵ１１は、メモリ１２内に保存されたプログラムを実行し、例えば図１、２を用いて説明した評価指標算出１００や評価指標再算出１１０などを具現化させる。メモリ１２は、ホワイトリスト評価指標算出装置の各機能を実現するための実行プログラムを保存する。メモリ１２には実行プログラム以外にデータが保存されてもよい。
【００４６】
ホワイトリスト評価指標算出装置１０のメモリ１２には、評価指標算出１００と評価指標再算出１１０を実現するための評価指標算出プログラム１２１が保存され、誤検知リスク算出プログラム１２２、検知見逃しリスク算出プログラム１２３、および学習時攻撃混入リスク算出プログラム１２４が保存される。これらの実行プログラムについては、図８〜１１を用いて後でさらに説明する。
【００４７】
外部記憶装置１３は、ＨＤＤ（Hard Disk Drive）などから構成され、データの長期保存を行うのに用いられる。外部記憶装置１３は、ホワイトリスト評価指標算出装置１０に含まれる各ＤＢが格納される。また、外部記憶装置１３にプログラムが格納されてもよい。
【００４８】
ＩＦ１４は、ホワイトリスト評価指標算出装置１０を通信ネットワーク８３に接続する。入出力装置１５は、ホワイトリスト評価指標算出装置１０のユーザ（管理者）による各種情報の入力、および格納されている情報の出力を行う。バス１６は、ＣＰＵ１１、メモリ１２、外部記憶装置１３、ＩＦ１４、および入出力装置１５を接続し、これらの間の情報のやりとりを実現する。
【００４９】
（ＤＢ構成）
図５は、活動ログＤＢ６０の構成例を示す図である。活動ログＤＢ６０の各レコードには端末群８０の各端末で発生した活動が記録されている。ここで、１つのレコードは、ＩＤ、観測日時、活動端末、および活動内容の情報の組合せである。ＩＤ６１は、各レコードを一意に識別するための識別子である。
【００５０】
観測日時６２は、活動が発生した時刻を示す情報である。活動端末６３は、活動を実施した端末を一意に識別するための識別子を示す情報である。活動内容６４は、活動の内容を示す情報である。具体例としては、プロセス、通信、ファイルアクセス、レジストリアクセスなどがある。活動内容６４に記録される活動には、正常活動と異常活動があるが、記録される時点で、どちらの活動であるかは判定できない場合もある。
【００５１】
例えば、図５に示した活動ログＤＢにおいて、ＩＤ６１が「１」のレコードには、観測日時６２は「２０１７−０７−１６  １０：０３」、活動端末６３は「端末Ａ」、活動内容６４は「プロセスＸ起動」が記録されている。ここで、「端末Ａ」と「プロセスＸ起動」は、これらの情報を表せれば、他の表現すなわち記号や値などであってもよい。
【００５２】
そして、ＩＤ６１が「２」以降のレコードも同様の情報が記録される。図５に示した活動ログＤＢでは、ＩＤ６１が「２」から「４」の観測日時６２は「２０１７−０７−１６」を含み、ＩＤ６１が「５」の観測日時６２は「２０１７−０９−０７」を含む例を示している。
【００５３】
また、図示を省略した情報であって、活動ログＤＢ６０のレコードの個数が記録された情報があり、活動ログＤＢ６０に含まれるレコードの個数が増加あるいは減少するごとに、その情報が更新されてもよい。
【００５４】
図６は、ホワイトリストＤＢ７０の構成例を示す図である。ホワイトリストＤＢ７０の各エントリには、端末群８０の各端末のホワイトリストに関する情報が記録されている。ＩＤ７１は、各エントリを一意に識別するための識別子である。活動端末７２は、ＩＤ７１で識別される端末を一意に識別するための識別子である。
【００５５】
活動内容７３には、１つの端末を１つのエントリとして、エントリごとに１つ以上の活動が記録される。活動内容７３に記録された活動がホワイトリストの対象であり、１つの活動の記録が１つのレコードとなる。活動内容７３に記録される活動は、活動ログＤＢ６０の活動内容６４に記録される活動と対応し、同じ活動であるかが判定可能な情報である。
【００５６】
また、ホワイトリストの対象となる活動は、正常とみなされる活動でもあり、ホワイトリストの対象とならない活動は、実際には正常活動を含む可能性もあるが、異常とみなされる活動であってもよい。
【００５７】
なお、活動内容７３の記録はエントリごと、すなわち活動端末７２で識別される端末ごとであり、異なる端末に対して同じ活動が記録される場合もある。このため、ホワイトリストは端末の情報と活動の情報との組合せであり、この意味で、活動端末７２は、ホワイトリストの対象となる端末を一意に識別するための識別子でもある。
【００５８】
評価値７４には、ホワイトリスト評価指標算出装置１０により算出された評価値が記録される。なお、図６に示した例で、評価値７４は０以上１以下の値をとり、値が小さい程、ホワイトリストの質（あるいは評価）は高いものとする。
【００５９】
また、評価値７４は、エントリごと、すなわち活動端末７２の端末ごとの評価値が記録されてもよいし、レコードごと、すなわち活動内容７３の活動ごとの評価値が記録されてもよい。評価値７４にエントリごとの評価値が記録される場合、記録される評価値は、活動内容７３の活動ごとの評価値が合計されたり、平均化されたりして算出されてもよい。
【００６０】
さらに、評価値７４は、ホワイトリストとしての評価値すなわち複数のエントリをまとめた１つの評価値が記録されてもよい。この場合、エントリごとの評価値とレコードごとの評価値が評価値７４に記録されなくてもよい。
【００６１】
例えば、図６に示したホワイトリストＤＢ７０において、ＩＤ７１が「１」のエントリは、活動端末７２が「端末Ａ」のホワイトリストであることを示す。ホワイトリストとして活動内容７３には「プロセスＸ起動」と「端末Ｄへの通信」が記録されている。また、評価値７４の値は「０．８３」である。
【００６２】
そして、ＩＤ７１が「２」以降のエントリも同様の情報が記録されるが、１つのエントリの活動内容７３に１つの活動が記録されている場合もある。ホワイトリストＤＢ７０はこのようなＤＢであるので、図示を省略した情報であって、エントリごとのレコードの個数が記録された情報があってもよいし、ホワイトリストＤＢ７０のエントリの個数が記録された情報があってもよい。
【００６３】
図７は、重点警戒活動ＤＢ９０の構成例を示す図である。重点警戒活動ＤＢ９０の各レコードには、標的型攻撃に悪用されやすい活動が記録されている。ＩＤ９１は、各レコードを一意に識別するための識別子である。活動内容９２は、重点警戒するべき活動内容の情報である。
【００６４】
重点リスク９３は、活動内容９２が示す活動内容に対して付与されるリスク値である。図７に示した例では、リスク値は、０以上の実数であり、値が大きい程、リスクが高いものとする。
【００６５】
なお、本実施例では、重点警戒するべき活動は、端末群８０の各端末で共通であるとするが、変更例として、端末群８０の各端末の特性に合わせて、重点警戒すべき活動の種類が異なってもよい。また、重点警戒活動ＤＢ９０の情報はユーザにより予め設定されてもよい。
【００６６】
例えば、図７に示した重点警戒活動ＤＢ９０において、ＩＤ９１が「１」のレコードには、活動内容９２は「プロセスＸ起動」、重点リスク９３は「１０」が設定されている。そして、ＩＤ９１が「２」以降のレコードも同様の情報が設定されている。
【００６７】
図８は、ホワイトリスト評価指標算出装置１０の評価指標算出１００における処理ステップの例を示す図である。図８に示した処理ステップは、評価指標算出プログラム１２１のフローチャートの例でもある。このため、図８の説明において主語となるホワイトリスト評価指標算出装置１０は、ＣＰＵ１１と読み換えられてもよい。
【００６８】
処理ステップＳ１０１で、ホワイトリスト評価指標算出装置１０は、評価要求２０３のメッセージを受信する。このメッセージには評価要求となるホワイトリストおよび学習用活動ログ２０２が記録されている。
【００６９】
処理ステップＳ１０２で、ホワイトリスト評価指標算出装置１０は、誤検知リスク算出部２０を呼出し、誤検知リスクを算出する。図１４に示されるように、ある端末ｈのホワイトリストをＷｈ、端末ｈの学習用活動ログ２０２をＬｈ、ホワイトリスト作成時刻（日時）をＴとおくと、誤検知リスクはｆ（Ｗｈ，Ｌｈ，Ｔ）、もしくはｆ値と表記される。具体的な算出の手順は後述する。
【００７０】
次に、処理ステップＳ１０３で、ホワイトリスト評価指標算出装置１０は、検知見逃しリスク算出部３０を呼出し、検知見逃しリスクを算出する。図１４に示されるように、検知見逃しリスクはｇ（Ｗｈ，Ｌｈ，Ｔ）、もしくはｇ値と表記される。具体的な算出方法は後述する。
【００７１】
次に、処理ステップＳ１０４で、ホワイトリスト評価指標算出装置１０は、ｆ値およびｇ値を基に、評価指標（ＷＬ＿ｉｎｄｅｘ）を算出する。本実施例では図１４に示されるように、評価指標はｆ値とｇ値の重み付き調和平均となる。図１４に示した重み付けパラメータθは、検知見逃しリスクに比べて、誤検知リスクをどの程度重要視するのかを調整するためのパラメータである。
【００７２】
θ＞１であるならば、誤検知リスクは検知見逃しリスクより重要視される。反対に、θ＜１であるならば、検知見逃しリスクは誤検知リスクより重要視される。θは予めユーザにより設定されてもよい。
【００７３】
なお、評価指標は、ｆ値とｇ値から構成される数式であれば、他の実施形態をとりうる。例えば、ｆ値とｇ値の算術平均（ｆ値＋ｇ値）を評価指標としてもよい。また、演算上、ｆ値とｇ値は同じ値域を持つものとする。例えば、ｆ値とｇ値ともに０から１までの値を持つ。
【００７４】
最後に、処理ステップＳ１０５で、ホワイトリスト評価指標算出装置１０は、算出した評価指標を含む評価結果２０４のメッセージを準最適ホワイトリスト探索装置４０に送信し、評価指標算出１００としての処理を終了する。
【００７５】
図８に示した処理ステップは、評価指標再算出１１０における処理ステップの例であってもよい。ホワイトリスト評価指標算出装置１０は、処理ステップＳ１０１でホワイトリストを含む再評価要求３０３のメッセージと再評価用活動ログ３０４のメッセージを受信し、処理ステップＳ１０５で再評価結果３０５のメッセージを送信してもよい。
【００７６】
図９は、処理ステップＳ１０２で呼び出される誤検知リスク算出部２０の、処理ステップの例を示す図である。図９に示した処理ステップは、誤検知リスク算出プログラム１２２のフローチャートの例でもある。このため、図９の説明において主語となる誤検知リスク算出部２０は、ＣＰＵ１１あるいはホワイトリスト評価指標算出装置１０と読み換えられてもよい。
【００７７】
処理ステップＳ２０１で、誤検知リスク算出部２０は、リスク算出対象として、処理ステップＳ１０１において受信された活動ログと、受信されている場合は受信されたホワイトリストを、処理ステップＳ１０１の処理から受信する。
【００７８】
処理ステップＳ２０２で、誤検知リスク算出部２０は、受信された活動ログの中から、受信されたホワイトリストに含まれていない活動ログ（活動ログのレコード）を抽出する。受信されたホワイトリストが無い場合すなわち評価指標算出１００の場合などは、受信された活動ログそのものが抽出されてもよいし、予め設定された抽出用の活動ログが抽出されてもよい。
【００７９】
ホワイトリストに含まれていない条件は、例えばホワイトリストが図６に示した例であり活動ログが図５に示した例である場合、活動端末６３と活動内容６４の情報の組合せが、活動端末７２と活動内容７３の情報の組合せのいずれとも一致しないレコードという条件であってもよい。
【００８０】
処理ステップＳ２０３で、誤検知リスク算出部２０は、処理ステップＳ２０２で抽出した、ホワイトリストに含まれない活動ログを基に、時刻ごとのペナルティを算出する。ペナルティは、[t-window, t]のように、基準となる時刻ｔから一定のwindow幅（例えば予め設定された一時間）内で観測された、活動ログの数を基に規定される。
【００８１】
ペナルティの具体的な算出処理は、誤検知リスク算出部２０の中の誤検知スコア基準部２２の処理により決まる。例えば、window内の活動ログ数をＮとすると、ペナルティはＮ、Ｎの二乗、Ｎの対数、Ｎの指数などであってもよい。時刻ごとにペナルティを算出する際は、誤検知リスク算出部２０の中のログシミュレータ２１により、時間軸に沿って活動ログを走査する。
【００８２】
ここでは、[t-window, t]のペナルティを算出した次は、[t+Δt-window, t+Δt]のペナルティを算出するものとする。なお、Δｔはwindowと比べて、十分小さい時間幅（例えば予め設定された１秒、１０秒、１分）である。そして、t+Δtを新たな時刻ｔとして、Δｔずつwindowをずらしながら時間軸に沿ってペナルティを算出して行く。
【００８３】
処理ステップＳ２０４で、誤検知リスク算出部２０は、処理ステップＳ２０３で算出した複数のペナルティを基に、誤検知スコアを算出する。この算出のために、算出した各ペナルティにΔｔを掛け合わせた値の合計値が求められる。
【００８４】
ここで求めた誤検知スコアは、０以上の実数である。しかし、評価指標を算出する際には、ｆ値とｇ値は同じ値域を持つ必要があるため、誤検知リスク算出部２０は誤検知スコアを正規化する。
【００８５】
処理ステップＳ２０５で、誤検知リスク算出部２０は、誤検知スコアの正規化のために、エントリが登録されていない空のホワイトリストに対する誤検知スコアを算出する。エントリが１つ以上登録さているホワイトリストの誤検知スコアは、空のホワイトリストに対する誤検知スコア以下になる。
【００８６】
処理ステップＳ２０６で、誤検知リスク算出部２０は、処理ステップＳ２０４で算出した誤検知スコアを、処理ステップＳ２０５で算出した空ホワイトリストの誤検知スコアで除算し、この除算により得られた値をｆ値とする。
【００８７】
図１０は、処理ステップＳ１０３で呼び出される検知見逃しリスク算出部３０の処理ステップの例を示す図である。図１０に示した処理ステップは、検知見逃しリスク算出プログラム１２３のフローチャートの例でもある。このため、図１０の説明において主語となる検知見逃しリスク算出部３０は、ＣＰＵ１１あるいはホワイトリスト評価指標算出装置１０と読み換えられてもよい。
【００８８】
処理ステップＳ３０１で、検知見逃しリスク算出部３０は、リスク算出対象として、処理ステップＳ１０１において受信された活動ログと、受信されている場合は受信されたホワイトリストを、処理ステップＳ１０１の処理から受信する。
【００８９】
受信されたホワイトリストが無い場合すなわち評価指標算出１００の場合などは、以下で説明する処理ステップＳ３０２〜Ｓ３０８をスキップし、予め設定された値をｇ値としてもよい。ｇ値としての予め設定される値は０であってもよい。あるいは、受信されたホワイトリストが無い場合、予め設定された計算用のホワイトリストが、以下の処理ステップで、受信されたホワイトリストの代わりに処理されてもよい。
【００９０】
処理ステップＳ３０２で、検知見逃しリスク算出部３０は、運用時攻撃見逃しリスク算出部３１を用いて、受信されたホワイトリストの各エントリに対する運用時攻撃見逃しリスクを設定する。ここでは、受信されたホワイトリストの各エントリに同一の値を設定してもよいし、何らかのナレッジにもとづきエントリごとに違う値を設定してもよい。
【００９１】
処理ステップＳ３０３で、検知見逃しリスク算出部３０は、学習時攻撃混入リスク算出部３２を用いて、受信されたホワイトリストの各エントリに対する学習時の攻撃混入のリスクを算出する。このリスクの算出については図１１を用いて説明する。
【００９２】
処理ステップＳ３０４で、検知見逃しリスク算出部３０は、重点警戒活動リスク算出部３３を用いて、受信されたホワイトリストの各エントリが重点警戒活動の場合は、重点警戒活動ＤＢ９０で規定された重点リスク９３を設定する。
【００９３】
処理ステップＳ３０５で、検知見逃しリスク算出部３０は、処理ステップＳ３０２で設定されたリスク、処理ステップＳ３０３で算出されたリスク、および処理ステップＳ３０４で設定されたリスクを統合して、エントリごとの見逃しスコアｇｓｅを算出する。統合するために、検知見逃しリスク算出部３０は、３種類のリスク（値）を合計してもよいし、最大値を取ってもよいし、一般的な算術演算を用いてもよい。
【００９４】
処理ステップＳ３０６で、検知見逃しリスク算出部３０は、受信されたホワイトリストの各エントリに対して算出されたｇｓｅを合計し、ホワイトリストの検知見逃しスコアを算出する。
【００９５】
処理ステップＳ３０７で、検知見逃しリスク算出部３０は、受信された活動ログそのもののレコードの情報を、ホワイトリストのエントリとして持つ仮想的なホワイトリストであるｆｕｌｌホワイトリストの検知見逃しスコアを算出する。処理ステップＳ３０６で算出した検知見逃しスコアは、必ず、ｆｕｌｌホワイトリストの検知見逃しスコア以下の値を持つ。
【００９６】
処理ステップＳ３０８で、検知見逃しリスク算出部３０は、処理ステップＳ３０６で算出した検知見逃しスコアを、ｆｕｌｌホワイトリストの検知見逃しスコアで除算し、ｇ値を算出する。
【００９７】
図１１は、処理ステップＳ３０３で呼び出される学習時攻撃混入リスク算出部３２の処理ステップの例を示す図である。図１１に示した処理ステップは、学習時攻撃混入リスク算出プログラム１２４のフローチャートの例でもある。このため、図１１の説明において主語となる学習時攻撃混入リスク算出部３２は、ＣＰＵ１１あるいはホワイトリスト評価指標算出装置１０と読み換えられてもよい。
【００９８】
一般に、標的型サイバー攻撃の発生から発見には時間がかかり、場合によっては最大で数カ月程度かかるとされている。このため、ホワイトリスト作成時刻（日時）Ｔから見て最近観測された活動ログの中には、標準型サイバー攻撃がホワイトリストに反映されず、標的型サイバー攻撃に起因する活動が含まれている可能性が高い。
【００９９】
このため、学習時攻撃混入リスク算出部３２は、図１４に示されるホワイトリスト作成時刻（日時）Ｔと、活動ログの観測日時６２の日時の差を基に、各活動に対するリスクを算出する。
【０１００】
図５に示した活動ログＤＢ６０の例では、ホワイトリスト作成時刻（日時）Ｔが、ＩＤ６１が「５」であるレコードの観測日時６２の日時以降であるとすると、ＩＤ６１が「５」であるレコードの観測日時６２の日時は、ＩＤ６１が「１」から「４」のレコードの観測日時６２の日時と比べて、日時が２か月新しいため、相対的に大きなリスクが付与される。
【０１０１】
処理ステップＳ３１１で、学習時攻撃混入リスク算出部３２は、処理ステップＳ３０１の処理からホワイトリストと活動ログを受信する。
【０１０２】
処理ステップＳ３１２で、学習時攻撃混入リスク算出部３２は、受信されたホワイトリストに含まれるエントリの活動内容７３ごとに、活動内容６４が等しいレコードを、受信された活動ログの中から特定し、特定したレコードの観測日時６２の日時が最も過去のレコードを選択する。
【０１０３】
処理ステップＳ３１３で，学習時攻撃混入リスク算出部３２は、受信されたホワイトリストのエントリの活動内容７３ごとに処理ステップＳ３１４〜Ｓ３１５を繰り返し、１つのエントリの活動内容７３ごとの繰り返しが終了すると、次のエントリに繰り返しの対象を移動する。
【０１０４】
処理ステップＳ３１４で、学習時攻撃混入リスク算出部３２は、繰り返しの中で対象となった（ホワイトリストの）活動内容７３の内容と一致する内容を（活動ログの）活動内容６４に持つレコードであって、処理ステップＳ３１２で選択したレコードの観測日時６２の日時と、ホワイトリスト作成時刻（日時）Ｔとの日時差を算出する。
【０１０５】
処理ステップＳ３１５で、学習時攻撃混入リスク算出部３２は、算出した日時差を基に、学習時攻撃混入リスクを算出する。この場合、日時差が小さい程、リスクが高くなるように算出する。この算出のために、例えば、テーブルが予め設定されて、日時差の一定区間ごとに、日時差をリスクにマッピングしてもよい。あるいは、日時差を引数としてリスクを戻り値とする関数を利用してもよい。
【０１０６】
そして、学習時攻撃混入リスク算出部３２は、受信されたホワイトリストにおいて繰り返しの中で対象となった活動内容７３の内容（その内容を含むレコード）に、算出されたリスクを設定する。
【０１０７】
以上で説明した学習時攻撃混入リスク算出部３２の処理により、受信されたホワイトリストのエントリそれぞれの活動内容７３の内容それぞれにリスクを設定することができる。ここで、活動内容７３の内容が同じであれば、エントリ（活動端末７２の端末）が異なっていても同じリスクとなる。
【０１０８】
このようなリスクではあるが、受信された活動ログに古くから記録されていた活動の内容は、長い時間、標準型サイバー攻撃が発見されず、ホワイトリストから削除されていないのであるからリスクが低く、受信された活動ログに新たに記録された活動の内容は、時間的な理由だけで標準型サイバー攻撃が発見されていない可能性もあるのでリスクが高いという観点でリスクを算出することが可能となる。
【０１０９】
図１２は、準最適ホワイトリスト探索装置４０のホワイトリスト探索４００における処理ステップの例を示す図である。図１２に示した処理ステップでは、評価値が最適解に近くなるようなホワイトリストを探索する。
【０１１０】
探索においては、有限時間内に準最適なエントリの組合せを探索するために、一般的な組合せ最適化問題への解法が用いられてもよい。組合せ最適化のために機械学習が用いられてもよい。本実施例では、「遺伝的アルゴリズム」に基づく解法を適用する。
【０１１１】
処理ステップＳ４０１で、準最適ホワイトリスト探索装置４０は、端末ごとに、ランダムなエントリを持つＮ個のホワイトリストを作成する。これらのホワイトリストは準最適ホワイトリストの最初の候補群となる。これらのホワイトリストの情報として学習用活動ログ２０２あるいは再学習用活動ログ３０７が利用されてもよい。
【０１１２】
処理ステップＳ４０２で、準最適ホワイトリスト探索装置４０は、ｉラウンド目（最初のラウンドは０ラウンド目）の候補群の評価値を算出する。評価値の算出に際しては、評価要求２０３のメッセージをホワイトリスト評価指標算出装置１０に送信し、算出を依頼する。
【０１１３】
処理ステップＳ４０３で、準最適ホワイトリスト探索装置４０は、ｉラウンド目において、処理Ｓ４０２で算出されたＮ個の評価値のうち最良の候補（本実施例では、評価値が最も値が０に近い候補）が、過去ｉ−Ｐラウンド目の値と比べて（過去ｉ−Ｐラウンド目のいずれの値と比べても）、予め設定された一定閾値以上良いかどうかを判定する。
【０１１４】
そして、準最適ホワイトリスト探索装置４０は、判定の結果が、ＹＥＳの場合は処理を終了し、判定の結果がＮＯの場合は処理ステップＳ４０４に進む。処理の終了において、準最適ホワイトリスト探索装置４０は、最良の候補となったホワイトリストを送信してもよい。また、送信されるホワイトリストには、最良の候補と判定された評価値が、評価値７４として設定されてもよい。
【０１１５】
処理ステップＳ４０４で、準最適ホワイトリスト探索装置４０は、ｉラウンド目の候補群を基に、ｉ＋１ラウンド目の候補群を作成する。候補群の作成には、ｉラウンド目の候補群のうち相対的に評価値が良かった複数の優秀解をｉ＋１ラウンド目に引き継ぐと共に、それらを交叉させ、新しいホワイトリストを作成する。さらに、優秀解にランダムな変更を加えてもよいし、一定の割合で、ゼロから新しい候補を作ってもよい。
【０１１６】
なお、準最適ホワイトリスト探索装置４０は、ホワイトリスト再探索４１０において、再探索要求３０６を受信すると、図１２に示した処理ステップをスタートし、図３では図示を省略したホワイトリスト評価指標算出装置１０への再評価要求の送信とホワイトリスト評価指標算出装置１０からの再評価結果の受信を実行してもよい。
【０１１７】
図１３は、再学習必要性判定装置５０の再学習判定５００と再学習処理５１０の処理ステップの例を示す図である。再学習判定５００は、定期的（例えば予め設定された一週間ごと）に呼ばれて実行し、再学習判定５００の判定結果に応じて再学習処理５１０が実行する。処理ステップＳ５０１〜Ｓ５０４は再学習判定５００に対応し、処理ステップＳ５０５は再学習処理５１０に対応する。
【０１１８】
処理ステップＳ５０１で、再学習必要性判定装置５０は、ホワイトリストＤＢ７０から、ホワイトリスト取得３０２のメッセージにより、端末群８０の端末ごとにホワイトリストを取得する。このホワイトリストには、ホワイトリストが作成された時の評価値７４の値が含まれる。
【０１１９】
処理ステップＳ５０２で、再学習必要性判定装置５０は、再評価要求３０３のメッセージにより、ホワイトリスト評価指標算出装置１０に対して、直近一定期間（例えば予め設定された一週間ごと）の活動ログを基にした評価指標の再算出を要求する。再算出された評価指標は、再評価結果３０５のメッセージにより取得される。
【０１２０】
処理ステップＳ５０３で、再学習必要性判定装置５０は、処理ステップＳ５０２で取得した再評価結果３０５の値と、処理ステップＳ５０１で取得した評価値７４の値との差異を算出する。ここでの差異は、両評価値の比率や減算結果などの算術的な処理により算出される。
【０１２１】
ここで、評価値７４に複数の値が含まれる場合、評価値７４に含まれる複数の値の代表値が差異の算出の対象となってもよい。例えば、評価値７４に含まれる複数の値の最小値であってもよいし、最大値であってもよいし、平均値などであってもよい。
【０１２２】
処理ステップＳ５０４で、再学習必要性判定装置５０は、処理ステップＳ５０３で算出された差異が、予め設定された閾値以上であるかどうかを判定する。そして、再学習必要性判定装置５０は、差異が閾値未満と判定した場合は処理を終了し、差異が閾値以上と判定した場合は処理ステップＳ５０５に進む。
【０１２３】
処理ステップＳ５０５で、再学習必要性判定装置５０は、再探索要求３０６のメッセージにより、ホワイトリストの再作成（再探索）を、準最適ホワイトリスト探索装置４０に依頼する。その結果は再探索結果３０８のメッセージとして受信され、受信されたホワイトリストは、ホワイトリスト再登録３０９のメッセージを通じて、ホワイトリストＤＢ７０に登録される。
【０１２４】
以上で説明したように、誤検知のリスクと検知見逃しのリスクの２つのリスクに基づいてホワイトリストの質を評価することが可能となる。また、２つのリスクは、活動ログとホワイトリストから算出できるため、個別のマルウェアや攻撃の解析を必要とせず、この点において評価のための処理負荷を軽減することが可能となる。
【０１２５】
ホワイトリストの質を評価できるため、評価に基づきホワイトリストの登録内容を更新することも可能となる。また、ホワイトリストの質を評価できるため、評価に基づきホワイトリストを更新するタイミングを決めることも可能となる。
【符号の説明】
【０１２６】
１０・・・ホワイトリスト評価指標算出装置、２０・・・誤検知リスク算出部、３０・・・検知見逃しリスク算出部、４０・・・準最適ホワイトリスト探索装置、５０・・・再学習必要性判定装置、６０・・・活動ログＤＢ、７０・・・ホワイトリストＤＢ、８０・・・端末群
【図１】
2019159383.tif 000003
【図２】
2019159383.tif 000004
【図３】
2019159383.tif 000005
【図４】
2019159383.tif 000006
【図５】
2019159383.tif 000007
【図６】
2019159383.tif 000008
【図７】
2019159383.tif 000009
【図８】
2019159383.tif 000010
【図９】
2019159383.tif 000011
【図１０】
2019159383.tif 000012
【図１１】
2019159383.tif 000013
【図１２】
2019159383.tif 000014
【図１３】
2019159383.tif 000015
【図１４】
2019159383.tif 000016