(57)【要約】      （修正有）【課題】不適切なプログラムを検知する能力に応じて、動作させるエンジンを選定することができる情報処理装置及びプログラムを提供する。【解決手段】ユーザ端末装置１は、サーバ装置２から送信された通信データ２ａの特徴を示す通信特徴データ１０２ａと、エンジンごとの不適切なプログラムを検知する能力を示す能力情報とを対応付けたエンジン特徴データ１１５Ａを記憶する記憶部と、サーバ装置２から送信される通信データ２ａから通信特徴データ１０２ａを抽出する抽出手段１０２と、抽出された通信特徴データ１０２ａと記憶部に記憶されたエンジン特徴データ１１５Ａとに基づいて動作させるエンジンを選定する選定手段１０４と、を備える。【選択図】図３
2019053421.tif 000002
【特許請求の範囲】
【請求項１】
不適切なプログラムを検知する複数のエンジンを備えた情報処理装置であって、
外部装置から送信された通信データの特徴を示す第１の特徴情報と、エンジンごとの不適切なプログラムを検知する能力を示す能力情報とを対応付けた第２の特徴情報を記憶する記憶手段と、
前記外部装置から送信される前記通信データから前記第１の特徴情報を抽出する抽出手段と、
抽出された前記第１の特徴情報と前記記憶手段に記憶された前記第２の特徴情報とに基づいて前記複数のエンジンの中から動作させるエンジンを選定する選定手段と、
を備えた情報処理装置。
【請求項２】
前記選定手段は、前記抽出された前記第１の特徴情報と、前記記憶手段に記憶された前記第２の特徴情報に含まれる第１の特徴情報とが一致した場合に、前記第２の特徴情報の前記能力情報に基づいて前記動作させるエンジンを選定する、
請求項１に記載の情報処理装置。
【請求項３】
前記選定手段は、前記能力情報が予め定められた条件を満たした場合に、前記条件を満たした前記能力情報に対応したエンジンを動作させるエンジンとして選定する、
請求項２に記載の情報処理装置。
【請求項４】
前記能力情報は、前記エンジンが前記不適切なプログラムを検知した回数である、
請求項３に記載の情報処理装置。
【請求項５】
前記複数のエンジンの特徴を学習する学習手段をさらに備え、
前記学習手段は、前記第２の特徴情報を学習結果として前記記憶手段が記憶する前記第２の特徴情報を更新する、
請求項１から４の何れか１項に記載の情報処理装置。
【請求項６】
前記学習手段は、前記不適切なプログラムを前記複数のエンジンのそれぞれに検査させ、エンジンごとの前記検査の結果を集計した集計データを前記能力情報として生成し、前記記憶手段が記憶する前記能力情報を更新する、
請求項５に記載の情報処理装置。
【請求項７】
前記不適切なプログラムは、前記選定手段によって選定されたエンジンが検知した不適切なプログラムである、
請求項６に記載の情報処理装置。
【請求項８】
前記第２の特徴情報は、前記複数のエンジンの特徴を学習する学習装置から送信された学習結果である、
請求項１から４の何れか１項に記載の情報処理装置。
【請求項９】
外部装置から送信された通信データの特徴を示す第１の特徴情報と、不適切なプログラムを検知する複数のエンジンが前記不適切なプログラムを検知する能力を示す能力情報とを対応付けた第２の特徴情報を記憶する記憶手段を有するコンピュータを、
前記外部装置から送信される前記通信データから前記第１の特徴情報を抽出する抽出手段と、
抽出された前記第１の特徴情報と前記記憶手段に記憶された前記第２の特徴情報とに基づいて前記複数のエンジンの中から動作させるエンジンを選定する選定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータウイルス等の不適切なプログラムを検知するエンジンを備えたセキュリティを強化する方法が提供されている（例えば、特許文献１参照）。
【０００３】
特許文献１に記載された適応型セキュリティを実現する方法は、単一のエンジン（ノード）に関するデータストリームを監視して、エンジンの特徴及びネットワーク環境を学習するステップと、学習したエンジンの特徴及びネットワーク環境に基づいて適応型閾値を決定するステップと、を備えている。この情報処理装置によれば、エンジンの特徴やネットワーク環境に応じてエンジンの閾値を変化させることで、エンジンの動作状態を制御することができるとされている。
【０００４】
特許文献２に記載されたセキュア電子通信配信方法は、１つ以上のエンジンを備え、このエンジンに対すて複数のテストを課し、このテスト結果を蓄積した累積データに基づいて、電子通信に関する異常が存在するか否かを判定する。この情報処理装置によれば、複数のテスト実施に基づいてホワイトリストの作成できるので、不適切なプログラムに対する誤検知を減ずることができるとされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５０４１０４号公報
【特許文献２】特表２００５−５２０２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、複数のエンジンにおける不適切なプログラムを検知する能力に応じて、動作させるエンジンを選定することができる情報処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
［１］不適切なプログラムを検知する複数のエンジンを備えた情報処理装置であって、外部装置から送信された通信データの特徴を示す第１の特徴情報と、エンジンごとの不適切なプログラムを検知する能力を示す能力情報とを対応付けた第２の特徴情報を記憶する記憶手段と、前記外部装置から送信される前記通信データから前記第１の特徴情報を抽出する抽出手段と、抽出された前記第１の特徴情報と前記記憶手段に記憶された前記第２の特徴情報とに基づいて前記複数のエンジンの中から動作させるエンジンを選定する選定手段と、を備えた情報処理装置。
［２］前記選定手段は、前記抽出された前記第１の特徴情報と、前記記憶手段に記憶された前記第２の特徴情報に含まれる第１の特徴情報とが一致した場合に、前記第２の特徴情報の前記能力情報に基づいて前記動作させるエンジンを選定する、前記［１］に記載の情報処理装置。
［３］前記選定手段は、前記能力情報が予め定められた条件を満たした場合に、前記条件を満たした前記能力情報に対応したエンジンを動作させるエンジンとして選定する、前記［２］に記載の情報処理装置。
［４］前記能力情報は、前記エンジンが前記不適切なプログラムを検知した回数である、前記［３］に記載の情報処理装置。
［５］前記複数のエンジンの特徴を学習する学習手段をさらに備え、前記学習手段は、前記第２の特徴情報を学習結果として前記記憶手段が記憶する前記第２の特徴情報を更新する、前記［１］から［４］の何れか１つに記載の情報処理装置。
［６］前記学習手段は、前記不適切なプログラムを前記複数のエンジンのそれぞれに検査させ、エンジンごとの前記検査の結果を集計した集計データを前記能力情報として生成し、前記記憶手段が記憶する前記能力情報を更新する、前記［５］に記載の情報処理装置。
［７］前記不適切なプログラムは、前記選定手段によって選定されたエンジンが検知した不適切なプログラムである、前記［６］に記載の情報処理装置。
［８］前記第２の特徴情報は、前記複数のエンジンの特徴を学習する学習装置から送信された学習結果である、前記［１］から［４］の何れか１つに記載の情報処理装置。
［９］外部装置から送信された通信データの特徴を示す第１の特徴情報と、不適切なプログラムを検知する複数のエンジンが前記不適切なプログラムを検知する能力を示す能力情報とを対応付けた第２の特徴情報を記憶する記憶手段を有するコンピュータを、外部装置から送信された通信データの特徴を示す第１の特徴情報と、不適切なプログラムを検知する複数のエンジンが前記不適切なプログラムを検知する能力を示す能力情報とを対応付けた第２の特徴情報を記憶する記憶手段と、前記外部装置から送信される前記通信データから前記第１の特徴情報を抽出する抽出手段と、抽出された前記第１の特徴情報と前記記憶手段に記憶された前記第２の特徴情報とに基づいて前記複数のエンジンの中から動作させるエンジンを選定する選定手段、として機能させるためのプログラム。
【発明の効果】
【０００８】
請求項１、９に係る発明によれば、複数のエンジンにおける不適切なプログラムを検知する能力に応じて、動作させるエンジンを選定することができるすることができる。
請求項２に係る発明によれば、通信データの特徴に適した特徴を備えるエンジンを動作するエンジンとして選定することができる。
請求項３に係る発明によれば、複数のエンジンにおけるそれぞれの能力の内容に基づいたエンジンの選定をすることができる。
請求項４に係る発明によれば、複数のエンジンのそれぞれの能力に対する定量的な評価に基づいて、動作するエンジンを選定することができる。
請求項５に係る発明によれば、複数のエンジンに対して実行した学習結果に応じて動作するエンジンを選定することができる。
請求項６に係る発明によれば、複数のエンジンの検査結果を集計した集計データに基づいて能力情報を生成するので、学習結果の精度を向上させることができる。
請求項７に係る発明によれば、選定手段によって選定されたエンジンの動作による出力情報を学習手段の入力情報に利用することができる。
請求項８に係る発明によれば、学習機能を外部装置に構築することができるので、情報処理に対する負荷を減ずることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の第１の実施の形態に係る情報処理システムの概略の構成例を示す図である。
【図２】図２は、ユーザ端末装置の構成例を示すブロック図である。
【図３】図３は、第１の実施の形態に係る情報処理システムにおける処理の流れを示すフロー図である。
【図４】図４は、エンジン特徴テーブルの一例を示す図である。
【図５】図５は、ユーザ端末装置の学習手段における処理の一例を示すフローチャートである。
【図６】図６は、ユーザ端末装置の選定手段における処理の一例を示すフローチャートである。
【図７】図７は、本発明の第２の実施の形態に係る情報処理システムの概略の構成を示す図である。
【図８】図８は、第２の実施の形態に係る情報処理システムにおける処理の流れを示すフロー図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
【００１１】
［実施の形態の要約］
本実施の形態に係る情報処理装置は、不適切なプログラムを検知する複数のエンジンを備えた情報処理装置であって、外部装置から送信された通信データの特徴を示す第１の特徴情報と、エンジンごとの不適切なプログラムを検知する能力を示す能力情報とを対応付けた第２の特徴情報を記憶する記憶手段と、前記外部装置から送信される前記通信データから前記第１の特徴情報を抽出する抽出手段と、抽出された前記第１の特徴情報と記憶された前記第２の特徴情報とに基づいて前記複数のエンジンの中から動作させるエンジンを選定する選定手段と、を備えている。
【００１２】
「不適切なプログラム」とは、ユーザが意図していない処理を行うプログラムをいう。不適切なプログラムには、例えば、コンピュータウイルス、ワーム、トロイの木馬、マルウェア、スパイウェア、迷惑メール等がある。「通信データ」は、Ｗｅｂページ、メール、文書、画像等を含む。「エンジン」とは、不適切なプログラムを検知するためのソフトウェアをいう。
【００１３】
［第１の実施の形態］
（情報処理システムの構成）
図１は、本発明の第１の実施の形態に係る情報処理システムの概略の構成例を示す図である。
【００１４】
この情報処理システム９は、ユーザ端末装置１と、サーバ装置２とを有し、ユーザ端末装置１とサーバ装置２とがネットワーク３を介して接続されている。ユーザ端末装置１は、情報処理装置の一例である。サーバ装置２は、外部装置の一例である。
【００１５】
ユーザ端末装置１は、例えばパーソナルコンピュータ、多機能型電話機（スマートフォン）等である。サーバ装置２は、例えばウェブサーバ、メールサーバ等である。
【００１６】
ネットワーク３は、ＬＡＮ（Local Area Network）やイントラネット等のコンピュータネットワークであり、有線（電気ケーブル、光ケーブル等）、無線（電波、赤外線等）を問わない。
【００１７】
情報処理システム９において、ユーザ端末装置１からサーバ装置２宛のリクエストが送出されると、リクエストがネットワーク３を介して宛先であるサーバ装置２に伝達される。そして、サーバ装置２からリクエストに対するレスポンスがネットワーク３を介してユーザ端末装置１へ送出される。
【００１８】
（ユーザ端末装置の構成）
図２は、本実施の形態に係るユーザ端末装置１の構成例を示すブロック図である。また、ユーザ端末装置１は、ユーザ端末装置１は、コンピュータウイルス等の不適切なプログラムを検知する複数のエンジン（後述の第１乃至第３エンジン１１１〜１１３）を備えている。これらのエンジン１１１〜１１３は、それぞれ異なる特徴を有するエンジンであり、例えば、１つはモバイルに強いエンジンであり、あるいはオフィス文書に強いエンジンである。また、ユーザ端末装置１は、本装置１の各部を制御する制御部１０と、各種の情報を記憶する記憶部１１と、ネットワーク３を介して外部と通信する通信部１２とを備える。記憶部１１は、記憶手段の一例である。
【００１９】
制御部１０は、ＣＰＵ（Central Processing Unit）、インターフェース等から構成されている。ＣＰＵは、記憶部１１に記憶されたプログラム１１０に従って動作することにより受信手段１０１、抽出手段１０２、学習手段１０３、選定手段１０４、検知手段１０５等として機能する。なお、各手段１０１〜１０５の詳細については後述する。
【００２０】
記憶部１１は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスク等から構成されている。記憶部１１には、プログラム１１０、第１乃至第３エンジン１１１〜１１３、ファイル特徴テーブル１１４、エンジン特徴テーブル（図４参照）等が記憶される。本実施の形態では、複数のエンジンとして第１乃至第３エンジン１１１〜１１３の３つのエンジンで構成されているが、エンジンの数はこれに限定されず、例えば２つ又は４つ以上のエンジンで構成されていてもよい。なお、本明細書において、テーブルに情報を書き込む場合に記録又は登録を用い、記憶部に情報を書き込む場合に記憶を用いる。
【００２１】
ファイル特徴テーブル１１４は、ファイル形式が登録される「ファイル形式」欄と、ヘッダ情報が登録される「ヘッダ情報」欄とを項目として備えている。ファイル形式は、例えばＰＤＦ、ＪＰＥＧ等のファイル形式を示す情報であり、ヘッダ情報は、例えばファイル形式を識別するためのヘッダ値を示す情報である。つまり、ファイル特徴テーブル１１４には、データのヘッダ値とデータのファイル形式とが対応付けられたデータが登録されている。
【００２２】
次に、制御部１０の各手段について、図３を参照して説明する。図３は、第１の実施の形態に係る情報処理システム９における処理の流れを示すフロー図である。
【００２３】
受信手段１０１は、サーバ装置２から送られてきた通信データ２ａを受信する。
【００２４】
抽出手段１０２は、サーバ装置２から送信される通信データ２ａとファイル特徴テーブル１１４とに基づいて、通信データ２ａから通信データ２ａの特徴（以下「通信特徴」ともいう。）を抽出して、通信特徴データ１０２ａを生成する。通信特徴データ１０２ａには、通信データ２ａのヘッダ情報と、通信データ２ａの送信元の端末（ここではサーバ装置２）のＯＳの種類と、通信データ２ａのファイル形式とが含まれる。ＯＳの種類及びファイル形式は、通信特徴を示す第１の特徴情報の一例である。
【００２５】
ＯＳの種類としては、例えばｉＯＳ、Ｗｉｎｄｏｗｓ（登録商標）等があげられる。ファイル形式としては、例えばＰＤＦ、ＪＰＥＧ等があげられる。ただし、通信特徴データとしては、ＯＳの種類、ファイル形式に限定されず、例えば接続先ドメインを通信特徴として設定してもよい。
【００２６】
抽出手段１０２は、通信データ２ａのファイルのヘッダからヘッダ情報を読み込んで、読み込んだヘッダ情報と一致するヘッダ情報をファイル特徴テーブル１１４に対して検索し、一致したファイル特徴テーブル１１４のヘッダ情報を含むデータのファイル形式を取得する。これにより、通信データ２ａのファイル形式の判定が可能である。このように、抽出手段１０２は、通信データ２ａとファイル特徴テーブル１１４とに基づいて、通信特徴データ１０２ａを生成する。
【００２７】
学習手段１０３は、第１乃至第３エンジン１１１〜１１３のそれぞれの特徴を学習する。選定手段１０４は、学習手段１０３が学習した学習結果に応じて動作するエンジンを選定することができる。また、学習手段１０３は、検知手段１０５が出力する検知結果データ１０５ａに基づいてエンジン特徴データ１１５Ａ（具体例として図４に示すエンジン特徴データ１１５ａ〜１１５ｄ）を生成する。学習手段１０３の学習方法の詳細については後述する。
【００２８】
学習手段１０３は、生成したエンジン特徴データ１１５Ａを学習結果として記憶部１１が記憶するエンジン特徴テーブル１１５を更新する。これにより、エンジン特徴データ１１５Ａが記憶部１１に記憶される。エンジン特徴データ１１５Ａには、エンジンＩＤ、通信特徴（ＯＳの種類、ファイル形式）、検知数の情報が含まれる。
【００２９】
検知手段１０５は、サーバ装置２から受信した通信データ２ａを選定手段１０４によって選定されたエンジンに入力する。そして、選定されたエンジンが不適切なプログラムを検知した場合には、検知手段１０５が不適切なプログラムを含む検知結果データ１０５ａを出力し、この検知結果データ１０５ａを学習手段１０３へ入力する。
【００３０】
検知結果データ１０５ａには、不適切なプログラムを検知したエンジンを示すエンジンＩＤと、不適切なプログラムが含まれていた通信データの通信特徴と、を含んでいる。
【００３１】
選定手段１０４は、抽出された通信特徴データ１０２ａと、記憶されたエンジン特徴データ１１５Ａとに基づいて第１乃至第３エンジン１１１〜１１３の中から動作させるエンジンを選定する。選定手段１０４の詳細は後述する。
【００３２】
（エンジン特徴テーブルの構成）
図４は、エンジン特徴テーブル１１５の一例を示す図である。エンジン特徴テーブル１１５は、第１乃至第３エンジン１１１〜１１３の何れかのエンジンを識別するための「エンジンＩＤ」欄と、通信データ２ａの特徴を示す「通信特徴」欄と、エンジンによって不適切なプログラムを検知した数が登録される「検知数」欄とを、項目として備えている。検知数は、エンジンの能力情報の一例である。
【００３３】
「通信特徴」欄は、さらに「ＯＳの種類」欄と、「ファイル形式」欄と、を有している。「ＯＳの種類」欄には、学習手段１０３に入力される検知結果データ１０５ａの送信元の端末（ここではサーバ装置２）のＯＳの種類が登録され、「ファイル形式」欄には、検知結果データ１０５ａのファイル形式を示す情報が登録される。
【００３４】
図４に示す例では、エンジン特徴テーブル１１５に、エンジン特徴データ１１５ａ〜１１５ｄが登録されている。エンジン特徴データ１１５ａの「エンジンＩＤ」に登録されているエンジンＡは第１エンジン１１１に対応する。同様に、エンジン特徴データ１１５ｂ，１１５ｃのエンジンＢは第２エンジン１１２に対応し、エンジン特徴データ１１５ｄのエンジンＣは第３エンジン１１３が対応している。
【００３５】
（学習手段の詳細）
学習手段１０３は、第１の特徴情報である通信特徴と、第１乃至第３エンジン１１１〜１１３が不適切なプログラムを検知する能力を示す検知数と、が対応付けられたエンジン特徴データ１１５Ａ（後述するエンジン特徴データ１１５ａ〜１１５ｄ）を生成する。なお、エンジン特徴データ１１５Ａが第２の特徴情報の一例であり、エンジン特徴データ１１５Ａが学習結果の一例である。
【００３６】
上述した検知数としては、例えば過去にエンジンが不適切なプログラムを検知した回数であり、この回数を集計した集計データが登録される。これにより、第１乃至第３エンジン１１１〜１１３のそれぞれの能力に対する定量的な評価が可能であり、この評価に基づいて後述する選定手段１０４が動作するエンジンを選定することができる。
【００３７】
またさらに、学習手段１０３は、第１乃至第３エンジン１１１〜１１３が不適切なプログラムを検知した回数を集計した集計データを検知数として生成し、記憶部１１が記憶する能力情報としての検知数を更新する。これにより、学習手段１０３が不適切なプログラムを検知した回数を集計しない場合に比較して、学習精度が向上するのでエンジンの特徴をより正確に把握することが可能である。
【００３８】
学習手段１０３は、選定手段１０４が選定したエンジンによって検知された不適切なプログラムを含む検知結果データ１０５ａを入力情報として受け取り、この検知結果データ１０５ａを学習データとして第１乃至第３エンジン１１１〜１１３の全てのエンジンに入力して検査する。つまり、選定手段１０４の出力情報を、学習手段１０３の入力情報として利用している。これにより、ユーザ端末装置１におけるデータ入出力の効率化が図られている。
【００３９】
（学習手段の動作）
図５は、ユーザ端末装置１の学習手段１０３における処理の一例を示すフローチャートである。なお図５の例では、説明の便宜上、エンジン特徴テーブル１１５には、第１乃至第３エンジン１１１〜１１３の全てのエンジンに関するエンジン特徴データが既に登録されているものとする。
【００４０】
学習手段１０３は、第１乃至第３エンジン１１１〜１１３のうち何れか１つエンジンを選定して対象のエンジンに検知結果データ１０５ａを入力する（ステップＳ１０）。なお、検知結果データ１０５ａを入力する対象エンジンの選定方法としては、例えばエンジン特徴テーブル１１５に「処理済フラグ」を設けておき、「処理済フラグ」が未処理であるエンジンを任意に１つ選定すればよい。
【００４１】
次に、学習手段１０３は、ステップＳ１０において検知結果データ１０５ａが入力されたエンジンが不適切なプログラムを検知したか否かを判定する（ステップＳ１１）。
【００４２】
不適切なプログラムを検知した場合には（ステップＳ１１：Ｙｅｓ）、エンジン特徴データ１１５Ａを生成する（ステップＳ１２）。一方、不適切なプログラムを検知していない場合には（ステップＳ１１：Ｎｏ）、ステップＳ１４の処理に進む。
【００４３】
ステップＳ１２の処理において、学習手段１０３はエンジン特徴データ１１５Ａを生成する。学習手段１０３は、検知結果データ１０５ａからエンジンＩＤと通信特徴を抽出し、抽出したエンジンＩＤと通信特徴に検知数の情報を加えたデータをエンジン特徴データ１１５Ａとして生成する（ステップＳ１２）。
【００４４】
次に、学習手段１０３は、エンジン特徴テーブル１１５に対して、エンジン特徴データ１１５Ａの通信特徴と合致する通信特徴を含んだエンジン特徴データが存在するか否かを判定し、存在した場合には、エンジン特徴テーブル１１５の対象となるエンジン特徴データ（例えば図４に示すエンジン特徴データ１１５ａ〜１１５ｄの何れかのデータ）の「検知数」（図４参照）に「＋１」を加算して、エンジン特徴テーブル１１５に対する更新処理を完了する（ステップＳ１３）。この際、上述したエンジン特徴テーブル１１５の「処理済フラグ」を未処理から処理済に更新する。これにより、第１乃至第３エンジン１１１〜１１３の全てのエンジンを対象に学習手段１０３の処理が実行される。
【００４５】
なお、上記のステップＳ１３の処理において、エンジン特徴テーブル１１５に対する検索キーを通信特徴としているが、ＯＳの種類及びファイル形式の双方を検索キーとしてもよく、ＯＳの種類あるいはファイル形式の何れか一方のみを検索キーとしてもよい。あるいは、エンジン特徴テーブル１１５に対してエンジン特徴データ１１５ＡのＯＳの種類及びファイル形式の双方が合致したデータが存在しない場合は、ＯＳの種類（あるいはファイル形式）のみ合致するデータを検索するようにしてもよい。
【００４６】
一方、エンジン特徴データ１１５Ａの通信特徴と合致したエンジン特徴データが存在しない場合には、当該エンジン特徴データ１１５Ａをエンジン特徴テーブル１１５に新規登録する。
【００４７】
次に、学習手段１０３は、処理対象のエンジンが存在するか否かを判定し（ステップＳ１４）、存在する場合には（ステップＳ１４：Ｙｅｓ）、ステップＳ１０の処理に戻る。一方、未処理のエンジンが存在しない場合には（ステップＳ１４：Ｎｏ）、学習手段１０３の処理を完了する。このステップＳ１４の処理は、例えば学習手段１０３がエンジン特徴テーブル１１５の「処理済フラグ」が未処理であるエンジンが存在するか否かを判定すればよい。
【００４８】
（選定手段の動作）
次に、選定手段１０４の処理の詳細について、図６を参照して説明する。図６は、ユーザ端末装置の選定手段における処理の一例を示すフローチャートである。
【００４９】
まず、選定手段１０４は、エンジン特徴テーブル１１５と、抽出手段１０２に抽出された通信データ２ａとを比較する（ステップＳ２０）。
【００５０】
そして、選定手段１０４は、抽出された通信特徴データ１０２ａの通信特徴と、記憶部１１に記憶されたエンジン特徴テーブル１１５に含まれる通信特徴とが一致するデータがエンジン特徴テーブル１１５に存在するか否かを判定する（ステップＳ２１）。対象データが存在した場合には（ステップＳ２１：Ｙｅｓ）、エンジン特徴テーブル１１５の対象データが予め定められた条件を満たすか否かを判定する（ステップＳ２２）。
【００５１】
一方、対象データが存在しない場合には（ステップＳ２１：Ｎｏ）、全てのエンジンを動作させる（ステップＳ２４）。同様に、ステップＳ２２の処理において、対象データが条件を満たさない場合にも（ステップＳ２２：Ｎｏ）、全エンジンを動作させる（ステップＳ２４）。つまり、動作させるエンジンを選定できない場合には、セキュリティリスクを考慮して全てのエンジンが動作するように構成されている。
【００５２】
ここで、上述の条件としては、複数のエンジンが不適切なプログラムを検知する能力情報（本実施の形態では検知数）に対して相対的に評価できる条件であればよく、例えば「対象データのうち検知数が最も大きいデータであること」あるいは「対象データのうち検知数が最も大きいデータと、その次に検知数が大きいデータであること」としてもよい。
【００５３】
図４に示すエンジン特徴テーブル１１５を例に説明すると、例えば通信特徴データ１０２ａの通信特徴のＯＳの種類が「iOS」で、かつ、ファイル形式が「PDF」の場合には、ステップＳ２０の処理においてエンジン特徴テーブル１１５のエンジン特徴データ１１５ａとエンジン特徴データ１１５ｄとが対象データに該当する。そしてステップＳ２１の処理において、エンジン特徴データ１１５ａの検知数（１０）がエンジン特徴データ１１５ｄの検知数（６）より大きい（１０＞６）ので、検知数が最も大きいデータであるという条件を満たすデータとして判定され、エンジンＩＤがエンジンＡに対応する第１エンジン１１１が動作するエンジンとして選定される。
【００５４】
このように、選定手段１０４は、条件を満たした対象データのエンジンＩＤに対応するエンジンを動作させるエンジンとして選定する（ステップＳ２３）。これにより、選定手段１０４の処理が終了する。
【００５５】
このように、選定手段１０４は、通信特徴データ１０２ａの通信特徴とエンジン特徴テーブル１１５に登録されているエンジン特徴データ１１５ａ〜１１５ｄの通信特徴とが一致した場合に、エンジン特徴データ１１５Ａの検知数に基づいて動作させるエンジンを選定する。これにより、通信データ２ａの特徴に適した特徴を備えるエンジンを動作するエンジンとして選定することができる。なお、選定手段１０４が選定するエンジンの個数は限定されるものではなく、例えば２つのエンジンを選定してもよい。
【００５６】
以上説明したように、選定手段１０４は、能力情報が予め定められた条件を満たした場合に、前記条件を満たした能力情報に対応したエンジンを動作させるエンジンとして選定する。これにより、複数のエンジンにおけるそれぞれの能力の内容に基づいたエンジンの選定をすることができる。
【００５７】
［第２の実施の形態］
図７は、本発明の第２の実施の形態に係る情報処理システムの概略の構成を示す図である。本実施の形態は、第１の実施の形態において、学習手段１０３の機能を備えた学習装置４を外部の装置として構成したものである。以下、第１の実施の形態と異なる点を中心に説明する。
【００５８】
図７に示すように、本実施の形態に係る情報処理システム９０は、ユーザ端末装置１と、サーバ装置２と、学習装置４と、を有し、ユーザ端末装置１、サーバ装置２、及び学習装置４がネットワーク３を介して接続されている。
【００５９】
図８は、第２の実施の形態に係る情報処理システム９０における処理の流れを示すフロー図である。図８に示すように、ユーザ端末装置１は、受信手段１０１と、抽出手段１０２と、選定手段１０４と、検知手段１０５と、とを備えている。選定手段１０４は、通信特徴データ１０２ａと、学習装置４から送られる第２の特徴情報としてのエンジン特徴データ４１０ａとに基づいて、動作するエンジンを選定する。
【００６０】
学習装置４は、学習手段４０１と、エンジン特徴データ生成手段４０２と、第１乃至第３エンジン４１１〜４１３と、を備えている。学習手段４０１は、ユーザ端末装置１から送られてくる検知結果データ１０５ａからエンジン特徴データ４１０ａを生成し、エンジン特徴データ４１０ａをエンジン特徴テーブル４１０に登録する。学習手段４０１は、生成したエンジン特徴データ４１０ａをユーザ端末装置１に送信する。
【００６１】
学習手段４０１は、検知結果データ１０５ａを第１乃至第３エンジン４１１〜４１３に入力して全てのエンジンに検査を実行する。そして、学習手段４０１が各エンジンの検査結果を取得して、検査結果に基づいて第１の実施の形態で説明したエンジン特徴データ１１５Ａと同様の方法でエンジン特徴データ４１０ａを生成する。
【００６２】
このように、エンジンの特徴を学習する学習機能を外部装置に構築することができるので、学習機能がユーザ端末装置１に実装された第１の実施の形態に比較して、ユーザ端末装置１の処理の負荷が低減される。
【００６３】
なお、第１の実施の形態では、ユーザ端末装置１が本発明における情報処理装置の一例である場合について説明したが、これに限定されず、例えば、ユーザ端末装置１とサーバ装置２との間の通信を中継するゲートウェイ装置が本発明における情報処理装置の一例であってもよい。つまり、この場合には、ゲートウェイ装置が図２において説明した制御部１０の各手段１０１〜１０５と、記憶部１１と、通信部１２とを備える。
【００６４】
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。
【００６５】
制御部１０の各手段は、それぞれ一部又は全部を再構成可能回路（ＦＰＧＡ：Field Programmable Gate Array）、特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）等のハードウエア回路によって構成してもよい。
【００６６】
上記実施の形態では、選定手段１０４は通信データ２ａの通信特徴と、エンジン特徴データ１１５Ａの通信特徴とが一致した場合に動作させるエンジンを選定していたが、これに限定されず、例えば通信データ２ａの通信特徴が特定の通信特徴（例えば危険性の高い通信特徴等）である場合に、エンジンの動作モードを設定するようにしてもよい。動作モードとしては、例えば全てのエンジンを動作させる慎重モード等が挙げられる。これにより、セキュリティが向上する。
【００６７】
第２の実施の形態では、ユーザ端末装置１が１つである場合について説明したが、これに限定されず、例えばユーザ端末装置は複数であってもよい。この場合には、複数のユーザ端末装置のそれぞれから検知結果データ１０５ａが学習装置４に送られるので、学習装置４の学習データが増加する。これにより、学習装置４の学習効率が向上し、選定手段１０４がより最適なエンジンを選定することができる。
【００６８】
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に記録して提供することができる。また、上記実施の形態で用いたプログラムをクラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することができる。
【符号の説明】
【００６９】
１…ユーザ端末装置
２…サーバ装置
２ａ…通信データ
３…ネットワーク
４…学習装置
９…情報処理システム
１０…制御部
１１…記憶部
１２…通信部
９０…情報処理システム
１０１…受信手段
１０２…抽出手段
１０２ａ…通信特徴データ
１０３…学習手段
１０４…選定手段
１０５…検知手段
１０５ａ…検知結果データ
１１０…プログラム
１１１…第１エンジン
１１２…第２エンジン
１１３…第３エンジン
１１４…ファイル特徴テーブル
１１５，４１０…エンジン特徴テーブル
１１５Ａ，４１０ａ…エンジン特徴データ
１１５ａ〜１１５ｄ…エンジン特徴データ
４０１…学習手段
４０２…エンジン特徴データ生成手段
【図１】
2019053421.tif 000003
【図２】
2019053421.tif 000004
【図３】
2019053421.tif 000005
【図４】
2019053421.tif 000006
【図５】
2019053421.tif 000007
【図６】
2019053421.tif 000008
【図７】
2019053421.tif 000009
【図８】
2019053421.tif 000010