説明

プロアクティブな不正プログラム検出方法、検出装置及びコンピュータプログラム

【課題】 インターネット上の未知な不正プログラムに関するパケットを検出するための方法、装置及びコンピュータプログラムを提供する。
【解決手段】 通信ネットワーク上を流れるパケットデータを捕捉し、このパケットデータを所定の要素に着目して加工編集し、加工編集されたデータから抽出された特徴データに基づき、前記パケットデータが不正プログラムに関するものであるか否かを判定することによって、未知な不正プログラムの出現に対して事前に対処する。

【発明の詳細な説明】
【技術分野】
【0001】
インターネット上の未知な不正プログラムに関するパケットを検出するための方法、装置及びコンピュータプログラムの提供に関する。
【背景技術】
【0002】
近年、社会問題となっているコンピュータウィルスやスパイウェアなどの不正なプログラムの侵入を検知したり、侵入を防御したり、あるいは駆除するためのソフトウェアや、これらのソフトウェアを実装したシステム、情報通信機器が多数製品化されている。これらの製品の多くは、シグネチャベースのものである。
シグネチャとは、既知の不正プログラムの特徴パターンのことをいい、このシグネチャをデータベース化しておき、ネットワーク上のトラフィックと照合し、不正プログラムを検出しようとするのが従来の製品である。
ウィルスもスパイウェアも、実体はファイルなので、既知のものであれば、このファイルの特徴を記したシグネチャとのパターンマッチングにより、検出できる。
【0003】
【特許文献1】特開2005−182187号公報
【特許文献2】特開2005−136526号公報
【0004】
たとえば特開2005−182187「不正アクセス検知方法、不正アクセス検知システム及び不正
アクセス検知プログラム」においては、誤検知を防ぎつつ、未知のパターンを含めて不正 アクセスを確実に防御するため、内部ネットワーク上の全パケットをキャプチャし、パケット
を順次取り込んで命令列として攻撃決定命令の有無を解析し、データベースの攻撃コードパターン情報と順次比較し、解析結果と一致するパターン情報の有無によって不正アクセスか否かを判定する。
特開2005−136526「不正アクセス検知装置、不正
アクセス検知方法および不正アクセス検知プログラム」においては、一連の処理を経て実行される不正アクセスをリアルタイムに検知することができるようにするため、パケットがネットワーク上で通信されると、そのパケットがキーデータ抽出手段で取得され、進行中シナリオが検索され、不正アクセスシナリオ記憶手段に格納されている不正アクセスシナリオに沿っているかどうかが照合される。
【発明の開示】
【発明が解決しようとする課題】
【0005】
シグネチャベースの検出手段は、既知の不正プログラムには十分対応できるとはいえ、リアクティブ、すなわち、既知の不正プログラムが発見されてから対処するしかない、という弱点があった。
新規な不正プログラムが頻繁に生じている昨今、発生が確認されると速やかにシグネチャを更新し、駆除したり、ブロックしたりする機能をもったソフトウェアを開発しなければならなかった。これは、非常に手間のかかる作業であり、かつ、シグネチャを常に最新に維持するためには巨額な費用も必要としていた。
【0006】
さらに、暗号化された通信を使った不正プログラムを発見することはできない、という問題もあった。不正プログラムのファイルは、特徴あるヘッダ部分や命令コードを持っていることが多く、これが検出の手がかりとなるのであるが、暗号化されていたのでは、ファイルの内部をチェックできないので、発見が極めて困難だからであった。
仮に、暗号化されていないとしても、ファイルレベルでの不正プログラムの検出はできるが、ネットワーク・パケット・レベルで検出することができない、という問題もあった。
【0007】
以上の問題点に鑑み、本発明は、プロアクティブ、すなわち、未知な不正プログラムが出現しても対処可能なように、事前の対策を用意しておくことを目的とする。
また、SSH(Secure Shell)などで暗号化された通信を利用した不正プログラムであっても、検出できることも目的とする。
さらに、ファイルレベルにとどまらず、ネットワーク・パケット・レベルで不正プログラムを検出することも目的とする。
【課題を解決するための手段】
【0008】
このような目的を達成するために、請求項1に記載の発明は、通信ネットワーク上を流れるパケットデータから不正プログラムを検出する方法であって、
パケットデータを捕捉するデータ収集段階と、
このパケットデータを所定の要素に着目して加工編集するデータ分析段階と、
加工編集されたデータから抽出された特徴データに基づき、前記パケットデータが不正プログラムに関するものであるか否かを判定する評価段階と、
を有し、プロアクティブな対処ができることを特徴とする。
【0009】
「不正プログラム」とは、コンピュータウィルス、ワームやトロイの木馬などと称されるプログラムをいう。不正プログラムは、パソコンの持ち主が知らない間に、そのパソコンに侵入し、例えば、個人情報を流出させたり、パソコン内部の情報を破壊したり、迷惑メールを送りつけたり、といった動作をすることがあるので、社会問題となっている。
下記の実施形態におけるボットも不正プログラムに含まれる。ボットと呼ばれるプログラムは、ボットを作成し、他人のパソコンに感染させようという意図を持った者(以下「攻撃者」)によって、他人のパソコンに潜伏させられた後、攻撃者からの命令によって自動的に実行させられるものである。このボットは、インターネット上のチャットシステムであるIRC(internet relay chat)の仕組みを悪用するものであり、感染したパソコンは攻撃者からの命令をIRCサーバを経由して受け取る。
パケットデータが「不正プログラムに関するもの」とは、不正プログラムのファイルの送信、不正プログラムの実行等、不正プログラムに関する一切の異常な通信を意味する。
「プロアクティブ」とは、シグネチャが存在しない未知の不正プログラムが出現しても、事前の対策がとられているという意味であるが、未知の不正プログラムには、新規に開発されたものだけでなく、既に存在していたが、認識されていなかったものも含む。
【0010】
また、前記の目的を達成するために、請求項2に記載の発明は、データの加工編集のために着目する要素として、リスポンスタイムとパケットデータサイズを用い、請求項3に記載の発明は、不正プログラムに関するパケットデータと判定された場合に、不正プログラムである旨の警告を出力することを特徴とする。
リスポンスタイムとパケットデータサイズのいずれも、パケットで搬送されるファイルの中身を参照しなくても把握できる要素なので、暗号化された通信が利用される場合であっても、本発明で異常の検出ができる。
「警告を出力」には、不正プログラムのターゲットとなっているパソコンへの警告メッセージの送信等を含む。
【0011】
さらに、前記の目的を達成するために、不正プログラムの通信に関する特徴データを不正パターンとして記憶し、請求項5に記載の発明は、この不正パターンと、新たに捕捉したパケットデータの特徴データとをマッチングすることによって、該パケットデータが不正プログラムに関するものであるか否かを判定することを特徴とする。
【0012】
また、通信ネットワーク上を流れるパケットを捕捉できる場所に設置される、前記の不正プログラム検出の機能を実現する装置も本発明である。
【0013】
さらに、前記の不正プログラム検出の機能を、コンピュータに実施させるためのコンピュータプログラムも本発明である。
【発明の効果】
【0014】
本発明によれば、既知の不正プログラムのトラフィックから抽出したシグネチャを必要としないため、プロアクティブ、すなわち、未知の不正プログラムの検出が可能になる。これは、従来のシグネチャベースがもつ、事後的対応しかできないという問題点を克服するものである。しかも、シグネチャデータベースを更新維持する必要がないので、費用面からも有利である。
また、本発明の検出手法は、ヒューリスティック(発見的)であり、不正パターンが蓄積されるほど、検出精度の向上が期待できる。
【0015】
本発明は、ファイルレベルではなく、ネットワーク・パケット・レベルで不正プログラムを検出することができる。また、ファイルの内容に立ち入ってチェックするわけではなく、パケットのサイズや時刻などの外部から認識できる要素でチェックするので、暗号化された通信を利用した不正プログラムであっても、検出が可能である。
【発明を実施するための最良の形態】
【0016】
図1に本発明の実施形態のシステム構成例を示す。
インターネットNに、パソコン1とIRCサーバ2が接続し、パソコン1は、IRCサーバ2を介してチャットに参加している。インターネットNには、攻撃者のパソコン3も接続している。
図1の例では、パソコン1Aとパソコン1Bがチャットに参加しているが、攻撃者のパソコン3から不正プログラムを送りつけようと狙われている。そこで、以後、ターゲットパソコン1A,1Bということにする。ターゲットパソコン1Aには、不正プログラム検出装置4(以下「検出装置4」)が接続され、この検出装置4は、インターネットNとターゲットパソコン1Aとの間の双方向の通信データを捕捉することができる。
【0017】
図2は、検出装置4の構成例を示すブロック図である。
検出装置4は、インタフェース部5を介して、インターネットNとターゲットパソコン1Aと接続している。データ収集部6は、インタフェース部5を介して、ネットワーク上を流れるパケットデータを捕捉し、これを収集データバッファ7に保存する。保存されたデータは、データ分析部8に渡され、リスポンスタイムなどの適当な要素に着目して、加工編集される。加工編集後のデータは、データ評価部9において、所定のルールやしきい値に基づいて、特徴データを抽出する。この特徴データを参照し、不正プログラムに関するものであるか否かの評価がなされる。
また、表示警告部11は、文字あるいは音声で警告したり、ターゲットパソコン1Aに警告メッセージを送信したりする。単に警告をするだけでなく、ターゲットパソコン1Aへの不正プログラムの送信をブロックしたりする機能を持たせてもよい。
【0018】
ネットワーク上から捕捉したパケットデータを、データ分析部8で加工編集し、不正パターン照合部12に渡す。不正パターン照合部12では、加工編集されたデータから特徴データを抽出し、これを、不正パターン記憶部10から取り出した不正パターンと照合し、類似すると認められたときは、不正プログラムに関するものと判定し、表示警告部11が所定の警告処理等を行う。
このように、未知の不正プログラムを検出できるとともに、いったん検出されると、以後は、従来のシグネチャベースの検出方法と同様の考え方により、既知の不正プログラムの検出もできる。
【0019】
検出装置4の各構成部は、本発明の方法の各ステップを説明しやすくするため、便宜上分けたにすぎない。
また、図2において一点鎖線で囲まれた部分は、不正プログラム検出のための一連の処理を行う部分であるが、これらの各部分の機能は、図示しないCPUが、メモリ上にロードされた不正プログラム検出プログラムの命令コードを実行することで、実現してもよいが、その一部はハードウェアで実現してもよい。
【0020】
さらに、検出装置4は、本発明の方法を実施するための専用の装置でもよいが、プロバイダや企業等のLANのゲートウェイ、あるいは、個人のパソコンのファイアウォールなどに、不正プログラム検出エンジンを組み込んだものでもよい。設置個所は、保護対象のコンピュータに流れるパケットデータを捕捉可能な場所であれば、特に限定しない。
【0021】
なお、検出装置4によって捕捉されるのは、双方向、あるいは多方向のパケットデータである。本発明では、リスポンスタイム等の双方向の通信の態様(タイムやサイズなど)を不正検出の重要な手がかりとするからである。
【0022】
次に、本実施形態の処理の流れを説明する。
以下の説明では、図3に示すセッションが実行されているという状況を想定する。
ターゲットパソコン1Aは、既に攻撃者パソコン3が仕掛けた不正プログラム(以下「ボット」)に感染しているものとする。
ターゲットパソコン1Aは、インターネット上のチャットに参加するために、IRCサーバ2に対して接続要求をする(ステップS1)。IRCサーバ2が接続OKの旨の応答をする(ステップS2)と、インターネットNを介して、ターゲットパソコン1AとIRCサーバ2との通信経路が確立される。ターゲットパソコン1Aは、任意回数にわたりチャットに参加する(ステップS3)。
【0023】
攻撃者パソコン3は、IRCサーバ2にログインコマンドを送信する(ステップS4)。IRCサーバ2は、このログインコマンドをターゲットパソコン1Aに送信すると(ステップS5)、ターゲットパソコン1Aは、ログインOKの応答をする(ステップS6)。次に、この応答は、IRCサーバ2から攻撃者パソコン3へ送信される(ステップS7)。
ターゲットパソコン1Aからの応答を受信することによって、攻撃者パソコン3は、ターゲットパソコン1Aとの通信経路を確立する。
【0024】
以後、攻撃者パソコン3は、IRCサーバ2を介して、ボットに実行させるためのコマンドを送信し(ステップS8,S9)、ターゲットパソコン1Aに潜伏するボットは、このコマンドを実行し、IRCサーバ2を介して攻撃者パソコン3に応答をする(ステップS10,S11)。ステップS8からステップS11までを繰り返すことにより、攻撃者パソコン3は、自らの意図どおりの処理をターゲットパソコン1A内に潜むボットに実行させることができる。例えば、ボットに、不正プログラムファイルをダウンロードさせたり、個人情報を流出させたり、といったことができる。これらのボットの動作は、ターゲットパソコン1Aのユーザの知らない間に、自動的に行われるのが通常である。
【0025】
ステップS4以降の不正な動作を、検出装置4がどのように検出するか、図4〜図7に従い説明する。
検出処理は、図4に示すように、データ収集フェーズ(ステップS100)、データ分析フェーズ(ステップS200)及び評価フェーズ(ステップS300)に大別される。
以下、各フェーズについて詳細に説明する。
【0026】
図5は、データ収集フェーズの処理フローを示すものである。ここで、データ収集は、特定の送信元及び送信先アドレス宛のパケットを対象として行うことを断っておく。対象アドレスは、事前に決定しておいてもよいが、繰り返しパケットを送信してくる送信元のアドレスを対象とするなど、運用の段階で適宜更新される。
データ収集部6は、ネットワークN上を流れるパケットを探し、パケットがなければ(ステップS101でNo)、処理を終了する。パケットがあれば(ステップS101でYes)、そのパケットを読み込む(ステップS102)。収集対象とするパケットの送信先と送信元のアドレスが、まだ決定されていないならば(ステップS103でNo)、読み込んだパケットの送信元および送信先のアドレスを、収集対象パケットのアドレスに決定し(ステップS104)、パケットを収集データバッファ7に保存する(ステップS106)。
【0027】
収集対象とするパケットのアドレスが既に決定されていれば(ステップS103でYes)、ステップS102で読み込んだパケットのアドレスを参照し、収集対象であれば(ステップS105でYes)、このパケットを収集データバッファ7に保存する(ステップS106)。収集対象のパケットでなければ(ステップS105でNo)、ステップS101に戻り、次のパケットを探す。
以上のステップS102からS106までの処理をパケットが有るまで繰り返し、パケットが無くなれば、次のデータ分析フェーズへ移る。
【0028】
図6は、データ分析フェーズの処理フローを示すものである。
データ分析部8は、収集データバッファ7にパケットデータが保存されていれば(ステップS201でYes),保存してあるパケットを読み込み(ステップS202)、送信元アドレスが収集対象送信元アドレスに合致するかを判定する。合致しなければ(ステップS203でNo),ステップS205に進むが、合致すれば(ステップS203でYes)、そのパケットの時刻T1を保存する(ステップS204)。
【0029】
次に、送信元アドレスが収集対象宛先アドレスと合致するかを判定する。合致しなければ(ステップS205でNo)、ステップS201に移り、次のパケットデータを探す。
送信元アドレスが、収集対象宛先アドレスに合致すれば(ステップS205でYes)、このパケットの時刻T2と、保存してあった時刻T1との差ΔTを求める(ステップS206)。この差ΔTを、双方向のパケットのリスポンスタイムとして保存した上、ステップS201に戻り、次のパケットデータを探す。なお、ΔTとともに、パケットデータのサイズやその他の要素も適宜保存する。このように保存されたデータが、請求項1にいう「加工編集されたデータ」に該当する。
保存されたパケットデータが無くなれば、次の評価フェーズへ移る。
【0030】
図7は、評価フェーズの処理フローを示すものである。
データ評価部9は、図6のステップS206で保存しておいた加工編集されたデータを読み出し、これをもとに特徴データを抽出する(ステップS301)。
特徴データの抽出方法としては、例えば、スペクトル解析や、ヒューリスティックな方法などを用いる。ヒューリスティックな方法とは、例えば、単位時間あたりN個以上のパケットが送受信され、こららのパケットのX%以上はリスポンスタイムがtミリ秒以下であるならば、不正プログラムと判定する、といった方法であり、パケット数Nやパケット割合Xなどが特徴データに該当する。
【0031】
データ評価部9は、得られた特徴データに基づいて、この一連のパケットが不正プログラムに関するものであるかを判定する。表示警告部11は、不正な通信が行われている旨を表示する(ステップS304)。あるいは、表示警告部11は、インタフェース部5を介して、ターゲットパソコン1Aに警告メッセージの送信等を行う。
異常の判定の詳細については、後で説明する。
【0032】
図7のステップS303で保存した特徴データは、更なる不正プログラムの検出に利用できる。その手順は次のとおりである。
データ収集部6によって、送信先アドレスは処理対象アドレスと一致するが、送信元アドレスは処理対象となっていないパケットが探し出され、収集データバッファ7に保存される。
データ分析部8が、リスポンスタイムとパケットサイズに着目してデータを加工編集する。不正パターン照合部11は、この加工編集データから特徴データを抽出し、これを、不正パターン記憶部10に保存してあった不正パターンと照合する。照合の結果、似通っているならば、不正プログラムに関するものと判定し、表示警告部11に通知する。
【0033】
このように、本実施形態は、未知の不正プログラムに関する通信などの異常を検出できるとともに、いったん異常を検出すると、以後の類似した異常の検出もできる。
なお、同じ送信先アドレスに対し、異なる送信元アドレスからのパケットを処理対象とするのは、送信元アドレスを偽る攻撃者がいること、感染した複数のパソコンがネットワークを構成し、これらの複数のパソコンから異常なパケットが送られることがある等の実情を考慮したものである。
【0034】
本発明の検出処理の要点は、繰り返し送受信されるパケットデータの特徴を抽出し、その特徴から異常を検出するものである。この根拠は、以下のとおりである。
通常、不正プログラムの動作というものは人間がマニュアル操作により同様のことを行うことが可能である。しかし、不正プログラムはそれらの処理をすべて自動化しているので、その処理は速く、予測可能である。人間がマニュアル操作で行った場合、その処理は自動化されたプログラムよりも遅く、しかも予測が不可能になる。特徴データを抽出することにより、この違いを明確にできる。
【0035】
では、図3に示す通信が行われた場合の、異常の検出がどのように行われるか、図8を参照しながら説明する。図8は、生のパケットデータを、リスポンスタイムとデータサイズに着目して加工編集したデータを折れ線グラフで表示したものである。
図8の折れ線グラフにおいて、領域Aは、ターゲットパソコン1AがIRCサーバ2との接続を確立する過程(図3のステップS1〜S2と、これに関連する通信が通常複数回繰り返される)のパケットの状態を示す。破線の折れ線はデータサイズの変化を示し、太い実線の折れ線は前回のパケットの時刻との差分ΔT、つまりリスポンスタイムの変化を示している。
同様に、領域Bは、ターゲットパソコン1Aがチャットに参加しているとき(図3のステップS3)のパケットの状態を示す。領域Cは、攻撃者パソコン3がIRCサーバ2を経由してコマンドを送り、ターゲットパソコン1Aに感染させていたボットを実行させているとき(図3のステップS4〜S11)のパケットの状態を示す。
【0036】
図8のグラフから、人間がマニュアル操作をしている領域A及びBのリスポンスタイムに比べ、ボットが自動処理を行っている領域Cのリスポンスタイムが大幅に短いことが明瞭に見て取れる。
異常が認められるリスポンスタイムの特徴データとともに、データサイズについて得られた特徴データとを併せて観察することで、不正プログラムの検出精度が一層高まる。この2種類の特徴データを用いて更なる不正プログラムの検出に役立てることができる。
【0037】
前記の実施形態では、図3、図8に従い、ターゲットパソコンがすでに不正プログラムに感染している場合を例にとり説明した。しかし、ターゲットパソコンが、未だ感染しておらず、不正プログラムを送り込まれたり、不正プログラムをダウンロードするための命令を送られたりするなどの異常な通信の場合も、検出できる。
【0038】
前記の実施形態では、処理対象のパケットを読み込む際に、アドレスに着目したが、アドレスと特定のポートの組み合わせで対象パケットを抽出してもよい。
【0039】
前記の実施形態では、出願時点において、世上話題となっているボットを念頭におき、IRCサーバ経由で感染する不正プログラムを例に取って説明した。しかし、IRCサーバを利用するものだけではなく、ワームやトロイの木馬等といわれる不正プログラムについても適用可能である。これらのプログラムも人間のマニュアル操作によらず、自動的に実行されるので、パケットデータから得られた特徴データによって異常が検出しうるからである。
【0040】
本発明は、既存のシグネチャベースの不正プログラム検出方法に代えて用いられてもよいが、既存の方法と併用してもよいことは言うまでもない。
また、不正プログラムが検出されたとき、警告し、ブロックするにとどめてもよく、駆除してもよい。検出後の対応策については、特に限定しない。
【0041】
なお、前記のように開示された実施の形態はすべての点で例示であって、制限的なものではない。したがって、種々の変形が可能である。しかし、その変形が特許請求の範囲に記載された技術思想に基づくものである限り、その変形は本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【0042】
本発明によれば、既知の不正プログラムのトラフィックから抽出したシグネチャを必要としないため、プロアクティブ、すなわち、未知の不正プログラムの検出が可能になる。これは、従来のシグネチャベースがもつ、事後的対応しかできないという問題点を克服するものである。しかも、シグネチャデータベースを更新維持する必要がないので、費用面からも有利である。
また、本発明の検出手法は、ヒューリスティック(発見的)であり、不正パターンが蓄積されるほど、検出精度の向上が期待できる。
【図面の簡単な説明】
【0043】
【図1】本実施形態のシステム構成例を示す図である。
【図2】本実施形態の検出装置のブロック図である。
【図3】本実施形態の処理を説明するためのセッションを例示する図である。
【図4】本実施形態の処理の概略フローを示す図である。
【図5】本実施形態のデータ収集処理のフローを示す図である。
【図6】本実施形態のデータ分析処理のフローを示す図である。
【図7】本実施形態の評価処理のフローを示す図である。
【図8】本実施形態で捕捉したパケットのリスポンスタイムとデータサイズをプロットした折れ線グラフである。
【符号の説明】
【0044】
1(1A、1B) ターゲットパソコン
2 IRCサーバ
3 攻撃者のパソコン
4 不正プログラム検出装置
N 通信ネットワーク

【特許請求の範囲】
【請求項1】
通信ネットワーク上を流れるパケットデータから不正プログラムを検出する方法であって、
パケットデータを捕捉するデータ収集段階と、
このパケットデータを所定の要素に着目して加工編集するデータ分析段階と、
加工編集されたデータから抽出された特徴データに基づき、前記パケットデータが不正プログラムに関するものであるか否かを判定する評価段階と、
を有するプロアクティブな不正プログラム検出方法。
【請求項2】
データの加工編集のために着目する要素として、リスポンスタイムとパケットデータサイズを用いることを特徴とする、請求項1に記載の不正プログラム検出方法。
【請求項3】
不正プログラムに関するパケットデータと判定された場合に、不正プログラムである旨の警告を出力することを特徴とする、請求項1に記載の不正プログラム検出方法。
【請求項4】
捕捉したパケットデータから抽出した特徴データと、記憶させてある不正パターンとをマッチングすることによって、当該パケットデータが不正プログラムに関するものであるか否かを判定することを特徴とする、請求項3に記載の不正プログラム検出方法。
【請求項5】
通信ネットワーク上を流れるパケットデータを捕捉できる場所に設置される不正プログラム検出装置であって、
パケットデータを捕捉するデータ収集手段と、
このパケットデータを所定の要素に着目して加工編集するデータ分析手段と、
加工編集されたデータから抽出された特徴データに基づき、前記パケットデータが不正プログラムに関するものであるか否かを判定する評価手段と、
を有することを特徴とする不正プログラム検出装置。
【請求項6】
通信ネットワーク上を流れるパケットデータから不正プログラムを検出するためのコンピュータプログラムであって、
パケットデータを捕捉するデータ収集手順と、
このパケットデータを所定の要素に着目して加工編集するデータ分析手順と、
加工編集されたデータから抽出された特徴データに基づき、前記パケットデータが不正プログラムに関するものであるか否かを判定する評価手順と、
をコンピュータに実施させることを特徴とする不正プログラム検出のためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate