(57)【要約】      （修正有）【課題】悪意のないソフトウェアを誤って悪意のあるソフトウェアと評価してしまうことがないよう、ソフトウェアの評価精度を高める。【解決手段】ソフトウェア評価プログラムは、ソフトウェアへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数と、ソフトウェアが出力したログの出力量と該ログの出力回数との一方または両方を取得し、取得したリクエストの数と、取得したログの出力量と該ログの出力回数との一方または両方とに基づき、ソフトウェアの評価に関する情報を生成する処理をコンピュータに実行させる。【選択図】図１１
2018156561.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数と、前記ソフトウェアが出力したログの出力量と該ログの出力回数とのうち何れか一方または両方を取得し、
取得した前記リクエストの数と、取得した前記ログの出力量と該ログの出力回数とのうち何れか一方または両方とに基づき、前記ソフトウェアの評価に関する情報を生成する、
処理をコンピュータに実行させるソフトウェア評価プログラム。
【請求項２】
前記ソフトウェアの評価に関する情報は、前記ソフトウェアが前記ログを記憶するサーバへの攻撃に用いられたか否かの判定に用いる閾値であって、前記リクエスト１回あたりの前記ログの出力量または前記リクエスト１回あたりの該ログの出力回数に対する閾値である
請求項１記載のソフトウェア評価プログラム。
【請求項３】
前記リクエスト１回あたりの前記ログの出力量または前記リクエスト１回あたりの該ログの出力回数が、それぞれに対応する前記閾値を超える場合、前記ソフトウェアの動作を制限する
処理を前記コンピュータに実行させることを特徴とする請求項２記載のソフトウェア評価プログラム。
【請求項４】
前記ソフトウェアの評価に関する情報は、前記ソフトウェアが前記ログを記憶するサーバへの攻撃に用いられたか否かの判定に用いる閾値であって、前記リクエスト１回あたりの前記ログの出力量と前記リクエスト１回あたりの該ログの出力回数との組み合わせに対する閾値である
請求項１記載のソフトウェア評価プログラム。
【請求項５】
前記リクエスト１回あたりの前記ログの出力量と前記リクエスト１回あたりの該ログの出力回数との組み合わせが、前記閾値を超える場合、前記ソフトウェアの動作を制限する
処理を前記コンピュータに実行させることを特徴とする請求項４記載のソフトウェア評価プログラム。
【請求項６】
予め設定された前記ログの最大保存量が少なくなるに応じて、値が低くなる前記閾値を生成する
処理を前記コンピュータに実行させることを特徴とする請求項２乃至５のうちのいずれか１項に記載に記載のソフトウェア評価プログラム。
【請求項７】
ソフトウェアへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数と、前記ソフトウェアが出力したログの出力量と該ログの出力回数との一方または両方を取得し、
取得した前記リクエストの数と、取得した前記ログの出力量と該ログの出力回数との一方または両方とに基づき、前記ソフトウェアの評価に関する情報を生成する、
処理をコンピュータが実行することを特徴とするソフトウェア評価方法。
【請求項８】
ソフトウェアへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数と、前記ソフトウェアが出力したログの出力量と該ログの出力回数との一方または両方を取得する取得部と、
取得された前記リクエストの数と、取得された前記ログの出力量と該ログの出力回数との一方または両方とに基づき、前記ソフトウェアの評価に関する情報を生成部と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア評価プログラム、ソフトウェア評価方法、及び情報処理装置に関する。
【背景技術】
【０００２】
クラウド事業者が提供するサービスの一つとして、ログの管理や監視を行うLogging as a Service（ＬａａＳ）が用いられている。
【０００３】
ユーザが開発したアプリケーションの振る舞いや異常を記録するためのログが一定期間保存されることで、事後にサービスの状況の確認や分析、トラブル発生時の調査等に、保存されたログが用いられることがある。
【０００４】
ＬａａＳは、ユーザがクラウド上でアプリケーションを開発する際、ログの出力および管理を共通化する。ＬａａＳが用いられることにより、アプリケーション開発に関するログの実装や運用設計の簡素化が図られる。
【０００５】
一方で、ＬａａＳは、クラウドなどから提供されるWebのサービスに対して外部から攻撃（例えば、Denial of Service（ＤｏＳ）攻撃）を受ける可能性がある。ＬａａＳを用いたクラウド上のサービスには、マルチテナント方式と呼ばれる、単一のシステム及びリソースを複数の利用者が共有する方式が多く用いられている。
【０００６】
そのため、外部からの攻撃によってＬａａＳが停止させられた場合、多くのサービス利用者にログ欠損等の影響を与えることになる。従って、ＤｏＳ攻撃を受けたことを検知して対応することが求められる。
【０００７】
関連する技術として、アクセス数に基づいて大量アクセスであるか否かを判定する技術が提案されている（例えば、特許文献１を参照）。
【０００８】
また、関連する技術として、ログ中のパラメータに属するイベントの時間軸上の分布を周波数軸上の分布へ変換することで攻撃の周期性を考慮したログ分析を行う技術が提案されている（例えば、特許文献２を参照）。
【０００９】
また、関連する技術として、ファイアウォール及び不正侵入検知装置からログを受信し、ログに含まれる複数のイベントに関するデータについてその変化量を求める技術が提案されている（例えば、特許文献３を参照）。
【００１０】
また、関連する技術として、パケット蓄積量が該所定の閾値以上であるときは、該処理能力に応じた所定の間引条件に基づいて該受信パケットを破棄する技術が提案されている（例えば、特許文献４を参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−２２８１４０号公報
【特許文献２】特開２００５−１５１２８９号公報
【特許文献３】特開２００６−１８５２７号公報
【特許文献４】特開２００４−２４８１９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
例えば、特定のホストからのリクエストによるログ出力量が多い場合に、ＬａａＳが攻撃を受けたと判定することが考えられる。しかし、例えば、悪意のないソフトウェアが多くのユーザに利用され、多量のリクエストを受ける可能性がある。この場合、単一のソフトウェアからの多量のログ出力リクエストがＬａａＳに対して実行される。
【００１３】
従って、ログ出力量のみに基づいて攻撃であるかを判定すると、悪意のないソフトウェアを誤って悪意のあるソフトウェアと評価してしまうおそれがある。
１つの側面として、本発明は、ソフトウェアの評価精度を高めることを目的とする。
【課題を解決するための手段】
【００１４】
１つの態様では、ソフトウェア評価プログラムは、ソフトウェアへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数と、前記ソフトウェアが出力したログの出力量と該ログの出力回数との一方または両方を取得し、取得した前記リクエストの数と、取得した前記ログの出力量と該ログの出力回数との一方または両方とに基づき、前記ソフトウェアの評価に関する情報を生成する、処理をコンピュータに実行させる。
【発明の効果】
【００１５】
１つの側面によれば、ソフトウェアの評価精度を高めることができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態のシステムの全体構成の一例を示す図である。
【図２】ＬａａＳに対する攻撃の第１の例を示す図である。
【図３】ＬａａＳに対する攻撃の第２の例を示す図である。
【図４】ＬａａＳに対する攻撃の第３の例を示す図である。
【図５】ログ監視サーバの一例を示す図である。
【図６】アプリケーション管理情報の一例を示す図である。
【図７】ログ出力量区分情報の一例を示す図である。
【図８】ログ出力回数区分情報の一例を示す図である。
【図９】ログ出力分布情報の一例を示す図である。
【図１０】ログ最大保存量設定情報の一例を示す図である。
【図１１】出力回数についての閾値の生成方法の一例を示す図である。
【図１２】ログ出力回数とログ出力量の組についての閾値の生成方法の一例を示す図である。
【図１３】リクエスト検知処理の一例を示すフローチャートである。
【図１４】ログ出力検知処理の一例を示すフローチャートである。
【図１５】ログ監視処理の一例を示すフローチャート（その１）である。
【図１６】ログ監視処理の一例を示すフローチャート（その２）である。
【図１７】ログ監視処理の一例を示すフローチャート（その３）である。
【図１８】ログ監視サーバのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
＜実施形態のシステムの全体構成の一例＞
以下、図面を参照して、実施形態について説明する。図１は、実施形態のシステムの全体構成の一例を示す。実施形態のシステムは、クラウドシステム１と、ネットワーク５と、情報処理端末６とを含む。
【００１８】
クラウドシステム１は、ログ監視サーバ２とアプリケーションサーバ３とＬａａＳサーバ４とを含む。ログ監視サーバ２とアプリケーションサーバ３とＬａａＳサーバ４とは、（Local Area Network）LAN等のネットワークを介して相互に通信を行うことができる。
【００１９】
ログ監視サーバ２は、アプリケーションサーバ３が記憶するアプリケーションに関するログの監視を行う。ログ監視サーバ２は、情報処理装置、およびコンピュータの一例である。
【００２０】
アプリケーションサーバ３は、ユーザが開発したソフトウェア（アプリケーション）を記憶する。アプリケーションサーバ３は、例えば、Platform as a Service（PaaS）に用いられるサーバであって、該アプリケーションサーバ３が提供するプラットフォーム上で開発されたアプリケーションを記憶してもよい。
【００２１】
ＬａａＳサーバ４は、アプリケーションサーバ３が記憶するアプリケーションに関するログの記憶および管理を行う。
【００２２】
情報処理端末６は、ネットワーク５を介してアプリケーションサーバ３と通信を行う。情報処理端末６は、ユーザの操作に応じて、アプリケーションサーバ３に記憶されたアプリケーションにリクエストを送信する。
【００２３】
なお、実施形態のシステムは、図１に示す例には限られない。例えば、図１では、ログ監視サーバ２、アプリケーションサーバ３、ＬａａＳサーバ４、情報処理端末６はそれぞれ１台であるが、それぞれ複数台であってもよい。また、例えば、ログ監視サーバ２、アプリケーションサーバ３およびＬａａＳサーバ４の機能は、１台のサーバにより実現されてもよい。
【００２４】
＜ＬａａＳに対する攻撃の例＞
以下、ＬａａＳに対する攻撃の例を、図面を用いて説明する。図２は、ＬａａＳに対する攻撃の第１の例を示す図である。第１の例では、アプリケーションサーバ３上のアプリケーションに対するリクエストの数が少ないにもかかわらず、アプリケーションが多数のログを出力する。例えば、無限ループを行うプログラムが実装されたアプリケーションが開発された場合、該アプリケーションは、少数のリクエストに対して多数のログを出力する可能性がある。
【００２５】
図３は、ＬａａＳに対する攻撃の第２の例を示す図である。第２の例では、アプリケーションサーバ３には、複数のアプリケーションが記憶されている。そして、複数のアプリケーションは、それぞれ、相互にリクエストを繰り返し送るように開発されていることを想定する。
【００２６】
図３の例では、クラウドシステム１の外部からのリクエスト量に関わらず、アプリケーション間で多数の相互リクエストが行われることにより、多数のログがＬａａＳサーバ４に出力される。
【００２７】
図４は、ＬａａＳに対する攻撃の第３の例を示す図である。第１の例では、アプリケーションサーバ３上のアプリケーションに対する１回のリクエストに対して、アプリケーションが多量の（データ量が大きい）ログを出力する。第３の例では、例えば、所定のリクエストに対して、多量のログを出力するアプリケーションが開発されていることが想定される。
【００２８】
図２〜図４の例に示すような攻撃に対して、ログ監視サーバ２は、ログ出力が攻撃によるものか否かを判定して、対処することが求められる。しかし、アプリケーションは悪意の有無にかかわらず、多量または多数のログを出力する可能性があるため、ログの出力量または出力回数のみに基づいて攻撃か否かを判定した場合、誤った判定をするおそれがある。
【００２９】
例えば、アプリケーションに対するリクエストの数は、アプリケーションを利用するエンドユーザの数に依存するため、ログ出力の回数もエンドユーザの数に依存する。しかし、エンドユーザの数をクラウド事業者が把握していない可能性がある。従って、ログ監視サーバ２は、ＬａａＳに対するログ出力回数のみに基づいて、攻撃か否かを判定することは困難である。
【００３０】
また、一般的に、クラウド事業者は、サービス利用者が出力するログの中身を参照する権限を有していないため、ログ監視サーバ２は、リクエストの内容に基づいて、攻撃か否かを判定することは困難である。
【００３１】
また、ログ監視サーバ２は、振る舞い検知によって攻撃か否かの判定を行うことも考えられる。例えば、ログ監視サーバ２は、振る舞い検知として、トラフィックの監視を行い、学習を行うことが考えられる。そして、ログ監視サーバ２は、学習した内容に基づいて、通常では観測されない異常な量、異常な内容のリクエストを検知して、攻撃か否かを判定することが考えられる。
【００３２】
しかし、ＬａａＳを利用するアプリケーションは、悪意がない場合であっても、多数または多量のログ出力を行う可能性がある。例えば、高度な計算機能を有するアプリケーションなど、多くのログ出力を行う悪意のないアプリケーションが配備された場合、ログ監視サーバ２は、振る舞い検知を用いると、該アプリケーションのログ出力量が正常であると学習する。そして、ログ監視サーバ２は、学習後に、悪意のあるアプリケーションが、上記の多くのログ出力を行う悪意のないアプリケーションと同量のログ出力を行った場合、誤って該悪意のあるアプリケーションを悪意がないと判定するおそれがある。
【００３３】
ＬａａＳへの攻撃への対策として、特定のＩＰアドレスからのリクエストを制限するＦｉｒｅ  Ｗａｌｌ（ＦＷ）をクラウドシステム１とネットワーク５との間に設けることが考えられる。しかし、悪意のあるユーザが、クラウドシステム１内にＬａａＳへの攻撃を目的としたアプリケーションを正規の手順で配備した場合、そのアプリケーションは、ＦＷを経由せずに攻撃を行うことができる。従って、ＦＷによる対策はＬａａＳへの攻撃への対策として十分ではない。
【００３４】
また、ＤｏＳ攻撃の対策として、帯域制御によってアプリケーションサーバ３が受け付けるリクエストを制限する方法がある。しかし、ユーザがログを参照する際にリアルタイム性が要求される可能性があるため、帯域制御を行うとその要求を満たせない可能性がある。
【００３５】
＜ログ監視サーバの一例＞
図５は、ログ監視サーバ２の一例を示す図である。ログ監視サーバ２は、通信部１１とリクエスト検知部１２とログ出力検知部１３と取得部１４と更新部１５と生成部１６と判定部１７と制御部１８と記憶部１９とを含む。生成部１６は、算出部１６ａと閾値生成部１６ｂとを含む。
【００３６】
通信部１１は、アプリケーションサーバ３およびＬａａＳサーバ４と、各種データの送受信を行う。
【００３７】
リクエスト検知部１２は、予め登録された特定の送信元以外の送信元からのアプリケーションサーバ３へのリクエストを検知し、記憶部１９に記憶されるアプリケーション管理情報のリクエスト数を更新する。
【００３８】
予め登録された特定の送信元以外の送信元は、例えば、クラウドシステム１の外部の装置（例えば、図１の情報処理端末６）である。リクエスト検知部１２は、例えば、検知したリクエストの送信元が予め登録された特定の送信元であるか否かを、リクエストの送信元のドメインに基づいて判定する。
【００３９】
ログ出力検知部１３は、アプリケーションサーバ３からＬａａＳサーバ４へのログ出力を検知する。そして、ログ出力検知部１３は、記憶部１９に記憶されるアプリケーション管理情報のログ出力回数と、ログ出力量とを更新する。
【００４０】
取得部１４は、所定時間毎に、アプリケーションへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数を取得する。また、取得部１４は、所定時間毎に、アプリケーションが出力したログの出力量と該ログの出力回数とのうち何れか一方または両方を取得する。取得部１４は、例えば、アプリケーション管理情報に記録されたリクエスト数、ログ出力量、およびログ出力回数を取得する。
【００４１】
更新部１５は、取得部１４が取得したリクエスト数、ログ出力量、およびログ出力回数に基づいて、リクエスト１回あたりのログ出力回数とリクエスト１回あたりのログ出力量とをアプリケーション毎に算出する。
【００４２】
そして、更新部１５は、記憶部１９に記憶されるログ出力分布情報を更新する。ログ出力分布情報は、リクエスト１回あたりのログ出力回数とリクエスト１回あたりのログ出力量との分布を示す情報である。
【００４３】
生成部１６は、取得部１４が取得したリクエストの数と、ログの出力量と該ログの出力回数とのうち何れか一方または両方に基づき、ソフトウェアの評価に関する情報を生成する。ソフトウェアの評価に関する情報は、アプリケーションがＬａａＳサーバ４に対する攻撃に用いられたかの判定に用いる閾値である。また、ソフトウェアの評価に関する情報は、リクエスト１回あたりのログの出力量とリクエスト１回あたりのログの出力回数とのうち何れか一方または組み合わせに対する閾値である。
【００４４】
生成部１６は、予め設定されたログの最大保存量が少なくなるに応じて、値が低くなる閾値を生成する。算出部１６ａおよび閾値生成部１６ｂの処理については、詳しくは後述する。
【００４５】
判定部１７は、リクエスト１回あたりのログの出力量とリクエスト１回あたりの該ログの出力回数とのうち何れか一方または組み合わせが、生成された閾値を超えるかを判定することにより、アプリケーションがＬａａＳサーバ４に対する攻撃に用いられているかを判定する。
【００４６】
制御部１８は、アプリケーションがＬａａＳサーバ４に対する攻撃に用いられていると判定された場合、該アプリケーションに対する対応を行う。制御部１８は、例えば、該アプリケーションの動作を制限する制御を行う。
【００４７】
制御部１８は、例えば、ＬａａＳサーバ４に対する攻撃に用いられていると判定されたアプリケーションを停止させてもよい。制御部１８は、帯域制御を行うことにより、攻撃に用いられていると判定されたアプリケーションの通信量を制限してもよい。制御部１８は、クラウド事業者への通知や、ユーザへの通知、ログの保存抑制、ログ出力の停止、ログの内容取得等の対応を行ってもよい。
【００４８】
記憶部１９は、アプリケーション管理情報と、ログ出力量区分情報と、ログ出力回数区分情報と、ログ最大保存量設定情報と、ログ出力分布情報とを記憶する。記憶部１９が記憶する各情報について、詳しくは後述する。
【００４９】
＜記憶部に記憶される情報の例＞
記憶部１９に記憶される各情報について説明する。図６は、アプリケーション管理情報の一例を示す図である。図６に示すように、アプリケーション管理情報は、アプリケーションIdentification（ＩＤ）とアプリケーションUniform Resource Locator(ＵＲＬ)とを含む。また、アプリケーション管理情報は、アプリケーションＩＤおよびアプリケーションＵＲＬに対応付けられたリクエスト数とログ出力回数とログ出力量とを含む。図６の例におけるログ出力量の単位はＫＢ（キロバイト）である。
【００５０】
また、上述のように、リクエスト数は、リクエスト検知部１２により更新される。また、ログ出力回数とログ出力量とは、ログ出力検知部１３により更新される。
【００５１】
図７は、ログ出力量区分情報の一例を示す図である。図７に示すように、ログ出力量区分情報では、データ量ＩＤと、リクエスト１回あたりに出力されるログのデータ量とが対応付けられている。ログ出力量区分情報は、後述するログ出力分布情報の生成に用いられる。ログ監視サーバ２は、各データ量ＩＤに対応するデータ量の範囲を、実際のログの出力状況に合わせて適宜更新してもよい。
【００５２】
図８は、ログ出力回数区分情報の一例を示す図である。図７に示すように、ログ出力回数区分情報は、出力回数ＩＤと、リクエスト１回あたりのログ出力回数とが対応付けられている。ログ出力回数区分情報は、後述するログ出力分布情報の生成に用いられる。ログ監視サーバ２は、出力回数ＩＤに対応するログ出力回数の範囲を、ログの出力状況に合わせて適宜更新してもよい。
【００５３】
図９は、ログ出力分布情報の一例を示す図である。図９のログ出力分布情報に示す数値は、データ量ＩＤと出力回数ＩＤとの組み合わせについての発生回数を示す。例えば、ログ出力分布情報は、所定期間内に、出力回数ＩＤがＣ１であり、かつデータ量ＩＤがＤ１となる回数が１００であることを示している。
【００５４】
図１０は、ログ最大保存量設定情報の一例を示す図である。図１０に示すように、ログ最大保存量設定情報には、アプリケーションＩＤにログの最大保存量［ＧＢ：ギガバイト］が対応付けられている。ログの最大保存量は、例えば、クラウドシステム１のユーザにより契約時に予め設定される。
【００５５】
例えば、ユーザは、高度な計算を行うアプリケーションを利用する場合、一度のリクエストに対して多数の処理を行うため、多量のログを出力することを想定する。多量のログが出力された場合、ユーザにより、ログの最大保存量は大きな値に設定されることが想定される。
【００５６】
一方、ログの最大保存量を大きくするためには、追加の課金が求められる可能性があるため、悪意のあるアプリケーションには最大保存量が小さく設定される可能性が高い。従って、ログ監視サーバ２は、ログの最大保存量を、アプリケーションが攻撃に用いられているか否かの判定に利用することができる。
【００５７】
＜生成部の処理の例＞
以下、生成部１６の処理の例を説明する。図１１は、出力回数についての閾値の生成方法の一例を示す図である。図１１（ａ）は、出力回数と頻度との関係を示す２次元ヒストグラムである。
【００５８】
算出部１６ａは、ログ出力分布情報において、ログ出力分布情報の各データ量ＩＤ（Ｃ１〜Ｃ６）の発生回数合計をログ出力分布情報の全値の合計で割ることにより頻度を算出する。算出部１６ａは、算出した頻度に基づいて、図１１（ａ）に示すようなヒストグラムを作成する。また、算出部１６ａは、作成したヒストグラムが、出力回数が負の値の領域においても同様の分布になると仮定して、近似する正規分布を算出する。
【００５９】
そして、算出部１６ａは、正規分布において、各区分の頻度を加算した値の、各区分の頻度の累計値に対する割合が９９％となる位置の頻度を基準値Ｚａｌｌとする。基準値Ｚａｌｌは、頻度の累計値に対する割合が９９％以外の位置の頻度であってもよい。図１１（ａ）に示す例では、Ｃ１〜Ｃ６の頻度累計に対してＣ１〜Ｃ５の頻度累計が９９％であることを示している。
【００６０】
そして、算出部１６ａは、記憶部１９に記憶されたログ最大保存量設定情報に基づいて、全アプリケーションのログ最大保存量の平均値Ｃａｖｇを算出する。そして、算出部１６ａは、Ｚａｌｌ×Ｃａｖｇを算出し、算出結果を定数ａとする。
【００６１】
図１１（ｂ）は、閾値を生成する対象アプリケーションの出力回数と頻度との関係を示す２次元ヒストグラムの一例である。以下、閾値を生成する対象アプリケーションを単に対象アプリケーションと記載することがある。閾値生成部１６ｂは、対象アプリケーションのログの最大保存量Ｃを記憶部１９に記憶されたログ最大保存量設定情報から取得する。
【００６２】
そして、閾値生成部１６ｂは、ａ÷Ｃを算出し、算出結果を対象アプリケーションの基準値Ｚｔｈｄとする。そして、閾値生成部１６ｂは、閾値Ｚｔｈｄを示す直線と正規分布との交点における、リクエスト１回あたりのログ出力回数を、アプリケーションがＬａａｓに対する攻撃に用いられているか否かの判定に用いる閾値Ｒに設定する。
【００６３】
なお、図１１に示す例において、リクエスト１回あたりのログ出力回数についての閾値の生成を説明したが、生成部１６は、リクエスト１回あたりのログ出力量についても、同様の方法で閾値を生成することができる。
【００６４】
以上のように、基準値Ｚｔｈｄはａ÷Ｃであるため、対象アプリケーションのログの最大保存量Ｃが少なくなるに応じて、基準値Ｚｔｈｄは大きくなる。また、図１１（ｂ）に示すように、基準値Ｚｔｈｄは大きくなるに応じて、閾値Ｒは小さくなる。上述したように、悪意のあるアプリケーションほど、最大保存量Ｃを少ない値に設定している可能性が高い。すなわち、ログ監視サーバ２は、最大保存量Ｃが少ないほど、低い閾値Ｒを生成することにより、アプリケーションがログを記憶するサーバへの攻撃に用いられたことを検出しやすくする。
【００６５】
図１２は、ログ出力回数とログ出力量の組についての閾値の生成方法の一例を示す図である。図１２（ａ）は、出力回数および出力量の組と頻度との関係を示す３次元ヒストグラムを示す図である。図１２（ｂ）は、図１２（ａ）に対応する、出力回数および出力量の組と頻度との関係を示す図である。
【００６６】
算出部１６ａは、図９に示すログ出力分布情報の各データ量ＩＤ（Ｃ１〜Ｃ６）および各出力回数ＩＤ（Ｄ１〜Ｄ６）の組の値を、ログ出力分布情報の全値の合計で割ることにより頻度を算出する。
【００６７】
算出部１６ａは、算出した頻度に基づいて、図１２（ａ）に示すような３次元ヒストグラムを作成する。また、算出部１６ａは、作成した３次元ヒストグラムが、出力回数および出力量が負の値の領域においても同様の分布になると仮定して、近似する正規分布を算出する。
【００６８】
そして、算出部１６ａは、正規分布において、各区分の頻度を加算した値の、各区分の頻度の累計値に対する割合が９９％となる位置の頻度を基準値Ｚａｌｌとする。図１２（ａ）に示す例では、曲線Ｂにおける頻度が基準値Ｚａｌｌとなる。
【００６９】
そして、算出部１６ａは、記憶部１９に記憶されたログ最大保存量設定情報に基づいて、各アプリケーションのログ最大保存量の平均値Ｃａｖｇを算出する。そして、算出部１６ａは、Ｚａｌｌ×Ｃａｖｇを算出し、算出結果を定数ａとする。
【００７０】
図１２（ｃ）は、対象アプリケーションの出力回数および出力量の組に対する閾値を生成する際に用いられる３次元ヒストグラムの一例を示す。閾値生成部１６ｂは、対象アプリケーションのログの最大保存量Ｃを記憶部１９に記憶されたログ最大保存量設定情報から取得する。
【００７１】
そして、閾値生成部１６ｂは、ａ÷Ｃを算出し、算出結果を対象アプリケーションの基準値Ｚｔｈｄとする。そして、閾値生成部１６ｂは、閾値Ｚｔｈｄを通る平面と正規分布とが交わる曲線Ｒを、対象アプリケーションがＬａａｓサーバ４に対する攻撃に用いられたか否かの判定に用いる閾値に設定する。
【００７２】
該閾値は、リクエスト１回あたりの出力回数およびリクエスト１回あたりの出力量の組に対する閾値である。例えば、判定部１７は、図１２（ｃ）において、出力回数と出力量との組が示す部分の少なくとも一部が閾値Ｒより外側（斜線の範囲外）にある場合、アプリケーションが攻撃に用いられたと判定してもよい。
【００７３】
図１２に示す例では、図１１に示す例と同様に、基準値Ｚｔｈｄはａ÷Ｃであるため、対象アプリケーションのログの最大保存量Ｃが少なくなるに応じて、基準値Ｚｔｈｄは大きくなる。また、図１２（ｃ）に示すように、基準値Ｚｔｈｄは大きくなるに応じて、閾値Ｒの範囲は小さくなる。従って、アプリケーションがログを記憶するサーバへの攻撃に用いられたことを検出しやすくする。
【００７４】
また、ログ監視サーバ２は、リクエスト１回あたりのログ出力量とリクエスト１回あたりのログ出力回数との両方を用いることにより、ログ出力回数とログ出力量の両方を増加させる攻撃を検出しやすくすることができる。
【００７５】
＜実施形態の処理の流れを示すフローチャート＞
図１３は、リクエスト検知処理の一例を示すフローチャートである。リクエスト検知部１２は、予め登録された特定の送信元以外の送信元からのアプリケーションサーバ３へのリクエストを検知した場合（ステップＳ１０１でＹＥＳ）、記憶部１９に記憶されるアプリケーション管理情報のリクエスト数を更新する（ステップＳ１０２）。
【００７６】
リクエスト検知部１２は、予め登録された特定の送信元以外の送信元からのアプリケーションサーバ３へのリクエストを検知しない場合（ステップＳ１０２でＮＯ）、検知するまで待機する。
【００７７】
図１４は、ログ出力検知処理の一例を示すフローチャートである。ログ出力検知部１３は、アプリケーションサーバ３からＬａａＳサーバ４へのログ出力を検知した場合（ステップＳ２０１でＹＥＳ）、記憶部１９に記憶されるアプリケーション管理情報のログ出力量を更新する（ステップＳ２０２）。そして、ログ出力検知部１３は、アプリケーション管理情報のログ出力回数を更新する（ステップＳ２０３）。
【００７８】
ログ出力検知部１３は、アプリケーションサーバ３からＬａａＳサーバ４へのログ出力を検知しない場合（ステップＳ２０１でＮＯ）、検知するまで待機する。
【００７９】
図１５〜図１７は、ログ監視処理の一例を示すフローチャートである。ログ監視サーバ２は、前回のログ監視処理（例えば、後述するステップＳ３０１でＹＥＳとなった時点）から所定時間経過したかを判定する（ステップＳ３０１）。所定時間経過している場合（ステップＳ３０１でＹＥＳ）、ログ監視サーバ２は、各アプリケーションに対する繰り返し処理を開始する（ステップＳ３０２）。
【００８０】
取得部１４は、対象アプリケーションへのリクエストのうち、予め登録された特定の送信元以外の送信元からのリクエストの数と、アプリケーションが出力したログの出力量と該ログの出力回数との一方または両方を取得する（ステップＳ３０３）。取得部１４は、例えば、アプリケーション管理情報に記録された対象アプリケーションのリクエスト数、ログ出力量、およびログ出力回数を取得する。
【００８１】
更新部１５は、取得部１４が取得したリクエスト数、ログ出力量、およびログ出力回数に基づいて、リクエスト１回あたりのログ出力回数とリクエスト１回あたりのログ出力量とを算出する（ステップＳ３０４）。
【００８２】
そして、更新部１５は、ステップＳ３０４の算出結果に基づいて、記憶部１９に記憶されるログ出力分布情報を更新する（ステップＳ３０５）。更新部１５は、例えば、ステップＳ３０４の算出結果と、ログ出力量区分情報（例えば、図７）とログ出力回数区分情報（例えば、図８）とに基づいて、ログ出力分布情報（例えば、図９）を更新する。
【００８３】
そして、更新部１５は、アプリケーション管理情報における対象アプリケーションのリクエスト数、ログ出力量、およびログ出力回数を初期化する（ステップＳ３０６）。更新部１５は、例えば、アプリケーション管理情報における対象アプリケーションのリクエスト数、ログ出力量、およびログ出力回数を「０」にする。ログ監視サーバ２は、アプリケーション管理情報に含まれる全てのアプリケーションに対してステップＳ３０３〜Ｓ３０６の処理を終了したら、繰り返し処理を終了する（ステップＳ３０７）。
【００８４】
算出部１６ａは、ログ出力分布情報の各データ量ＩＤおよび各出力回数ＩＤの組の値を、ログ出力分布情報の全値の合計で割ることにより頻度を算出する（ステップＳ３１１）。算出部１６ａは、ログ出力回数に対する閾値を生成する場合、ログ出力分布情報の各出力回数ＩＤの発生回数合計をログ出力分布情報の全値の合計で割ることにより頻度を算出してもよい。算出部１６ａは、ログ出力量に対する閾値を生成する場合、ログ出力分布情報における各出力量ＩＤの発生回数合計をログ出力分布情報の全値の合計で割ることにより頻度を算出してもよい。
【００８５】
算出部１６ａは、算出した頻度に基づいて、ヒストグラムを作成する（ステップＳ３１２）。また、算出部１６ａは、作成したヒストグラムが、出力回数が負の値の領域においても同様の分布になると仮定して、近似する正規分布を算出する（ステップＳ３１３）。
【００８６】
算出部１６ａは、正規分布に含まれる頻度の割合に基づいて、基準値Ｚａｌｌを算出する（ステップＳ３１４）。例えば、算出部１６ａは、正規分布において、頻度の累計値に対する割合が所定割合となる位置の頻度を基準値Ｚａｌｌとする。
【００８７】
そして、算出部１６ａは、記憶部１９に記憶されたログ最大保存量設定情報に基づいて、各アプリケーションのログ最大保存量の平均値Ｃａｖｇを算出する（ステップＳ３１５）。そして、算出部１６ａは、Ｚａｌｌ×Ｃａｖｇを算出し、算出結果を定数ａとする（ステップＳ３１６）。
【００８８】
ログ監視サーバ２は、各アプリケーションに対する繰り返し処理を開始する（ステップＳ３２１）。閾値生成部１６ｂは、対象アプリケーションのログの最大保存量Ｃを記憶部１９に記憶されたログ最大保存量設定情報から取得する（ステップＳ３２２）。
【００８９】
そして、そして、閾値生成部１６ｂは、ａ÷Ｃを算出し、算出結果を対象アプリケーションの基準値Ｚｔｈｄとする（ステップＳ３２３）。そして、閾値生成部１６ｂは、閾値ＺｔｈｄとステップＳ３０３で算出した正規分布に基づいて、アプリケーションがＬａａｓに対する攻撃に用いられているか否かの判定に用いる閾値Ｒを設定する（ステップＳ３２４）。
【００９０】
そして、閾値生成部１６ｂは、ログ出力回数またはログ出力量のいずれか一方に関する閾値Ｒを生成する場合、閾値Ｚｔｈｄを示す直線と正規分布との交点におけるログ出力回数を閾値Ｒに設定する。閾値生成部１６ｂは、リクエスト１回あたりの出力回数およびリクエスト１回あたりの出力量の組に対する閾値を生成する場合、閾値Ｚｔｈｄを通る平面と正規分布とが交わる曲線Ｒを閾値に設定する（図１２（ｃ）参照）。
【００９１】
判定部１７は、リクエスト１回あたりのログの出力量とリクエスト１回あたりの該ログの出力回数とのうち何れか一方または組み合わせが、生成された閾値を超えるかを判定する（ステップＳ３２５）。ステップＳ３２５でＹＥＳの場合、制御部１８は、該アプリケーションへの対応を行う（ステップＳ３２６）。例えば、制御部１８は、該アプリケーションの動作を制限する制御を行う。
【００９２】
ログ監視サーバ２は、全てのアプリケーションに対してステップＳ３２２〜Ｓ３２６の処理を行った場合、繰り返し処理を終了する（ステップＳ３２７）。ログ監視サーバ２は、クラウド事業者等から、監視終了指示を受けた場合（ステップＳ３２８でＹＥＳ）、監視処理を終了する。ログ監視サーバ２は、クラウド事業者等から、監視終了指示を受けていない場合（ステップＳ３２８でＮＯ）、ステップＳ３０１に戻る。
【００９３】
以上のように、ログ監視サーバ２は、ログの出力量とリクエスト１回あたりの該ログの出力回数とのうち何れか一方または両方に基づいて、アプリケーションがＬａａＳサーバ４に対する攻撃に用いられているかを判定し、対応する。
【００９４】
従って、ログ監視サーバ２は、例えば、リクエストが少ないにもかかわらず多量または多数のログ出力を行う悪意のある（攻撃に用いられる）アプリケーションを検出することができる。また、ログ監視サーバ２は、アプリケーションへのリクエストが増加したことにより、通常時よりも多量または多数のログ出力が行われた場合に、悪意のないアプリケーションを悪意があると誤って判定することが抑制される。すなわち、ログ監視サーバ２は、悪意のあるアプリケーションの判定精度を向上させることができる。
【００９５】
また、ログ監視サーバ２は、クラウドシステム１内部ではなく、外部の送信元（予め登録されていない送信元）からのリクエストの回数を用いた判定を行う。従って、クラウドシステム１内部にある複数のアプリケーションが相互にリクエストを行う場合等に悪意のあるアプリケーションを検出することができる。
【００９６】
さらに、ログ監視サーバ２は、ユーザにより設定されたログの最大保存量を用いて閾値を生成する。従って、アプリケーションが出力する可能性のあるログの量をある程度予測し、定常的に多くのログ出力を行うアプリケーションを誤って悪意のあるアプリケーションであると判定することを避けることができる。
【００９７】
また、悪意のあるアプリケーションは、ログの最大保存量が少なく設定されている可能性が高いため、ログ監視サーバ２は、ログの最大保存量を用いることにより、悪意のあるアプリケーションの判定精度をより向上させることができる。
【００９８】
＜ログ監視サーバのハードウェア構成の一例＞
次に、図１８の例を参照して、ログ監視サーバ２のハードウェア構成の一例を説明する。図１８の例に示すように、バス１００に対して、プロセッサ１１１とRandom Access Memory(RAM)１１２とRead Only Memory(ROM)１１３とが接続される。また、該バス１００に対して、補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６とが接続される。
【００９９】
プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態における処理を行うソフトウェア評価プログラムが適用されてもよい。
【０１００】
ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１８と接続可能に設けられている。
【０１０１】
可搬型記録媒体１１８としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD))、半導体メモリ等を適用してもよい。この可搬型記録媒体１１８に実施形態の処理を行うソフトウェア評価プログラムが記録されていてもよい。
【０１０２】
図５に示す記憶部１９は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。図５に示す通信部１１は、通信インタフェース１１６により実現されてもよい。図５に示すリクエスト検知部１２とログ出力検知部１３と取得部１４と更新部１５と生成部１６と判定部１７と制御部１８は、与えられたソフトウェア評価プログラムをプロセッサ１１１が実行することにより実現されてもよい。
【０１０３】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１８は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０１０４】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１０５】
１    クラウドシステム
２    ログ監視サーバ
３    アプリケーションサーバ
４    Ｌａａｓサーバ
５    ネットワーク
６    情報処理端末
１１    通信部
１２    リクエスト検知部
１３    ログ出力検知部
１４    取得部
１５    更新部
１６    生成部
１７    判定部
１８    制御部
１９    記憶部
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
【図１】
2018156561.tif 000003
【図２】
2018156561.tif 000004
【図３】
2018156561.tif 000005
【図４】
2018156561.tif 000006
【図５】
2018156561.tif 000007
【図６】
2018156561.tif 000008
【図７】
2018156561.tif 000009
【図８】
2018156561.tif 000010
【図９】
2018156561.tif 000011
【図１０】
2018156561.tif 000012
【図１１】
2018156561.tif 000013
【図１２】
2018156561.tif 000014
【図１３】
2018156561.tif 000015
【図１４】
2018156561.tif 000016
【図１５】
2018156561.tif 000017
【図１６】
2018156561.tif 000018
【図１７】
2018156561.tif 000019
【図１８】
2018156561.tif 000020