(57)【特許請求の範囲】
【請求項１】
マルウェア解析結果から得られるマルウェアのアクセス挙動のトレースから不正アクセス検知のためのＵＲＬ正規表現を生成して検知ルールを更新する不正アクセスの検知方法であって、
解析者が採集した、またはネットワーク上から感染した新たなマルウェアのアクセス挙動のトレース解析からマルウェア特徴量を抽出するステップと、
過去のネットワーク上のアクセスログからアクセス特徴量を随時抽出して、記録したアクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似ＵＲＬを検索するステップと、
マルウェア特徴量の接続先ＵＲＬ、および前記検索された類似ＵＲＬよりＵＲＬ正規表現を生成するステップと、
前記ＵＲＬ正規表現を前記アクセスログに含まれる接続先ＵＲＬとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記ＵＲＬ正規表現を新たな検知ルールに設定するステップと、
を有することを特徴とする不正アクセス検知方法。
【請求項２】
前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似ＵＲＬを検索するステップは、
前記マルウェア特徴量の接続先ＵＲＬ以外の特徴量と対応するアクセス特徴量の接続先ＵＲＬ以外の特徴量との間に定義した距離関数値が所定の閾値より小さくなる場合に、類似アクセス特徴量と判定する第１のステップと、
前記マルウェア特徴量の接続先ＵＲＬと前記類似アクセス特徴量に含まれる接続先ＵＲＬとの間に定義した文字列間の相違の距離関数値が所定の閾値より小さくなる場合に、類似ＵＲＬと判定して検索する第２のステップとよりなることを特徴とする請求項１に記載の不正アクセス検知方法。
【請求項３】
前記マルウェア特徴量、及び前記アクセス特徴量は、少なくとも接続先ＵＲＬ、平均パケットサイズ、アクセス時間間隔、Ｕｓｅｒ−Ａｇｅｎｔ、及びＰｏｓｔ回数の特徴量データ項目を有することを特徴とする請求項２に記載の不正アクセス検知方法。
【請求項４】
インターネットに接続するネットワークに接続された複数のサーバ上に構成された不正アクセス検知システムであって、
クライアントに感染した、または採集した新たなマルウェアを仮想的試験環境で実行して、マルウェアのアクセス挙動のトレースを生成するマルウェア解析機能と、
前記マルウェアのアクセス挙動のトレースより、マルウェア特徴量を抽出するマルウェア特徴量抽出機能と、
クライアントの過去のアクセスログを記憶管理して、アクセスログよりアクセス特徴量を適宜抽出してアクセス特徴量記憶部へ記憶するアクセス特徴量抽出機能と、
前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似ＵＲＬを検索する類似ＵＲＬ検索機能と、
マルウェア特徴量の接続先ＵＲＬ、および前記検索された類似ＵＲＬよりＵＲＬ正規表現を生成し、前記ＵＲＬ正規表現を前記アクセスログに含まれる接続先ＵＲＬとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記ＵＲＬ正規表現を新たな検知ルールに加える正規表現生成機能と、
前記ＵＲＬ正規表現を加えて更新した検知ルールを、アクセス対象のＵＲＬに適用して、不正アクセスか否かを判定する悪性ＵＲＬ検知機能と、
を備えたことを特徴とする不正アクセス検知システム。
【請求項５】
前記類似ＵＲＬ検索機能は、前記アクセス特徴量記憶部から、前記マルウェア特徴量の接続先ＵＲＬ以外の特徴量と対応するアクセス特徴量の接続先ＵＲＬ以外の特徴量との間に定義した距離関数値が所定の閾値より小さくなる場合に、類似アクセス特徴量と判定して検索し、
前記マルウェア特徴量の接続先ＵＲＬと前記類似アクセス特徴量に含まれる接続先ＵＲＬとの間に定義した文字列間の相違の距離関数値が所定の閾値より小さくなる場合に、類似ＵＲＬと判定して検索することを特徴とする請求項４に記載の不正アクセス検知システム。
【請求項６】
前記マルウェア特徴量、及び前記アクセス特徴量は、少なくとも接続先ＵＲＬ、平均パケットサイズ、アクセス時間間隔、Ｕｓｅｒ−Ａｇｅｎｔ、及びＰｏｓｔ回数の特徴量データ項目を有することを特徴とする請求項５に記載の不正アクセス検知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェアに感染したコンピュータなどが行う不正なネットワークアクセスを検知する技術に関する。
【背景技術】
【０００２】
組織内のコンピュータに感染したマルウェアは、攻撃者が用意した外部のサーバと通信を行い、新たなマルウェアのダウンロードやコンピュータから取得した情報のアップロードなどを行う。一般にこれらの活動にかかわる通信を不正アクセスと呼ぶ。【０００３】
不正アクセスを検知する手法として、ＵＲＬブラックリストを用いた方法が知られている。ＵＲＬブラックリストは、既知のマルウェアのアクセスで利用されたＵＲＬ（悪性ＵＲＬと呼ぶ）をリスト化したものである。ＵＲＬブラックリストをファイアウォール、ＩＤＳ/ＩＰＳ、プロキシサーバなどのセキュリティ装置に登録することで、ブラックリストに含まれるＵＲＬで特定される外部サーバへのアクセスを検知することができる。不正アクセスを検知した場合、アクセスを中断することで、被害の拡大を防ぐことができる。このような技術は、一般にウェブフィルタリングと呼ばれる。  
しかし、攻撃者はブラックリストによる検知を逃れるために、マルウェアが通信するＵＲＬを意図的に変化させる。例えば、ＵＲＬの一部に乱数を組み込むなどの手法が知られている。また、攻撃者は、既存のマルウェアを再利用して、攻撃に利用することがある。そのため、ＵＲＬに含まれるドメインは異なるが、パス部分は同一あるいは類似している場合がある。このような変化したＵＲＬはブラックリストとの完全一致検索では検知できない。変化したＵＲＬに対応する方法として、ＵＲＬを正規表現で表現する技術が知られている。正規表現は、文字列の集合を一つの文字列で表現する方法の一つである。特許文献１では、正規表現生成の候補となる複数のＵＲＬサンプルから、文字列の頻度情報をもとにＵＲＬ正規表現を生成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２００９／０２６５７８６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記した特許文献１によると、変化した悪性ＵＲＬを検知することができる。しかし、特許文献１の手法は、サンプルに現れる文字列の頻度情報をもとに正規表現を生成するため、ある程度以上の数のＵＲＬサンプルを必要とする。サンプル数が少ない場合、検知に有効なＵＲＬ正規表現を生成することはできない。【０００６】
本発明は、上記の問題点を考慮し、正規表現の元になるＵＲＬサンプルが少ない場合であっても、検知に有効なＵＲＬ正規表現を生成し不正アクセスを検知することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明では、マルウェア解析結果から得られるマルウェアのアクセス挙動のトレースから不正アクセス検知のためのＵＲＬ正規表現を生成して検知ルールを更新する不正アクセスの検知方法において、解析者が採集した、またはネットワーク上から感染した新たなマルウェアのアクセス挙動のトレース解析からマルウェア特徴量を抽出するステップと、過去のネットワーク上のアクセスログからアクセス特徴量を随時抽出して、記録したアクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似ＵＲＬを検索するステップと、マルウェア特徴量の接続先ＵＲＬ、および前記検索された類似ＵＲＬよりＵＲＬ正規表現を生成するステップと、前記ＵＲＬ正規表現を前記アクセスログに含まれる接続先ＵＲＬとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記ＵＲＬ正規表現を新たな検知ルールに設定するステップとを有することを特徴とする不正アクセス検知方法を提案した。【０００８】
また、上記課題を解決するために本発明では、前記不正アクセス検知方法において、前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似ＵＲＬを検索するステップは、前記マルウェア特徴量の接続先ＵＲＬ以外の特徴量と対応するアクセス特徴量の接続先ＵＲＬ以外の特徴量との間に定義した距離関数値が所定の閾値より小さくなる場合に、類似アクセス特徴量と判定する第１のステップと、前記マルウェア特徴量の接続先ＵＲＬと前記類似アクセス特徴量に含まれる接続先ＵＲＬとの間に定義した文字列間の相違の距離関数値が所定の閾値より小さくなる場合に、類似ＵＲＬと判定して検索する第２のステップとよりなることを特徴とする。【０００９】
また、上記課題を解決するために本発明では、インターネットに接続するネットワークに接続された複数のサーバ上に構成された不正アクセス検知システムを、クライアントに感染した、または採集した新たなマルウェアを仮想的試験環境で実行して、マルウェアのアクセス挙動のトレースを生成するマルウェア解析機能と、前記マルウェアのアクセス挙動のトレースより、マルウェア特徴量を抽出するマルウェア特徴量抽出機能と、クライアントの過去のアクセスログを記憶管理して、アクセスログよりアクセス特徴量を適宜抽出してアクセス特徴量記憶部へ記憶するアクセス特徴量抽出機能と、前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似ＵＲＬを検索する類似ＵＲＬ検索機能と、マルウェア特徴量の接続先ＵＲＬ、および前記検索された類似ＵＲＬよりＵＲＬ正規表現を生成し、前記ＵＲＬ正規表現を前記アクセスログに含まれる接続先ＵＲＬとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記ＵＲＬ正規表現を新たな検知ルールに加える正規表現生成機能と、前記ＵＲＬ正規表現を加えて更新した検知ルールを、アクセス対象のＵＲＬに適用して、不正アクセスか否かを判定する悪性ＵＲＬ検知機能とを備えて構成した。
【発明の効果】
【００１０】
本発明により、不正ＵＲＬのサンプルが少量の場合であっても、効果的なＵＲＬ正規表現を生成し、不正アクセスを検知することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の不正アクセス検知システムのシステム構成の例を示した図である。
【図２】マルウェア解析サーバ、検知ルール設定サーバ、ログ管理サーバ、プロキシサーバが有する機能の関連を説明した図である。
【図３】マルウェア特徴量の例を示した図である。
【図４】アクセス特徴量の例を示した図である。
【図５】検知ルール管理情報の例を示した図である。
【図６】マルウェア特徴量抽出機能の処理フローの例を示した図である。
【図７】ＵＲＬ正規表現生成機能の処理フローの例を示した図である。
【図８】類似ＵＲＬ検索機能の処理フローの例を示した図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態（以下、「実施形態」という。）について、適宜図面を参照しつつ説明する。
【００１３】
図１は、本実施形態の不正アクセス検知システム１００のシステム構成の例を示した図である。図１に示すように、本システムは、プロキシサーバ１２１、ログ管理サーバ１２２、マルウェア解析サーバ１２３、検知ルール設定サーバ１２４を含み、各装置はネットワーク１０１を介して相互に接続されて構成される。
【００１４】
不正アクセス検知システム１００は、ある組織内に敷設されたローカルエリアネットワーク１２０に複数のクライアント１２５と共に接続されている。ローカルエリアネットワーク１２０は、ファイアウォール１３０、ネットワーク１０１を介してインターネット１１０に接続されている。
【００１５】
インターネット１１０上の攻撃者サーバ１１１は、ネットワークに接続する前記組織などに対して攻撃を行う者が利用するサーバである。攻撃者は、マルウェアを組織内に侵入させることに成功すると、攻撃者サーバ１１１を使い組織のクライアント１２５に感染したマルウェアと通信を行う。その結果、新たなマルウェアの送信や、組織内から取得したファイルの受信などを行う。攻撃者サーバ１１１はインターネット１１０上に複数設置される。
【００１６】
ファイアウォール１３０は、ローカルエリアネットワーク１２０とインターネット１１０との間で、互いのネットワークを行き来するパケットの中から、特定の条件に合ったパケットを破棄（遮断）あるいは許可（通過）する機能を備える。特にプロキシサーバ１２１を経由しないパケットを破棄することで、ローカルエリアネットワーク１２０からインターネット１１０へ向かう全てのアクセスをプロキシサーバ１２１経由で行うことができる。
【００１７】
プロキシサーバ１２１は、クライアント１２５とインターネット上のサーバ間のパケットのやり取りを中継する。プロキシサーバ１２１に悪性ＵＲＬを登録しておくことで、不正アクセスを検知することができる。不正アクセスを検知した場合、アクセスを中止することで、攻撃者との通信を遮断することができる。また、プロキシサーバ１２１は、クライアント１２５が行ったアクセスの履歴を全て記録する機能を備える。この記録をアクセスログと呼ぶ。プロキシサーバ１２１の処理の詳細は、図２で説明する。
【００１８】
ログ管理サーバ１２２は、プロキシサーバ１２１が出力するアクセスログを保存し、正規表現ＵＲＬの生成に利用するＵＲＬを検索する機能を備える。ログ管理サーバ１２２の処理の詳細は、図２で説明する。
【００１９】
マルウェア解析サーバ１２３は、仮想環境などでマルウェアを実行し、ネットワークアクセスの振る舞いなどを記録する機能を備える。図１では、マルウェア解析サーバ１２３は、ローカルエリアネットワークに接続されているが、インターネット１１０上に接続されてもよい。マルウェア解析サーバ１２３の処理の詳細は、図２で説明する。
【００２０】
検知ルール設定サーバ１２４は、マルウェア解析サーバ１２３が記録したマルウェアのネットワークアクセスの振る舞いを記録したデータから抽出した特徴量と、ログ管理サーバ１２２が有するアクセスログから抽出した特徴量を用いてＵＲＬ正規表現を生成する機能を備える。さらに、生成したＵＲＬ正規表現をプロキシサーバ１２１へ検知ルールとして設定する機能を備える。
【００２１】
クライアント１２５は、ネットワーク１０１を介してインターネット１１０にアクセスする機能を備える。クライアント１２５は、偽造メールに添付された実行ファイルを実行するなどして、マルウェアに感染する可能性がある。マルウェアに感染したクライアント１２５は、正規のユーザに気づかれずに、攻撃者と通信を行う。
【００２２】
ネットワークに接続されたこれらの各装置のハードウェア構成は、少なくともＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ハードディスクドライブなどの補助記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの主記憶装置、キーボードやマウスといった入力装置、ディスプレイなどの出力装置と接続されるＩ（Ｉｎｐｕｔ）／Ｏ（Ｏｕｔｐｕｔ）インターフェース、ローカルエリアネット１２０およびインターネット１１０に接続するためのネットワークインターフェースなどを備える。
【００２３】
図２を参照して、マルウェア解析サーバ１２３、検知ルール設定サーバ１２４、ログ管理サーバ１２２、プロキシサーバ１２１および各サーバが連携して行う処理の概要について説明する。
【００２４】
マルウェア解析サーバ１２３は、マルウェア解析機能２３１を備える。マルウェア解析機能２３１は、マルウェア解析サーバ１２３上で仮想的試験環境でマルウェアを実行し、マルウェアが行うファイルの生成、レジストリの変更、ネットワークを介したアクセスの挙動などを記録する。特に、本発明では、ネットワークを介したアクセスの記録を利用する。アクセスの記録には、マルウェアが行ったアクセスが時系列で記録される。各アクセスの記録は、アクセスした時刻、送信したパケットを含む。パケットを解析することで、接続先ＵＲＬ、接続先ＩＰアドレス、接続先ポート、送信元ポート、プロトコル、Ｕｓｅｒ−Ａｇｅｎｔなどの情報を取得できる。このようなマルウェア解析機能２３１は、一般に動的解析と呼ばれる技術で実現できる。本実施形態では、既存の動的解析の技術をマルウェア解析サーバ１２３に実装して、マルウェアをデバッガやエミュレータにより実行して、マルウェアの制御フローのトレースを記録する。
【００２５】
マルウェア解析サーバ１２３にマルウェアを用意する方法は大きく２通りある。一つは、マルウェア解析サーバ１２３とは別のコンピュータ(クライアント１２５)で発見されたマルウェアを、手動でマルウェア解析サーバ１２３へコピー(マルウェア検体)する方法である。もう一つは、マルウェア解析サーバ１２３を攻撃者が狙いやすい場所に設置し(例えば、外部からアクセスし易い場所、ファイアウォール１３０の外側のネットワーク１０１上に設置する。)、マルウェアに感染させる方法である。この方法は、一般にハニーポットと呼ばれる。
【００２６】
検知ルール設定サーバ１２４は、マルウェア特徴量３００抽出機能２４１、正規表現生成機能２４２、検知ルール管理情報記憶部２４３、検知ルール設定機能２４４などを備える。
マルウェア特徴量３００抽出機能２４１は、マルウェア解析機能２３１が出力したマルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)から、ＵＲＬ正規表現の生成に利用する情報を抽出する。マルウェア特徴量３００の詳細は、図３で、処理の詳細は、図６で説明する。
【００２７】
正規表現生成機能２４２は、マルウェア特徴量３００抽出機能２４１が出力した情報をもとに、ログ管理サーバ１２２へ問合せを行い、ＵＲＬ正規表現を生成するための類似ＵＲＬの集合を取得する。取得した類似ＵＲＬの集合から正規表現の候補を生成し、アクセスログ２２１を利用してＵＲＬ正規表現５０２を生成する。生成したＵＲＬ正規表現５０２を検知ルール管理情報記憶部２４３に保存する。正規表現生成機能２４２の処理の詳細は、図７で説明する。
【００２８】
検知ルール管理情報記憶部２４３は、正規表現生成機能２４２が生成したＵＲＬ正規表現とＵＲＬ正規表現を適用する装置の情報などを含む。詳細は図５で説明する。
検知ルール設定機能２４４は、正規表現生成機能２４２が生成したＵＲＬ正規表現をプロキシサーバ１２１に設定する機能を備える。
【００２９】
ログ管理サーバ１２２は、アクセスログ記憶部２２１、アクセス特徴量抽出機能２２２、アクセス特徴量記憶部２２３、類似ＵＲＬ検索機能２２４などを備える。
アクセスログ記憶部２２１は、プロキシサーバ１２１が出力したアクセスログ２１３を例えば１年以上に亘って記録したものを含む。アクセスログ記憶部２２１は、クライアント１２５がアクセスを行った日時、アクセスを行ったクライアント１２５のＩＰアドレス、アクセスを行った接続先ＵＲＬ、アクセスに利用したＵｓｅｒ−Ａｇｅｎｔ、リファラ、送信したパケットのサイズ、受信したパケットのサイズなどを含む。一般に、負荷分散などの理由からプロキシサーバ１２１は複数設置される。そのため、出力されるアクセスログも複数ファイルに分割される。ログ管理サーバ１２２は、これら分割されたログをマージして保存する。
【００３０】
アクセス特徴量抽出機能２２２は、アクセスログ２２１を解析し、一連のアクセスに対してアクセス特徴量２２３を算出する。膨大なアクセスログデータから、必要時にアクセス特徴量を算出すると時間を要するので、アクセスログ２２１が記録された際に適宜アクセス特徴量２２３を算出する。
アクセス特徴量記憶部２２３は、類似ＵＲＬを検索するのに必要な情報を含む。詳細は図４で説明する。
類似ＵＲＬ検索機能２２４は、正規表現生成機能２４２が正規表現を生成するのに必要な類似ＵＲＬの集合を検索する。処理の詳細は、図７で説明する。
【００３１】
プロキシサーバ１２１は、悪性ＵＲＬ検知機能２１１、検知ルール記憶部２１２を備える。
悪性ＵＲＬ検知機能２１１は、クライアント１２５がアクセスしようとするＵＲＬが予め設定したＵＲＬ正規表現に一致するか否かを比較し、一致する場合は不正アクセスと判定し、アクセスを中止するなどの制御を行う。
検知ルール２１２は、プロキシサーバ１２１がクライアント１２５のアクセスを許可するか遮断するかの判断を行うためのルールを含む。ＵＲＬ正規表現も検知ルールの一つだが、パケットのサイズやプロトコルの種類などによる検知ルール２１２も有する。例えば、クライアント１２５がアクセスを試みるインターネット上の相手のＵＲＬがＵＲＬ正規表現に一致し、パケットサイズが１ＭＢ以上の場合は、アクセスを中止するなど複合的なルールを設定できる。
【００３２】
図３を参照して、検知ルール設定サーバ１２４のマルウェア特徴量抽出機能２４１がマルウェア解析機能２３１が出力したマルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)から抽出したマルウェア特徴量３００の例について説明する。マルウェア特徴量３００は、マルウェアＩＤ３０１、接続先ＵＲＬリスト３０２、平均パケットサイズ３０３、アクセス時間間隔３０４、Ｕｓｅｒ−Ａｇｅｎｔ３０５、Ｐｏｓｔ回数３０６などを含む。
【００３３】
マルウェアＩＤ３０１は、マルウェアを一意に特定するための識別子である。例えば、ＭＤ５などのハッシュ値をマルウェアＩＤ３０１として利用する。接続先ＵＲＬリスト３０２は、マルウェア解析機能２３１が解析したマルウェアがアクセスしたＵＲＬのリストである。これらは、悪性ＵＲＬと判定される。平均パケットサイズ３０３は、一連のマルウェアのアクセスの中でマルウェアが送信したパケットの平均サイズである。アクセス時間間隔３０４は、一連のマルウェアのアクセスの時間パターンを表す量である。例えば、アクセス間隔の平均時間などが利用できる。より高度な時間パターンを表す量として、アクセス時刻の周期性などを抽出することも考えられる。Ｕｓｅｒ−Ａｇｅｎｔは、アクセスを行ったプログラムを特定するための識別子である。ＰＯＳＴ回数３０６は、一連のマルウェアのアクセスでＰＯＳＴを行った回数である。これらマルウェア特徴量はマルウェアの挙動を特徴付ける量であり、マルウェア特徴量と類似の特徴量を持つアクセスはマルウェアによるアクセスである可能性が高い。
【００３４】
図４を参照して、ログ管理サーバ１２２のアクセス特徴量抽出機能２２２がアクセスログ２２１から抽出するアクセス特徴量２２３の例について説明する。アクセス特徴量２２３は、セッションＩＤ４０１、イベントＩＤリスト４０２、接続先ＵＲＬリスト４０３、平均パケットサイズ４０４、アクセス時間間隔４０５、Ｕｓｅｒ−Ａｇｅｎｔ４０６、Ｐｏｓｔ回数４０７などを含む。
【００３５】
セッションＩＤ４０１は、クライアント１２５が行った一連の繋がりを持ったアクセスを特定するための識別子である。イベントＩＤリスト４０２は、セッションＩＤで識別されるセッションに属するイベントのリストを特定するための識別子である。ここでイベントとは、アクセスログ記憶部２２１に含まれる一つのアクセスを指す。接続先ＵＲＬリスト４０３は、セッション中にクライアント１２５がアクセスしたＵＲＬを記録したリストである。平均パケットサイズ４０４は、セッション中にクライアント１２５が送信したパケットの平均サイズである。アクセス時間間隔４０５は、一連のマルウェアのアクセスの時間パターンを表す量である。マルウェア特徴量３００のアクセス時間と同様の量が利用できる。Ｕｓｅｒ−Ａｇｅｎｔ４０６は、アクセスを行ったプログラムを特定するための識別子である。ＰＯＳＴ回数４０７は、セッション中にクライアント１２５が送信したＰＯＳＴアクセスの回数である。
【００３６】
以下で、セッションの決め方について説明する。まず、アクセスログ記憶部２２１に含まれる各イベントをクライアント１２５ごとに分類する。クライアント１２５はイベントに含まれる送信元ＩＰや、ユーザの認証情報により特定される。次に、クライアント１２５で分類されたイベントをセッションに分類する。アクセスの時間間隔の差異が予め決めた閾値（例えば３０分）を超えた場合に別のセッションと判定する。さらに、Ｕｓｅｒ−Ａｇｅｎｔが異なるイベントは別セッションと判定する。これにより、アクセスログ１２５は複数のセッションに分解される。
【００３７】
図５を参照して、正規表現生成機能２４２にて作成した検知ルール管理情報２４３の例について説明する。検知ルール管理情報記憶部２４３は、ルールＩＤ５０１、ＵＲＬ正規表現５０２、対象装置ＩＤ５０３、対策５０４、設定日５０５などを含む。
ルールＩＤ５０１は、検知ルール２４３を一意に特定するための識別子である。ＵＲＬ正規表現５０２は、プロキシサーバ１２１が、クライアント１２５がアクセスする対象のＵＲＬを不正アクセスとして判定するための接続先ＵＲＬを正規表現で表したものである。対象装置ＩＤ５０３は、検知ルールを適用する装置を識別するための情報である。例えば、プロキシサーバ１２１のＩＰアドレスなどが利用できる。対策５０４は、クライアント１２５の接続先ＵＲＬがＵＲＬ正規表現に一致した場合に対象装置(プロキシサーバ)の悪性ＵＲＬ検知機能２１１が行う制御の内容である。例えば、通信の遮断や、管理者へ通知など対策として利用できる。設定日は、検知ルールを設定した日時を表す。設定日を利用することで、設定してから一定期間経過したルールは削除するなどの運用が可能になる。
【００３８】
図６のフローチャートを参照して、検知ルール設定サーバ１２４のマルウェア特徴量抽出機能２４１の処理の流れの例を説明する。
ステップＳ６０１において、マルウェア特徴量抽出機能２４１は、マルウェア解析機能２３１が出力したマルウェア解析結果(マルウェアが行ったアクセスの時系列の記録)を読み込む。複数のマルウェアを解析した場合は、マルウェア解析結果も複数存在する。
【００３９】
ステップＳ６０２において、マルウェア特徴量抽出機能２４１は、マルウェア解析機能２３１が出力したマルウェア解析結果から図３に示すマルウェア特徴量３００を抽出する。前述したように、マルウェア解析結果は、ＯＳのＡＰＩ呼び出しや、ネットワークアクセスのログを含む。マルウェア特徴量３００は、プロキシサーバ１２１が出力したアクセスログの検索に利用される。そのため、アクセスログに含まれないＯＳのＡＰＩ呼び出しなどの情報は除外し、ネットワークアクセスに関するログを選択する。その後、選択したログを解析し、図３に含まれる情報を抽出する。
【００４０】
ステップＳ６０３において、マルウェア特徴量抽出機能２４１は、重複するマルウェア特徴量３００を除外する。マルウェア解析機能２３１が複数のマルウェアに対して解析を行った場合、ステップＳ６０２において、複数のマルウェア特徴量３００が抽出される。その中には、マルウェアのハッシュ値(マルウェアＩＤ３０１)は異なるが、他のマルウェア特徴量３００は同一なマルウェアが存在する可能性がある。その場合、いずれか一つのマルウェア特徴量３００のみを選択する。
ステップＳ６０４において、マルウェア特徴量抽出機能２４１は、ステップＳ６０３で重複を除外したマルウェア特徴量３００を正規表現生成機能２４２に送信する。
【００４１】
図７のフローチャートを参照して、正規表現生成機能２４２の処理の流れの例を説明する。
ステップＳ７０１において、正規表現生成機能２４２は、マルウェア特徴量抽出機能２４１が出力したマルウェア特徴量３００を取得する。複数のマルウェアを解析した場合は、複数のマルウェア特徴量３００を取得する。
【００４２】
ステップＳ７０２において、正規表現生成機能２４２は、ステップＳ７０１で取得したマルウェア特徴量３００をログ管理サーバ１２２の類似ＵＲＬ検索機能２２４に送信する。マルウェア特徴量３００を受信した類似ＵＲＬ検索機能２２４は、マルウェア特徴量３００をクエリにして、アクセス特徴量記憶部２２３から類似ＵＲＬを検索する。検索した結果、該当する類似ＵＲＬを正規表現生成機能２４２に送信する。類似ＵＲＬ検索機能２２４の詳細は、図８で説明する。
ステップＳ７０３において、正規表現生成機能２４２は、類似ＵＲＬ検索機能２２４が送信した類似ＵＲＬを受信する。
【００４３】
ステップＳ７０４において、正規表現生成機能２４２は、類似ＵＲＬの集合からＵＲＬ正規表現を生成する。複数の文字列から正規表現を生成する方法として、特許文献１に記載される方法を採用する。
上記手法を使うことで、類似ＵＲＬの集合から、正規表現を生成することができる。しかし、上記手法も含めて一般にある複数の文字列を表現する正規表現は一意には定まらない。例えば、http://www.sample.com/path[a-zA-Z]{5,10}.exeと、http://www.sample.com/[a-zA-Z]*.exeという二つの正規表現を比較すると、前者で表現されるＵＲＬは全て後者でも表現できる。その意味で、後者は粒度が荒い正規表現と言える。粒度が荒い正規表現をプロキシサーバ１２１の検知ルール記憶部２１２に記憶して、クライアント１２５がアクセスしようとするＵＲＬを検知すると、悪性ＵＲＬと誤認識する確率が高くなる。そのため、正規表現の粒度は細かい方が望ましい。  
ステップＳ７０５において、正規表現生成機能２４２は、アクセスログ２２１を使って正規表現の粒度を確認する。まず、ステップＳ７０４で生成したＵＲＬ正規表現を、ステップＳ７０３で受信した類似ＵＲＬ以外のアクセスログ２２１のＵＲＬとのパターンマッチングに適用し、その一致率を計算する。ここで、予め一致率の推奨値（例えば３％）を決めておく。そして、計算した一致率が推奨値より大きくなった場合は、正規表現の粒度が荒すぎるので、ステップＳ７０４で生成した該当正規表現を破棄する。
【００４４】
ステップＳ７０６において、正規表現生成機能２４２は、ステップＳ７０５で粒度を確認したＵＲＬ正規表現のうち、アクセスログ２２１のＵＲＬとの一致率が推奨値以下となるＵＲＬ正規表現のみを検知ルール管理情報記憶部２４３に保存する。ここで、ＵＲＬ正規表現に、対象装置ＩＤ、対策、設定日などを追加する。対象装置ＩＤ、対策は予め決められた値を登録してもよいし、正規表現生成結果を確認した管理者が手動で登録してもよい。
【００４５】
図８のフローチャートを参照して、ログ管理サーバ１２２の類似ＵＲＬ検索機能２２４の処理の流れの例を説明する。
ステップＳ８０１において、類似ＵＲＬ検索機能２２４は、正規表現生成機能２４２が送信したマルウェア特徴量３００を受信する。
【００４６】
ステップＳ８０２において、類似ＵＲＬ検索機能２２４は、マルウェア特徴量３００の接続先ＵＲＬ以外の特徴量を検索キーとして、アクセス特徴量記憶部２２３に記憶されたアクセス特徴量を検索して、数１の距離関数が予め設定した閾値より小さくなる場合に、マルウェア特徴量３００とアクセス特徴量２２３は類似していると見做して、類似アクセス特徴量の集合を取得する。
マルウェア特徴量Ｃmとアクセス特徴量Ｃaの間に定義する距離関数d(Ｃm,Ｃa)(数１)は、接続先ＵＲＬ以外の対応する特徴量の差の絶対値に特徴量ごとの重み係数wfを掛けて、それらの線形和を距離として用いる。このとき、Ｕｓｅｒ−Ａｇｅｎｔなど数値的でない特徴量は、値が一致であれば０、不一致であれば１とする離散距離を用いる。
（数１）  d(Ｃm,Ｃa)＝wf1・|cm_pk−ca_pk|＋wf2・|cm_atime−ca_atime|
＋wf3・ｆ(cm_ua,ca_ua)＋wf4・|cm_pfreq−ca_pfreq|＋‥‥
ここで、cm_pk，cm_atime，cm_ua，cm_pfreq：マルウェア特徴量(平均パケットサイズ、アクセス時間間隔、Ｕｓｅｒ−Ａｇｅｎｔ、Ｐｏｓｔ回数)、ca_pk，ca_atime，ca_ua，ca_pfreq：アクセス特徴量(平均パケットサイズ、アクセス時間間隔、Ｕｓｅｒ−Ａｇｅｎｔ、Ｐｏｓｔ回数)、wf1，wf2，wf3，wf4：特徴量ごとの重み係数、ｆ(cm_ua,ca_ua)：特徴量(Ｕｓｅｒ−Ａｇｅｎｔ)の距離関数＝０(cm_ua＝ca_ua) or １(cm_ua≠ca_ua)。
検索の結果、該当するアクセス特徴量(セッション)の集合を取得する。
【００４７】
ステップＳ８０３において、類似ＵＲＬ検索機能２２４は、ステップＳ８０２で取得した類似アクセス特徴量(セッション)に含まれる接続先ＵＲＬを取得する。
ステップＳ８０４において、類似ＵＲＬ検索機能２２４は、ステップＳ８０３で取得した接続先ＵＲＬの中から、ステップＳ８０１で取得したマルウェア特徴量が含む接続先ＵＲＬと類似する接続先ＵＲＬを取得する。具体的には、マルウェア特徴量が含む接続先ＵＲＬと、類似アクセス特徴量(セッション)に含まれる接続先ＵＲＬに対して、距離関数を定義して、あらかじめ設定した閾値より距離が小さい組を類似とみなす。距離関数として、文字列の近さを図る「編集距離（レーベンシュタイン距離とも呼ばれる）」などが利用できる。
編集距離(レーベンシュタイン距離)は、二つの文字列がどの程度異なっているかを示す数値である。具体的には、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数として与えられる。
ステップＳ８０５において、類似ＵＲＬ検索機能２２４は、ステップＳ８０４で検索した類似ＵＲＬを正規表現生成機能２４２へ送信する。
【００４８】
以上に記載したように、本実施形態の不正アクセス検知システム１００は、図２に示す通り、マルウェア解析サーバ１２３にユーザがマルウェアコピー(マルウェア検体)を投入することにより、又はマルウェア解析サーバ１２３がネットワーク１０１を介してマルウェアに感染したと判定した場合に、新たなＵＲＬ正規表現の検知ルールを作成する処理が起動される。
マルウェア解析サーバ１２３は、投入、又は感染したマルウェアのアクセスの挙動を解析して、アクセスの記録を蓄積する。検知ルール設定サーバ１２４は、マルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)からマルウェア特徴量を抽出して、ログ管理サーバ１２２が管理するローカルエリアネットワーク上のクライアント１２５の過去のアクセスログから類似のアクセス特徴量を検索することを指示する。ログ管理サーバ１２２は、過去のアクセスログからアクセス特徴量を適宜抽出して記憶しておいて、マルウェア特徴量と類似するアクセス特徴量からマルウェア特徴量が含む接続先ＵＲＬと類似するアクセス特徴量が含む接続先ＵＲＬを抽出して、類似ＵＲＬとして検知ルール設定サーバ１２４へ報告する。検知ルール設定サーバ１２４は、マルウェア特徴量が含む接続先ＵＲＬと類似ＵＲＬとに基づいて、新たなＵＲＬ正規表現を作成して、その新たなＵＲＬ正規表現が検知ルールとして適当であるか否かをアクセスログに含まれるＵＲＬとの一致率を計算して判定する。算出した一致率が推奨値以下と判定した場合に、新たなＵＲＬ正規表現を検知ルール管理情報記憶部２４３に保存して、そのＵＲＬ正規表現をプロキシサーバ１２１の検知ルール記憶部２１２へ設定して、それ以後の悪性ＵＲＬ検知機能に使用される。
【００４９】
本実施形態の不正アクセス検知システム１００は、プロキシサーバ１２１、ログ管理サーバ１２２、マルウェア解析サーバ１２３、検知ルール設定サーバ１２４に分けられて構成される例を示した。しかし、これらの各サーバのうちいずれかの複数のサーバが同一のサーバ上に構成される例も考えられる。また、例えばプロキシサーバ１２１などが複数のサーバの分散処理により構成される例も考えられる。また、全てのサーバが同一のサーバ上に構成される例も考えられる。
【符号の説明】
【００５０】
１００：不正アクセス検知システム、１０１：ネットワーク、１１０：インターネット、１１１：攻撃者サーバ、１２０：ローカルエリアネットワーク、１２１：プロキシサーバ、１２２：ログ管理サーバ、１２３：マルウェア解析サーバ、１２４：検知ルール設定サーバ、１２５：クライアント、１３０：ファイアウォール、２１１：悪性ＵＲＬ検知機能、２１２：検知ルール、２１３：アクセスログ、２２１：アクセスログ、２２２：アクセス特徴量抽出機能、２３３：アクセス特徴量、２２４：類似ＵＲＬ検索機能、２３１：マルウェア解析機能、２４１：マルウェア特徴量抽出機能、２４２：正規表現生成機能、２４３：検知ルール管理情報、２４４：検知ルール設定機能、３００：マルウェア特徴量
【図１】
0006039826.tif 000002
【図２】
0006039826.tif 000003
【図３】
0006039826.tif 000004
【図４】
0006039826.tif 000005
【図５】
0006039826.tif 000006
【図６】
0006039826.tif 000007
【図７】
0006039826.tif 000008
【図８】
0006039826.tif 000009