(57)【要約】【課題】プログラムの実行可否判断を容易に行うことができるセキュリティ管理システムを提供する。【解決手段】セキュリティ管理システムのセキュリティ管理コンピュータ１０２は、クライアントコンピュータ１０３内のプログラムの動作ログ、および、ファイアウォール１０１からシステム内のエラーログを取得する。セキュリティ管理コンピュータ１０２が、システム内のエラーログの発生頻度から注目すべきプログラムの動作ログの各項目の重要度として導き出し、プログラムごとの安全度を計算する。そして、セキュリティ管理コンピュータ１０２の管理者に対してよりシステムの現状に則した不正プログラムの候補を提示する。また、セキュリティ管理コンピュータ１０２の管理者が、プログラムの実行可否を判断するだけでなく、予め安全度の閾値に用いて、閾値以下の安全度のプログラムの実行を自動的に抑止することができる。【選択図】図１
2010271917.tif 000002
【特許請求の範囲】
【請求項１】
ファイアウォールと、前記ファイアウォールを介して外部ネットワークと通信するプログラムを有するクライアントと、前記プログラムのセキュリティの安全度を計算し前記プログラムの実行可否を判定する管理サーバとを備えるセキュリティ管理システムであって、
前記管理サーバは、
前記ファイアウォールからエラーログを取得し、ファイアウォールエラーログ情報として記憶部に記憶するファイアウォールのエラーログ管理部と、
前記クライアントから前記プログラムの動作ログを収集し、プログラム動作ログ情報として記憶部に記憶するプログラムの動作ログ管理部と、
前記プログラムのセキュリティの安全度判定条件情報を記憶部に記憶する安全度判定条件編集部と、
前記ファイアウォールエラーログ情報を基に前記安全度判定条件情報の各項目の重要度を計算し、前記プログラムごとに、前記安全度判定条件情報の各項目に対応する前記プログラム動作ログ情報の各項目が安全度判定条件を満たしているか否かの判定結果を計算し、前記各項目の重要度および前記判定結果を基に、前記プログラムごとの安全度を計算し、前記計算された安全度が予め設定された安全度の閾値より小さいとき、該当するプログラムの実行不可を告知する安全度計算部とを有する
ことを特徴とするセキュリティ管理システム。
【請求項２】
前記安全度は、前記プログラムごとのセキュリティに対する点数として表され、
前記安全度計算部は、前記プログラムごとの点数をプログラムリスト情報に登録する
ことを特徴とする請求項１に記載のセキュリティ管理システム。
【請求項３】
前記安全度判定条件情報には、前記外部ネットワークとの通信頻度、前記クライアントからの通信量、使用する通信ポート番号、前記クライアントが使用される使用時間のうち少なくとも１つ以上を含む
ことを特徴とする請求項１に記載のセキュリティ管理システム。
【請求項４】
前記ファイアウォールエラーログ情報には、前記外部ネットワークからのアクセスエラーの頻度、通信先の外部アドレス１つに対するネットワーク通信量、前記外部ネットワークからのアクセスエラーのあったポート番号の種類、内部ネットワークから外部ネットワークへ通信する端末数のうち少なくとも１つ以上を含む
ことを特徴とする請求項１に記載のセキュリティ管理システム。
【請求項５】
前記クライアントは、
プログラムの動作ログを収集し、前記管理サーバに送信するプログラム動作ログ収集部と、
前記管理サーバから、前記実行不可のプログラム情報を受理すると、不正プログラムのリスト情報である不正プログラムリスト情報を更新する不正プログラム実行制御部と、
前記不正プログラムの実行を抑止する不正プログラム実行抑止部と、を有し、
前記不正プログラム実行抑止部は、前記不正プログラムリスト情報を参照して該当するプログラムの実行を抑止する
ことを特徴とする請求項１に記載のセキュリティ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの実行可否判断を容易に行うことができるセキュリティ管理システムに関する。
【背景技術】
【０００２】
プログラムごとの判定条件と動作ログを有するコンピュータシステムにおいて、プログラムが実行されたことをトリガーとしてプログラムの実行可否を求める通知を管理者に対して行い、管理者によって実行不可と判断された場合はプログラムごとの不正プログラム一覧を更新し、プログラムの実行を抑止する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１９２６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、システムの管理者によってプログラムごとに最低一回はプログラムの動作ログを基にプログラムの実行可否判断を行う必要がある。管理者は、プログラム実行のたびにプログラムの実行可否を判断する必要があるが、プログラムの実行可否を判断するための高度な知識と豊富な経験が求められる問題があった。
【０００５】
本発明は、前記の課題を解決するための発明であって、プログラムの実行可否判断を容易に行うことができるセキュリティ管理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記目的を達成するため、セキュリティ管理システムは、「プログラムの動作ログ」（例えば、プログラム動作ログテーブル１１２）、「システム内のエラーログ」（例えば、ファイアウォールエラーログテーブル１１１）、「不正プログラムリスト」（例えば、プログラムリストテーブル１１５）、「不正プログラムの実行抑止機能」を有しており、「プログラムの動作ログ」および「システム内のエラーログ」を基にプログラムの安全度を点数として表し、閾値以下の点数を有するプログラムを「不正プログラムリスト」に自動追加することで、「不正プログラムの実行抑止機能」により不正プログラムの実行を抑止しセキュリティの確保を行うことを特徴とする。
【０００７】
プログラムの実行可否判断をするための情報としてプログラムの動作ログ以外に、点数（安全度）を追加し管理者の実行可否判断を支援でき、プログラムの実行可否判断を容易にすることができる。
【発明の効果】
【０００８】
本発明によれば、プログラムの実行可否判断を容易に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係るセキュリティ管理システムの機能ブロックを示す図である。
【図２】セキュリティ管理システムのハードウェア構成を示す図である。
【図３】ファイアウォールのエラーログ管理部およびプログラムの動作ログ管理部がそれぞれファイアウォールのエラーログおよびプログラムの動作ログを収集する流れを機能ブロック図として示す図である。
【図４】ファイアウォールエラーログテーブルを示す図である。
【図５】プログラム動作ログテーブルを示す図である。
【図６】安全度判定条件編集画面を示す図である。
【図７】安全度判定条件テーブルを示す図である。
【図８】管理者への警告条件テーブルを示す図である。
【図９】安全度判定条件編集部、安全度計算部、判定条件通知編集部が収集したログを基に安全度を計算し、計算結果をデータベースに格納する流れを機能ブロックとして示す図である。
【図１０】プログラムリストテーブルを示す図である
【図１１】プログラムの動作可否設定画面を示す図である。
【図１２】安全度計算部の処理フローを示す図である。
【図１３】安全度計算部の処理フローの処理Ｓ１００６の部分を詳細化して示した図である。
【図１４】安全度計算部の処理フローの処理Ｓ１００７の部分を詳細化して示した図である。
【図１５】ファイアウォールエラーログテーブルの他の例を示す図である。
【図１６】安全度の計算方法における参照テーブルを示す図である。
【図１７】不正プログラムリスト配信部、不正プログラム実行制御部、および不正プログラム実行抑止部が不正なプログラムの実行抑止の指示を実行する流れを機能ブロックとして示す図である。
【図１８】不正プログラムリストファイルを示す図である。
【図１９】不正プログラムリスト配信部、不正プログラム実行制御部、および不正プログラム実行抑止部が不正なプログラムの実行抑止の指示を実行する処理フローを示す図である。
【図２０】重要度の計算過程を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明を実施するための形態を図面に基づいて詳細に説明する。
図１は、本実施形態に係るセキュリティ管理システムの機能ブロックを示す図である。図１に示すようにセキュリティ管理システムは、ファイアウォール１０１、セキュリティ管理コンピュータ１０２（管理サーバ）、クライアントコンピュータ１０３（クライアント）を備える。ファイアウォール１０１は、セキュリティ管理コンピュータ１０２およびクライアントコンピュータ１０３の通信を監視する機能を有する。なお、図１に示す処理フローを３つに分解すると、図３、図９、図１７の処理フローとなり、各分解された処理フローの詳細な説明は、図３、図９、図１７を参照して後述する。ここでは、図１を用いて本実施形態のセキュリティ管理システムの機能ブロックの全体について説明する。
【００１１】
セキュリティ管理コンピュータ１０２は、処理部（例えば、図２のＣＰＵ（Central Processing Unit）２０１ａ）と、データベース１１０を備えている。処理部には、ファイアウォール１０１で発生したエラーログを収集管理するファイアウォールのエラーログ管理部１０４と、クライアントコンピュータ１０３で実行したプログラムの動作ログを収集するプログラムの動作ログ管理部１０５と、管理者が安全度の判定条件および安全度の閾値を編集するためのＧＵＩ（Graphical User Interface）を提供する安全度判定条件編集部１０６と、エラーログと動作ログと安全度の判定条件を基にプログラムの安全度を計算する安全度計算部１０７と、安全度の閾値を下回るプログラムを発見した場合管理者にその旨を通知し管理者により動作を抑止するプログラム一覧（不正プログラム一覧）を更新するためのＧＵＩを提供する判定結果通知編集部１０８と、不正プログラム一覧をクライアントコンピュータ１０３へ配信する不正プログラムリスト配信部１０９とを有する。
【００１２】
データベース１１０には、各種情報を格納し、ファイアウォールエラーログテーブル１１１（ファイアウォールエラーログ情報）（図４参照）、プログラム動作ログテーブル１１２（プログラム動作ログ情報）（図５参照）、安全度判定条件テーブル１１３（安全度判定条件情報）（図７参照）、管理者への警告条件テーブル１１４（図８参照）、プログラムリストテーブル１１５（プログラムリスト情報）（図１０参照）を有する。
【００１３】
クライアントコンピュータ１０３は、処理部（例えば、図２のＣＰＵ２０１ｂ）と、不正プログラムリストファイル１１８（図１８参照）を備えている。処理部では、不正プログラム一覧を受信し不正プログラムリストファイル１１８（不正プログラムリスト情報）を更新する不正プログラム実行制御部１１６と、プログラムの動作ログを収集するプログラムの動作ログ収集部１１７と、不正プログラム一覧を表す不正プログラムリストファイル１１８と、不正プログラムリストファイル１１８に記載されているプログラムの実行を抑止する不正プログラム実行抑止部１１９を有する。
【００１４】
（セキュリティ管理コンピュータ１０２の処理部）
次に、セキュリティ管理コンピュータ１０２の処理部の概要について説明する。
ファイアウォールのエラーログ管理部１０４では、ファイアウォール１０１が有するエラーログを取得し、データベース１１０のファイアウォールエラーログテーブル１１１（図４参照）に格納している。
【００１５】
プログラムの動作ログ管理部１０５では、各クライアントコンピュータ１０３で実行するプログラムに関するログを収集しているプログラムの動作ログ収集部１１７から動作ログを取得し、データベース１１０のプログラム動作ログテーブル１１２（図５参照）に格納している。
【００１６】
安全度判定条件編集部１０６では、データベース１１０における安全度判定条件テーブル１１３（図７参照）と管理者への警告条件テーブル１１４（図８参照）を編集するためのＧＵＩを提供する。
【００１７】
安全度計算部１０７では、データベース１１０におけるファイアウォールエラーログテーブル１１１から安全度判定条件テーブル１１３の条件の重み付けを行う。重み付けとは、ファイアウォールエラーログテーブル１１１に保存しているエラーの種類ごとの変化の大きさを統一の指標（偏差値）として計算し、変化が大きいエラーの種類には重み付けの値（重要度）を高く、変化が小さいエラーの種類には重み付けの値（重要度）を低く付与する処理のことを指す。
【００１８】
また、安全度計算部１０７は、プログラム動作ログテーブル１１２と安全度判定条件テーブル１１３を比較した結果に重要度を加味した安全度を算出し、プログラムリストテーブル１１５（図１０参照）に格納すると共に、管理者への警告条件テーブル１１４に定義した安全度の閾値未満の安全度のプログラムがある場合は判定結果通知編集部１０８に通知する。安全度とはプログラムの動作が管理者の定めた基準に則しているか、また、重要度が大きいか小さいかを加味した値であり、プログラムの安全性を示す指標である。重要度と安全度の関係については、安全度計算部１０７の処理フロー（図１２参照）において後述する。
【００１９】
判定結果通知編集部１０８では、安全度計算部１０７からの通知を受けてセキュリティ管理コンピュータ１０２の管理者に対して、安全度の低いプログラムが実行されている旨を通知しプログラムの実行を抑止するか否かを設定する画面を表示する。もし管理者がプログラムの抑止を指示すれば、判定結果通知編集部１０８はデータベース１１０におけるプログラムリストテーブル１１５（図１０参照）の該当するプログラムのレコードを実行不可の状態に書き換える。
【００２０】
不正プログラムリスト配信部１０９では、データベース１１０におけるプログラムリストテーブル１１５において実行不可の状態にあるプログラムのリストを抜き出し、クライアントコンピュータ１０３における不正プログラム実行制御部１１６へ配信する。
以上が、セキュリティ管理コンピュータ１０２の処理部の概要である。
【００２１】
（クライアントコンピュータ１０３の処理部）
不正プログラム実行制御部１１６では、受け取った不正プログラムリストの情報をもとに不正プログラムリストファイル１１８（図１８参照）を更新する。
【００２２】
不正プログラム実行抑止部１１９では、クライアントコンピュータ１０３でプログラムが実行されるたびに不正プログラムリストファイル１１８に記述されているプログラムと一致するかを確認し、一致する場合は実行を抑止する機能を有する。
【００２３】
プログラムの動作ログ収集部１１７は、クライアントコンピュータ１０３のユーザが使用したプログラムの動作ログを収集し、適時、プログラムの動作ログ管理部１０５に送信する。
【００２４】
図２は、セキュリティ管理システムのハードウェア構成を示す図である。セキュリティ管理コンピュータ１０２は、ＣＰＵ２０１ａ（２０１）、ＲＡＭ（Random Access Memory）２０２ａ（２０２）、ハードディスクなどの記憶装置２０３ａ（２０３）、およびバス２０４ａ（２０４）から構成される。
【００２５】
記憶装置２０３ａには、図１におけるファイアウォールエラーログテーブル１１１、プログラム動作ログテーブル１１２、安全度判定条件テーブル１１３、管理者への警告条件テーブル１１４、プログラムリストテーブル１１５などのデータおよびファイアウォールのエラーログ管理部１０４、プログラムの動作ログ管理部１０５、安全度判定条件編集部１０６、安全度計算部１０７、判定結果通知編集部１０８、不正プログラムリスト配信部１０９を実現するプログラムが記憶されている。
【００２６】
ＣＰＵ２０１ａは、ファイアウォールのエラーログ管理部１０４、プログラムの動作ログ管理部１０５、安全度判定条件編集部１０６、安全度計算部１０７、判定結果通知編集部１０８、不正プログラムリスト配信部１０９を読み出して所定の機能を実現する。
【００２７】
クライアントコンピュータ１０３は、ＣＰＵ２０１ｂ（２０１）、ＲＡＭ２０２ｂ（２０２）、ハードディスクなどの記憶装置２０３ｂ（２０３）、およびバス２０４ｂ（２０４）から構成される。
【００２８】
記憶装置２０３ｂには、図１における、不正プログラム実行制御部１１６、プログラムの動作ログ収集部１１７、不正プログラム実行抑止部１１９を実現する各プログラム、および不正プログラムリストファイル１１８が記憶されている。
【００２９】
ＣＰＵ２０１ｂは、不正プログラム実行制御部１１６、プログラムの動作ログ収集部１１７、不正プログラム実行抑止部１１９を読み出して所定の機能を実現する。
【００３０】
ＲＡＭ２０２には、ＣＰＵ２０１が前記所定の機能によって利用される作業領域として記憶装置２０３から読み込んだデータが確保される。
【００３１】
ＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０３におけるデータのやり取りはバス２０４を経由して行われる。所定の機能はＣＰＵ２０１上で動作するプログラムでもよいが、専用のハードウェアで実現してもよい。また、セキュリティ管理コンピュータ１０２とクライアントコンピュータ１０３の間にはＬＡＮ（Local Area Network）などの通信回路２０５が存在し、それぞれ有線または無線のネットワークでつながれ、通信が可能となっている。また、ファイアウォール１０１には、外部ネットワーク１０が接続されている。図２のＣＰＵ２０１は、それぞれのプログラムを実行することで処理が実行される。
【００３２】
図４は、ファイアウォールエラーログテーブルを示す図である。図４に示すファイアウォールエラーログテーブル１１１には、取得時間３０１、外部からのアクセスエラーの頻度３０２、通信先の外部アドレス１つに対するネットワーク通信量３０３、外部からのアクセスエラーのあったポート番号の種類３０４、内部ネットワークから外部へ通信する端末数３０５を保持している。ファイアウォール１０１から取得可能なデータには、通信プロトコルエラーや宛先不明エラーなどもあるが、以降は例として取得時間３０１、外部からのアクセスエラーの頻度３０２、通信先の外部アドレス１つに対するネットワーク通信量３０３、外部からのアクセスエラーのあったポート番号の種類３０４、内部ネットワークから外部へ通信する端末数３０５を使用する。
【００３３】
ファイアウォールエラーログテーブル１１１には、所定時間毎のエラーログが集計されており、例えば、１月１日（１／１）の１２：００〜１３：００には、外部からのアクセスエラーの頻度３０２は１時間に１００回あり、通信先の外部アドレス１つに対するネットワーク通信量３０３は平均５０ＭＢあり、外部からのアクセスエラーのあったポート番号の種類３０４は１００種類、内部ネットワークから外部へ通信する端末数３０５は５０台であったことがわかる。
【００３４】
図５は、プログラム動作ログテーブルを示す図である。図５に示すプログラム動作ログテーブル１１２には、プログラム名４０１、プログラムＩＤ４０２、外部ネットワークとの通信頻度４０３、ネットワーク通信量４０４、使用通信ポート４０５、使用時間４０６を保持している。プログラムの動作ログとしては、その他にプログラムの実行ユーザ名やプログラムがアクセスしたファイルなどもあるが、以降は例として、プログラム名４０１、プログラムＩＤ４０２、外部ネットワークとの通信頻度４０３、ネットワーク通信量４０４、使用通信ポート４０５、使用時間４０６を使用する。
【００３５】
図７は、安全度判定条件テーブルを示す図である。図７に示す安全度判定条件テーブル１１３は、外部ネットワークとの通信頻度６０１、ネットワーク通信量６０２、使用通信ポート６０３、使用時間６０４を保持している。各項目の条件は、後述する安全度判定条件編集画面５０１からの入力に基づき登録される。例えば、安全度判定条件として、外部ネットワークとの通信頻度６０１が１時間あたり５回以下、ネットワーク通信量６０２が１時間あたり１０ＭＢ以下、使用通信ポート６０３が８０のみ可、使用時間６０４が９：００〜１７：３０に設定されている。
【００３６】
外部ネットワークとの通信頻度６０１は、図５に示すプログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３の値が安全か否かを判定するための閾値として用いられる。ネットワーク通信量６０２は、図５に示すプログラム動作ログテーブル１１２におけるネットワーク通信量４０４の値が安全か否かを判定するための閾値として用いられる。使用通信ポート６０３は、図５に示すプログラム動作ログテーブル１１２における使用通信ポート４０５の値が安全か否かを判定するための閾値として用いられる。使用時間６０４は、図５に示すプログラム動作ログテーブル１１２における使用時間４０６の値が安全か否かを判定するための閾値として用いられる。
【００３７】
図８は、管理者への警告条件テーブルを示す図である。管理者への警告条件テーブル１１４は、管理者へ警告する安全度の閾値７０１を保持している。管理者へ警告する安全度の閾値７０１は、後述する安全度判定条件編集画面５０１からの入力に基づき登録される。例えば、安全度計算部１０７で計算される値が「６０」以下ならば安全でない、不正なプログラムとして判定される。
【００３８】
図１０は、プログラムリストテーブルを示す図である。図１０に示すプログラムリストテーブル１１５は、プログラム名８０１、プログラムＩＤ８０２、安全度８０３、プログラムの実行可否８０４から構成されており、安全度計算部１０７によって計算された安全度は、安全度８０３に格納される。プログラムリストテーブル１１５のプログラム名８０１は、プログラム動作ログテーブル１１２に示すプログラム名４０１から取得し、プログラムＩＤ８０２は、プログラム動作ログテーブル１１２に示すプログラムＩＤ４０２から取得する。例えば、プログラムＢは、安全度８０３が７０であり、プログラムの実行可否８０４は、許可されている。一方、プログラムＣは、安全度８０３が５であり、プログラムの実行可否８０４は、不可となっている。
【００３９】
次に、処理フローの詳細について３つに分けて説明する。
（１）安全度を計算するための情報を収集する処理
（２）安全度を計算し、不正プログラムを選定する処理
（３）不正プログラムと判定したプログラムの実行抑止をクライアントコンピュータ１０３で行う処理
【００４０】
（１）安全度を計算するための情報を収集する処理
図３は、ファイアウォールのエラーログ管理部およびプログラムの動作ログ管理部がそれぞれファイアウォールのエラーログおよびプログラムの動作ログを収集する流れを機能ブロック図として示す図である。図３を参照して、セキュリティ管理コンピュータ１０２が安全度計算部１０７で安全度を計算するための情報を収集する処理を説明する。
【００４１】
ファイアウォールのエラーログ管理部１０４は、ファイアウォール１０１で発生したエラーを定期的に取得し（処理Ｓ１１）、データベース１１０のファイアウォールエラーログテーブル１１１へ格納する（処理Ｓ１２）。
【００４２】
プログラムの動作ログ管理部１０５は、プログラムの動作ログ収集部１１７が収集しているクライアントコンピュータ１０３で実行したプログラムの動作ログを取得し（処理Ｓ１３）、プログラム動作ログテーブル１１２へ格納する（処理Ｓ１４）。
【００４３】
安全度判定条件編集部１０６は、セキュリティ管理コンピュータ１０２の管理者に対して、データベース１１０の安全度判定条件テーブル１１３と管理者への警告条件テーブル１１４の値を設定するための安全度判定条件編集画面５０１（図６参照）を提供する。また、安全度判定条件編集部１０６は、安全度判定条件編集画面５０１から受理した安全度判定条件の設定値を安全度判定条件テーブル１１３に登録し（処理Ｓ１５）、「管理者に安全度判定条件結果を通知する安全度の閾値」を管理者への警告条件テーブル１１４に登録する（処理Ｓ１６）。
【００４４】
図６は、安全度判定条件編集画面を示す図である。図６に示す安全度判定条件編集画面５０１は、安全度判定条件テーブル１１３と管理者への警告条件テーブル１１４を編集するための一例である。「管理者に安全度判定条件結果を通知する安全度の閾値」の設定項目５０２は、図８に示す、管理者への警告条件テーブル１１４の管理者へ警告する安全度の閾値７０１を設定するための項目である。安全度が低いプログラムをセキュリティ管理コンピュータ１０２の管理者へ通知するか否かを決定する指標として管理者へ警告する安全度の閾値７０１は使用される。
【００４５】
安全度判定条件テーブル１１３（図７参照）を設定する項目として、「外部ネットワークとの通信頻度」の設定項目５０３、「ネットワーク通信量」の設定項目５０４、「使用通信ポート」の設定項目５０５、「使用時間」の設定項目５０６がある。
【００４６】
「外部ネットワークとの通信頻度」の設定項目５０３は、図７に示す安全度判定条件テーブル１１３の外部ネットワークとの通信頻度６０１の値を設定するための項目である。「ネットワーク通信量」の設定項目５０４は、図７に示す安全度判定条件テーブル１１３のネットワーク通信量６０２の値を設定するための項目である。「使用通信ポート」の設定項目５０５は、図７に示す安全度判定条件テーブル１１３の使用通信ポート６０３の値を設定するための項目である。「使用時間」の設定項目５０６は、図７に示す安全度判定条件テーブル１１３の使用時間６０４の値を設定するための項目である。
【００４７】
（２）安全度を計算し、不正プログラムを選定する処理
図９は、安全度判定条件編集部、安全度計算部、判定条件通知編集部が収集したログを基に安全度を計算し、計算結果をデータベースに格納する流れを機能ブロックとして示す図である。図９を参照して、セキュリティ管理コンピュータ１０２の安全度計算部１０７で安全度を計算し不正プログラムを選定する処理フローを説明する。
【００４８】
安全度判定条件編集部１０６は、安全度の判定条件が変更されたことを受理すると、安全度計算部１０７に判定条件の変更を通知する（処理Ｓ２１）。安全度計算部１０７は、安全度判定条件編集部１０６から安全度の判定条件が変更の通知を受理したとき、または、定期的に安全度の計算を行う。安全度計算部１０７は、各プログラムの安全度を計算するためにデータベース１１０におけるファイアウォールエラーログテーブル１１１を取得し（処理Ｓ２２）、プログラム動作ログテーブル１１２を取得し（処理Ｓ２３）、安全度判定条件テーブル１１３を取得し（処理Ｓ２４）、各テーブルの値を基に安全度を計算し、プログラムリストテーブル１１５へ書き込む（処理Ｓ２５）。
【００４９】
本実施形態では、安全度計算部１０７が初めて追加するプログラムの実行可否について「許可」を指定している。安全度計算部１０７は、管理者への警告条件テーブル１１４を取得し（処理Ｓ２６）、計算された安全度が管理者へ警告する安全度の閾値７０１を下回った際、判定結果通知編集部１０８に通知し（処理Ｓ２７）、セキュリティ管理コンピュータ１０２の管理者が、プログラムの判定を行い、プログラムの実行の抑止指令を受理すると、プログラムリストテーブル１１５に登録する（処理Ｓ２８）。なお、安全度計算部１０７が計算した安全度が管理者への警告条件テーブル１１４の管理者へ警告する安全度の閾値７０１を下回る場合、追加するプログラムについて「不可」を指定することで自動的にプログラムの実行を抑止することもできる。
【００５０】
処理Ｓ２７において、安全度計算部１０７は、プログラムリストテーブル１１５にある各プログラムの安全度８０３が管理者への警告条件テーブル１１４の管理者へ警告する安全度の閾値７０１を下回る場合、下回ったプログラムの情報（プログラム動作ログテーブル１１２におけるプログラム名４０１、プログラムＩＤ４０２、外部ネットワークとの通信頻度４０３、ネットワーク通信量４０４、使用通信ポート４０５、使用時間４０６）を判定結果通知編集部１０８へ通知する。
【００５１】
判定結果通知編集部１０８は、安全度計算部１０７から通知されたプログラムの動作可否を設定する画面を表示し、セキュリティ管理コンピュータ１０２の管理者に通知する。プログラムの動作可否を設定する画面の例として、図１１に示すプログラムの動作可否設定画面９０１を示す。
【００５２】
図１１は、プログラムの動作可否設定画面を示す図である。図１１に示すプログラムの動作可否設定画面９０１は、安全度計算部１０７によって、管理者への警告条件テーブル１１４における管理者へ警告する安全度の閾値７０１以下の安全度と判定されたプログラムの情報（プログラム名９０２、プログラムＩＤ９０３、安全度９０４、外部ネットワークとの通信頻度９０５、ネットワーク通信量９０６、使用通信ポート９０７、使用時間９０８）を表示する。表示項目は、安全度計算部１０７から通知されたプログラム動作ログテーブル１１２におけるプログラム名４０１をプログラム名９０２へ表示する。同様にプログラムＩＤ４０２をプログラムＩＤ９０３、外部ネットワークとの通信頻度４０３を外部ネットワークとの通信頻度９０５、ネットワーク通信量４０４をネットワーク通信量９０６、使用通信ポート４０５を使用通信ポート９０７、使用時間４０６を使用時間９０８の項目へそれぞれ表示する。さらに、テーブル１１５における安全度８０３を安全度９０４へ表示する。
【００５３】
セキュリティ管理コンピュータ１０２の管理者は、管理者への警告条件テーブル１１４における管理者へ警告する安全度の閾値７０１以下の安全度と判定されたプログラムの情報を基にプログラムの実行を抑止するか否かを指定することができる。実行を抑止する場合、判定結果通知編集部１０８はプログラムリストテーブル１１５のプログラムＩＤ８０２の値が、プログラムの動作可否設定画面９０１におけるプログラムＩＤ９０３と一致するレコードの実行可否８０４の値を「不可」に設定する。
【００５４】
図１２は、安全度計算部の処理フローを示す図である。安全度計算部１０７が安全度を計算する方法について、図１２、図１３、図１４、図１５および図２０を参照して説明する。処理Ｓ１００１において、安全度計算部１０７は、ファイアウォールエラーログテーブル１１１の情報を基に安全度判定条件テーブル１１３における各項目の重要度を計算する。
【００５５】
図１５は、ファイアウォールエラーログテーブルの他の例を示す図である。図１５に示すファイアウォールエラーログテーブル１１１Ａは、処理Ｓ１００１における重要度の計算方法を説明するために用意したテーブルの具体例であり、１１：００〜１２：００の時間帯の過去一週間分のデータである。安全度計算部１０７は、安全度判定条件テーブル１１３の各項目の重要度を計算するためにファイアウォールエラーログテーブル１１１Ａの取得時間３０１を参照し過去一週間分のデータを取得する。安全度計算部１０７での重要度の計算過程を、図２０を参照して説明する。
【００５６】
図２０は、重要度の計算過程を示す図である。ファイアウォールエラーログテーブル１１１Ａにおける外部からのアクセスエラーの頻度３０２、通信先の外部アドレス１つに対するネットワーク通信量３０３、外部からのアクセスエラーのあったポート番号の種類３０４、内部ネットワークから外部へ通信する端末数３０５、それぞれの値を基に最新データ（図１５においては、ファイアウォールエラーログテーブル１１１Ａにおける取得時間３０１が「１／１  １１：００〜１２：００」のデータ）の偏差値Ｔを求める。以下外部からのアクセスエラーの頻度３０２の項目の偏差値Ｔの計算を例として説明する。
【００５７】
始めに、一週間分の平均値μである１９０（＝（１００＋２００＋３００＋１５０＋１５０＋３００＋１３０）／７）を求める。次に、最新のデータの偏差（Ｘ−μ）を求める。図１５においては、ファイアウォールエラーログテーブル１１１Ａの取得時間３０１が「１／１  １１：００から１２：００」のデータが最新であり、外部からのアクセスエラーの頻度３０２の値と平均μとの差−９０（＝１００-１９０）が偏差（Ｘ−μ）となる。同様に１２／３１〜１２／２６の偏差（Ｘ−μ）を求める。
【００５８】
次に、分散σ２を計算する。分散σ２は一週間分のそれぞれの偏差の二乗の平均である。計算結果は５６００（＝（（−９０）２＋（１０）２＋（１１０）２＋（−４０）２＋（−４０）２＋（１１０）２＋（−６０）２）／７）となる。分散σ２が求まれば標準偏差σが計算できる。標準偏差σは分散の平方根であるため７４．８（≒√５６００）となる。
【００５９】
最後に、偏差値Ｔを求める。図２０の例では基点を１００としているため、偏差値は８８（≒基点＋１０×（偏差（Ｘ−μ）／標準偏差σ）＝１００＋１０×（−９０／７４．８））となる。
【００６０】
本実施形態では安全度を判定する項目として４つの項目を用いている。そのため、本来の一つの判定項目の重要度は２５％であるが、２５％のすべて又は一部を「基点からの差」に応じて重み付けを行う。本稿では２５％の半分を「基点からの差」に応じた重み付けを行う例を挙げる。
【００６１】
図２０に示す外部からのアクセスエラーの頻度３０２の基点からの差は１２．０２６８、通信先の外部アドレス１つに対するネットワーク通信量３０３の基点からの差は４．８３０５、外部からのアクセスエラーのあったポート番号の種類３０４の基点からの差は５．９１６１、内部ネットワークから外部へ通信する端末数３０５の基点からの差は１５．２７５２である。
【００６２】
上記基点からの差の比は、それぞれ、約３１．６：約１２．７：約１５．５：約４０．１であり、この値はファイアウォール１０１で起こったエラーの変化の度合いを表している。前記基点からの差の比とは、具体的には、１２．０２６８、４．８３０５、５．９１６１、１５．２７５２の合計値に対するそれぞれの割合である。
【００６３】
そして、基点からの差の比を通常の重要度２５％の半分（１２．５％）に乗算することで、重要度を計算する。図２０における外部からのアクセスエラーの頻度３０２を例とすると重要度は２８％（≒（２５／２）＋（５０＊３１．６／１００））となる。
【００６４】
図１２に戻り、処理Ｓ１００２において、安全度計算部１０７は、プログラム動作ログテーブル１１２からプログラム１つ分の情報を取得する。以降例として、図５に示すプログラム動作ログテーブル１１２に示すプログラム名４０１がプログラムＡ、プログラムＩＤ４０２がＩＤ−００００−０００１、外部ネットワークとの通信頻度４０３が１０回／１時間、ネットワーク通信量４０４が１０ＭＢ／１時間、使用通信ポート４０５が１２３４、使用時間４０６が０９：３０〜０９：３１のレコードを取得した場合の説明を行う。
【００６５】
処理Ｓ１００３において、安全度計算部１０７は、処理Ｓ１００２でプログラム１つ分の情報を取得できたか否かを確認（判定）する。プログラム１つ分の情報を取得できない場合（処理Ｓ１００３，Ｎｏ）、処理を終了する。具体的には、全て処理していた場合はプログラム１つ分の情報を取得できないため、安全度計算部１０７の処理を終了する。プログラム１つ分の情報を取得できた場合（処理Ｓ１００３，Ｙｅｓ）、処理Ｓ１００４に進む。
【００６６】
処理Ｓ１００４において、安全度計算部１０７は、処理Ｓ１００２で取得したプログラムＩＤ４０２と一致するプログラムリストテーブル１１５のレコードを取得する。処理Ｓ１００２の例におけるプログラムＩＤ４０２「ＩＤ−００００−０００１」と一致するプログラムリストテーブル１１５のレコードは、図１０の例では、プログラム名８０１がプログラムＡ、プログラムＩＤ８０２がＩＤ−００００−０００１、安全度８０３が５２、実行可否８０４が許可のレコードとなる。
【００６７】
処理Ｓ１００５において、安全度計算部１０７は、処理Ｓ１００４で取得したレコードの実行可否８０４の値は「不可」であるか否かを確認（判定）する。実行可否８０４の値が「不可」の場合は（処理Ｓ１００５，Ｙｅｓ）、既に管理者によってプログラムの実行を抑止されているため、安全度を計算する必要はない。この場合、処理Ｓ１００２に戻り他のプログラムについて処理を続行する。実行可否８０４の値が「許可」の場合は（処理Ｓ１００５，Ｎｏ）、処理Ｓ１００６に進む。処理Ｓ１００４に示した例では、実行可否８０４の値は許可であるため、処理Ｓ１００６を行う場合の説明を行う。
【００６８】
処理Ｓ１００６において、安全度計算部１０７は、プログラム動作ログテーブル１１２と、安全度判定条件テーブル１１３を比較し、各項目が安全度判定条件を満たしているか判定する。処理の詳細は図１３に記載した比較処理のフローおよび図１６を用いて説明する。図１６は、安全度の計算方法における参照テーブルを示す図である。処理Ｓ１００６を説明するために、図１６（ａ）にプログラム動作ログテーブル１１２、図１６（ｂ）に安全度判定条件テーブル１１３、図１６（ｃ）に安全度計算部１０７の計算過程において使用される一時的な変数として判定結果テーブル１３０１、および、図１６（ｄ）に安全度計算結果テーブル１４０１を示す。
【００６９】
図１３は、安全度計算部の処理フローの処理Ｓ１００６の部分を詳細化して示した図である。図１３における処理Ｓ１１０１では、プログラム動作ログテーブル１１２と、安全度判定条件テーブル１１３の判定結果（比較結果）を保持するための変数領域を確保する。この変数領域は、図１６（ｃ）における判定結果テーブル１３０１に示す通り、外部ネットワークとの通信頻度１３０２、ネットワーク通信量１３０３、使用通信ポート１３０４、使用時間１３０５の変数領域を有する。
【００７０】
図１６（ｃ）における、外部ネットワークとの通信頻度１３０２は、プログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３と安全度判定条件テーブル１１３における外部ネットワークとの通信頻度６０１の判定結果（比較結果）を格納する変数領域である。ネットワーク通信量１３０３は、プログラム動作ログテーブル１１２におけるネットワーク通信量４０４と、安全度判定条件テーブル１１３におけるネットワーク通信量６０２の判定結果（比較結果）を格納する変数領域である。使用通信ポート１３０４は、プログラム動作ログテーブル１１２における使用通信ポート４０５と安全度判定条件テーブル１１３における使用通信ポート６０３の判定結果（比較結果）を格納する領域である。使用時間１３０５は、プログラム動作ログテーブル１１２における使用時間４０６と安全度判定条件テーブル１１３における使用時間６０４の判定結果（比較結果）を格納する領域である。
【００７１】
図１３に戻り、処理Ｓ１１０２では、プログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３と、安全度判定条件テーブル１１３における外部ネットワークとの通信頻度６０１を比較する。プログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３の値が安全度判定条件テーブル１１３の安全度判定条件を満たすか否かを判定する。安全度判定条件を満たす場合は（処理Ｓ１１０２，Ｙｅｓ）、処理Ｓ１１０３に進み、判定結果テーブル１３０１における外部ネットワークとの通信頻度１３０２に「１」を登録し、処理Ｓ１１０５に進む。安全度判定条件を満たさない場合は（処理Ｓ１１０２，Ｎｏ）、処理Ｓ１１０４に進み、判定結果テーブル１３０１における外部ネットワークとの通信頻度１３０２に０を登録し、処理Ｓ１１０５に進む。図１６に示す例では、図１６（ｂ）の安全度判定条件テーブル１１３における外部ネットワークとの通信頻度６０１の値は「５回／１時間以下」であり、図１６（ａ）のプログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３の値は「１０回／１時間」である。この場合、セキュリティ管理コンピュータ１０２の管理者が定めた安全度判定条件テーブル１１３の条件値を満たしていないため、比較の結果、処理Ｓ１１０４が実行され、図１６（ｃ）に示す判定結果テーブル１３０１における外部ネットワークとの通信頻度１３０２の値は「０」となる。
【００７２】
図１３に戻り、処理Ｓ１１０５では、安全度判定条件テーブル１１３におけるネットワーク通信量６０２とプログラム動作ログテーブル１１２におけるネットワーク通信量４０４を比較する。プログラム動作ログテーブル１１２におけるネットワーク通信量４０４の値が、安全度判定条件テーブル１１３におけるネットワーク通信量６０２の条件を満たすか否かを判定する。安全度判定条件を満たす場合は（処理Ｓ１１０５，Ｙｅｓ）、処理Ｓ１１０６に進み、判定結果テーブル１３０１におけるネットワーク通信量１３０３に「１」を登録し、処理Ｓ１１０８に進む。安全度判定条件を満たさない場合は（処理Ｓ１１０５，Ｎｏ）、処理Ｓ１１０７に進み、判定結果テーブル１３０１におけるネットワーク通信量１３０３に「０」を登録し、処理Ｓ１１０８に進む。図１６に示す例では、図１６（ｂ）の安全度判定条件テーブル１１３におけるネットワーク通信量６０２の値は「１０ＭＢ／１時間」であり、図１６（ａ）のプログラム動作ログテーブル１１２におけるネットワーク通信量４０４の値は「１０ＭＢ／１時間」である。この場合、セキュリティ管理コンピュータ１０２の管理者が定めた安全度判定条件テーブル１１３の条件値を満たしているため、比較の結果、処理Ｓ１１０６が実行され、図１６（ｃ）に示す判定結果テーブル１３０１におけるネットワーク通信量１３０３の値は「１」となる。
【００７３】
図１３に戻り、処理Ｓ１１０８では、安全度判定条件テーブル１１３における使用通信ポート６０３とプログラム動作ログテーブル１１２における使用通信ポート４０５を比較する。プログラム動作ログテーブル１１２における使用通信ポート４０５の値が、安全度判定条件テーブル１１３における使用通信ポート６０３の条件を満たすか否かを判定する。安全度判定条件を満たす場合は（処理Ｓ１１０８，Ｙｅｓ）、処理Ｓ１１０９に進み、判定結果テーブル１３０１における使用通信ポート１３０４に「１」を登録し、処理Ｓ１１１１に進む。安全度判定条件を満たさない場合は（処理Ｓ１１０８，Ｎｏ）、処理Ｓ１１１０に進み、判定結果テーブル１３０１における使用通信ポート１３０４に「０」を登録し、処理Ｓ１１１１に進む。図１６に示す例では、図１６（ｂ）の安全度判定条件テーブル１１３における使用通信ポート６０３の値は「８０のみ可」であり、図１６（ａ）のプログラム動作ログテーブル１１２における使用通信ポート４０５の値は「１２３４」である。この場合、セキュリティ管理コンピュータ１０２の管理者が定めた安全度判定条件テーブル１１３の条件値を満たしていないため、比較の結果、処理Ｓ１１１０が実行され、図１６（ｃ）に示す判定結果テーブル１３０１における使用通信ポート１３０４の値は「０」となる。
【００７４】
図１３に戻り、処理Ｓ１１１１では、安全度判定条件テーブル１１３における使用時間６０４とプログラム動作ログテーブル１１２における使用時間４０６を比較する。プログラム動作ログテーブル１１２における使用時間４０６の値が、安全度判定条件テーブル１１３における使用時間６０４の条件を満たすか否かを判定する。安全度判定条件を満たす場合は（処理Ｓ１１１１，Ｙｅｓ）、処理Ｓ１１１２に進み、判定結果テーブル１３０１における使用時間１３０５に「１」を登録し、処理を終了する。安全度判定条件を満たさない場合は（処理Ｓ１１１１，Ｎｏ）、処理Ｓ１１１３に進み、判定結果テーブル１３０１における使用時間１３０５に「０」を登録し、処理を終了する。図１６に示す例では、図１６（ｂ）の安全度判定条件テーブル１１３における使用時間６０４の値は「０９：００〜１７：３０」であり、図１６（ａ）のプログラム動作ログテーブル１１２における使用時間４０６の値は「０９：３０〜０９：３１」である。この場合、セキュリティ管理コンピュータ１０２の管理者が定めた安全度判定条件テーブル１１３の条件値を満たしているため、比較の結果、処理Ｓ１１１２が実行され、図１６（ｃ）に示す判定結果テーブル１３０１における使用時間１３０５の値は「１」となる。
【００７５】
図１２に戻り、処理Ｓ１００７において、安全度計算部１０７は、処理Ｓ１００１で計算した「安全度判定条件項目の重要度」と、処理Ｓ１００６で計算した判定結果テーブル１３０１を基に、プログラムの「安全度」を計算する。処理の詳細は図１４に記載した処理フローおよび図１６を用いて説明する。
【００７６】
図１４は、安全度計算部の処理フローの処理Ｓ１００７の部分を詳細化して示した図である。図１４における処理Ｓ１２０１では、処理Ｓ１００１で計算した「外部からのアクセスエラーの頻度３０２」の重要度と図１２における処理Ｓ１００６の判定結果（図１６における判定結果テーブル１３０１の外部ネットワークとの通信頻度１３０２）の値を乗算する。
【００７７】
具体的には、処理Ｓ１００１で計算した「外部からのアクセスエラーの頻度３０２」の重要度は、図１５、図２０の例では、「２８」である。この値は、プログラム動作ログテーブル１１２の外部ネットワークとの通信頻度４０３の値と関係している。なぜなら、ファイアウォールエラーログテーブル１１１における外部からのアクセスエラーの頻度３０２の値が大きければ外部からの不正アクセスが多いことを示しており、このときのプログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３の値が多いということは、不正アクセスによりプログラムが外部ネットワークと通信している可能性が高いからである。図１６、図１５、および図２０を用いた例では、処理Ｓ１００６における判定結果テーブル１３０１の外部ネットワークとの通信頻度１３０２の値は「０」であり、ファイアウォールエラーログテーブル１１１における外部からのアクセスエラーの頻度３０２の重要度は２８であるため、計算結果は「０」（＝０×２８）となる。
【００７８】
図１４に戻り、処理Ｓ１２０２では、処理Ｓ１００１で計算した「通信先の外部アドレス１つに対するネットワーク通信量３０３」の重要度と図１２における処理Ｓ１００６の判定結果（図１６における判定結果テーブル１３０１のネットワーク通信量１３０３）の値を乗算した値を、処理Ｓ１２０１の計算結果に加算する。
【００７９】
具体的には、処理Ｓ１００１で計算した「通信先の外部アドレス１つに対するネットワーク通信量３０３」の重要度は、図１５、図２０の例では「１９」である。この値は、プログラム動作ログテーブル１１２のネットワーク通信量４０４の値と関係している。なぜなら、ファイアウォールエラーログテーブル１１１における通信先の外部アドレス１つに対するネットワーク通信量３０３の値が大きければ外部ネットワークへ大きなデータ量の通信が行われていることを示しており、この時のプログラム動作ログテーブル１１２におけるネットワーク通信量４０３の値が多いということは、不正なプログラムによって大量のデータが盗まれている可能性が高いからである。図１６、図１５および図２０を用いた例では、処理Ｓ１００６における判定結果テーブル１３０１におけるネットワーク通信量１３０３の値は「１」であり、ファイアウォールエラーログテーブル１１１における通信先の外部アドレス１つに対するネットワーク通信量３０３の重要度は「１９」、処理Ｓ１２０１の計算結果が「０」であるため、処理Ｓ１２０２の計算結果は１９（＝１×１９＋０）となる。
【００８０】
図１４に戻り、処理Ｓ１２０３では、処理Ｓ１００１で計算した「外部からのアクセスエラーのあったポート番号の種類３０４」の重要度と図１２における処理Ｓ１００６の判定結果（図１６における判定結果テーブル１３０１の使用通信ポート１３０４）の値を乗算した値を、処理Ｓ１２０２の計算結果に加算する。
【００８１】
具体的には、処理Ｓ１００１で計算した「外部からのアクセスエラーのあったポート番号の種類３０４」の重要度は、図１５、図２０の例では「２０」である。この値は、プログラム動作ログテーブル１１２の使用通信ポート４０５の値と関係している。なぜなら、ファイアウォールエラーログテーブル１１１における外部からのアクセスエラーのあったポート番号の種類３０４の値が大きければ、外部ネットワークから不正なポート使用が発生していることを示しており、この時のプログラム動作ログテーブル１１２における使用通信ポート４０５の値が多いということは、外部ネットワークから不正に利用できるポートをサーチされていることを示しており、不正なプログラムが不正なポートを使って外部ネットワークと通信する可能性が高いからである。図１６、図１５、および図２０を用いた例では、処理Ｓ１００６における判定結果テーブル１３０１における使用通信ポート１３０４の値は「０」であり、ファイアウォールエラーログテーブル１１１における外部からのアクセスエラーのあったポート番号の種類３０４の重要度は「２０」、処理Ｓ１２０２の計算結果が「１９」であるため、処理Ｓ１２０３の計算結果は１９（＝０×２０＋１９）となる。
【００８２】
図１４に戻り、処理Ｓ１２０４では、処理Ｓ１００１で計算した「内部ネットワークから外部へ通信する端末数３０５」の重要度と図１２における処理Ｓ１００６の判定結果（図１６における判定結果テーブル１３０１の使用時間１３０５）の値を乗算した値を、処理Ｓ１２０３の計算結果に加算する。
【００８３】
具体的には、処理Ｓ１００１で計算した「内部ネットワークから外部へ通信する端末数３０５」の重要度は、図１５、図２０の例では「３３」である。この値は、プログラム動作ログテーブル１１２の使用時間４０６の値と関係している。なぜなら、ファイアウォールエラーログテーブル１１１における内部ネットワークから外部へ通信する端末数３０５の値が大きければ、多くの機器が外部ネットワークに対して一斉に通信していることを示しており、この時のプログラム動作ログテーブル１１２における使用時間４０６の値が多いということは、不正プログラムが深夜など特定の時間に一斉に活動を開始して通信をしている可能性が高いからである。図１６、図１５、および図２０を用いた例では、処理Ｓ１００６における判定結果テーブル１３０１における使用時間１３０５の値は１であり、ファイアウォールエラーログテーブル１１１における内部ネットワークから外部へ通信する端末数３０５の重要度は「３３」、処理Ｓ１２０３の計算結果が「１９」であるため、処理Ｓ１２０４の計算結果は５２（＝１×３３＋１９）となる。
【００８４】
以上の計算によりプログラムの安全度を計算する。図１６（ａ）に示すプログラム動作ログテーブル１１２におけるプログラムを例とすると、安全度は図１６（ｄ）の安全度計算結果テーブル１４０１の右側に示す通り「５２」となる。
【００８５】
図１２に戻り、処理Ｓ１００８において、安全度計算部１０７は、処理Ｓ１００２で取得したプログラムの情報と処理Ｓ１００７で計算した安全度をプログラムリストテーブル１１５に書き込む。図１０の例においては、プログラムリストテーブル１１５におけるプログラム名８０１の値に図５に示すプログラム動作ログテーブル１１２におけるプログラム名４０１を書き込む。同様に、プログラムリストテーブル１１５におけるプログラムＩＤ８０２にプログラム動作ログテーブル１１２におけるプログラムＩＤ４０２を、プログラムリストテーブル１１５における安全度８０３に処理Ｓ１００７で計算した安全度を、プログラムリストテーブル１１５における実行可否８０４に、初期値として「許可」を書き込む。
【００８６】
処理Ｓ１００９において、安全度計算部１０７は、処理Ｓ１００７で計算した「安全度」と管理者への警告条件テーブル１１４の管理者へ警告する安全度の閾値７０１を比較する。安全度が管理者へ警告する安全度の閾値７０１よりも低いか否かを判定する。管理者へ警告する安全度の閾値７０１よりも低い場合は（処理Ｓ１００９，Ｙｅｓ）、処理Ｓ１０１０に示す管理者への通知を行い、処理Ｓ１００２に戻る。安全度が閾値７０１よりも高い場合は（処理Ｓ１００９，Ｎｏ）、管理者への通知は行なわずに、処理Ｓ１００２に戻る。なお、管理者へのプログラムの動作可否の問い合わせを行わず動作可否判定を自動化したい場合は、管理者へ警告する安全度の閾値７０１よりも安全度が低いプログラムについて処理Ｓ１００９において、プログラムリストテーブル１１５における実行可否８０４に「不可」を書き込み、処理Ｓ１０１０に示す管理者への通知を行わないことにより容易に実現可能である。
【００８７】
処理Ｓ１０１０において、安全度計算部１０７は、判定結果通知編集部１０８に安全度が管理者へ警告する安全度の閾値７０１より低いプログラムのプログラムＩＤを通知する。プログラムＩＤは処理Ｓ１００８で安全度計算部１０７がプログラムリストテーブル１１５に書き込んだプログラムＩＤ８０２の値を用いる。
【００８８】
図１１は、プログラムの動作可否設定画面を示す図である。図１１に示す画面は、安全度計算部１０７から安全度が管理者への警告条件テーブル１１４における管理者へ警告する安全度の閾値７０１よりも低いプログラムのプログラムＩＤの通知を受けた判定結果通知編集部１０８が、プログラムの実行可否をセキュリティ管理コンピュータ１０２の管理者に問い合わせるダイアログの例（プログラムの動作可否設定画面９０１）である。
【００８９】
プログラムの動作可否設定画面９０１における表示文字列のプログラム名９０２、プログラムＩＤ９０３、安全度９０４は、プログラムリストテーブル１１５のプログラムＩＤ８０２と安全度計算部１０７から通知されたプログラムＩＤが一致するレコードを検索し表示する。プログラムの動作可否設定画面９０１におけるプログラム名９０２はプログラムリストテーブル１１５におけるプログラム名８０１の値を、同様にプログラムＩＤ９０３はプログラムＩＤ８０２の値を、安全度９０４は安全度８０３の値を基に表示する。
【００９０】
また、プログラムの動作可否設定画面９０１における表示文字列の外部ネットワークとの通信頻度９０５、ネットワーク通信量９０６、使用通信ポート９０７、使用時間９０８は、プログラム動作ログテーブル１１２のプログラムＩＤ４０２と安全度計算部１０７から通知されたプログラムＩＤが一致するレコードを検索し表示する。プログラムの動作可否設定画面９０１における外部ネットワークとの通信頻度９０５はプログラム動作ログテーブル１１２における外部ネットワークとの通信頻度４０３の値を、同様にネットワーク通信量９０６はネットワーク通信量４０４の値を、使用通信ポート９０７は使用通信ポート４０５の値を、使用時間９０８は使用時間４０６の値を基に表示する。
【００９１】
セキュリティ管理コンピュータ１０２の管理者は、図１１に示すプログラムの動作可否設定画面９０１において、プログラムの動作を抑止する場合は「はい」ボタンを選択するだけで、安全度の低いプログラムの動作を抑止することができる。この際、判定結果通知編集部１０８は、プログラムリストテーブル１１５におけるプログラムＩＤ８０２の値が図１１に示すプログラムの動作可否設定画面９０１のプログラムＩＤ９０３の値と一致するレコードを検索し、一致するレコードの実行可否８０４の値を「不可」とすることで安全度の低いプログラムの動作を抑止する設定を保存する。
【００９２】
（３）不正プログラムと判定したプログラムの実行抑止をクライアントコンピュータ１０３で行う処理
図１７は、不正プログラムリスト配信部、不正プログラム実行制御部、および不正プログラム実行抑止部が不正なプログラムの実行抑止の指示を実行する流れを機能ブロックとして示す図である。図１７において、不正プログラムリスト配信部１０９が、クライアントコンピュータ１０３における不正プログラム実行制御部１１６に対して実行を抑止するプログラムの情報をプログラムリストテーブル１１５から取得し（処理Ｓ３１）、不正プログラムのリストを送信する（処理Ｓ３２）クライアントコンピュータ１０３において、不正プログラム実行制御部１１６は、受理した不正プログラムのリストを不正プログラムリストファイル１１８（図１８参照）に書き込み（処理Ｓ３３）、不正プログラム実行抑止部１１９が、不正プログラムリストファイル１１８を参照して（処理Ｓ３４）不正プログラムの実行が抑止する。図１９を参照して、不正プログラムリスト配信部１０９および、不正プログラム実行制御部１１６および、不正プログラム実行抑止部１１９の処理フローを用いて処理を説明する。
【００９３】
図１９は、不正プログラムリスト配信部、不正プログラム実行制御部、および不正プログラム実行抑止部が不正なプログラムの実行抑止の指示を実行する処理フローを示す図である。
【００９４】
処理Ｓ１６０１において、不正プログラムリスト配信部１０９は、プログラムリストテーブル１１５から、実行可否８０４の項目が「不可」の不正プログラムリストを取得し、処理Ｓ１６０２に進む。図１０に示すプログラムリストテーブル１１５を例にすると、プログラムＩＤ８０２がＩＤ−００００−０００３およびＩＤ−００００−０００４のレコードの実行可否８０４の項目が「不可」であるため、これらのレコードを取得する。
【００９５】
処理Ｓ１６０２において、不正プログラムリスト配信部１０９は、処理Ｓ１５０１で取得した不正プログラムのリストを不正プログラム実行制御部１１６に送信し、処理Ｓ１６０３に進む。送信する内容はプログラムリストテーブル１１５におけるプログラム名８０１および、プログラムＩＤ８０２の値である。
【００９６】
処理Ｓ１６０３において、不正プログラム実行制御部１１６は、処理Ｓ１５０２で送信された不正プログラムのリストを受信し、処理Ｓ１６０４に進む。
【００９７】
処理Ｓ１６０４において、不正プログラム実行制御部１１６は、不正プログラムリストを図１８に示す不正プログラムリストファイル１１８に書き込み、処理Ｓ１６０５に進む。
【００９８】
図１８は、不正プログラムリストファイルを示す図である。図１８に示す不正プログラムリストファイル１１８は、プログラム名１５０１と、プログラムＩＤ１５０２とを含んで構成されている。処理Ｓ１６０１の例で取得したプログラムリストテーブル１１５におけるプログラム名８０１の値とプログラムＩＤ８０２の値は処理Ｓ１６０２によりセキュリティ管理コンピュータ１０２からクライアントコンピュータ１０３へ送信され、処理Ｓ１６０３によって受信したプログラムリストテーブル１１５におけるプログラム名８０１の値は、不正プログラムリストファイル１１８におけるプログラム名１５０１に書き込む、同様にプログラムリストテーブル１１５におけるプログラムＩＤ８０２の値は不正プログラムリストファイル１１８におけるプログラムＩＤ１５０２に書き込む。
【００９９】
図１９に戻り、処理Ｓ１６０５において、不正プログラム実行抑止部１１９は、不正プログラムリストファイル１１８を読み込み、記載されているプログラムの実行を抑止する。実行を抑止するプログラムの選別は不正プログラムリストファイル１１８におけるプログラムＩＤ１５０２の値を利用して行う。
【０１００】
これまでに示した手法により、システム内のクライアントコンピュータ１０３のプログラムの動作ログ、および、ファイアウォール１０１を例とするシステム内のエラーログを取得できる環境であれば、セキュリティ管理コンピュータ１０２がシステム内のエラーログの発生頻度から注目すべきプログラムの動作ログの各項目の重要度として導き出し、プログラムごとの安全度を動的に計算することでセキュリティ管理コンピュータ１０２の管理者に対してよりシステムの現状に則した不正プログラムの候補を提示できる。また、セキュリティ管理コンピュータ１０２の管理者がプログラムの実行可否を判断するだけでなく、予め安全度の閾値を定めれば、閾値以下の安全度のプログラムの実行を自動的に抑止することもできる。
【０１０１】
本実施形態のセキュリティ管理システムは、ファイアウォール１０１と、ファイアウォール１０１を介して外部のネットワーク１０と通信するプログラムを有するクライアントコンピュータ１０３と、プログラムのセキュリティの安全度を計算しプログラムの実行可否を判定するセキュリティ管理コンピュータ１０２（管理サーバ）とを備えるセキュリティ管理システムであって、管理サーバは、ファイアウォールからエラーログを取得し、ファイアウォールエラーログ情報（ファイアウォールエラーログテーブル１１１）として記憶部（例えば、記憶装置２０３ａ）に記憶するファイアウォールのエラーログ管理部１０４と、クライアントからプログラムの動作ログを収集し、プログラム動作ログ情報（プログラム動作ログテーブル１１２）として記憶部に記憶するプログラムの動作ログ管理部１０５と、プログラムのセキュリティの安全度判定条件情報（安全度判定条件テーブル１１３）を記憶部に記憶する安全度判定条件編集部１０６と、ファイアウォールエラーログ情報を基に安全度判定条件情報の各項目の重要度を計算し（例えば、処理Ｓ１００１）、プログラムごとに、安全度判定条件情報の各項目に対応するプログラム動作ログ情報の各項目が安全度判定条件を満たしているか否かの判定結果を計算し（例えば、処理Ｓ１００６）、各項目の重要度および判定結果を基に、プログラムごとの安全度を計算し（例えば、処理Ｓ１００７）、計算された安全度が予め設定された安全度の閾値（例えば、管理者へ警告する安全度の閾値７０１）より小さいとき、該当するプログラムの実行不可を告知する（例えば、処理Ｓ１０１０）安全度計算部１０７とを有することを特徴とする。
【０１０２】
安全度は、プログラムごとのセキュリティに対する点数として表され、安全度計算部１０７は、プログラムごとの点数をプログラムリスト情報（プログラムリストテーブル１１５）に登録することを特徴とする。
【０１０３】
本実施形態のセキュリティ管理システムによれば、つぎの効果が得られる。
（１）セキュリティの管理者がプログラムごとの点数（安全度）を参考にすることで、従来よりも容易にプログラムの実行可否判断を行うことができる。
（２）予め点数（安全度）の閾値を決めておけば、管理者がプログラムごとに実行抑止の要否を判断しなくても自動的にプログラムの起動を抑止することができる。
【０１０４】
本実施形態のセキュリティ管理システムは、実行を抑止する不正プログラム一覧（例えば、プログラムリストテーブル１１５の実行不可のもの）の更新を容易にするために、クライアントコンピュータからの動作ログおよびファイアウォールからのエラーログをもとに安全度の点数を算出し、不正プログラム一覧の更新可否の判断を支援することができる。
【符号の説明】
【０１０５】
１０    ネットワーク
１０１    ファイアウォール
１０２    セキュリティ管理コンピュータ（管理サーバ）
１０３    クライアントコンピュータ（クライアント）
１０４    ファイアウォールのエラーログ管理部
１０５    プログラムの動作ログ管理部
１０６    安全度判定条件編集部
１０７    安全度計算部
１０８    判定結果通知編集部
１０９    不正プログラムリスト配信部
１１０    データベース
１１１    ファイアウォールエラーログテーブル（ファイアウォールエラーログ情報）
１１２    プログラム動作ログテーブル（プログラム動作ログ情報）
１１３    安全度判定条件テーブル（安全度判定条件情報）
１１４    管理者への警告条件テーブル
１１５    プログラムリストテーブル（プログラムリスト情報）
１１６    不正プログラム実行制御部
１１７    プログラムの動作ログ収集部
１１８    不正プログラムリストファイル（不正プログラムリスト情報）
１１９    不正プログラム実行抑止部
２０１    ＣＰＵ
２０２    ＲＡＭ
２０３    記憶装置
２０４    バス
２０５    通信回路
５０１    安全度判定条件編集画面
７０１    管理者へ警告する安全度の閾値
９０１    プログラムの動作可否設定画面
【図１】
2010271917.tif 000003
【図２】
2010271917.tif 000004
【図３】
2010271917.tif 000005
【図４】
2010271917.tif 000006
【図５】
2010271917.tif 000007
【図６】
2010271917.tif 000008
【図７】
2010271917.tif 000009
【図８】
2010271917.tif 000010
【図９】
2010271917.tif 000011
【図１０】
2010271917.tif 000012
【図１１】
2010271917.tif 000013
【図１２】
2010271917.tif 000014
【図１３】
2010271917.tif 000015
【図１４】
2010271917.tif 000016
【図１５】
2010271917.tif 000017
【図１６】
2010271917.tif 000018
【図１７】
2010271917.tif 000019
【図１８】
2010271917.tif 000020
【図１９】
2010271917.tif 000021
【図２０】
2010271917.tif 000022