(57)【要約】【課題】マルウェアを漏れなく検出し、かつ、検出時におけるスループットの低下を低減する。【解決手段】バイト列抽出装置は、脆弱性に対する攻撃を検知した場合に、攻撃に関連して取得されたファイルをマルウェアであると判定し、マルウェアと判定されたファイルのうち、既存のマルウェア検出ソフトウェアでマルウェアが検出されなかったファイルを未知のマルウェアのファイルと判定する。そして、バイト列抽出装置は、マルウェア以外のファイルである良性ファイルには存在しないが、未知のマルウェアのファイルには存在する所定長のバイト列を抽出する。このようにして抽出したバイト列をマルウェアのシグネチャとして用い、通信データとのマッチングを行う。【選択図】図１
2015106336.tif 000002
【特許請求の範囲】
【請求項１】
監視対象のネットワークに対する攻撃を検知した場合に、前記攻撃に関連して取得されたファイルをマルウェアであると判定する攻撃検知部と、
前記攻撃検知部でマルウェアと判定されたファイルのうち、所定のマルウェア検出ソフトウェアでマルウェアであると検出されなかったファイルを未知のマルウェアのファイルと判定する未知マルウェア判定部と、
マルウェア以外のファイルである良性ファイルには存在しないが、前記未知のマルウェアのファイルには存在する所定長のバイト列を抽出するバイト列抽出部とを備えることを特徴とするバイト列抽出装置。
【請求項２】
前記所定のマルウェア検出ソフトウェアは、複数の異なるマルウェア検出ソフトウェアであり、
前記未知マルウェア判定部は、前記攻撃検知部でマルウェアであると判定されたファイルのうち、前記マルウェアを検出した前記マルウェア検出ソフトウェアの数が所定数よりも少ないファイルを前記未知のマルウェアのファイルと判定することを特徴とする請求項１に記載のバイト列抽出装置。
【請求項３】
前記所定のマルウェア検出ソフトウェアは、保護対象となる所定のネットワーク内で利用されているマルウェア検出ソフトウェアと同じマルウェア検出ソフトウェアであることを特徴とする請求項１または請求項２に記載のバイト列抽出装置。
【請求項４】
前記攻撃検知部は、前記攻撃を検知した場合に、当該攻撃によって実行することとなったファイルをマルウェアであると判定することを特徴とする請求項１ないし請求項３のいずれか１項に記載のバイト列抽出装置。
【請求項５】
前記攻撃検知部は、前記攻撃を検知した場合に、当該攻撃を引き起こす原因となったファイルをマルウェアであると判定することを特徴とする請求項１ないし請求項３のいずれか１項に記載のバイト列抽出装置。
【請求項６】
前記バイト列抽出装置は、さらに、
前記未知のマルウェアと判定されたファイルを記憶する未知マルウェア記憶部と、
前記未知のマルウェアと判定されたファイルから抽出されたバイト列を記憶するバイト列情報記憶部とを備え、
前記未知マルウェア判定部は、さらに、前記未知マルウェア記憶部に記憶されたファイルそれぞれに対し、再度マルウェアの検出を行った結果、既知のマルウェアであると判定されたファイルがあったとき、前記バイト列情報記憶部のバイト列のうち、当該ファイルから抽出されたバイト列を削除することを特徴とする請求項１ないし請求項５のいずれか１項に記載のバイト列抽出装置。
【請求項７】
監視対象のネットワークに対する攻撃を検知した場合に、前記攻撃に関連して取得されたファイルをマルウェアであると判定するステップと、
前記マルウェアと判定されたファイルのうち、所定のマルウェア検出ソフトウェアでマルウェアが検出されなかったファイルを未知のマルウェアのファイルと判定するステップと、
マルウェア以外のファイルである良性ファイルには存在しないが、前記未知のマルウェアのファイルには存在する所定長のバイト列を抽出するステップとをコンピュータが実行することを特徴とするバイト列抽出方法。
【請求項８】
監視対象のネットワークに対する攻撃を検知した場合に、前記攻撃に関連して取得されたファイルをマルウェアであると判定するステップと、
前記マルウェアと判定されたファイルのうち、所定のマルウェア検出ソフトウェアでマルウェアが検出されなかったファイルを未知のマルウェアのファイルと判定するステップと、
マルウェア以外のファイルである良性ファイルには存在しないが、前記未知のマルウェアのファイルには存在する所定長のバイト列を抽出するステップとをコンピュータに実行させることを特徴とするバイト列抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バイト列抽出装置、バイト列抽出方法、および、バイト列抽出プログラムに関する。
【背景技術】
【０００２】
近年、情報漏えいや不正アクセス等の脅威をもたらす不正プログラム（以下、「マルウェア」と呼ぶ）が猛威を振るっている。発見されるマルウェアの数の増加も著しく、数秒に１つの新たなマルウェアが出現しているということが報告されている（非特許文献１参照）。マルウェアの脅威からコンピュータを守るために、コンピュータにインストールされたアンチウィルスソフトウェア（マルウェア検出ソフトウェア）を用いてマルウェアへの感染を未然に防ぐ、という対策が行われている。しかしながら、昨今のマルウェアは高度化しており、マルウェアの発見からマルウェア検出ソフトウェアで検知できるようになるまで数日を要する。そこで、通信データから抽出したファイルを実際に動作させてマルウェアか否かを判定し、マルウェアであると判定されたファイルに特有のバイト列を抽出してシグネチャを作成し、感染を防ぐという手法が提案されている（非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“McAfee脅威レポート：2013年第1四半期”、[online]、[平成25年9月3日検索]、インターネット<http://www.mcafee.com/japan/media/mcafeeb2b/international/japan/pdf/threatreport/threatreport13q1.pdf>
【非特許文献２】“モダンマルウェアによる標的型攻撃は次世代ファイアウォールが防ぐ！”、[online]、[平成25年9月3日検索]、インターネット<http://businessnetwork.jp/Portals/0/SP/1301_paloalto/?prtext>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来の技術には以下のような問題があった。すなわち、通信データから抽出したファイルを実際に動作させたときの振る舞いが、事前に定義されたものに合致しないファイルは、シグネチャの作成対象とならない。このため、マルウェアの検出漏れが発生するおそれがあるという問題があった。また、マルウェアと判定されたファイル全てについてシグネチャを作成し、そのシグネチャを用いて通信データからマルウェアを検出すると、通信データとのマッチングに時間がかかってしまい、スループットが低下してしまうという問題があった。
【０００５】
そこで、本発明は、前記した問題を解決し、マルウェアをもれなく検出し、かつ、検出時におけるスループットの低下を低減することを課題とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、本発明は、監視対象のネットワークに対する攻撃を検知した場合に、前記攻撃に関連して取得されたファイルをマルウェアであると判定する攻撃検知部と、前記攻撃検知部でマルウェアと判定されたファイルのうち、所定のマルウェア検出ソフトウェアでマルウェアであると検出されなかったファイルを未知のマルウェアのファイルと判定する未知マルウェア判定部と、マルウェア以外のファイルである良性ファイルには存在しないが、前記未知のマルウェアのファイルには存在する所定長のバイト列を抽出するバイト列抽出部とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、マルウェアを漏れなく検出し、かつ、検出時におけるスループットの低下を低減することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、各実施形態のバイト列抽出装置の構成例を示す図である。
【図２】図２は、図１の攻撃検知部の処理手順を示すフローチャートである。
【図３】図３は、図１の未知マルウェア判定部の処理手順を示すフローチャートである。
【図４】図４は、図１のバイト列抽出部の処理手順を示すフローチャートである。
【図５】図５は、第２の実施形態における未知マルウェア判定部の処理手順を示すフローチャートである。
【図６】図６は、図１のマルウェア検出部の処理手順を示すフローチャートである。
【図７】図７は、バイト列抽出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、本発明の実施形態を、第１の実施形態から第３の実施形態に分けて説明する。図１は、各実施形態のバイト列抽出装置の構成例を示す図である。
【００１０】
（第１の実施形態）
（概要）
第１の実施形態のバイト列抽出装置１０の概要を説明する。バイト列抽出装置１０は、攻撃検知部１３１１０により監視対象のネットワークを監視し、脆弱性に対する攻撃を検知すると、未知マルウェア判定部１３２は、既存のマルウェア検出ソフトウェアにより不正プログラム（マルウェア）の検出を行う。ここで、未知マルウェア判定部１３２において、既存のマルウェア検出ソフトウェアでのマルウェア検出ができなかったファイルがあったとき、つまり未知のマルウェアのファイルを発見したとき、バイト列抽出部１３３は、当該ファイルを、良性ファイル（マルウェアではないことが明らかなファイル）と比較する。そして、バイト列抽出部１３３は、当該ファイルに、良性ファイルには存在しないバイト列があれば、当該ファイルからそのバイト列を抽出し、バイト列情報記憶部１４３に記憶する。
【００１１】
その後、例えば、マルウェア検出部１３４においてバイト列情報記憶部１４３に記憶されたバイト列をマルウェアのシグネチャ（特徴となるバイト列）として用い、保護対象のネットワーク上の通信データとのマッチングを行うことで、通信データからのマルウェア検出を漏れなく行うことができる。また、バイト列情報記憶部１４３に記憶されるバイト列は、既存のマルウェア検出ソフトウェアで検出可能なマルウェアのバイト列を含まない。よって、マルウェア検出部１３４が通信データとのマッチングを行う際のスループットの低下を低減できる。
【００１２】
（構成）
バイト列抽出装置１０は、通信部１１と、入出力部１２と、攻撃検知部１３１と、未知マルウェア判定部１３２と、未知マルウェア記憶部１４１と、良性ファイル記憶部１４２と、バイト列抽出部１３３と、バイト列情報記憶部１４３とを備える。なお、破線で示したマルウェア検出部１３４は、バイト列抽出装置１０に装備される場合と装備されない場合とがあり、装備される場合について後記する。
【００１３】
通信部１１は、ネットワーク経由で外部装置と通信を行うためのインタフェースを司る。また、入出力部１２は、外部装置との間で各種情報の入出力を行うためのインタフェースを司る。
【００１４】
攻撃検知部１３１は、通信部１１経由で、監視対象となるネットワーク上で所定箇所（例えば、脆弱性を有する箇所）の監視を行い、当該箇所に対する攻撃を検知する。そして、攻撃検知部１３１は、攻撃検知後、監視対象となるネットワーク上での攻撃に関連して取得されたファイルをマルウェアと判定する。なお、攻撃検知部１３１は、所定のネットワークでアクセスが確認されたＵＲＬを別のネットワークで運用している囮マシンでアクセスし、攻撃が行われるかどうかを確認してもよいし、独自に怪しそうなＵＲＬを巡回して、攻撃を検知するようにしてもよい。上記の場合は、所定のネットワークおよび別のネットワークの両方が、攻撃検知部１３１における監視対象のネットワークとなる。
【００１５】
未知マルウェア判定部１３２は、攻撃検知部１３１でマルウェアと判定されたファイルのうち、既存のマルウェア検出ソフトウェアでマルウェアであると検出されなかったファイルを未知のマルウェアのファイルと判定し、抽出する。抽出したファイルは、未知マルウェア記憶部１４１に記憶する。この未知マルウェア判定部１３２は、図１に例示するように、１以上のマルウェア検出ソフトウェアを備え、これらのマルウェア検出ソフトウェアにより、ファイルのマルウェアの検出を行う。未知マルウェア判定部１３２で用いるマルウェア検出ソフトウェアは、市販のアンチウィルス製品でもよいし、独自に定義したパターンとのマッチングにより既知のマルウェアであると検出するソフトウェアでもよい。
【００１６】
なお、以下では、未知マルウェア判定部１３２が複数の異なるマルウェア検出ソフトウェアでマルウェアの検出を行う場合について説明するが、未知マルウェア判定部１３２は１つのマルウェア検出ソフトウェアでマルウェアの検出を行ってもよい。
【００１７】
未知マルウェア記憶部１４１は、未知マルウェア判定部１３２によって抽出された未知のマルウェアのファイルを記憶する。
【００１８】
良性ファイル記憶部１４２は、マルウェア以外のファイル（良性ファイル）を記憶する。この良性ファイルは、マルウェアではないことが明らかで無害なファイルであり、例えば、バイト列抽出装置１０の管理者等により予め収集されたものである。この良性ファイルの収集方法は、例えば、フリーソフトを提供しているサイトにおいて頻繁にダウンロードされているソフトウェアの上位Ｎ個を収集する方法や、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）といったＯＳ（Operating  System）に最初から含まれているファイルを収集する方法等がある。
【００１９】
バイト列抽出部１３３は、未知マルウェア記憶部１４１に記憶された未知のマルウェアのファイルから抽出したバイト列と、良性ファイル記憶部１４２に記憶された各良性ファイルのバイト列とを比較し、良性ファイルには含まれないが未知のマルウェアのファイルには含まれるバイト列を抽出する。抽出したバイト列は、バイト列抽出部１３３が、このバイト列の抽出元のファイルの情報（マルウェア情報）と対応付けてバイト列情報記憶部１４３に記憶する。
【００２０】
バイト列情報記憶部１４３は、バイト列抽出部１３３により抽出されたバイト列を、抽出元のファイルのマルウェア情報と対応付けた情報（バイト列情報）を記憶する。なお、マルウェア情報は、バイト列の抽出元のファイルの識別情報（例えば、当該ファイルのハッシュ値等）等を示した情報である。
【００２１】
なお、攻撃検知部１３１、未知マルウェア判定部１３２、および、バイト列抽出部１３３は、バイト列抽出装置１０の備えるＣＰＵ（Central  Processing  Unit）によるプログラム実行処理や、専用のハードウェアにより実現される。また、未知マルウェア記憶部１４１、良性ファイル記憶部１４２、および、バイト列情報記憶部１４３は、バイト列抽出装置１０の備えるＨＤＤ（Hard  Disk  Drive）、ＲＡＭ（Random  Access  Memory）等の記憶部（図示省略）の所定領域に形成される。
【００２２】
以上説明したバイト列抽出装置１０は、既存のマルウェア検出ソフトウェアでは検出できないマルウェア（未知のマルウェア）についてシグネチャとなるバイト列を抽出する。よって、このバイト列をシグネチャとして用いて通信データからのマルウェア検出を行うことで、既存のマルウェア検出ソフトウェアでは検出できないマルウェア（例えば、まだ定義ファイルが用意されていない新しいマルウェア）についても漏れなく検出することができる。また、このバイト列は、既存のマルウェア検出ソフトウェアで検出できるマルウェアのバイト列は含まない。つまり、マルウェア検出のシグネチャとして用いるバイト列のデータ量を低減できるので、マルウェア検出においてシグネチャと通信データとのマッチング処理にかかる時間を低減できる。その結果、マルウェア検出時におけるスループットの低下を低減することができる。
【００２３】
（処理手順）
次に、バイト列抽出装置１０の処理手順を説明する。まず、図２を用いて、攻撃検知部１３１の処理手順を説明する。図２は、図１の攻撃検知部の処理手順を示すフローチャートである。
【００２４】
図２に示すように、攻撃検知部１３１は、プログラムコードにおいて脆弱性の存在する箇所の監視を行う（Ｓ１）。例えば、攻撃検知部１３１は、バッファオーバーフローの脆弱性を有するプログラムコードにおいて、所定量以上のデータがバッファに書き込まれるか否かを監視する。
【００２５】
そして、攻撃検知部１３１において、脆弱性に対する攻撃が発生したと判定したとき（Ｓ２でＹｅｓ）、その脆弱性に対する攻撃が行われた際に作成された一連のファイルを記憶部(図示省略)の所定領域に保存する（Ｓ３）。一方、攻撃検知部１３１が、脆弱性に対する攻撃が発生していないと判定したとき（Ｓ２でＮｏ）、Ｓ１へ戻る。
【００２６】
Ｓ３で保存された一連のファイルの中に、当該脆弱性に対する攻撃を発生させる原因となるデータを含むファイルがある場合（Ｓ４でＹｅｓ）、つまり、Ｓ３で保存された一連のファイルの中に、当該脆弱性に対する攻撃を引き起こす原因となったファイルが含まれていた場合、攻撃検知部１３１は、その脆弱性に対する攻撃を含むファイルをマルウェアと判定する（Ｓ５）。そして、Ｓ６へ進む。
【００２７】
なお、脆弱性に対する攻撃を含むファイルは、例えば、ＰＤＦ（Portable  Document  Format）ファイル自体にＰＤＦファイルの読み込みアプリケーションの脆弱性を悪用するコードが埋め込まれたファイル等である。また、Ｓ３で保存された一連のファイルがいずれも当該脆弱性に対する攻撃を含まないと判定された場合（Ｓ４でＮｏ）、Ｓ６へ進む。
【００２８】
Ｓ６で、攻撃検知部１３１は、Ｓ３で保存された一連のファイルが、攻撃が行われた際にネットワーク経由で外部から取得された実行ファイルであり、攻撃によりその実行ファイルが実行された場合（Ｓ６でＹｅｓ）、当該実行ファイルをマルウェアと判定する（Ｓ７）。そして、処理を終了する。一方、Ｓ６で攻撃により実行ファイルが実行されなかった場合（Ｓ６でＮｏ）、そのまま処理を終了する。
【００２９】
このように攻撃検知部１３１は、脆弱性に対する攻撃により作成された一連のファイルのうち、当該攻撃を引き起こす原因となったファイル、および、攻撃の結果取得され実行された実行ファイルを、マルウェアと判定する。なお、攻撃検知部１３１は、マルウェアと判定されたファイルの情報（マルウェア情報）を、記憶部（図示省略）の所定領域に記憶しておく。
【００３０】
次に、図３を用いて、未知マルウェア判定部１３２の処理手順を説明する。図３は、図１の未知マルウェア判定部の処理手順を示すフローチャートである。
【００３１】
まず、未知マルウェア判定部１３２は、攻撃検知部１３１によりマルウェアと判定されたファイルに対し、マルウェア検出ソフトウェアにより未知のマルウェアか否かの判定を行う（Ｓ１１）。つまり、未知マルウェア判定部１３２は、攻撃検知部１３１によりマルウェアと判定されたファイルを記憶部(図示省略)から読み出し、このファイルについて、既存のマルウェア検出ソフトウェアが既知のマルウェアと検出するか否かを判断する。ここで、当該ファイルを既知のマルウェアと判定したマルウェア検出ソフトウェアの数が所定値以下（例えば、未知マルウェア判定部１３２の備えるマルウェア検出ソフトウェアが全部で５つであった場合において、既知のマルウェアと判定したマルウェア検出ソフトウェアが１つ以下等）であった場合（Ｓ１２でＹｅｓ）、当該ファイルを未知のマルウェアのファイルと判定し（Ｓ１３）、未知マルウェア記憶部１４１に記憶する（Ｓ１５）。一方、当該ファイルを既知のマルウェアと判定したマルウェア検出ソフトウェアの数が所定値を超えていた場合（Ｓ１２でＮｏ）、未知マルウェア判定部１３２は、当該ファイルを既知のマルウェアと判定する（Ｓ１４）。未知マルウェア判定部１３２は、上記の処理を攻撃検知部１３１によりマルウェアと判定されたファイルそれぞれに対し実行する。
【００３２】
このように未知マルウェア判定部１３２は、攻撃が検知されたファイルそれぞれについて、既存のマルウェア検出ソフトウェアで既知のマルウェアであると判定できなかったファイルを未知マルウェア記憶部１４１に蓄積していく。
【００３３】
なお、Ｓ１１において、未知マルウェア判定部１３２がマルウェア検出ソフトウェアにより既知のマルウェアと検出した場合には、入出力部１２経由で既知のマルウェアと検出した旨の通知や既知のマルウェアと判定された際の分類名等の情報を出力するようにしてもよい。
【００３４】
次に、図４を用いて、バイト列抽出部１３３の処理手順を説明する。図４は、図１のバイト列抽出部の処理手順を示すフローチャートである。
【００３５】
バイト列抽出部１３３は、未知マルウェア記憶部１４１に処理（バイト列抽出処理）を行っていないファイルが存在するか否かを確認する（Ｓ２１）。処理を行っていないファイルが存在しない場合(Ｓ２１でＮｏ)、処理を終了する。一方、まだ処理を行っていないファイルが存在する場合（Ｓ２１でＹｅｓ）、バイト列抽出部１３３は、未知マルウェア記憶部１４１からまだ処理を行っていないファイルを取得する（Ｓ２２）。そして、バイト列抽出部１３３は、取得したファイルから所定長のバイト列を抽出する（Ｓ２３）。
【００３６】
次に、バイト列抽出部１３３は、Ｓ２３で抽出したバイト列が、良性ファイル記憶部１４２のファイル（良性ファイル）中に存在するか否かを判定する（Ｓ２４）。ここで、Ｓ２３で抽出したバイト列が良性ファイル記憶部１４２に保存されているいずれのファイルにも存在しなかった場合（Ｓ２４でＮｏ）、バイト列抽出部１３３は、抽出したバイト列と抽出元のファイルの情報（マルウェア情報）とを対応付けたバイト列情報をバイト列情報記憶部１４３に記憶する（Ｓ２５）。そして、Ｓ２１へ戻る。
【００３７】
一方、Ｓ２３で抽出したバイト列が、良性ファイル記憶部１４２に記憶されるいずれかの良性ファイル中に存在する場合において（Ｓ２４でＹｅｓ）、当該バイト列の抽出元のファイルに、所定長のバイト列を抽出可能な箇所が他に存在すれば（Ｓ２６でＹｅｓ）、バイト列抽出部１３３は抽出する箇所を変更し（Ｓ２７）、Ｓ２３以降の処理を実行する。一方、当該バイト列の抽出元のファイルに、所定長のバイト列を抽出可能な箇所が他に存在しなければ（Ｓ２６でＮｏ）、Ｓ２１へ戻る。
【００３８】
このようにすることで、バイト列抽出部１３３は、未知のマルウェアのファイルから、いずれの良性ファイルにも含まれないバイト列を抽出することができる。そして、このバイト列を、マルウェア検出のシグネチャとして用いることで、未知のマルウェアの検出を行うことができる。
【００３９】
なお、Ｓ２３で、バイト列抽出部１３３が抽出するバイト列については、対象となるファイル全体から抽出してもよいし、ファイルのヘッダ部を除く部分から抽出してもよい。さらに、対象となるファイルが実行コードを含むファイルの場合、当該ファイルの実行コードを含む領域から抽出してもよいし、実行コードを含まない領域から抽出してもよい。また、バイト列の抽出は、当該ファイルの抽出対象の領域の先頭から順に取り出してもよいし、任意の場所を開始箇所として取り出してもよい。任意の場所の例としては、当該ファイルの実行コードを含む領域のうち、コード実行開始箇所（Original  Entry  Point）等がある。
【００４０】
（第２の実施形態）
前記した未知マルウェア判定部１３２において、バイト列情報記憶部１４３に記憶されたバイト列のうち、マルウェア検出ソフトウェアにとって既に未知ではなくなったマルウェアのバイト列情報を削除するようにしてもよい。この場合の実施形態を第２の実施形態として説明する。図５は、第２の実施形態における未知マルウェア判定部の処理手順を説明するフローチャートである。
【００４１】
このバイト列情報の削除は、例えば、未知マルウェア判定部１３２のマルウェア検出ソフトウェアに何らかの変更があったことを契機として行われる。具体例を挙げると、マルウェア検出ソフトウェアの追加や、バージョンアップ、マルウェア検出に用いるマルウェア検出定義ファイルの変更等を契機として行われる。また、このバイト列情報の削除は、上記のほか、１日に１回等、所定期間ごとに行われてもよい。
【００４２】
まず、未知マルウェア判定部１３２は、バイト列情報記憶部１４３に記憶されているバイト列情報からバイト列に対応付けられたマルウェア情報を取得し（Ｓ３１）、このマルウェア情報に該当するファイルを未知マルウェア記憶部１４１から取得する（Ｓ３２）。
【００４３】
未知マルウェア判定部１３２は、Ｓ３１で取得したファイルについて、各マルウェア検出ソフトウェアにより未知のマルウェアか否かの判定を行う（Ｓ３３）。ここで、当該ファイルが既知のマルウェアである、つまり、未知のマルウェアではないと判定されたとき（Ｓ３４でＮｏ）、当該ファイルにより抽出されたバイト列に関するバイト列情報をバイト列情報記憶部１４３から削除する（Ｓ３５）。また、未知マルウェア判定部１３２は、当該ファイルを未知マルウェア記憶部１４１から削除する（Ｓ３６）。そして、処理を終了する。一方、未知マルウェア判定部１３２は、Ｓ３１で取得したファイルについて、各マルウェア検出ソフトウェアにより未知のマルウェアであると判定されたとき（Ｓ３４でＹｅｓ）、処理を終了する。
【００４４】
このように第２の実施形態のバイト列抽出装置１０は、マルウェア検出定義ファイルのアップデート等により、既に未知のマルウェアではなくなったファイルのバイト列情報をバイト列情報記憶部１４３から削除する。その結果、バイト列情報記憶部１４３に記憶されるバイト列情報のデータ量を低減できる。したがって、このバイト列情報記憶部１４３に記憶されたバイト列情報のバイト列をシグネチャとして用いて通信データとのマッチングを行う際の時間を低減できる。
【００４５】
（第３の実施形態）
なお、バイト列抽出装置１０は、図１の破線で示すマルウェア検出部１３４をさらに備えていてもよい。このマルウェア検出部１３４は、バイト列情報記憶部１４３に記憶されたバイト列を参照して、未知のマルウェアの検出を行う。つまり、マルウェア検出部１３４は、バイト列情報記憶部１４３に記憶されたバイト列をシグネチャとして用いて未知のマルウェアの検出を行う。
【００４６】
このマルウェア検出部１３４の処理手順を、図６を用いて説明する。図６は、図１のマルウェア検出部の処理手順を示すフローチャートである。マルウェア検出部１３４は、例えば、通信部１１経由で、外部装置からの通信データ（例えば、保護対象のネットワーク上の通信データ）を取得すると（Ｓ４１）、取得した通信データに、バイト列情報記憶部１４３のバイト列情報に示されるバイト列が含まれているか否かを判定する（Ｓ４２）。ここで、取得した通信データに、バイト列情報に示されるバイト列が含まれているとき（Ｓ４２でＹｅｓ）、マルウェア検出部１３４は、未知のマルウェアを検出したと判定し（Ｓ４３）、その判定結果を出力する（Ｓ４４）。そして、Ｓ４１へ戻る。例えば、マルウェア検出部１３４は、当該通信データから未知のマルウェアを検出したとき、当該通信データから未知のマルウェアを検出した旨の判定結果を出力する。
【００４７】
また、このマルウェア検出部１３４は、Ｓ４４で判定結果を出力するとき、バイト列情報において当該バイト列と対応付けられているファイル（未知のマルウェアのファイル）のマルウェア情報等を入出力部１２経由で外部へ出力してもよい。なお、Ｓ４１で取得した通信データに、バイト列情報記憶部１４３のバイト列情報に示されるバイト列が含まれていないとき（Ｓ４２でＮｏ）、Ｓ４１へ戻る。
【００４８】
このようにすることで、バイト列抽出装置１０は、抽出したバイト列を用いて未知のマルウェアの検出をすることができる。なお、このマルウェア検出部１３４は、バイト列抽出装置１０の外部の装置により実現されてももちろんよい。
【００４９】
なお、前記した未知マルウェア判定部１３２で用いるマルウェア検出ソフトウェアは、バイト列抽出装置１０の管理者等が適宜設定可能である。例えば、攻撃検知部１３１において保護対象としているネットワーク上でマルウェア検出ソフトウェアＡが用いられている場合、未知マルウェア判定部１３２で用いるマルウェア検出ソフトウェアもマルウェア検出ソフトウェアＡを設定しておく。
【００５０】
このようにすることで、バイト列抽出装置１０は、監視対象のネットワークで用いているマルウェア検出ソフトウェアでは検出できないマルウェアのシグネチャとなるバイト列を抽出することができる。そして、その後、マルウェア検出部１３４が、この抽出したバイト列を用いて当該保護対象のネットワークにおける通信データとのマッチングを行うことで、保護対象のネットワークにおけるマルウェア検出を漏れなく行うことができる。
【００５１】
（プログラム）
また、上記実施形態に係るバイト列抽出装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、バイト列抽出装置１０と同様の機能を実現するバイト列抽出プログラムを実行するコンピュータの一例を説明する。
【００５２】
図７は、バイト列抽出プログラムを実行するコンピュータを示す図である。図７に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００５３】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００５４】
ここで、図７に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えば、ハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００５５】
また、バイト列抽出プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明したバイト列抽出装置１０が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【００５６】
また、バイト列抽出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００５７】
なお、バイト列抽出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、バイト列抽出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００５８】
１０    バイト列抽出装置
１１    通信部
１２    入出力部
１３１  攻撃検知部
１３２  未知マルウェア判定部
１３３  バイト列抽出部
１３４  マルウェア検出部
１４１  未知マルウェア記憶部
１４２  良性ファイル記憶部
１４３  バイト列情報記憶部
【図１】
2015106336.tif 000003
【図２】
2015106336.tif 000004
【図３】
2015106336.tif 000005
【図４】
2015106336.tif 000006
【図５】
2015106336.tif 000007
【図６】
2015106336.tif 000008
【図７】
2015106336.tif 000009