(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118381
(43)【公開日】2024-08-30
(54)【発明の名称】リスクスコア算出装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20240823BHJP
G06N 7/00 20230101ALI20240823BHJP
【FI】
G06F11/07 151
G06N7/00
【審査請求】有
【請求項の数】5
【出願形態】書面
(21)【出願番号】P 2023036028
(22)【出願日】2023-02-20
(71)【出願人】
【識別番号】504268700
【氏名又は名称】株式会社網屋
(74)【代理人】
【識別番号】100138519
【弁理士】
【氏名又は名称】奥谷 雅子
(74)【代理人】
【識別番号】230114801
【弁護士】
【氏名又は名称】杉原 嘉樹
(74)【代理人】
【識別番号】230108442
【弁護士】
【氏名又は名称】佐藤 明夫
(72)【発明者】
【氏名】石田 晃太
(72)【発明者】
【氏名】西垣 柊平
(72)【発明者】
【氏名】明間 陸
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042KK13
5B042MA08
5B042MA14
5B042MC40
(57)【要約】
【課題】 従来のログ解析技術には、インシデントに管理者が積極的に関わり自ら気付かないといけないという課題があり、更にコンピュータを利用する環境の変化に伴い、インシデントを発見する為のルールも迅速に変更する必要が有り、ルール変更に時間をかけるとインシデントを見逃す可能性も有るといった課題が有る。
【解決手段】 コンピュータや機械類、電気製品、その他の物などが出力するログ情報を入力情報として機械学習を行う事により、ユーザ毎に1日毎、1時間毎、ファイルのパス毎の利用モデルを作成し、リスクスコアを計算する事によって異常なアクセスなどを検知し1日毎、1時間毎、ファイルパス毎と言った区分に分けてインシデントを管理者に通知する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
対象となるコンピュータ装置群が出力するログ情報を収集し、前記ログ情報を基にリスクスコアを算出する装置であって、
過去にユーザがファイル等にアクセスしたログ情報を学習用アクセスログとして読込み、その中から同一ファイルパスを収集し、ディレクトリ階層構造上の親子関係にあるファイルパスの親側の同一パスを除外して集計して、ファイルパスの出現数が予め設定された閾値以上の該ファイルパスを基準ファイルパスとして作成する基準ファイルパス抽出処理手段と、
前記基準ファイルパス抽出処理で作成した基準ファイルパス毎の距離を階層L
i(1≦i≦n、n:基準ファイルパスの総数)としてカウントし、その階層L
iの総和の平均値L-を算出し、その平均値L-を用いて、階層L
iの数値のばらつき具合を示す指標として分散値S
2を、数1により算出する基準値算定処理手段と、
【数1】
検知対象アクセスログに含まれるファイルパスについて、前記基準ファイルパス抽出処理で作成した基準ファイルパスと比較して、100%一致するファイルパスについては、安全と評価してパススコア=0として算出し、100%一致しないファイルパスについては、前記基準ファイルパス抽出処理で作成した基準ファイルパスと一番近いファイルパスとの距離Lをカウントし、その距離Lを用いて、数2によりPとXを算出し、数2で算出したXを用いて、数3によりファイルパスのリスクとしてパススコアを算出するパススコア算出処理手段と、
を備えたことを特徴とするリスクスコア算出装置。
【数2】
【数3】
【請求項2】
対象となるコンピュータ装置群が出力するログ情報を収集し、前記ログ情報を基にリスクスコアを算出する装置であって、
検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値を算出し、前記各時刻移動平均頻度値を入力データとしてカーネル密度推定を使用し確率密度を算出し、前記確率密度から負の対数尤度を算出し、
前記対数尤度を使用して数4により正規化用の定数Pminを作成した後、その正規化用の定数Pminを使用して数5により、ユーザ毎のリスクスコアを算出し、前記ユーザ毎のリスクスコアを用いて数6により、各時刻の対数尤度を算出し、前記各時刻の対数尤度を用いて数7により、日付単位のリスクとしてデイリースコアを算出する頻度スコア算出処理手段
を備えたことを特徴とするリスクスコア算出装置。
【数4】
【数5】
【数6】
【数7】
【請求項3】
対象となるコンピュータ装置群が出力するログ情報を収集し、前記ログ情報を基にリスクスコアを算出する装置であって、
学習アクセスログから、1時間単位のアクセス回数を集計し、前記アクセス回数を集計したものを集計対象の時間数で割り、1時間単位の平均頻度を算出し、前記1時間単位の平均頻度を基に各時間の中央値に三角移動平均を計算して各時間の頻度値x
iを算出し、前記頻度値x
iを全て足し合せた合計値を24で割り1日の1時間あたりの平均値x-を算出し、数8により、前記頻度値x
iから前記平均値x-を引くことにより各時間の偏差Hを算出し、数9により、前記偏差Hの平方の平均を算出して、学習ユーザ毎の各時刻移動平均頻度値Vとして算出し、前記検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値Kを算出し、前記頻度値Kがゼロの場合はリスクゼロと判断し、前記頻度値Kがゼロ以外の場合は、数10により、前記頻度値Kから学習ユーザ毎の各時刻移動平均頻度値の頻度値Xを引いた値Dがゼロまたはマイナスになった場合はリスクゼロと判断し、前記値Dがプラスになった場合は、数10により、各時間のD^2からVを引いた値がプラスの場合、危険な時間帯と判断して、リスクが高くなった日の時間帯として通知する時間スコア算出処理手段
を備えたことを特徴とするリスクスコア算出装置。
【数8】
【数9】
【数10】
【請求項4】
請求項1に記載のリスクスコア算出装置であって、
前記検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値を算出し、前記各時刻移動平均頻度値を入力データとしてカーネル密度推定を使用し確率密度を算出し、前記確率密度から負の対数尤度を算出し、前記対数尤度を使用して数4により正規化用の定数Pminを作成した後、その正規化用の定数Pminを使用して数5により、ユーザ毎のリスクスコアを算出し、
該ユーザ毎のリスクスコアを用いて数6により、各時刻の対数尤度を算出し、
該各時刻の対数尤度を用いて数7により、日付単位のリスクとしてデイリースコアを算出する頻度スコア算出処理と、
【数4】
【数5】
【数6】
【数7】
学習アクセスログから、1時間単位のアクセス回数を集計し、前記アクセス回数を集計したものを集計対象の時間数で割り、1時間単位の平均頻度を算出し、前記1時間単位の平均頻度を基に各時間の中央値に三角移動平均を計算して各時間の頻度値x
iを算出し、前記頻度値x
iを全て足し合せた合計値を24で割り1日の1時間あたりの平均値x-を算出し、数8により、前記頻度値x
iから前記平均値x-を引くことにより各時間の偏差Hを算出し、数9により、前記偏差Hの平方の平均を算出して、学習ユーザ毎の各時刻移動平均頻度値Vとして算出し、検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値Kを算出し、前記頻度値Kがゼロの場合はリスクゼロと判断し、前記頻度値Kがゼロ以外の場合は、数10により、前記頻度値Kから学習ユーザ毎の各時刻移動平均頻度値の頻度値Xを引いた値Dがゼロまたはマイナスになった場合はリスクゼロと判断し、前記値Dがプラスになった場合は、数10により、各時間のD
2からVを引いた値がプラスの場合、危険な時間帯と判断して、リスクが高くなった日の時間帯として通知する時間スコア算出処理手段と、
【数8】
【数9】
【数10】
を備え、
前記パススコア算出処理により算出されたファイルパスのリスク、前記頻度スコア算出処理により算出された日付単位のリスク、および前記時間スコア算出処理により算出された時間単位のリスク、の組合せを用いて、リスクの度合いを詳細に検出することを特徴とするリスクスコア算出装置。
【請求項5】
請求項1に記載のリスクスコア算出装置であって、
前記基準ファイルパス抽出処理手段は、
過去にユーザがファイル等にアクセスしたログ情報を学習用アクセスログとして読込み、その中からファイルパスをデバイスやドライブ、ディレクトリィ、ファイル単位などの階層ごとに分解し、
分解したデバイスやドライブ、ディレクトリィ、ファイル毎にファイルパスの出現回数を数えて、その回数が予め定めた基準値以上出現したデバイスやドライブ、ディレクトリィ、ファイルを確保して、基準値以上出現したデバイスやドライブ、ディレクトリィ、ファイルのファイルパスの中で、サブディレクトリィを持たないファイルパスを基準ファイルパスとする、
ことを特徴とするリスクスコア算出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザがコンピュータ装置等に格納されているファイルなどを操作する際、出力されるファイル操作ログ情報を、人工知能(AI:artificial intelligence)技術を用いた装置等により、機械学習技術を利用して、利用者毎のログ発生パターンから特徴量を検出して未知、複雑、多様なインシデントを検知する技術に関する。
【背景技術】
【0002】
近年、PC、スマートフォン、タブレットコンピュータ等、様々な種類のコンピュータを人間が使用する局面が増加し、ICT、IoTと言った新たなコンピュータの利用形態が増加して、ICTやIoTなどから、AIを搭載した自動車を始めネットワークによって繋がる様々な業種業態の機械や電気機器などが情報通信分野に入り込み、フィジカル空間からの膨大な情報がサイバー空間に集まることによって、動作記録、監査証跡を残す為のログデータが途方もなく膨大となり、分析や解析が複雑化し、発生するインシデント量も増加している。
【0003】
従来技術のようなルールベースに基づくIT技術では、インシデントに管理者が積極的に関わり自ら気付かないといけないという課題があり、問題を見逃すおそれも有り、コンピュータを利用する環境の変化に伴い、インシデントを発見する為のルールも迅速に変更する必要が有り、ルール変更に時間をかけるとインシデントを見逃す可能性も有る、といった課題が有る。
【0004】
機械学習を利用し、ユーザ毎にログの発生パターンを学習させることで、ユーザ毎の正常なふるまいを定義するモデル群を作成する事により、ユーザ毎に重要な情報を不正に持ち出すと言ったファイルの不正利用などの異常を自動検出でき、従来のルールベースの手法では困難であった、膨大なデータから即座に未知、複雑、多様なインシデントを検知するといった技術が必要とされる。
【0005】
特許文献1から5に示したような先行技術は、分散の式を使用している為に概念は近いものかもしれないが、本願はファイルパスというそのままでは分散を計算できないものに対して、距離と言った数値化を計り、最も近い基準パスとの距離というものを考えることで計算すると言った特徴がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開第2018-206273号公報
【特許文献2】特開第2004-309998号公報
【特許文献3】特開第2005-332345号公報
【特許文献4】特開第2021-064323号公報
【特許文献5】特開第2005-258599号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
コンピュータ装置にはそのコンピュータ装置上で稼動するOSを含めた全てのソフトウェアの動作をログファイルとして記録する機能を有するが、その記録はOSの内部の挙動を全て記録したログファイルとして記録されるために、情報量が膨大で複雑になるため、人間が読解するのに困難なログファイルとなっている。その為、コンピュータシステムに関わる事件や事故に対して、人間がどのように操作していたか、インシデント管理やセキュリティ管理の観点から検証を行う必要が有る。更に今後発達するIoTの観点からモノ同士がコミュニケーションをするための情報分析を効率的かつ正確に行う必要性も増加している。
【0008】
しかしながら、コンピュータシステムやパソコン類(スマートフォン、タブレット、ウェアラブル)、機械類(産業機器、一般機器、乗り物)、その他のモノ(家電、家具、建築物)がIoTとして接続されるが、OSなどのバージョンアップ、利用者の利用環境の変化といった事によって、人間がコンピュータをどの様に操作したかと言った操作ログ出力のルールが変ってしまうと言った課題が有る。
【課題を解決するための手段】
【0009】
本発明は、以下の手順を実現するためのものである。
コンピュータシステムやパソコン類(スマートフォン、タブレット、ウェアラブル)、機械類(産業機器、一般機器、乗り物)、電気製品、その他のモノ(家具、建築物)などが出力するログ情報(イベントログデータ、監査ログデータ、システムログ、アプリケーションログ、サービスログなど)を入力として、ユーザ、サーバなど対象毎に人間の操作ログ情報を抽出し、機械学習を行う事により、コンピュータを操作するユーザ毎に1日の頻度、ファイルパスの利用傾向によりモデルを作成し、リスクスコアを計算する事によって異常なアクセスなどを検知し日毎、時間毎、ファイルパス毎と言った区分に分けてインシデントを管理者に通知する。
【0010】
第1発明に係るリスクスコア算出装置は、
対象となるコンピュータ装置群が出力するログ情報を収集し、ログ情報を基にリスクスコアを算出する装置であって、
過去にユーザがファイル等にアクセスしたログ情報を学習用アクセスログとして読込み、その中から同一ファイルパスを収集し、ディレクトリ階層構造上の親子関係にあるファイルパスの親側の同一パスを除外して集計して、ファイルパスの出現数が予め設定された閾値以上の該ファイルパスを基準ファイルパスとして作成する基準ファイルパス抽出処理手段と、
基準ファイルパス抽出処理手段で作成した基準ファイルパス毎の距離を階層L
i(1≦i≦n,n:基準ファイルパスの総数)としてカウントし、その階層L
iの総和の平均値L
-(Lバー)を算出し、その平均値L
-(Lバー)を用いて、階層L
iの数値のばらつき具合を示す指標として分散値S
2(S^2)を、数1により算出する基準値算定処理手段と、
【数1】
検知対象アクセスログに含まれるファイルパスについて、前記基準ファイルパス抽出処理で作成した基準ファイルパスと比較して、100%一致するファイルパスについては、安全と評価してパススコア=0として算出し、100%一致しないファイルパスについては、前記基準ファイルパス抽出処理で作成した基準ファイルパスと一番近いファイルパスとの距離Lをカウントし、その距離Lを用いて、数2によりPとXを算出し、数2で算出したXを用いて、数3によりファイルパスのリスクとしてパススコアを算出するパススコア算出処理手段と、を備えたことを特徴とする。
【数2】
【数3】
【0011】
第2発明に係るリスクスコア算出装置は、
対象となるコンピュータ装置群が出力するログ情報を収集し、該ログ情報を基にリスクスコアを算出する装置であって、
検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度値を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値を算出し、
各時刻移動平均頻度値を入力データとしてカーネル密度推定を使用して確率密度を算出し、
確率密度から負の対数尤度を算出し、
対数尤度を使用して数4により正規化用の定数Pminを作成した後、その正規化用の定数Pminを使用して数5により、ユーザ毎のリスクスコアを算出し、該ユーザ毎のリスクスコアを用いて数6により、各時刻の対数尤度を算出し、各時刻の対数尤度を用いて数7により、日付単位のリスクとしてデイリースコアを算出する頻度スコア算出処理手段、を備えたことを特徴とする。
【数4】
【数5】
【数6】
【数7】
【0012】
第3発明に係るリスクスコア算出装置は、
対象となるコンピュータ装置群が出力するログ情報を収集してリスクスコアを算出する装置であって、
学習アクセスログから、1時間単位のアクセス回数を集計し、1時間単位のアクセス回数を集計したものを集計対象の時間数で割り、1時間単位の平均頻度を算出し、1時間単位の平均頻度を基に各時間の中央値に三角移動平均を計算して各時間の頻度値x
iを算出し、頻度値x
iを全て足し合せた合計値を24で割り1日の1時間あたりの平均値x-(xバー)を算出し、数8により、頻度値x
iから平均値x-(xバー)を引くことにより各時間の偏差Hを算出し、数9により、前記偏差Hの平方の平均を算出して、学習ユーザ毎の各時刻移動平均頻度値Vとして算出し、検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値Kを算出し、各時刻移動平均頻度値頻度値Kがゼロの場合はリスクゼロと判断し、各時刻移動平均頻度値Kがゼロ以外の場合は、数10により、各時刻移動平均頻度値Kから学習ユーザ毎の各時刻移動平均頻度値の頻度値Xを引いた値Dがゼロまたはマイナスになった場合はリスクゼロと判断し、値Dがプラスになった場合は、数10により、各時間のD
2(D^2)からVを引いた値がプラスの場合、危険な時間帯と判断して、リスクが高くなった日の時間帯として通知する時間スコア算出処理、を備えたことを特徴とする。
【数8】
【数9】
【数10】
【0013】
第4発明に係るリスクスコア算出装置は、第1発明において、
検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値を算出し、各時刻移動平均頻度値を入力データとしてカーネル密度推定を使用し確率密度を算出し、確率密度から負の対数尤度を算出し、対数尤度を使用して数4により正規化用の定数Pminを作成した後、その正規化用の定数Pminを使用して数5により、ユーザ毎のリスクスコアを算出し、ユーザ毎のリスクスコアを用いて数6により、各時刻の対数尤度を算出し、各時刻の対数尤度を用いて数7により、日付単位のリスクとしてデイリースコアを算出する頻度スコア算出処理手段と、
【数4】
【数5】
【数6】
【数7】
学習アクセスログから、1時間単位のアクセス回数を集計し、1時間単位のアクセス回数を集計したものを集計対象の時間数で割り、1時間単位の平均頻度を算出し、1時間単位の平均頻度を基に各時間の中央値に三角移動平均を計算して各時間の頻度値x
iを算出し、頻度値x
iを全て足し合せた合計値を24で割り1日の1時間あたりの平均値x-(xバー)を算出し、数8により、頻度値x
iから平均値x-(xバー)を引くことにより各時間の偏差Hを算出し、数9により、偏差Hの平方の平均を算出して、学習ユーザ毎の各時刻移動平均頻度値Vとして算出し、検知対象アクセスログから、検知対象日のユーザの1時間単位の、1ファイルに対するオープン処理からクローズ処理までを1回としカウントして集計して各時刻頻度値を作成し、各時刻頻度を時刻方向に三角移動平均を計算してユーザ毎の各時刻移動平均頻度値Kを算出し、頻度値Kがゼロの場合はリスクゼロと判断し、頻度値Kがゼロ以外の場合は、数10により、前記頻度値Kから学習ユーザ毎の各時刻移動平均頻度値の頻度値Xを引いた値Dがゼロまたはマイナスになった場合はリスクゼロと判断し、値Dがプラスになった場合は、数10により、各時間のD
2(D^2)からVを引いた値がプラスの場合、危険な時間帯と判断して、リスクが高くなった日の時間帯として通知する時間スコア算出処理手段と、
【数8】
【数9】
【数10】
を備え、
パススコア算出処理により算出されたファイルパスのリスク、前記頻度スコア算出処理により算出された日付単位のリスク、および前記時間スコア算出処理により算出された時間単位のリスク、の組合せを用いて、リスクの度合いを詳細に検出すること、を特徴とする。
【0014】
第5発明に係るリスクスコア算出装置は、第1発明において、
基準ファイルパス抽出処理手段は、
過去にユーザがファイル等にアクセスしたログ情報を学習用アクセスログとして読込み、その中からファイルパスをデバイスやドライブ、ディレクトリィ、ファイル単位などの階層ごとに分解し、分解したデバイスやドライブ、ディレクトリィ、ファイル毎にファイルパスの出現回数を数えて、その回数が予め定めた基準値以上出現したデバイスやドライブ、ディレクトリィ、ファイルを確保して、基準値以上出現したデバイスやドライブ、ディレクトリィ、ファイルのファイルパスの中で、サブディレクトリィを持たないファイルパスを基準ファイルパスとする、ことを特徴とする。
数式中にアルファベット一文字の上にバーを記載して示す平均値を示す記号は、本明細書の文章中では便宜上、例えば、「平均値L-(Lバー)」、「平均値x-(xバー)」のように示す。
【発明の効果】
【0015】
本発明は、人間がファイルを操作した結果、コンピュータやスマートフォン等が出力するログデータなどから、データを解析して機械学習し、機械学習した情報を元にリスクを定義して判断するリスクスコア算出装置により、従来のルールベースの手法では困難で有ったインシデントの自動検出を行い、速やかに異常を管理者に通知する。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態に係るリスクスコア算出装置について、機能構成の一例を示した図である。
【
図2】基準ファイルパス抽出処理の処理手順を示したフローチャート図である。
【
図3】基準値算定処理の処理手順を示したフローチャート図である。
【
図4】パススコア算出処理の処理手順を示したフローチャート図である。
【
図5】頻度スコア算出処理の処理手順を示したフローチャート図である。
【
図6】移動平均処理の処理手順を示したフローチャート図である。
【
図7】時間スコア算出処理の処理手順を示したフローチャート図である。
【
図8】各時刻度合処理の処理手順を示したフローチャート図である。
【
図9】基準値ファイルパスの一例を示した図である。
【
図10】パススコア算出値の一例を示した図である。
【
図13】基準ファイルパス抽出の一例を示した図である。
【発明を実施するための形態】
【実施例0017】
以下、本発明を実施するための形態について図面を参照して詳細に説明する。なお、本発明は、以下に述べる実施形態により限定されるものではない。
【0018】
図1は、本発明の実施形態に係るリスクスコア算出装置について、機能構成の一例を示したものである。リスクスコア算出装置は、コンピュータなどが出力するログ情報を収集し、収集したログ情報を圧縮し、必要な情報を抽出し、数値化されていない情報を独自技術にて数値化し、統計情報とし計算した結果、コンピュータセキュリティ上で脅威となるインシデントを検知する装置である。
【0019】
図1に示すように、リスクスコア算出装置は、基準ファイルパス抽出処理手段100、基準値算定処理手段200、パススコア算出処理手段300、頻度スコア算出処理手段400、時間スコア算出処理手段500、を有している。
【0020】
基準ファイルパス抽出処理手段100にて、対象者が過去にファイルなどをアクセスしたアクセスログファイルである学習用アクセスログ101を読み取り基準ファイルパス102を作成する。作成された基準ファイルパス102を基に、基準値算定処理手段200にて対象者の基準値201を作成する。作成された基準値201と、検知対象アクセスログ301とを用いて、パススコア算定処理手段300にて、ファイルパス毎に、レポート群・アラーム発信302を出力する。また検知対象アクセスログ301を用いて、頻度スコア算出処理400にて、日毎に、レポート群・アラーム発信302を出力する。また検知対象アクセスログ301と、学習用アクセスログ101とを用いて、時間スコア算出処理手段500にて、時間毎に、レポート群・アラーム発信302を出力する。
【0021】
次に、
図2を用いて、基準ファイルパス抽出処理手段100について説明する。
図2は、基準ファイルパス抽出処理手段100の処理手順を示したフローチャート図である。
【0022】
・過去にユーザがファイル等にアクセスした記録の101学習用アクセスログを読み取り、同一ファイルパスを集計する為にファイルパス項目をソートキーとして昇順にソートして、103昇順ソートアクセスログを作成する。
・103昇順ソートアクセスログの同一ファイルパスを集計し、ディレクトリ階層毎に出現数を集計する。
・ディレクトリ階層構造上の親子関係にあるファイルパスの親側の同一パスを除外して集計し、ファイルパスの出現数が予め設定された閾値以上の場合(例えば、今回対象となる全体のアクセスログ件数のn%以上)、さらにサブディレクトリを持つファイルパスが無い場合に、該ファイルパスを160仮基準パスとして確保する。但し、n%は0%もありえる。
・確保した160仮基準パスを、デバイス、ディレクトリ、ファイルと言った単位に170仮基準パスを分解し、180分解内容をカウントにて、デバイス、ディレクトリ、ファイルと言った単位毎にカウントし、カウントした数が基準値以上の場合102基準ファイルパスにパスを書き込み保存する。
【0023】
次に、
図13を用いて、基準ファイルパス抽出処理手段100の具体例について説明する。
図13は、基準パス抽出の一例を示した図である。
【0024】
・102昇順ソートアクセスログは13001行から13005行の5件とする。
・1行目の13001行を確保する。
・次に、
・13001行C:/aaa/bbb/ccc.pdfのファイルパス/aaa/bbbと
13002行C:/aaa/ddd/eee/fff.xlsのファイルパス/aaa/ddd/eeeとを
比較し異なる値なので13002行を確保する。
・13002行C:/aaa/ddd/eee/fff.xlsのファイルパス/aaa/ddd/eeeと
13003行C:/aaa/ddd/ggg/hhh.xlsのファイルパス/aaa/ddd/gggとを
を比較し異なる値なので13003行を確保する。
・13003行C:/aaa/ddd/ggg/hhh.xlsのファイルパス/aaa/ddd/gggと
13004行C:/iii/jjj/kkk/lll.zipのファイルパス/iii/jjj/kkkとを
を比較し異なる値なので13004行を確保する。
・13004行C:/iii/jjj/kkk/lll.zipのファイルパス/iii/jjj/kkkと
・13005行C:/iii/jjj/mmm.zipのファイルパス/iii/jjjとを
を比較すると13005行のパスは、/iii/jjjとなり
13004行の/iii/jjj/kkkの中に含まれるパスとなるので
13005行のC:/iii/jjj/mmm.zipは削除する。
・結果、1301仮基準パスが確保される事になる。
【0025】
・次に、確保した1301仮基準パスを分解して13038パス要素の出現回数をカウントする。
・Cは、1301仮基準パスの13011行から13014行まで全てに出現し、結果4回出現するので1302分解内容をカウントの13021行13039カウントのCを4回とする。
・次に上記と同様に、C:/aaaの組合せの出現回数をカウントすると3回出現するので13022行13039カウントを3とする。
・次に、C:/aaa/bbb/の組合せの出現回数をカウントすると1回出現するので13023行13039カウントを1とする。
・次に、C:/aaa/bbb/ccc.pdfの組合せの出現回数をカウントすると1回出現するので13024行13039カウントを1とする。
・これで、パスC:/aaa/bbb/ccc.pdfの全ての組合せをカウントした事になる。
・全ての1301仮基準パスを分解して13038パス要素の出現回数をカウントすると1302分解内容をカウントのような結果になる。
・1302分解内容をカウントの13039カウントを予め設定した基準値以下の13038パス要素を削除する。
・本例では基準値を2として2以下を削除すると、1304基準値以上のような結果に成る。
・この基準値は101学習用アクセスログの量によって変化させる。
・13041行、13042行、13043行の1304基準値以上を解析すると、
13041行、13042行の1304基準値以上は、13043行の1304基準値以上に含まれている事が解るので、13043行の1304基準値以上のC:/aaa/dddだけを基準パスとして102基準ファイルパスに書き込み確保する。
【0026】
次に、
図3を用いて、基準値算定処理200について説明する。
図3は、基準値算定処理200の処理手順を示したフローチャート図である。基準値算定処理200では、基準ファイルパス抽出処理100で作成した102基準ファイルパスがどの程度、ばらついているかを知る為に、102基準ファイルパスを読み込み、各基準パスを数値化して距離Lとし、距離Lの平均値をL-(Lバー)として分散値S
2(S^2)を求める。
【0027】
・210パスの階層をカウントでは、各パスの階層をカウントしパスの階層を数値化しLとする。
・220パスの階層の総和を基準パスの個数にて割り、全てのパスの階層を数値化した物を足し合わせ、その平均値を求め、平均値をL-(Lバー)とし確保する。
・平均値L-(Lバー)にて各ファイルパスの階層を数値化した値Lを引き算した値に2乗した値の合計値を基準パスの総数にて割り算を行い、分散値S
2(S^2)を求める。
・計算式は数1となる。
【数1】
【0028】
次に、
図4を用いて、パススコア算出処理手段300について説明する。
図4は、パススコア算出処理300の処理手順を示したフローチャート図である。パススコア算出処理手段300では、対象ユーザの301検知対象アクセスログを入力データとして、ファイルパスと言った数値化されていない物に対し数値を与え、その与えられた数値を計算する事によってインシデントを検知する。
【0029】
・310ファイルパス比較にて301検知対象アクセスログを読み取りファイルパスだけを抽出して、抽出したファイルパスと102基準値ファイルパスとを比較する。
・比較した結果、100%一致する場合や子パスの場合、301検知対象アクセスログの該当データの結果を0とする。
・100%一致しない場合は、102基準値ファイルパスの中の一番近いファイルパスとの距離を計算し、離れている距離を計測してその距離をLとする。
・350距離を計算するにおいて、数2の計算式を使いPを求める。
・数2の4及び2は本発明にて距離を計算する上で導き出した定数となり、累乗と対数の底に4を採用しているが、これを調整することで、どこまでを正常と認識させるかを調整することも可能であり、実験を繰り返した結果、4を使用する事で分離性能が向上した。・次にXを求める。
【数2】
・370リスクスコアでは、数2で求めたXを使用し数3の数式からパススコアを求める。
・数3の100は本発明にてリスクスコアを計算する上で導きだした定数となる。
【数3】
・ここで求めたパススコアを対象となるアクセスログのリスクとし、例えば該パススコアが予め設定された閾値を超えた場合に、リスクが高くなったファイルパスとして通知(レポート群、アラーム発信、等)する。
【0030】
次に、
図9と
図10を用いて、基準値算定処理手段200およびパススコア算出処理手段300の具体例について説明する。
図9は、基準値ファイルパスの一例を示した図である。
【0031】
・
図9の900番号の1番目から3番目は0014にて抽出した基準パスとなる。
901基準パスのC:/aaa/bbb/ccc/ddd.txtは、Cで1、aaaで2、bbbで3、cccで4、ddd.txtで5と数え902距離Lに5を記録する。以下2番目3番目も同様にカウントする。
・数1を使用して、902距離Lの合計が10と成り、合計を901基準パスの件数3で割り平均を求め905平均L’は、3.3となる。
・902距離LからL’を引き903偏差に値を確保する。
・900番号1番目の903偏差は1.7と成る。以下、2番目3番目も同様に計算する。
・904平方は、903偏差の値を二乗する。
・900番号の1番目は、1.7x1.7=2.9となり以下、2番目3番目も同様に計算する。
・904平方の合計が906分散合計となり、906分散合計を基準パスの件数3で割り、907S
21.6と成る。
【0032】
図10は、計算値表は301検知対象アクセスログから
図9の基準値ファイルパス表を使用して計算した計算値である。
【0033】
・
図10の1000番号アを使い説明する。
・1001ファイルパスはC:/aaa/iii.txtと成っている。
・この値を
図9の901基準パスと比較すると900番号1番目の901基準パス
C:/aaa/bbb/ccc/ddd.txtと最も近いファイルパスだということがわかる。
・この2つは、C:/aaaまでが等しいので距離を2とする。
・数2を利用して下記のように計算する。
4
(2-2)2=1
1÷6=0.625
・数3を利用して、
100(1÷100)
X=1.9
・パススコア1.9を1003計算値に記録する。
・1000番号イは、901基準パスのC:/fff.txtと比較すると全て等しい事がわかるので、この場合は0を1003計算値に記録する。
・1000番号ウは、901基準パスと一致するものが無いので距離を0とする。
4
(2-0)2=256
256÷1.6=160
100(1÷100)
160=ln100(1÷100)
160=-732.22205957211
Ln=732.2を1003計算値に記録する。
・1000番号エは、901基準パスのC:/aaa/bbb/ccc/ddd.txtと比較するとC:/aaa/bbb/cccまでが等しい事が解るので距離を4とする。
4
(2-4)2=0.00390625
0.00390625÷1.6=0.00244140625
100(1÷100)
0.00244140625=98.88
・パススコア98.88を702計算値に記録する。
・1000番号オは、901基準パスと比較するとCだけ等しい事が解るので距離を1とする。
4
(2-1)2=16
16÷1.6=10=ln100(1÷100)
10=
-41.446531673893
・Ln=-41.4を1003計算値に記録する。
・上記計算結果から解るように、1000番号ウとオは対数計算を行う必要が有るような途方も無い計算結果になる。
・対数計算する時、この例では自然対数を使用したが常用対数でも低は幾つでもかまわない。
【0034】
次に、
図5と
図6を用いて、頻度スコア算出処理400について説明する。
図5は、頻度スコア算出処理400の処理手順を示したフローチャート図であり、
図6は、移動平均処理410の処理手順を示したフローチャート図である。頻度スコア算出処理400では、移動平均処理410により301検知対象アクセスログから403ユーザ毎の各時刻移動平均頻度値を求め、その各時刻移動平均頻度値を基に、リスクスコアを計算し、リスクが高くなった日を管理者に通知する。
【0035】
・
図6に示す410移動平均処理の411各時刻毎の頻度値集計処理は、対象日のユーザの1時間単位のアクセス回数を集計し402ユーザ毎の各時刻頻度値を作成する。
・アクセス回数とは、1ファイルに対するユーザのファイルアクセスに対するオープン処理からクローズ処理までを1回としてカウントする。
・412時刻方向移動平均処理は各時刻を中心に三角移動平均を計算する。
・区間は7、重さは0.25、0.5、0.75、1、0.75、0.5、0.25として分母は4とする。
・実験結果から上記重さと区間が最適であったが、特に区間は、各社毎の労働時間環境によって変化させる事が望ましい。
【0036】
・
図5に示す420ユーザ、時刻毎リスクスコア算出処理にて、410移動平均処理にて算出した403ユーザ毎の各時刻移動平均頻度値を入力データとして、カーネル密度推定を使用し確率密度を求める。
・求めた確率密度から負の対数尤度を求める。
・求めた負の対数尤度を使用し数4により正規化用の定数Pminを作成する。
・正規化用の定数Pminにより、PCなどで計算可能な最小小数を作り出している。
・440デイリースコア算出処理にて、数5を使いユーザ毎のリスクスコアを算出する。・次に、ユーザ毎のリスクスコアから数6を使用し各時刻の対数尤度を算出して、数7を使い日付単位のリスクとしてデイリースコアを算出する。
・ここで求めたデイリースコアを日付単位のリスクとし、該デイリースコアが予め設定された閾値を超えた場合に、リスクが高くなった日として通知(レポート群、アラーム発信、等)する。
【数4】
【数5】
【数6】
【数7】
【0037】
次に、
図11を用いて、頻度スコア算出処理手段400および移動平均処理手段410の具体例について説明する。
図11は、対数尤度表の一例を示した図である。
【0038】
・
図11対数尤度表は、対象となる日の時間別アクセス件数から各時刻の対数尤度を算出した表と成る。この表の801時間の11時を対象として具体的に説明する。
・801時間の11時におけるアクセス回数が2回だったので、802頻度は2となる。・このデータを基に803頻度値は三角移動平均を使い算出する。
頻度値=
(0.25x0+0.5x0+0.75x6+2x1+0.75x4+0.5x0+0.25x0)÷4=
9.5÷4=
2.375
・求めた頻度値2.375が発生、カーネル密度推定を使用し確率密度を求め0.1267と成る。
・0.1267の負の対数尤度を求めると2.065933191655となり、本願が作成した数4から作成した定数Pmin負の対数尤度と数5の式を使用し、ユーザ毎のリスクスコアを計算すると、
100x2.065933191655÷708.39645172655=
0.2916748823457589と成る。
・11時の804ユーザ毎のリスクスコアは0.292となる。説明の為少数4位にて四捨五入、実際には0.2916748823457589を使用。
【0039】
次に、804ユーザ毎のリスクスコアの1日の合計と数6と数7の式を使用してデイリースコアを求める。
・ln(Qmin)は、数6にて、“1-リスクスコア≦Qminの時、対数尤度=ln(Qmin)とする。”と、定義しているので、1つの時刻の最大値となる為にln(Qmin)X24=が1日の最大値となる。
・つまり、ln(Qmin)x24=
-6.9077552789821x24=
-165.78612669557と成る。
・806各時刻の対数尤度合計は、-33.4375567424607と成る。
・この値を1日の最大値と比較して、
デイリースコア=
-33.4375567424607÷-(-165.78612669557)=
0.201690921966356
・つまり、デイリースコアは約20ポイントとなる。
【0040】
次に、
図7と
図8を用いて、時間スコア算出処理500について説明する。
図7は、時間スコア算出処理手段500の処理手順を示したフローチャート図であり、
図8は、各時刻度合処理530の処理手順を示したフローチャート図である。時間スコア算出処理手段500では、学習用アクセスログから時間別の基準値を計算し、検知対象アクセスログのリスクが高くなった日の時間帯を管理者に通知する。
【0041】
・
図7に示す500時間スコア算出処理において510各時刻毎の頻度値集計処理は、101学習アクセスログを読み取り、1時間単位のアクセス回数を集計し、その1時間単位のアクセス回数を集計したものを集計対象の時間数で割り、1時間単位の平均頻度を算出する。
・算出した時間別の平均頻度から各時間の中央値に三角移動平均を計算し頻度値を算出する。
・各時間の頻度値を全て足し合せた合計値を24で割り1日の1時間あたりの平均を算出する。
・数8を使用し、頻度値から1日の平均を引き各時間の偏差を算出し、偏差を二乗し平方を算出する。
・数9から、算出した平方の合計を求め、24で割り1時間単位の平方の平均を算出しVとする。
・このように算出したデータを502学習ユーザ毎の各時刻移動平均頻度値とし保存する。
【0042】
・次に410移動平均処理において、301検知対象アクセスログを入力データとし、403ユーザ毎の各時刻移動平均頻度値を求める。
【0043】
・次に
図8に示す530各時刻度合処理において、各時刻度合処理の531判断にて、403ユーザ毎の各時刻移動平均頻度値の頻度値の頻度が0のデータに対しては何もしない。
・また531判断にて、数10を使い、403ユーザ毎の各時刻移動平均頻度値の頻度値をKとした時Kから502学習ユーザ毎の各時刻移動平均頻度値Xを引いた値をDとしてDが0やマイナスになったデータに対しては何もしない。
・次に
図7に示す540各時刻の判定処理にて検知対象となるデータのDを二乗しD^2を算出する。
・各時間のD^2からVを引き、この値がプラスの場合、管理者に対象となる日時を、リスクが高くなった日の時間帯として通知する。
【数8】
【数9】
【数10】
【0044】
次に、
図12を用いて、時間スコア算出処理手段500および各時刻度合処理手段530の具体例について説明する。
図12は、時間スコア表の一例を示した図である。
【0045】
・
図12に示す時間スコア表は、101学習アクセスログから集計した1200学習アクセスログを左、403ユーザ毎の各時刻移動平均頻度値から集計した1206検知対処アクセスログを右に配置する図である。
・1201時間の7時、15時、18時、3時の順番に、例として使用し説明する。
但し、実際の計算は0時から1時2時3時と昇順に行う。
【0046】
・1202頻度値Xは、101学習アクセスログの各時刻のアクセス回数を足し合わせた合計値を日数で割った、過去データの時間別平均値と成る。
・1206頻度は検知対象日の時間毎アクセス回数と成る。
・1201時間が7時の場合、1206頻度が0なので531判断から安全なので何もしない。この時間にアクセスが無かったので、この時間は安全とする。
・1201時間が15時の場合、1207頻度値Kを三角移動平均にて使用し計算すると6.2となる。
・1207頻度値Kから1202頻度Xを引くと1208D値がー0.8とマイナスとなるので532判断から安全なので何もしない。この時間のアクセス回数が過去平均より下回ったので安全と判断している。
・また1201時間が18時の場合、1202頻度X、1207頻度値K、1208Dを前記内容と同様に計算すると、531判断や532判断に条件が当てはまらないので次の処理を行う。
・1203偏差Hを数8にて計算すると、1202頻度Xの合計が105.0となり24で割ると1212平均x-は4.4と成る。
・1203編差Hは、1202頻度X-1202平均xxなので4.0-4.4=-0.4と成る。
・1204平方H2を算出すると、-0.4x-0.4=0.16を四捨五入し0.2となる
・数9を使い1214平均Vを算出し、17.4となる。
・数10から1208Dは、1207頻度値K―1202頻度X=2.9となる。
・2.9を二乗し12092は8.6となる。1209D2から1214平均Vを引き、1210度合いはー8.8と成る。
・結果、1201時間18時は安全と言える。
・また1201時間が3時の場合、数8、9、10を計算すると1210度合いが3.4となり0以上なので何らかの問題が発生していると判断し、日付、時間とこの3時に発生したアクセスログのパス情報を管理者に通知する。
【0047】
次に、
・
図2で説明した基準ファイルパス抽出処理、
図3で説明した基準値算定処理、
図4で説明したパススコア算出処理により算出されたファイルパスのリスク、
・
図5・
図6で説明した頻度スコア算出処理により算出された日付単位のリスク、
・
図7・
図8で説明した時間スコア算出処理により算出された時間単位のリスク、
の組合せを用いることにより、リスクの度合いを何日の何時のどのファイルパスが危険かを詳細に検出することができるようになる。
【0048】
例えば、パススコア算出処理、頻度スコア算出処理、時間スコア算出処理、の全てが出力するリスクスコアが重なった時は、“非常に危険”と管理者に通知する事ができる。また、前記処理の2つのリスクが重なった時は“危険”、前記処理の1つのリスクだけの場合は、“やや危険”と危険度合いの判断が多段階に示す事ができる。
【0049】
発明者及び出願人が独自に名称を付している、各々のソフトウェア及び装置について本発明独自の呼称を使用しているので下記に記載する。
【0050】
・学習:設定された過去のアクセスログを解析し、ユーザ毎の行動傾向分析
・検知:学習にて解析した傾向を元に、対象データを解析
・頻度スコア:1日の各時刻におけるアクセスログ件数の傾向をユーザ毎に解析
・パススコア:ファイルパスに含まれる単語の相関性などを元にユーザ毎の傾向を解析
・リスクスコア:頻度スコアとパススコアを総合した相対的な指標
・時間スコア:時間毎にユーザのリスクを解析
・記載に使用しているソフトの問題にてバーなどを数学的に表示できない時があり、
例えば、LバーやL-と表現している箇所が有りますが、LバーとL-は同一である。
例えば、H^2はHの二乗と乗数を表しH2とH^2は同一である。
・説明の為小数点以下第n位を四捨五入している箇所が有るが、実際はコンピュータが取り扱える桁数の小数点以下の計算を行っている。