特許第6097849号(P6097849)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社PFUの特許一覧

特許6097849情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム
<>
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000003
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000004
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000005
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000006
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000007
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000008
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000009
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000010
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000011
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000012
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000013
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000014
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000015
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000016
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000017
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000018
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000019
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000020
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000021
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000022
  • 特許6097849-情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム 図000023
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6097849
(24)【登録日】2017年2月24日
(45)【発行日】2017年3月15日
(54)【発明の名称】情報処理装置、不正活動判定方法および不正活動判定用プログラム、並びに、情報処理装置、活動判定方法および活動判定用プログラム
(51)【国際特許分類】
   G06F 21/56 20130101AFI20170306BHJP
【FI】
   G06F21/56 360
【請求項の数】38
【全頁数】41
(21)【出願番号】特願2015-557758(P2015-557758)
(86)(22)【出願日】2014年12月26日
(86)【国際出願番号】JP2014084690
(87)【国際公開番号】WO2015107861
(87)【国際公開日】20150723
【審査請求日】2016年5月27日
(31)【優先権主張番号】特願2014-4055(P2014-4055)
(32)【優先日】2014年1月14日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100105407
【弁理士】
【氏名又は名称】高田 大輔
(74)【代理人】
【識別番号】100145838
【弁理士】
【氏名又は名称】畑添 隆人
(72)【発明者】
【氏名】小出 和弘
(72)【発明者】
【氏名】道根 慶治
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 特開2006−350543(JP,A)
【文献】 米国特許出願公開第2009/0172815(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/00−21/88
(57)【特許請求の範囲】
【請求項1】
ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較手段と、
前記比較の結果に従って、前記端末が不正な活動をしていると推測される程度を示す評価値と不正な活動のフェーズとを決定する決定手段と、
前記端末毎に、前記評価値の前記フェーズ毎の最大値を保持する保持手段と、
前記評価値の前記フェーズ毎の最大値に基づいて、前記端末が不正な活動を行っているか否かを判定する判定手段と、
を備える情報処理装置。
【請求項2】
前記比較の結果、前記通信と一致または近似したパターンについて予め設定されている値を、前記評価値として取得する評価値取得手段と、
取得された前記評価値を補正する補正手段と、を更に備え、
前記決定手段は、前記補正手段によって補正された値を、前記評価値として決定する、
請求項1に記載の情報処理装置。
【請求項3】
前記フェーズは、前記端末による不正な活動の遷移の状態を示し、
前記決定手段は、前記比較の結果、前記通信と一致または近似したパターンについて予め設定されているフェーズを、前記通信に係るフェーズとして決定する、
請求項2に記載の情報処理装置。
【請求項4】
前記評価値取得手段は、前記通信と、前記端末によって該通信よりも前または後に行われた他の通信との相関分析の結果に従って、前記評価値を取得する、
請求項3に記載の情報処理装置。
【請求項5】
前記評価値取得手段は、前記相関分析によって、前記通信に関して取得されたフェーズと、前記端末に関して該通信の前または後に行われた他の通信に関して取得されたフェーズと、の間に連続性があると判定された場合に、前記評価値を取得する、
請求項4に記載の情報処理装置。
【請求項6】
前記補正手段は、前記通信と、前記端末によって該通信よりも前または後に行われた他
の通信との相関分析の結果に従って、前記評価値を補正する、
請求項3に記載の情報処理装置。
【請求項7】
前記補正手段は、前記相関分析によって、前記通信に関して取得されたフェーズと、前記端末に関して該通信の前または後に行われた他の通信に関して取得されたフェーズと、の間に連続性があると判定された場合に、前記評価値を、連続性があると判定されなかった場合に比べてより大きく補正する、
請求項6に記載の情報処理装置。
【請求項8】
前記端末毎に、前記フェーズ毎の前記評価値の最大値を合計する合計手段を更に備え、
前記判定手段は、前記合計手段によって得られた合計値に基づいて、前記端末が不正な活動を行っているか否かを判定する、
請求項1から7の何れか一項に記載の情報処理装置。
【請求項9】
前記判定手段は、前記合計値または前記合計値に基づく値が所定の閾値を超えた場合に、前記端末が不正な活動を行っていると判定する、
請求項8に記載の情報処理装置。
【請求項10】
前記判定手段は、前記合計値に所定の重み付けを行うことで得られた値が所定の閾値を超えた場合に、前記端末が不正な活動を行っていると判定する、
請求項8に記載の情報処理装置。
【請求項11】
前記ネットワークに接続された端末による通信を取得する通信取得手段を更に備え、
前記比較手段は、取得された前記通信と予め保持されたパターンとを比較する、
請求項1から10の何れか一項に記載の情報処理装置。
【請求項12】
前記端末が不正な活動を行っていると判定された場合に該端末による通信を遮断する通信遮断手段を更に備える、
請求項1から11の何れか一項に記載の情報処理装置。
【請求項13】
ネットワークに接続された端末による不正な通信を検知する、1または複数の検知手段を更に備え、
前記判定手段は、前記検知手段によって不正な通信として検知されなかった通信に基づいて、前記端末が不正な活動を行っているか否かを判定する、
請求項1から12の何れか一項に記載の情報処理装置。
【請求項14】
コンピューターが、
ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較ステップと、
前記比較の結果に従って、前記端末が不正な活動をしていると推測される程度を示す評価値と不正な活動のフェーズとを決定する決定ステップと、
前記端末毎に、前記評価値の前記フェーズ毎の最大値を保持する保持ステップと、
前記評価値の前記フェーズ毎の最大値に基づいて、前記端末が不正な活動を行っているか否かを判定する判定ステップと、
を実行する不正活動判定方法。
【請求項15】
コンピューターを、
ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較手段と、
前記比較の結果に従って、前記端末が不正な活動をしていると推測される程度を示す評
価値と不正な活動のフェーズとを決定する決定手段と、
前記端末毎に、前記評価値の前記フェーズ毎の最大値を保持する保持手段と、
前記評価値の前記フェーズ毎の最大値に基づいて、前記端末が不正な活動を行っているか否かを判定する判定手段と、
として機能させる、不正活動判定用プログラム。
【請求項16】
ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較手段と、
前記比較の結果に従って、前記端末の活動のフェーズを決定する決定手段と、
前記決定手段によって、前記端末にコンテンツをダウンロードさせるフェーズであると決定された第一の通信と、前記決定手段によって、該端末に実行ファイルをダウンロードさせるフェーズであると決定された第二の通信との相関分析を行うことで、該第一の通信によるコンテンツのダウンロードと、該第二の通信による実行ファイルのダウンロードとの間の相関性の有無または程度を判定する相関分析手段と、
前記相関分析の結果に基づいて、前記端末が所定の活動を行っているか否かを判定する判定手段と、
を備える情報処理装置。
【請求項17】
前記決定手段は、前記通信によってダウンロードされるデータのファイル種別に基づいて、該通信に係る前記端末の活動のフェーズを決定する、
請求項16に記載の情報処理装置。
【請求項18】
前記決定手段は、前記通信がコンテンツまたは実行ファイルのリクエストを含む場合、該リクエストに含まれる情報に基づいて前記コンテンツまたは実行ファイルのファイル種別を推測し、推測されたファイル種別に基づいて該通信に係る前記端末の活動のフェーズを決定する、
請求項17に記載の情報処理装置。
【請求項19】
前記ファイル種別は、前記リクエストに含まれる拡張子またはリクエストヘッダーの特徴に基づいて推測される、
請求項18に記載の情報処理装置。
【請求項20】
前記決定手段は、前記通信がコンテンツまたは実行ファイルのリクエストに対するレスポンスを含む場合、該レスポンスに含まれる情報に基づいて前記コンテンツまたは実行ファイルのファイル種別を推測し、推測されたファイル種別に基づいて該通信に係る前記端末の活動のフェーズを決定する、
請求項17から19の何れか一項に記載の情報処理装置。
【請求項21】
前記ファイル種別は、前記レスポンスにおける所定の位置のデータと予め定義されたデータパターンとを比較することで推測される、
請求項20に記載の情報処理装置。
【請求項22】
前記決定手段は、前記比較の結果に従って、前記端末が所定の活動をしていると推測される程度を示す評価値を更に決定する、
請求項16から21の何れか一項に記載の情報処理装置。
【請求項23】
前記比較の結果、前記通信と一致または近似したパターンについて予め設定されている値を、前記評価値として取得する評価値取得手段と、
取得された前記評価値を補正する補正手段と、を更に備え、
前記決定手段は、前記補正手段によって補正された値を、前記評価値として決定する、
請求項22に記載の情報処理装置。
【請求項24】
前記フェーズは、前記端末による所定の活動の遷移の状態を示し、
前記決定手段は、前記比較の結果、前記通信と一致または近似したパターンについて予め設定されているフェーズを、前記通信に係るフェーズとして決定する、
請求項23に記載の情報処理装置。
【請求項25】
前記評価値取得手段は、前記通信と、前記端末によって該通信よりも前または後に行われた他の通信との相関分析の結果に従って、前記評価値を取得する、
請求項24に記載の情報処理装置。
【請求項26】
前記評価値取得手段は、前記相関分析によって、前記通信に関して取得されたフェーズと、前記端末に関して該通信の前または後に行われた他の通信に関して取得されたフェーズと、の間に連続性があると判定された場合に、前記評価値を取得する、
請求項25に記載の情報処理装置。
【請求項27】
前記補正手段は、前記通信と、前記端末によって該通信よりも前または後に行われた他の通信との相関分析の結果に従って、前記評価値を補正する、
請求項24に記載の情報処理装置。
【請求項28】
前記補正手段は、前記第一の通信と、前記第二の通信との相関分析の結果に従って、前記評価値を補正する、
請求項24に記載の情報処理装置。
【請求項29】
前記補正手段は、前記相関分析によって、前記通信に関して取得されたフェーズと、前記端末に関して該通信の前または後に行われた他の通信に関して取得されたフェーズと、の間に連続性があると判定された場合に、前記評価値を、連続性があると判定されなかった場合に比べてより大きく補正する、
請求項27または28に記載の情報処理装置。
【請求項30】
前記端末毎に、前記評価値の前記フェーズ毎の最大値を保持する保持手段と、
前記評価値の前記フェーズ毎の最大値に基づいて、前記端末が所定の活動を行っているか否かを判定する判定手段と、を更に備える、
請求項22から29の何れか一項に記載の情報処理装置。
【請求項31】
前記端末毎に、前記フェーズ毎の前記評価値の最大値を合計する合計手段を更に備え、
前記判定手段は、前記合計手段によって得られた合計値に基づいて、前記端末が所定の活動を行っているか否かを判定する、
請求項30に記載の情報処理装置。
【請求項32】
前記判定手段は、前記合計値または前記合計値に基づく値が所定の閾値を超えた場合に、前記端末が所定の活動を行っていると判定する、
請求項31に記載の情報処理装置。
【請求項33】
前記判定手段は、前記合計値に所定の重み付けを行うことで得られた値が所定の閾値を超えた場合に、前記端末が所定の活動を行っていると判定する、
請求項31に記載の情報処理装置。
【請求項34】
前記ネットワークに接続された端末による通信を取得する通信取得手段を更に備え、
前記比較手段は、取得された前記通信と予め保持されたパターンとを比較する、
請求項16から33の何れか一項に記載の情報処理装置。
【請求項35】
前記端末が所定の活動を行っていると判定された場合に該端末による通信を遮断する通信遮断手段を更に備える、
請求項16から34の何れか一項に記載の情報処理装置。
【請求項36】
ネットワークに接続された端末による所定の通信を検知する、1または複数の検知手段を更に備え、
前記判定手段は、前記検知手段によって所定の通信として検知されなかった通信に基づいて、前記端末が所定の活動を行っているか否かを判定する、
請求項16から35の何れか一項に記載の情報処理装置。
【請求項37】
コンピューターが、
ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較ステップと、
前記比較の結果に従って、前記端末の活動のフェーズを決定する決定ステップと、
前記決定ステップにおいて、前記端末にコンテンツをダウンロードさせるフェーズであると決定された第一の通信と、前記決定ステップにおいて、該端末に実行ファイルをダウンロードさせるフェーズであると決定された第二の通信との相関分析を行うことで、該第一の通信によるコンテンツのダウンロードと、該第二の通信による実行ファイルのダウンロードとの間の相関性の有無または程度を判定する相関分析ステップと、
前記相関分析の結果に基づいて、前記端末が所定の活動を行っているか否かを判定する判定ステップと、
を実行する活動判定方法。
【請求項38】
コンピューターを、
ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較手段と、
前記比較の結果に従って、前記端末の活動のフェーズを決定する決定手段と、
前記決定手段によって、前記端末にコンテンツをダウンロードさせるフェーズであると決定された第一の通信と、前記決定手段によって、該端末に実行ファイルをダウンロードさせるフェーズであると決定された第二の通信との相関分析を行うことで、該第一の通信によるコンテンツのダウンロードと、該第二の通信による実行ファイルのダウンロードとの間の相関性の有無または程度を判定する相関分析手段と、
前記相関分析の結果に基づいて、前記端末が所定の活動を行っているか否かを判定する判定手段と、
として機能させる、活動判定用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続された端末を管理する技術に関する。
【背景技術】
【0002】
従来、トラフィックを分析する方法として、ネットワーク上のホスト間のフローに懸念指標値を割り当て、累積された懸念指標値が閾値を超えた場合にアラームを発する方法が提案されている(特許文献1および2を参照)。
【0003】
また、トラフィックを分析することで、所謂ドライブバイダウンロード(Drive−by Download)攻撃を検出する方法が種々提案されている(非特許文献1および2を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7475426号明細書
【特許文献2】米国特許第7185368号明細書
【非特許文献】
【0005】
【非特許文献1】進藤 康孝、外3名、“マルウェア感染ステップのファイルタイプ遷移に基づいたDrive−by Download攻撃検知手法”、[online]、平成26年10月15日、情報処理学会、[平成26年12月15日検索]、インターネット〈URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=106598&item_no=1&page_id=13&block_id=8〉
【非特許文献2】松中 隆志、外2名、“Drive−by Download攻撃対策フレームワークにおけるWebアクセスログを用いたWebリンク構造の解析による悪性サイト検出手法の提案”、[online]、平成26年10月15日、情報処理学会、[平成26年12月15日検索]、インターネット〈URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=106596&item_no=1&page_id=13&block_id=8〉
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来、マルウェア感染の検知を行うための技術として、指標値を累積していき、累積値が閾値を超えた場合に、マルウェアに感染していると判定する方法がある。しかし、このような方法では、指標値を定期的にクリアしなければ軽微な値の蓄積によっても累積値が閾値を超えてしまい、正常な端末を、マルウェアに感染していると誤検知してしまう虞がある。また、指標値を定期的にクリアする場合にも、クリアするタイミングによってはマルウェアを見逃してしまう虞がある。
【0007】
本開示は、上記した問題に鑑み、マルウェア感染の誤検知または見逃しを低減させることを課題とする。
【課題を解決するための手段】
【0008】
本開示の一例は、ネットワークに接続された端末による通信と予め保持されたパターンとを比較する比較手段と、前記比較の結果に従って、前記端末が不正な活動をしていると推測される程度を示す評価値と不正な活動のフェーズとを決定する決定手段と、前記端末毎に、前記評価値の前記フェーズ毎の最大値を保持する保持手段と、前記評価値の前記フェーズ毎の最大値に基づいて、前記端末が不正な活動を行っているか否かを判定する判定手段と、を備える情報処理装置である。
【0009】
本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
【発明の効果】
【0010】
本開示によれば、マルウェア感染の誤検知または見逃しを低減させることが可能となる。
【図面の簡単な説明】
【0011】
図1】実施形態に係るシステムの構成を示す概略図である。
図2】実施形態に係るネットワーク監視装置および管理サーバーのハードウェア構成を示す図である。
図3】実施形態に係るネットワーク監視装置の機能構成の概略を示す図である。
図4】実施形態のマルウェアふるまい検知エンジンによって用いられる、マルウェアの活動遷移モデルを示す図である。
図5】実施形態に係る、パケット毎の検知処理の流れの概要を示すフローチャートである。
図6】実施形態に係る、マルウェアふるまい検知エンジンによる検知処理の流れを示すフローチャート(A)である。
図7】実施形態に係る、マルウェアふるまい検知エンジンによる検知処理の流れを示すフローチャート(B)である。
図8】実施形態に係る、マルウェアふるまい検知エンジンによる検知処理の流れを示すフローチャート(C)である。
図9】実施形態における第一の相関分析で監視対象とする活動遷移モデル上のフェーズとその遷移を示す図である。
図10】実施形態における第二の相関分析で監視対象とする、探索フェーズへの遷移を示す図である。
図11】実施形態における第二の相関分析で監視対象とする、実行ファイルのダウンロードフェーズへの遷移を示す図である。
図12】実施形態における、侵入フェーズに係る通信と実行ファイルのダウンロードフェーズに係る通信との相関性を判定するための相関分析処理の流れを示すフローチャートである。
図13】実施形態における第二の相関分析で監視対象とする、C&C検索フェーズへの遷移を示す図である。
図14】実施形態における第二の相関分析で監視対象とする、C&C通信フェーズへの遷移を示す図である。
図15】実施形態における第二の相関分析で監視対象とする、攻撃フェーズへの遷移を示す図である。
図16】実施形態に係る、コンテンツリクエスト解析処理の流れを示すフローチャートである。
図17】実施形態に係る、コンテンツレスポンス解析処理の流れを示すフローチャートである。
図18】実施形態に係る、HTMLコンテンツレスポンス解析処理の流れを示すフローチャートである。
図19】実施形態に係る、実行ファイルリクエスト解析処理の流れを示すフローチャートである。
図20】実施形態に係る、実行ファイルレスポンス解析処理の流れを示すフローチャートである。
図21】実施形態に係るシステムの構成のバリエーションを示す概略図である。
【発明を実施するための形態】
【0012】
以下、本開示に係る情報処理装置、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施形態に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【0013】
本実施形態では、本開示に係る情報処理装置、方法およびプログラムを、ネットワーク上で不正な活動を行っている端末を発見し、通信遮断やアラート通知等の対処を行うためのシステムにおいて実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法およびプログラムは、ネットワーク上の不正な活動を検知するための技術について広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【0014】
<システムの構成>
図1は、本実施形態に係るシステム1の構成を示す概略図である。本実施形態に係るシステム1は、複数の情報処理端末90(以下、「ノード90」と称する)が接続されるネットワークセグメント2と、ノード90に係る通信を監視するためのネットワーク監視装置20と、を備える。更に、管理サーバー50が、ルータ10を介してネットワークセグメント2と通信可能に接続されている。本実施形態において、ネットワーク監視装置20は、スイッチまたはルータ(図1に示した例では、ルータ)のモニタリングポート(ミラーポート)に接続されることで、ノード90によって送受信されるパケットやフレーム等を取得する。この場合、ネットワーク監視装置20は、取得したパケットを転送しないパッシブモードで動作する。
【0015】
管理サーバー50は、ネットワーク監視装置20から情報を収集し、ネットワーク監視装置20を管理する。なお、外部ネットワークには、更に検疫サーバーが設けられ、ネットワークセグメント2に接続されたノード90に対して検疫サービスを提供してもよいし、業務サーバーが設けられ、ノード90に対して業務のためのサービスを提供してもよい(図示は省略する)。
【0016】
本実施形態に係るシステム1では、ノード90から接続される各種サーバーは、インターネットや広域ネットワークを介して遠隔地において接続されたものであり、例えばASP(Application Service Provider)によって提供されるが、これらのサーバーは、必ずしも遠隔地に接続されたものである必要はない。例えば、これらのサーバーは、ノード90やネットワーク監視装置20が存在するローカルネットワーク上に接続されていてもよい。
【0017】
図2は、本実施形態に係るネットワーク監視装置20および管理サーバー50のハードウェア構成を示す図である。なお、図2においては、ネットワーク監視装置20および管理サーバー50以外の構成(ルータ10、ノード90等)については、図示を省略している。ネットワーク監視装置20および管理サーバー50は、それぞれ、CPU(Central Processing Unit)11a、11b、RAM(Random Access Memory)13a、13b、ROM(Read Only Memory)12a、12b、EEPROM(Electrically Erasable and Programmable Read Only Memory)やHDD(Hard Disk Drive)等の記憶装置14a、14b、NIC(Network Interface Card)15a、15b等の通信ユニット、等を備えるコンピューターである。
【0018】
図3は、本実施形態に係るネットワーク監視装置20の機能構成の概略を示す図である。なお、図3においては、ネットワーク監視装置20以外の構成(ルータ10、ノード90および管理サーバー50等)については、図示を省略している。ネットワーク監視装置20は、記憶装置14aに記録されているプログラムが、RAM13aに読み出され、CPU11aによって実行されることで、通信取得部21、通信遮断部22、アプリケーション検知エンジン23、プロトコルアノマリ検知エンジン24およびマルウェアふるまい検知エンジン25を備える情報処理装置として機能する。また、マルウェアふるまい検知エンジン25は、比較部251、評価値取得部252、補正部253、決定部254、保持部255、合計部256、判定部257および相関分析部258を含む。なお、本実施形態では、ネットワーク監視装置20の備える各機能は、汎用プロセッサであるCPU11aによって実行されるが、これらの機能の一部または全部は、1または複数の専用プロセッサによって実行されてもよい。また、これらの機能の一部または全部は、クラウド技術等を用いて、遠隔値に設置された装置や、分散設置された複数の装置によって実行されてもよい。
【0019】
通信取得部21は、ネットワークに接続された端末によって送受信される通信を取得する。なお、本実施形態において、ネットワーク監視装置20による監視および検知の対象となる「端末」には、ネットワークセグメント2に接続されたノード90の他、ノード90とルータ10を介して通信するその他の装置(他のネットワークに属するノードや外部サーバー等)を含む。
【0020】
通信遮断部22は、アプリケーション検知エンジン23、プロトコルアノマリ検知エンジン24またはマルウェアふるまい検知エンジン25によって、端末が不正な活動を行っていると判定された場合に、当該端末による通信を遮断する。なお、本実施形態では、端末が不正な活動を行っていると判定された場合、当該端末の通信を遮断する対処が採られる例について説明しているが、端末が不正な活動を行っていると判定された場合の対処方法は、通信の遮断に限定されない。ネットワーク監視装置20は、端末が不正な活動を行っていると判定された場合に、アラート(警告)の通知を行ってもよいし、不正な活動を行っている端末の治癒(例えば、マルウェアの除去や脆弱性の除去)を行ってもよい。
【0021】
アプリケーション検知エンジン23は、マルウェアが利用する、業務に不要なアプリケーションがネットワーク上で通信を行っていることを検知するエンジンであり、例えば、既知のRAT(Remote Access Trojan)、P2P(Peer to Peer)アプリケーション、Tor(The Onion Router)、UltraSurf(Proxyツール)および匿名プロキシ等による通信を検知することで、ノード90において業務に不要なアプリケーションが動作していることを検知する。
【0022】
プロトコルアノマリ検知エンジン24は、ネットワーク上における、プロトコルに沿っていない通信を検知するエンジンであり、例えば、HTTPアノマリ検知エンジン、SSL/TLSアノマリ検知エンジンおよびDNSアノマリ検知エンジン等が含まれる。プロトコルアノマリ検知エンジン24は、これらのプロトコルに沿っていない通信を検知することで、ネットワーク上でプロトコルを遵守していない通信を行うノード90を検知する。
【0023】
マルウェアふるまい検知エンジン25は、マルウェアの活動遷移モデルに定義された、マルウェアによる不正な活動のフェーズごとに、ネットワーク上の通信と「マルウェア特有の通信パターン」との共通性を評価し、マルウェアの活動フェーズの遷移状況を監視することでマルウェアのふるまい(挙動)を分析し、ノード90におけるマルウェア感染を検知するエンジンである。
【0024】
図4は、本実施形態のマルウェアふるまい検知エンジン25によって用いられる、マルウェアの活動遷移モデルを示す図である。なお、本実施形態において示されるマルウェアの活動遷移モデルにはフェーズP1からフェーズP8が定義されているが、これは本実施形態において用いられる一例であり、マルウェアの活動遷移モデルは、実施の形態に応じて、適宜変更されてよい。以下、本実施形態に係るマルウェアの活動遷移モデルにおける各フェーズについて説明する。
【0025】
フェーズP1は、侵入フェーズ、即ち、標的型攻撃メールの添付ファイル、メールのURLのクリック、Webサイト(主に、SNSサイト)上のURLのクリック等を契機に、OSやアプリケーションの脆弱性を利用して感染する悪性コンテンツ(悪性コード、攻撃コード、エクスプロイト等とも称される)が投下されるフェーズである。フェーズP1からの移行先は、ワーム等の自律型のマルウェアが侵入した場合、フェーズP2、フェーズP4またはフェーズP8であり、ボット系のマルウェアの場合、フェーズP2またはフェーズP4である。
【0026】
フェーズP2は、探索フェーズ、即ち、脆弱性を持った感染端末の探索フェーズである。
【0027】
フェーズP3は、感染・浸潤フェーズ(拡散フェーズ)、即ち、脆弱な標的に対して攻撃コードを送り込んで感染させるかまたは他の端末から攻撃コードが送り込まれて感染させられるフェーズである。感染・浸潤フェーズでは、既に感染している端末を介して攻撃コードが標的の端末に送り込まれ、攻撃コードが送り込まれた端末がマルウェアに感染する。例えば、Windows(登録商標) OSのMS−RPCやファイル共有の脆弱性を利用して拡散活動が行われる。ボット系のマルウェアの場合は、攻撃者(ハーダー)から発行される、C&C(Command and Control)サーバーを経由した指令(フェーズP6)に基づいて感染活動(マルウェアの拡散活動)が実行される。フェーズP3からの移行先は、ワーム等の自律型のマルウェアの場合、フェーズP4またはフェーズP8であり、ボット系のマルウェアの場合、フェーズP4である。感染・浸潤フェーズは、2つの側面を持つ。1つは、感染元端末が感染活動を実行するフェーズである。もう1つは、被害者(感染先)端末として、攻撃コードが送り込まれ感染させられるフェーズである。
【0028】
フェーズP4は、実行ファイルのダウンロードフェーズ、即ち、攻撃コードが送り込まれたのち、マルウェアの配布サイトや既に感染している端末から、マルウェア本体である実行ファイルをダウンロードして活性化、またはアンチウィルス製品によるマルウェアの検出の回避や新しい機能の追加等の目的で、攻撃者からの指令(C&Cサーバー経由)に従って、指定されたサイトから、新しいマルウェアがダウンロードされるフェーズである。マルウェア本体のダウンロードには、主に、HTTP、FTP、TFTPが使用される。また、マルウェア独自のプロトコルを利用する場合もある。フェーズP4からの移行先は、ボット等の遠隔操作タイプのマルウェアの場合、フェーズP5またはP6であり、ワーム等の自律型のマルウェアの場合、通常、フェーズP2またはフェーズP8である。
【0029】
フェーズP5は、C&C検索フェーズ、即ち、攻撃者からの指令を受け取るためのC&Cサーバーを検索するフェーズである。このフェーズに遷移するマルウェアは、主に、ボット等の遠隔操作タイプのマルウェアである。マルウェアには、通常、複数のC&CサーバーのFQDNが組み込まれており、DNSクエリを使用してアドレス解決を行う。P2Pタイプのボットネットの場合は、P2Pプロトコル(汎用または独自プロトコル)を使用してC&Cノードを検索する。IPアドレスがハードコーディングされているタイプのマルウェアは、このフェーズでは活動しない。フェーズP5からの移行先は、フェーズP6である。
【0030】
フェーズP6は、C&C通信(含む、インターネット接続確認)フェーズ、即ち、攻撃者からの指令の受信と指令の実行結果の報告(応答)等を行うために、C&Cサーバーに接続してデータの送受信を行うフェーズである。C&Cサーバーに接続する前に、インターネット接続確認を行うマルウェアが存在する。C&Cサーバーとの接続には、フェーズP5でアドレス解決が成功したIPアドレスの何れか、またはマルウェアにハードコーディングされたIPアドレスの何れかが使用される。マルウェアの活動は、C&Cサーバーから指令を受信すると、攻撃者からの指令に従って、フェーズP6からフェーズP2、フェーズP4またはフェーズP8に移行する。実行結果は、C&Cサーバー経由で攻撃者に通知される。一方、マルウェアは、C&Cサーバーへの接続に失敗した場合、別のIPアドレスで接続を再試行し、それでも失敗した場合には、フェーズP5に戻って別のC&Cサーバーを検索するか、活動自体を停止する。なお、接続が成功するまで延々と再接続を繰り返すマルウェアの存在も報告されている。また、C&C通信パスに異常が発生し、リカバリできない場合、マルウェアの活動はフェーズP5に移行する。更に、一定期間でC&Cサーバーを変更する動作を行うマルウェアも存在し、この場合も、マルウェアの活動はフェーズP5に移行する。また、フェーズP6は、攻撃者からの指令を待ち合わせているフェーズを含む。マルウェアは、定期的にC&Cサーバーにアクセスして、通信パスを維持するとともに、攻撃者からの指令を待ち受ける。一定期間でC&Cサーバーを変更する動作を行うマルウェアも存在し、この場合も、マルウェアの活動はフェーズP5に移行する。
【0031】
フェーズP7は、搾取情報のアップロードフェーズ、即ち、マルウェア等が活動することによって得られた情報が、攻撃者側のサーバー等にアップロードされるフェーズである。
【0032】
フェーズP8は、攻撃活動フェーズ、即ち、攻撃者からの指令(ボット系)やマルウェア自体に組み込まれた攻撃コード(ワーム系)に従って、各種攻撃活動を行うフェーズである。攻撃標的を見つけるために、フェーズP1相当の活動が行われることもある。攻撃活動には、DoS攻撃、スパムメール攻撃、Web攻撃(Web改ざん)、踏み台等が含まれる。
【0033】
マルウェアふるまい検知エンジン25は、比較部251、評価値取得部252、補正部253、決定部254、保持部255、合計部256、判定部257および相関分析部258を有することで(図3を参照)、上記のように定義されたマルウェアの活動フェーズの遷移状況を監視し、ノード90におけるマルウェア感染を検知する。以下、マルウェアふるまい検知エンジン25が有する各機能部について説明する。
【0034】
比較部251は、通信取得部21によって新たに取得された通信(本実施形態では、新たに取得されて処理の対象となったパケット。以下「入力パケット」と称する)と、予め保持された通信パターンと、を比較する。通信パターンには、マルウェアの様々な活動の結果として現れる特異な通信パターンが、予め定義されている。本実施形態において、通信パターンは、マルウェアの活動遷移モデルのフェーズ毎に予め複数定義され、ネットワーク監視装置20または管理サーバーによって保持されており、フェーズPn(ここで、nは1から7までの整数)の通信パターンは、「Pn−m」(ここで、mは1以上の数値)のように表される。但し、何れのフェーズにも依存しない(換言すれば、複数の異なるフェーズにおいて出現し得る)通信パターンも存在する。本実施形態において、フェーズP1からフェーズP8の何れにも依存しない通信パターンは、「P0−m」で表される。
【0035】
評価値取得部252は、比較部251による比較の結果、入力パケットと一致または近似した(以下、単に「対応する」と称する)通信パターンについて予め設定されているグレード(評価値)を、入力パケットのグレードとして取得する。グレード(Gr)は、個々の通信パターンに割り当てられる「端末が不正な活動(マルウェアの活動)をしていると推測される程度」を示す値である。本実施形態において、グレード(Gr)は、0 ≦ Gr < 1.0の範囲の値(小数点以下1桁)が設定されている。グレード(Gr)=0は、マルウェアの活動の結果発生した通信パターンである可能性が極めて低いことを示し、1に近いグレードほどマルウェアの活動の結果発生した通信パターンである可能性が高いことを示す。グレード(Gr)は、正当なアプリケーションの通信パターンとして出現する頻度に基づいて、通信パターン毎に予め決定されている。即ち、正当なアプリケーションによる通信として現れる可能性が低い通信にはより高い値のグレードが割り当てられ、正当なアプリケーションによる通信として現れる可能性が高い通信にはより低いグレードが割り当てられる。本実施形態では、通信パターンPn−mに予め設定されたグレードが「Gr(Pn−m)」、通信パターンPn−mに該当する通信を行った端末(h)に割り当てられたグレードが「Gr(h, Pn−m)」で表される。
【0036】
なお、同一の通信パターンであっても、条件に基づいて、異なるグレード(Gr)が割り当てられ得る。例えば、通信パターンに付随して2つの条件「A:宛先がC&Cサーバーに一致しない」、「B:宛先がC&Cサーバーの1つに一致」が設定されている場合、以下のように条件判定され、宛先が登録済みのC&Cサーバーに一致するか否かによって、異なるグレードが割り当てられる。
IF (Pn−m = TRUE) AND (A) THEN Gr(Pn−m)=0.1、ACTION= C&Cサーバー候補リストに記録
IF (Pn−m = TRUE) AND (B) THEN Gr(Pn−m)=0.6、ACTION=No
【0037】
更に、本実施形態において、評価値取得部252は、入力パケットと、入力パケットに係る端末によって入力パケットよりも前または後に送信または受信された他のパケット(以下、「先行パケット」「後続パケット」と称する)と、の相関分析の結果に従って、グレードを取得する。より具体的には、本実施形態において、評価値取得部252は、通信取得部21によって取得された通信(入力パケット)に関して取得されたフェーズと、当該通信に係る端末に関して当該通信の前または後に行われた他の通信(先行パケットまたは後続パケット)に関して取得されたフェーズと、の間に連続性があるか否かを判定し、連続性があると判定された場合に、グレードを取得する。
【0038】
補正部253は、入力パケットと先行パケットまたは後続パケットとの相関分析の結果に従って、評価値取得部252によって取得されたグレードを補正する。より具体的には、本実施形態において、補正部253は、通信取得部21によって取得された通信(入力パケット)に関して取得されたフェーズと、当該通信に係る端末に関して当該通信の前または後に行われた他の通信(先行パケットまたは後続パケット)に関して取得されたフェーズと、の間に連続性があるか否かを判定し、連続性があると判定された場合に、評価値取得部252によって取得されたグレードを、連続性があると判定されなかった場合に比べてより大きく補正する。
【0039】
換言すれば、本実施形態では、新たに取得された通信(入力パケット)と、当該通信に係る端末による過去または未来の通信(先行パケットまたは後続パケット)との相関分析が行われ、入力パケットと先行パケットまたは後続パケットとの間に、「マルウェア活動として推定される度合いをより高めるような連続性」が認められた場合に、過去または未来の通信(先行パケットまたは後続パケット)に対するグレードの取得や、新たに取得された通信(入力パケット)に対するグレードの補正が行われる。
【0040】
決定部254は、入力パケットについて、当該端末に係るフェーズおよびグレードを決定する。決定部254は、比較部251による比較の結果、入力パケットに対応する通信パターンPn−mについて予め設定されているフェーズPnを、当該端末に係るフェーズとして決定する。また、決定部254は、評価値取得部252によって取得されたグレードGr(Pn−m)をそのまま入力パケットのグレードとして決定することもあるが、補正部253によってグレードが補正された場合には、補正された値が、入力パケットのグレードとして決定される。
【0041】
保持部255は、端末毎に、決定されたグレードのフェーズ毎の最大値を保持する。本実施形態では、保持部255は、マルウェア活動遷移モデルのフェーズPn毎に、当該フェーズPnについて検出された通信パターンPn−mのグレードGr(Pn−m)の最大値をフェーズPnのグレードとして保持し、「PGr(Pn)」で表す。端末(h)のフェーズPnのグレードは「PGr(h, Pn)」で表され、以下の式を用いて取得される。
PGr(h, Pn) = max {Gr(Pn−m) | Pn−m∈h}
【0042】
本実施形態において、保持部255は、端末毎にフェーズ毎のグレード最大値を保持するグレード管理テーブルを用いて、端末毎、フェーズ毎のグレードを管理する(図示は省略する)。グレード管理テーブルには、ネットワーク監視装置20が把握している端末(h)毎に、各フェーズPnのグレードPGr(h, Pn)が保持される。各フェーズPnのグレードPGr(h, Pn)は、先述の通り、当該フェーズPnについて検出された通信パターンPn−mのグレードGr(Pn−m)の最大値である。このため、何れかのフェーズについて新たにグレードが決定されると、新たに決定されたグレードとグレード管理テーブルに保持されているグレードPGr(h, Pn)とが比較され、最大値に更新される。なお、通信パターンPn−m毎のグレードGr(Pn−m)の最大値Gr(h, Pn−m)についても、記憶装置14aに保持される。
【0043】
合計部256は、端末毎に、フェーズP1からフェーズP8までの夫々のフェーズのグレードの最大値PGr(h, Pn)を取得し、これらを合計する。
【0044】
判定部257は、処理対象となっている端末(h)の、フェーズ毎のグレードの最大値PGr(h, Pn)に基づいて、端末が不正な活動を行っているか否かを判定する。本実施形態では、判定部257は、合計部256によって得られた合計値に基づいて、端末が不正な活動を行っているか否かを判定する。より具体的には、判定部257は、合計値に所定の重み付けを行うことで、「マルウェアが活動している可能性の高さを示す値」(以下、「マルウェア活動可能性」と称する)を算出し、この値が所定の閾値を超えた場合に、当該端末が不正な活動を行っていると判定する。端末(h)のマルウェア活動可能性は、端末(h)がマルウェアに感染している可能性の度合いを示し、「IR(h)」で表される。端末(h)のマルウェア活動可能性は、0(感染なし)〜100(感染の可能性大)の値を取る。即ち、本実施形態において、端末(h)のマルウェア活動可能性は、以下のように定義される。ここで、ψはマルウェア活動係数を示す。
【0045】
【数1】
【0046】
一般に、活動遷移モデルの多くの(連続した)フェーズ上で通信パターンが検出された端末は、より少ないフェーズ上で通信パターンが検出された端末よりも、マルウェアに感染している可能性が高いと判断できるため、マルウェア活動係数ψ(本実施形態では、具体的な値として0.5が設定される)を導入する。上記のマルウェア活動可能性IR(h)は、端末(h)に関連する通信パターンに対応する通信パターンが検出される都度、計算および更新される。
【0047】
本実施形態では、マルウェア活動可能性が、0〜49の端末を「クリーン端末」、50〜89の端末を「グレー端末」、90〜100の端末を「ブラック端末」と定義する。管理者端末の管理画面(デバイス一覧画面)には、リアルタイムレポート情報として、端末ごとに、マルウェア活動可能性と「クリーン」、「グレー」、「ブラック」が表示される。また、詳細情報として、端末ごとに、検出された「通信パターン」の概要と検知回数のリストが表示される。なお、「クリーン」、「グレー」、「ブラック」のマルウェア活動可能性の閾値は、管理者によって設定可能であってもよい。
【0048】
相関分析部258は、入力パケットと、入力パケットに係る端末によって入力パケットよりも前または後に送信または受信された他のパケット(先行パケットまたは後続パケット)と、の相関分析を行う。即ち、本実施形態において実施される相関分析は、2つ以上の通信間または2つ以上のフェーズ間に連続性や共通性等の相関性の有無または程度を分析するものであり、相関分析の結果は、評価値取得部252、補正部253および判定部257等によって用いられる。例えば、相関分析部258は、決定部254によって、侵入フェーズP1であると決定された第一の通信と、実行ファイルのダウンロードフェーズであると決定された第二の通信との相関分析を行うことで、第一の通信によるコンテンツのダウンロードと、第二の通信による実行ファイルのダウンロードとの間の相関性の有無または程度を判定する。その他、相関分析の具体的な手法については、後述する。
【0049】
<処理の流れ>
次に、本実施形態に係るシステム1によって実行される処理の流れを、フローチャートを用いて説明する。なお、以下に説明するフローチャートに示された処理の具体的な内容および処理順序は、本発明を実施するための一例である。具体的な処理内容および処理順序は、本発明の実施の形態に応じて適宜選択されてよい。
【0050】
ネットワーク監視装置20は、新たなネットワークに接続されると、後述するパケット毎の検知処理を開始する前に、準備処理として、ネットワーク構成の解析/学習処理を実行する。具体的には、ネットワーク監視装置20は、新たなネットワークに接続されると、所定時間パケットを取得して、取得されたパケットを解析することで、監視対象となるネットワークの構成を解析し、マルウェア検知に必要な情報(デバイス一覧(デバイスタイプ、OS種別、MAC/IPアドレス等)、監視対象ネットワークのアドレス体系、DNSサーバー情報、メールサーバー情報、プロキシ(HTTP/SOCKS)情報、Active Directory情報等)を学習し、記憶装置14a等に保存する。
【0051】
なお、ネットワーク構成の解析/学習処理は、後述する検知処理が開始された後も、ネットワーク監視装置20によって継続的に実行される。即ち、ネットワーク監視装置20は、取得されたパケットを解析して得られた情報と、以前の解析/学習処理によって学習され、ネットワーク監視装置20の記憶装置14aに保持されている情報とを照合し、照合の結果、新たに得られた情報が保持されている情報と異なる場合、ネットワーク監視装置20は、ネットワークセグメント2における構成が変更されたと判断し、新たに得られた情報を用いて、ネットワーク監視装置20の記憶装置14aに保持されている情報を更新する。
【0052】
図5は、本実施形態に係る、パケット毎の検知処理の流れの概要を示すフローチャートである。本実施形態に係る検知処理は、ネットワーク監視装置20によって、ネットワーク上を流れるパケット(または、複数パケットからなるデータ)が取得される度に実行される。
【0053】
ステップS001では、パケット解析の前処理が実行される。ネットワーク監視装置20は、通信取得部21によって新たに通信(入力パケット)が取得されると、入力パケットの整形、分類、および有効な既存フローへの関連付けを行う。また、ネットワーク監視装置20は、入力パケットを端末単位(送信元/宛先IPアドレス(MACアドレス)単位)、プロトコル(TCP/UDP、ICMP、DNS、HTTP、HTTPS、IRC、FTP、TFTP、SOCKS、NetBIOS等)単位に分類、および既存フローとの関連付けを行う。その後、処理はステップS002へ進む。
【0054】
ステップS002からステップS005では、アプリケーション検知エンジン23およびプロトコルアノマリ検知エンジン24による処理が行われる。本実施形態に係るネットワーク監視装置20は、上述した3種類の検知エンジン(検知プログラム)を用いて、ネットワークに接続された端末による不正な通信を検知するが、本実施形態において、ネットワーク監視装置20は、パケットを取得すると、アプリケーション検知エンジン23およびプロトコルアノマリ検知エンジン24による検知を行った後で、マルウェアふるまい検知エンジン25による検知を行う。即ち、本実施形態において、マルウェアふるまい検知エンジン25は、他の検知手段(アプリケーション検知エンジン23およびプロトコルアノマリ検知エンジン24)によって不正な通信として検知されなかった通信に基づいて、ノード90が不正な活動を行っているか否かを判定する。このようにすることで、本実施形態によれば、マルウェアふるまい検知エンジン25によって処理されるパケットの数を減らし、ふるまい検知エンジンの動作によって生じる負荷を減らすことが出来る。但し、マルウェアふるまい検知エンジン25は、単体で動作してもよいし、その他の検知エンジンと組み合わせて動作されてもよい。また、パケットが取得された際の検知エンジンの処理順序は、本実施形態に示した例に限定されない。
【0055】
アプリケーション検知エンジン23によって不要なアプリケーションが検知された場合や、プロトコルアノマリ検知エンジン24によってプロトコルアノマリが検知された場合、処理はステップS012へ進み、遮断またはアラート発行が行われる。一方、不要なアプリケーションやプロトコルアノマリが検知されなかった場合、処理はステップS006へ進む。なお、本フローチャートにおいて、ステップS006からステップS011までの処理は、マルウェアふるまい検知エンジン25による処理に相当する。
【0056】
ステップS006では、通信パターンの判定処理が行われる。比較部251は、入力パケットと予め定義された通信パターン(Pn−m)とを比較することで、入力パケットと予め定義された通信パターン(Pn−m)との共通性を判定する。ここで、通信パターン(Pn−m)と共通性があると判定された場合、入力パケットに係る端末(h)の活動遷移モデル上のフェーズはフェーズPn(h)に決定される。また、評価値取得部252は、判定の結果、一致または近似する(対応する)と判定された通信パターンのグレードGr(Pn−m)を、端末(h)に関連づけて、入力パケットのグレードGr(h, Pn−m)として取得する。更に、ネットワーク監視装置20は、検出した通信パターンに基づいて、対象通信の送信元端末または宛先端末を「マルウェア配布サーバー候補リスト」、または「C&Cサーバー候補リスト」に登録する。ここでは、パケットロストを考慮して、すべてのフェーズの通信パターンを対象に判定および評価が行われる。なお、既知の判定済みフローと関連付いているために、追加の判定処理が不要な入力パケットについては、判定は行われず、統計情報の更新のみが行われる。その後、処理はステップS007へ進む。
【0057】
ステップS007では、第一の相関分析が行われる。評価値取得部252は、ステップS006で検出できなかったC&C通信をピックアップする。評価値取得部252は、探索フェーズP2、感染・浸潤フェーズP3、実行ファイルのダウンロードフェーズP4、攻撃活動フェーズP8に遷移する際に、そのトリガーとなった通信をピックアップし、ネットワーク監視装置20は、対象通信の送信元端末または宛先端末C&Cサーバー候補リストに登録する。なお、第一の相関分析の処理内容については、図6から図8、および図9を参照して後述する。その後、処理はステップS008へ進む。
【0058】
ステップS008では、第二の相関分析が行われる。補正部253は、ステップS006で判定された端末(h)の活動フェーズPn(h)について、その直前に活動していたフェーズとの連続性や他の(感染)端末の挙動との相関性を分析する。分析の結果、マルウェアの挙動である疑いの高い通信パターンが発見された場合、補正部253は、ステップS006で判定した端末(h)の通信パターン(Pn−m)のグレードGr(h, Pn−m)を、以下の式を用いて補正し、より高いグレードを割り当てる。
Gr(h, Pn−m) = θ・Gr(h, Pn−m)
但し、マルウェア挙動類似係数θの範囲は1.0から2.0。ここで1.0は「類似性なし」を意味する。なお、第二の相関分析の処理内容、およびマルウェア挙動類似係数θについては、図6から図8、および図10から図15を参照して後述する。その後、処理はステップS009へ進む。
【0059】
ステップS009では、活動フェーズのグレード(PGr)が決定される。決定部254は、ステップS006からステップS008の処理結果に基づいて、対応する端末hの通信パターンのグレードGr(h, Pn−m)から、フェーズPnのグレードPGr(h, Pn)iを決定する。なお、ここで、PGr(h, Pn)i−1は、前回までのフェーズPnのグレードを示す。
PGr(h, Pn)i = max {PGr(h, Pn)i−1 , Gr(h, Pn−m)}
その後、処理はステップS010へ進む。
【0060】
ステップS010では、マルウェア活動可能性(IR(h))が算出される。合計部256および判定部257は、端末hのマルウェア活動可能性IR(h)を算出する。具体的な算出方法については、合計部256および判定部257の説明において上述した通りである。その後、処理はステップS011へ進む。
【0061】
ステップS011およびステップS012では、マルウェア活動可能性IR(h)が所定の閾値以上である場合に、該当端末の遮断や管理者アラート発行等の対処が行われる。判定部257は、ステップS010で算出された端末のマルウェア活動可能性が「ブラック」を示す所定の閾値以上であるか否かを判定する(ステップS011)。そして、マルウェア活動可能性が「ブラック」の場合、通信遮断部22は、該当端末による通信を遮断する、または管理者にアラートを発行する等の対処を行う(ステップS012)。また、マルウェア活動可能性が「グレー」の場合にも、ネットワーク監視装置20は、管理者にアラートを発行してよい。マルウェア活動可能性が「クリーン」の場合は、遮断やアラートの発行等の対処は行われない。その後、本フローチャートに示された処理は終了する。
【0062】
図6から図8は、本実施形態に係る、マルウェアふるまい検知エンジン25による検知処理の流れを示すフローチャートである。本フローチャートは、図5を用いて説明した検知処理のステップS006からステップS012の処理をより詳細に説明するものである。より具体的には、ステップS101からステップS103は、図5のステップS006で説明した通信パターン判定処理をより詳細に説明するものであり、ステップS104からステップS110は、ステップS007で説明した第一の相関分析処理をより詳細に説明するものであり、ステップS111からステップS116は、ステップS008で説明した第二の相関分析処理をより詳細に説明するものであり、ステップS117からステップS120は、ステップS009で説明した活動フェーズのグレード決定処理をより詳細に説明するものである。また、ステップS121は、図5のステップS010に相当し、ステップS122およびステップS123は、ステップS011およびステップS012に相当する。
【0063】
ステップS101およびステップS102では、取得されたパケット(入力パケット)が、予め定義された通信パターンの何れに該当するかが判定される。比較部251は、入力パケットと予め保持された通信パターンとを比較することで、入力パケットと予め定義された通信パターン(Pn−m)との共通性を判定する。判定の結果、何れの通信パターンにも該当しないと判定された場合、当該パケットに係る処理は終了し、本フローチャートに示された処理は終了する。一方、何れかの通信パターンに該当すると判定された場合、処理はステップS103へ進む。
【0064】
ステップS103では、入力パケットに係る端末に関して、該当すると判定された通信パターン(Pn−m)が検出されたことが記録される。また、評価値取得部252は、入力パケットに対応する通信パターン(Pn−m)が属するフェーズPnおよび通信パターン(Pn−m)に予め設定されているグレードGr(Pn−m)を、入力パケットに係る端末(h)のフェーズPn(h)、および当該フェーズのグレードGr(h, Pn−m)として取得する。その後、処理はステップS104へ進む。
【0065】
ステップS104およびステップS105では、入力パケットに対応する通信パターンに必須条件が設定されている場合に、必須条件に対応する通信が過去に取得されているか否かが判定される。必須条件が設定されていない場合、処理はステップS107へ進む。ここで、必須条件とは、ステップS101において入力パケットに対応すると判定された通信パターン(Pn−m)に予め設定されているグレードGr(Pn−m)を、当該入力パケットに係る端末(h)のフェーズPn(h)のグレードGr(h, Pn−m)として決定してよいか否かを判定するための条件である。例えば、「P6−4: HTTP標準ポート(80)を宛先ポートとしたHTTP通信(プロキシ/非プロキシ)」の通信パターンはHTTPの一般的な通信であるが、この通信パターンは、「P0−1〜P0−15」に定義されている「HTTP悪性通信パターン」の何れかが検知されていることが必須条件である。このため、これらの必須条件が満たされた場合に、当該入力パケットについて通信パターンP6−4のグレードGr(h, P6−4)が決定され、必須条件が満たされない場合は、当該入力パケットについて通信パターンP6−4のグレードGr(h, P6−4)は決定されない。
【0066】
即ち、評価値取得部252は、入力パケットに関して取得されたフェーズと、当該通信に係る端末に関して当該通信の前に行われた他の通信(先行パケット)に関して取得されたフェーズと、の間に連続性があるか否かを、過去に取得された通信が必須条件を満たしているか否かを判定することで判定する。必須条件が満たされないと判定された場合、処理はステップS106へ進み、当該入力パケットのグレードは0(ゼロ)に設定される。一方、必須条件が満たされると判定された場合、処理はステップS107へ進む。
【0067】
ステップS107では、入力パケットに係る端末のフェーズにグレードが割り当てられる。評価値取得部252は、入力パケットについて、該当すると判定された通信パターンPn−mに予め定義されたグレードGr(Pn−m)を取得し、端末(h)のフェーズPn(h)のグレードGr(h, Pn−m)とする。その後、処理はステップS108へ進む。
【0068】
ステップS108では、入力パケットが、過去に検知された通信パターンの必須条件に該当するか否かが判定される。換言すれば、ステップS108では、過去に取得された通信(先行パケット)から見て未来にあたる現時点において、必須条件に該当する通信(入力パケット)が検知されたか否かが判定される。評価値取得部252は、入力パケットの通信パターンが必須条件に設定されている通信パターンが、過去に検出されているか否かを判定する。判定の結果、入力パケットに係る通信パターンを必須条件とする通信パターンが過去に検出されていないと判定された場合、処理はステップS111へ進む。一方、判定の結果、入力パケットに係る通信パターンを必須条件とする通信パターンが過去に検出されていると判定された場合、処理はステップS110へ進む。
【0069】
ステップS110では、過去に取得された通信(先行パケット)のフェーズにグレードが割り当てられる。評価値取得部252は、過去に検出された通信に、当該通信パターン(Pn−m)に予め定義されたグレードGr(Pn−m)を取得し、割り当てる。その後、処理はステップS111へ進む。
【0070】
ステップS111およびステップS112では、入力パケットに対応する通信パターンにグレード補正条件が設定されている場合に、グレード補正条件に該当する通信が過去に取得されているか否かが判定される。グレード補正条件が設定されていない場合、処理はステップS114へ進む。ここで、グレード補正条件とは、ステップS101において入力パケットに対応すると判定された通信パターン(Pn−m)に予め設定されているグレードGr(Pn−m)をより大きな値に補正すべきか否かを判定するための条件である。補正部253は、グレード補正条件に該当する通信が、入力パケットに係る端末について過去に検知されているか否かを判定する。グレード補正条件が満たされないと判定された場合、グレードの補正は行われず、処理はステップS114へ進む。一方、必須条件が満たされると判定された場合、処理はステップS113へ進む。
【0071】
ステップS113では、グレードの補正が行われる。補正部253は、ステップS112で満たされたと判定されたグレード補正条件について予め設定された補正値に従って、ステップS107で割り当てられたグレードGr(h, Pn−m)を補正する。例えば、補正値が1.5である場合、グレードGr(h, Pn−m)の値が1.5倍される。その後、処理はステップS114へ進む。
【0072】
ステップS114では、入力パケットが、過去に検知された通信パターンのグレード補正条件に該当するか否かが判定される。換言すれば、ステップS114では、過去に取得された通信(先行パケット)から見て未来にあたる現時点において、グレード補正条件に該当する通信(入力パケット)が検知されたか否かが判定される。補正部253は、入力パケットの通信パターンがグレード補正条件に設定されている通信パターンが、過去に検出されているか否かを判定する。判定の結果、入力パケットに係る通信パターンをグレード補正条件とする通信パターンが過去に検出されていないと判定された場合、処理はステップS117へ進む。一方、判定の結果、入力パケットに係る通信パターンをグレード補正条件とする通信パターンが過去に検出されていると判定された場合、処理はステップS116へ進む。
【0073】
ステップS116では、過去の通信(先行パケット)に係るグレードの補正が行われる。補正部253は、過去に検出された通信パターンに係る端末に割り当てられていたグレードを、当該グレード補正条件について予め定義された補正値で補正する。例えば、補正値が1.5である場合、グレードが1.5倍される。その後、処理はステップS117へ進む。
【0074】
ステップS117からステップS120では、フェーズ毎の最大グレードの更新処理が行われる。まず、ネットワーク監視装置20は、入力パケットに係る端末について、検知フェーズ(P1からP8)毎に保持されている最大グレード(補正されているグレードについては、補正後の値)を、グレード管理テーブルから取得し(ステップS117)、ステップS101からステップS116までの処理の結果決定部254によって決定されたグレードと比較することで、各フェーズにおいて、最大グレードが更新されたか否かを判定する(ステップS118)。ここで、最大グレードが更新されていないと判定された場合、処理はステップS121へ進む。一方、最大グレードが更新されたと判定された場合、保持部255は、新たに割り当てられたグレードをもって、グレード管理テーブルに記録された最大グレードを更新し、これを保持する(ステップS120)。なお、この過程で、証跡ログが採取される(ステップS119)。その後、処理はステップS121へ進む。
【0075】
ステップS121では、端末におけるマルウェア活動可能性が算出される。合計部256は、当該端末hの各フェーズで求められた最大グレードを合算し、判定部257は、マルウェア活動係数を乗算することで、端末hのマルウェア活動可能性IR(h)を算出する。詳細な算出方法は、合計部256および判定部257の説明において上述した通りである。その後、処理はステップS122へ進む。
【0076】
ステップS122およびステップS123では、対象ノード90の、マルウェア感染の有無が判定される。判定部257は、ステップS121で算出されたマルウェア活動可能性IR(h)が所定の閾値を超えているか否かを判定する(ステップS122)。ここで、マルウェア活動可能性IR(h)が閾値を超えていると判定された場合、ネットワーク監視装置20は、マルウェア感染が検知された際の所定の対応を行う。マルウェア感染が検知された際の対応としては、例えば、通信遮断部22による当該ノード90の通信遮断開始や、当該ノード90がマルウェアに感染していることのアラート(警告)の通知等が挙げられる。一方、マルウェア活動可能性IR(h)が閾値を超えていないと判定された場合には、通信遮断や警告等の、マルウェア感染が検知された際の対応は行われない。その後、本フローチャートに示された処理は終了する。
【0077】
なお、ネットワーク監視装置20は、例えば、L2/L3スイッチから取得された通信データを破棄する方法、L2/L3スイッチのポートを遮断する方法、ノード90に対してARP偽装によるパケット送信先の誘導を行う方法、ルータ10に指示してノード90に係る通信を破棄させる方法、またはノード90が属するVLANを変更して隔離する方法、等を用いて、ノード90による通信を遮断することができる。また、ネットワーク監視装置20がルータ10に搭載(内包)されている場合には、ノード90が受信または送信する通信を直接遮断することもできる。また、ネットワーク監視装置20は、管理サーバーやノード90、予め設定された管理者端末等に通知パケットやメール等を送信する方法や、ネットワーク監視装置20自身に設けられた表示装置(ディスプレイやLED等)を介して警告表示する方法等を用いて、アラートを通知することが出来る。
【0078】
<相関分析の具体例>
以下に、相関分析の具体例を説明する。但し、相関分析は、端末による複数の通信が、マルウェアの活動に伴うフェーズの遷移の観点から相関性を有しているか否かを分析するものであればよく、本実施形態に示された例に限定されない。
【0079】
(1)第一の相関分析
通信パターンの判定処理(ステップS006を参照)は、予め定義された「通信パターン」に基づいている。従って、この処理のみでは、通信パターンに一致しない通信を行うマルウェアを検知できない。このため、本実施形態では、第一の相関分析(ステップS007を参照)を行うこととしている。
【0080】
図9は、本実施形態における第一の相関分析で監視対象とする活動遷移モデル上のフェーズとその遷移を示す図である。一般に、マルウェアは、C&Cサーバーからの指令に従って、探索フェーズP2、感染・浸潤フェーズP3、実行ファイルのダウンロードフェーズP4、または攻撃活動フェーズP8に遷移する。また、C&Cサーバーからの指令を受信してから、探索フェーズP2、感染・浸潤フェーズP3、実行ファイルのダウンロードフェーズP4、攻撃活動フェーズP8に遷移するまでの時間は、非常に短い(1秒以内)ことが一般的である。第一の相関分析では、この特性を利用して、端末(h)が、探索フェーズP2、感染・浸潤フェーズP3、実行ファイルのダウンロードフェーズP4、または攻撃活動フェーズP8に遷移した際に、トリガーとなった通信を一旦C&C通信と見なして、当該通信に係る端末をC&Cサーバー候補リストに登録する。C&Cサーバー候補リストに登録した後、マルウェアの感染を特定する処理は上記に示したマルウェアの検知方法に従う。
【0081】
(1.1)準備(評価情報の収集)
第一の相関分析では、活動遷移モデル上の探索フェーズP2、感染・浸潤フェーズP3、実行ファイルのダウンロードフェーズP4または攻撃活動フェーズP8における活動が観測(通信パターンが検出)された際に、そのトリガーとなった通信を分析して、一定の条件を満たす場合に、そのトリガーとなった通信の送信元(端末(h)から見た場合は接続先)をC&Cサーバー候補としてリストに登録する。以下に、第一の相関分析で利用する情報の収集方法と記録内容を説明する。なお、以下の処理は、監視対象端末が送信したパケットを検出するたびに実行される。また、この準備(評価情報の収集)処理は、通信パターンの判定処理(ステップS006を参照)の終了後に実行される。
【0082】
(1.1.1)分析
パケットを分析して、以下の条件を満たす場合は(1.1.2)のパケット待ち合わせに進む。条件を満たさない場合は、何もせずパケットを待ち合わせる。
・パケットは、端末(h)が送信したHTTP GET、POST、PUT、CONNECTリクエストの何れかである。且つ
・GETリクエストは、ファイルのダウンロード要求ではない。且つ
・User−Agentヘッダーの値が”Mozilla”で始まらない、またはUser−Agentヘッダーが存在しない。
【0083】
なお、上記したUser−Agentの条件は、ウェブブラウザ以外のアプリケーションが送信したHTTPリクエストだけを評価対象にすることを意味する。(偽装)ウェブブラウザ通信は、通信パターンの判定処理で評価対象になっているため、第一の相関分析では、非ウェブブラウザ通信のみが対象となる。そして、上記の条件を満たされた場合、端末(h)の管理テーブルには以下の情報が記録される。
・メソッド種別(GET, POST, PUT, CONNECTの何れか)
・User−Agentヘッダーの値(文字列)。User−Agentヘッダーが存在しない場合は”NULL”
・Hostヘッダーの値(FQDNまたはIPアドレス)
【0084】
(1.1.2)パケット待ち合わせ
ここでは、後続のパケットが待ち合わせられる。パケットが受信されると、以下の処理が実行される。
・パケットが(1.1.1)の条件を満たす端末(h)が送信した新しいHTTPリクエストである場合、処理は(1.1.1)の分析に戻る。なお、HTTPリクエストおよびそのレスポンスとしては、最新のデータのタイムスタンプのみが必要だが、パケットロストが発生する可能性があるため、全てのHTTPレスポンス受信時にタイムスタンプを記録して、後続のレスポンスを受信した場合に上書きしてもよい。
・パケットが、端末(h)が(1.1.1)で送信したHTTPリクエストのレスポンスであり、且つHTTPレスポンスのホディ部のサイズがゼロである場合、処理は(1.1.1)に移行する。これは、HTTPレスポンスのホディ部のサイズがゼロの場合、C&Cサーバーからの指令情報を含んでいないことを意味するためである。
・パケットは、端末(h)が(1.1.1)で送信したHTTPリクエストのレスポンスである。且つHTTPレスポンスのホディ部のサイズがゼロでない場合は、以下に示す内容を記録して、処理は(1.1.3)に移行する。
・HTTPレスポンスパケットの検出(受信)時刻(タイムスタンプ:ミリ秒)を記録する。以降、このタイムスタンプを「TimeStamp(C)」で表す。なお、ここではHTTPレスポンスの最終データのタイムスタンプのみが必要であるが、パケットロストが発生する可能性があるため、全てのHTTPレスポンス受信時にタイムスタンプを記録して、後続のレスポンスを受信した場合に上書きすることとする。
【0085】
(1.1.3)判定
ここでは、以下の判定および処理が行われる。
・(1.1.2)で処理したパケットがHTTPレスポンスの最終データではない場合、マルウェアふるまいエンジン25は、(1.1.2)に留まって、後続のレスポンスを待ち合わせる。
・(1.1.2)で処理したパケットがHTTPレスポンスの最終データであった場合、マルウェアふるまいエンジン25は、(1.1.1)の分析に移り、新規のHTTPリクエストを待ち合わせる。
【0086】
(1.2)探索フェーズP2への遷移時の処理内容
マルウェアふるまい検知エンジン25は、以下の処理を順次行い、条件を満たす場合に、「準備(評価情報の収集)」で記録したパケットに係る端末をC&Cサーバー候補リストに登録する。
・探索フェーズP2上の活動と認定(「探索フェーズP2の通信パターン」に一致)且つ
・探索フェーズP2に遷移した時刻(タイムスタンプ:TimeStamp(P2))と記録しているTimeStamp(C)が以下の条件を満たす。
TimeStamp(C)+500ms > TimeStamp(P2)
マルウェアふるまい検知エンジン25は、上記の条件を満たす「準備(評価情報の収集)」で記録した通信(入力パケット)には、グレード(Gr)=0.3を付与する。記録しているC&C通信フェーズのグレード(PGr)と比較して、大きい値のグレードをC&C通信フェーズのグレード(PGr)として記録し直す。なお、TimeStamp(P2)は、通信パターンの判定処理で、「探索フェーズP2の通信パターン」を検出した際に記録される。TimeStamp(P2)の計測対象は、探索フェーズ上の「疑わしい接続の試み」に該当する通信パターンのみである。また、通信パターンの観測時刻は、「疑わしい接続の試み」に該当する通信パターンを検出した時刻とする。
【0087】
(1.3)実行ファイルのダウンロードフェーズP4への遷移時の処理内容
マルウェアふるまい検知エンジン25は、以下の処理を順次行い、条件を満たす場合に、「準備(評価情報の収集)」で記録したパケットに係る端末をC&Cサーバー候補リストに登録する。
・実行ファイルのダウンロードフェーズP4上の活動と認定(「実行ファイルのダウンロードフェーズP4の通信パターン」に一致)且つ
・実行ファイルのダウンロードフェーズP4に遷移した時刻(タイムスタンプ:TimeStamp(P4))と記録しているTimeStamp(C)が以下の条件を満たす。
TimeStamp(C)+500ms > TimeStamp(P4)
マルウェアふるまい検知エンジン25は、上記の条件を満たす「準備(評価情報の収集)」で記録した通信に、グレード(Gr)=0.3を付与する。記録しているC&C通信フェーズのグレード(PGr)と比較して、大きい値のグレードをC&C通信フェーズのグレード(PGr)として記録し直す。なお、TimeStamp(P4)は、通信パターンの判定処理で、「実行ファイルのダウンロードフェーズP4の通信パターン」を検出した際に記録される。TimeStamp(P4)は、HTTP GETリクエスト、FTPダウンロード、TFTPダウンロードの開始時刻ではなく、ファイルのダウンロードが完了した時刻(HTTP GETの場合は、レスポンスの最終パケット)とする。パケットロストが発生するため、HTTP GETレスポンスの個々のパケット、FTP/TFTPのダウンロードパケットを検出するたびにTimeStamp(P4)を更新してもよい。
【0088】
(1.4)攻撃フェーズP8への遷移時の処理内容
マルウェアふるまい検知エンジン25は、以下の処理を順次行い、条件を満たす場合に、「準備(評価情報の収集)」で記録したパケットに係る端末をC&Cサーバー候補リストに登録する。
・攻撃フェーズP8上の活動と認定(「攻撃フェーズP8の通信パターン」に一致)且つ
・攻撃フェーズP8に遷移した時刻(タイムスタンプ:TimeStamp(P8))と記録しているTimeStamp(C)が以下の条件を満たす。
TimeStamp(C)+500ms > TimeStamp(P8)
マルウェアふるまい検知エンジン25は、上記の条件を満たす「準備(評価情報の収集)」で記録した通信には、グレード(Gr)=0.3を付与する。記録しているC&C通信フェーズのグレード(PGr)と比較して、大きい値のグレードをC&C通信フェーズのグレード(PGr)として記録し直す。なお、TimeStamp(P8)は、通信パターンの判定処理で、「攻撃フェーズP8の通信パターン」を検出した際に記録する。TimeStamp(P8)は、(複数のパケットから最終的に)攻撃活動を認定した時刻ではなく、攻撃の通信パターンの最初のパケットを検出した時刻である。
【0089】
(2)第二の相関分析
マルウェアは、マルウェア活動遷移モデルのフェーズを遷移しながら活動を深化させていく。従って、遷移した直後のフェーズでの活動(通信)が、一つ前のフェーズでの活動(通信)をトリガーにして発生した可能性が高い場合(換言すれば、前後のフェーズに相関性がある場合)、当該端末はマルウェアに感染している確率が高いと判断できる。このトリガーを通信パターンに含まれるデータ内容(例えば、C&Cサーバーからの指令内容)から判断する方法も考えられるが、データ部を暗号化や難読化しているマルウェアも多く、リアルタイムに解析・判定することは困難である。このため、本実施形態では、フェーズの遷移に要した時間(通信パターンPr−sを検出してから通信パターンPm−nを検出するまでの時間)、通信先(コールバック通信)の端末(h)、マルウェア感染の可能性が高い複数端末の挙動の相関性および一致性、扱ったファイルの種類等の情報に基づいて第二の相関分析(ステップS008を参照)を行う。分析の結果、マルウェアの挙動の疑いが高い通信であると判定できた場合は、その通信に対応する通信パターンPm−nのグレードGr(Pm−n)を補正(マルウェアの挙動類似係数θ倍)し、より高いグレードを付与する。
【0090】
以下に、通信パターンの相関分析の分析内容を説明する。なお、フェーズの遷移順序が一致しない場合や、フェーズの遷移は一致しているが途中に別のフェーズを挟んでいる場合は、分析対象外として相関分析は行われない。また、マルウェアふるまい検知エンジン25は、すべてのフェーズ遷移を相関分析の対象としない。マルウェアふるまい検知エンジン25は、マルウェアの挙動として顕著な相関性が観測される以下のフェーズ遷移を、相関分析の対象とする。図10から図15において、実線矢印は分析対象であることを、破線矢印は分析対象でないことを示す。
【0091】
(2.1)探索フェーズP2への遷移時の分析内容
図10は、本実施形態における第二の相関分析で監視対象とする、探索フェーズP2への遷移を示す図である。マルウェアふるまい検知エンジン25は、「マルウェアの活動フェーズ判定」処理ブロックにおいて、端末(h)が探索フェーズP2に遷移した際に、以下の分析を行い、該当する場合、通信パターンのグレードを補正する。
【0092】
(2.1.1)C&C通信フェーズP6から探索フェーズP2へ遷移
if {条件A = TRUE} then {Gr(h, P2−m) = θ・Gr(h, P2−m)} (θ=1.2)
・条件A:端末(h)のC&Cサーバー候補リストに登録されているC&Cサーバーの何れかでデータ通信(C&Cサーバーから何らかのデータ(指令)を受信)を観測してから、N(a)秒以内に、端末(h)で探索フェーズの通信パターンP2−mを観測した。
なお、ここでC&Cサーバーからデータ(指令)を受信した時刻は、以下のパケットを観測した時刻とする。
・C&CがHTTPタイプである場合、HTTP GET/POST/PUTリクエストに対応する、データ長(ボディ部のサイズ)がゼロでないHTTPレスポンスの(最終)データの受信時刻
・C&CがHTTPS(直接またはCONNECT)または独自プロトコルタイプである場合、該当TCPコネクション上で、端末(h)が送信したデータパケットに対応する、データ長がゼロでない(最終)TCPデータの受信時刻
・C&CがIRCタイプである場合、C&Cサーバーからデータ長がゼロでないIRCメッセージの最終データの受信時刻
ここで、探索フェーズの通信パターンP2−mは、「疑わしい接続の試み」に該当する通信パターンだけを対象とする。また、通信パターンの観測時刻は、「疑わしい接続の試み」に該当する通信パターンを検出した時刻とする。
【0093】
(2.2)実行ファイルのダウンロードフェーズP4への遷移時の分析内容
図11は、本実施形態における第二の相関分析で監視対象とする、実行ファイルのダウンロードフェーズP4への遷移を示す図である。マルウェアふるまい検知エンジン25は、「マルウェアの活動フェーズ判定」処理ブロックにおいて、端末(h)が実行ファイルのダウンロードフェーズP4に遷移した際に、以下の分析を行い、該当する場合、通信パターンのグレードを補正する。
【0094】
(2.2.1)探索フェーズP2から実行ファイルのダウンロードフェーズP4へ遷移
if {条件A = TRUE} then {Gr(h, P4−m) = θ・Gr(h, P4−m)} (θ=1.5)
if {条件B = TRUE} then {Gr(h, P4−m) = θ・Gr(h, P4−m)} (θ=1.2)
・条件A:端末(h)で実行ファイルのダウンロードの通信パターンP4−mを観測、且つP4−mの接続先(宛先IP/FQDN)が感染元端末(k)と一致した。
・条件B:端末(h)で実行ファイルのダウンロードの通信パターンP4−mを観測、且つP4−mの接続先(宛先IP/FQDN)がマルウェア配布サーバー候補リストに登録されているサーバーの何れかと一致した。
なお、マルウェアに感染してから一定時間内に実行ファイルがダウンロードされるとは限らない場合がある(10秒後もあれば、3日後のケースがある)ため、フェーズP2からフェーズP4への遷移では、時間に係る条件は入れない。
【0095】
(2.2.2)C&C通信フェーズP6から実行ファイルのダウンロードフェーズP4へ遷移
if {条件C = TRUE} then {Gr(h, P4−m) = θ・Gr(h, P4−m)} (θ=1.2)
if {条件D = TRUE} then {Gr(h, P4−m) = θ・Gr(h, P4−m)} (θ=1.5)
・条件C:端末(h)のC&Cサーバー候補リストに登録されているC&Cサーバーの何れかでデータ通信(C&Cサーバーから何らかのデータを受信)を観測してから、N(b)秒以内に、端末(h)で実行ファイルのダウンロードフェーズの通信パターンP4−mを観測した。
・条件D: 条件C且つP4−mの接続先(宛先IP/FQDN)がマルウェア配布サーバー候補リストに登録されているサーバーの何れかと一致した。
なお、C&Cサーバーからデータ(指令)を受信した時刻は、「(2.1)探索フェーズP2への遷移時の分析内容」を参照。また、実行ファイルのダウンロードフェーズの通信パターンP4−mの観測時刻は、HTTP GETリクエスト、FTPダウンロード、TFTPダウンロードの開始時刻ではなく、ファイルのダウンロードが完了した時刻(HTTP GETの場合は、レスポンスの最終パケット)とする。パケットロストが発生するため、HTTP GETレスポンスの個々のパケット、FTP/TFTPのダウンロードパケットを検出するたびに時刻を更新してもよい。
【0096】
(2.2.3)侵入フェーズP1から実行ファイルのダウンロードフェーズP4へ遷移
「マルウェアの活動フェーズ判定」処理ブロックにおいて、端末(h)が実行ファイルのダウンロードフェーズP4に遷移した際に、以下に説明する相関分析を行い、相関性があると判定された場合、活動通信パターンのグレードが補正され、マルウェアに感染している(ドライブバイダウンロード攻撃を受けている)と判定される(図5から図8を参照)。相関性の有無は、侵入フェーズP1にマッピングされた通信P1−nと実行ファイルのダウンロードフェーズP4にマッピングされた通信P4−mの連続性および関連性に基づいて判定される。ここで、連続性は、コネクションの同一性、検出時刻の近さ、2つの通信パターンP1−nとP4−mの間に検出した他のパケットの有無等に基づいて判定され、関連性は、宛先サーバーのアドレス、宛先サーバーの情報の共通性等に基づいて判定される。
【0097】
図12は、本実施形態における、侵入フェーズP1に係る通信と実行ファイルのダウンロードフェーズP4に係る通信との相関性を判定するための相関分析処理の流れを示すフローチャートである。本フローチャートに示された処理は、図6および図7を用いて説明したマルウェアふるまい検知エンジンのステップS111からステップS116の処理に相当し、後述する図16から図20の処理において、侵入フェーズP1にマッピングされた通信および実行ファイルのダウンロードフェーズP4にマッピングされた通信が検出された場合に、当該端末においてドライブバイダウンロード攻撃が行われたことを検出するために実行される。
【0098】
ステップS701からステップS703では、相関条件1から3を満たすか否かが判定される。相関条件1から3の何れも満たされない場合、本フローチャートに示された処理は終了する。一方、相関条件1から3の何れかが満たされた場合、処理はステップS704へ進む。相関条件1から3は、以下の通りである。
【0099】
相関条件1:端末(h)で通信パターンP1−m(m=1〜5)を検出後、検出したP1−mと同一のTCPコネクション上で、通信パターンP4−n(n=1〜4)を検出した。
if (条件 = TRUE) then PGr(h, P1) = 0.3
if (条件 = TRUE) then Gr(h, P4−1〜P4−4) = θ・Gr(h, P4−1〜P4−4) (θ=2.0)
【0100】
相関条件2:端末(h)でP1−m(m=1〜5)を検出した直後に、検出したP1−mと同一のFQDN/IPアドレスをもつ通信パターンP4−n(n=1〜4)を検出した。但し、P1−mとP4−nのTCPコネクションは異なる。
if (条件 = TRUE) then PGr(h, P1) = 0.3
if (条件 = TRUE) then Gr(h, P4−1〜P4−4) = θ・Gr(h, P4−1〜P4−4) (θ=2.0)
【0101】
相関条件3:端末(h)でP1−m(m=1〜5)を検出した直後に、検出したP1−mと同一のFQDN/IPアドレスをもつ、IEまたはJava(登録商標)のUser−Agentヘッダー値が設定された正常なGETリクエストを検出し、このGETリクエストは、唯一個のGETリクエストであり、且つ上記の正常なGETリクエスト(&レスポンス)の直後に、検出したP1−m(m=1〜5)と同一のFQDN/IPアドレスをもつ通信パターンP4−n(n=1〜4)を検出した。但し、P1−mとP4−nのTCPコネクションは異なる。
if (条件 = TRUE) then PGr(h, P1) = 0.3
if (条件 = TRUE) then Gr(h, P4−1〜P4−4) = θ・Gr(h, P4−1〜P4−4) (θ=2.0)
【0102】
ステップS704では、フェーズP1およびフェーズP4−mのグレードが補正される。補正部253は、例えば、フェーズP1のグレードを0.3に設定し、フェーズP4−mのグレードを2.0倍する、等の補正を行う。その後、本フローチャートに示された処理は終了し、最終的には閾値との比較によってマルウェア感染(ドライブバイダウンロード攻撃)の有無が判定される(図8に示す処理を参照)。
【0103】
(2.3)C&C検索フェーズP5への遷移時の分析内容
図13は、本実施形態における第二の相関分析で監視対象とする、C&C検索フェーズP5への遷移を示す図である。マルウェアふるまい検知エンジン25は、「マルウェアの活動フェーズ判定」処理ブロックにおいて、端末(h)がC&C検索フェーズP5に遷移した際に、以下の分析を行い、該当する場合、通信パターンのグレードを補正する。
【0104】
(2.3.1) 探索フェーズP2からC&C検索フェーズP5へ遷移
if {条件A = TRUE} then {Gr(h, P5−m) = θ・Gr(h, P5−m)} (θ=1.2)
・条件A: (感染させられた側の)端末(h)で感染活動を観測(通信パターンP2−9またはP2−10の接続先端末側)してから、N(c)秒以内に、端末(h)でC&C検索フェーズの通信パターンP5−mを観測した。
【0105】
(2.3.2)C&C通信フェーズP6からC&C検索フェーズP5へ遷移
if {条件B = TRUE} then {Gr(h, P5−m) = θ・Gr(h, P5−m)} (θ=1.3)
・条件B:端末(h)がC&C通信フェーズP6から、一定の周期(時間)でC&C検索フェーズP5に遷移(C&C検索フェーズP5の通信パターンP5−mを検出)を繰り返した。
なお、本実施形態では、過去3回の遷移がほぼ同じ周期(時間)である場合に、一定の周期でC&C検索フェーズP5への遷移を繰り返したと判断される。
【0106】
(2.4)C&C通信フェーズP6への遷移時の分析内容
図14は、本実施形態における第二の相関分析で監視対象とする、C&C通信フェーズP6への遷移を示す図である。マルウェアふるまい検知エンジン25は、「マルウェアの活動フェーズ判定」処理ブロックにおいて、端末(h)がC&C通信フェーズP6に遷移した際に、以下の分析を行い、該当する場合、通信パターンのグレードを補正する。
【0107】
(2.4.1) 探索フェーズP2からC&C通信フェーズP6へ遷移
if {条件A = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.1)
if {条件B = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.2)
if {条件C = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.5)
・条件A:端末(h)で感染活動を観測(通信パターンP2−9またはP2−10の感染先端末側)を観測してから、N(d)秒以内に、端末(h)でC&C通信フェーズP6の通信パターンP6−mを観測した。
・条件B: 条件A且つP6−mの接続先(宛先IP/FQDN)が(任意の監視対象端末の)C&Cサーバー候補リストに登録されているC&Cサーバーの何れかと一致した。
・条件C: 条件A且つP6−mの接続先(宛先IP/FQDN)が感染元端末(k)のC&Cサーバー候補リストに登録されているC&Cサーバーの何れかと一致した。
【0108】
(2.4.2)実行ファイルのダウンロードフェーズP4からC&C通信フェーズP6へ遷移
if {条件D = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.1)
if {条件E = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.2)
if {条件F = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.3)
・条件D:端末(h)で実行ファイルのダウンロードの通信パターンP4−mを観測してから、N(e)秒以内に、端末(h)でC&C通信フェーズの通信パターンP6−mを観測した。
・条件E: 条件D且つP6−mの接続先(宛先IP/FQDN)が(任意の監視対象端末の)C&Cサーバー候補リストに登録されているC&Cサーバーの何れかと一致した。
・条件F: 条件D且つP6−mの接続先(宛先IP/FQDN)が端末(h)のC&Cサーバー候補リストに既に登録済みのC&Cサーバーの何れかと一致した。
【0109】
(2.4.3) C&C検索フェーズP5からC&C通信フェーズP6へ遷移
if {条件G = TRUE} then {Gr(h, P6−m) = θ・Gr(h, P6−m)} (θ=1.2)
・条件G:端末(h)でC&C検索フェーズの通信パターンP5−mを観測してから、N(f)秒以内に、端末(h)でC&C通信フェーズの通信パターンP6−mを観測、且つP6−mの接続先(宛先IP/FQDN)が(任意の監視対象端末の)C&Cサーバー候補リストに登録されているC&Cサーバーの何れかと一致した。
【0110】
(2.5)攻撃フェーズP8への遷移時の分析内容
図15は、本実施形態における第二の相関分析で監視対象とする、攻撃フェーズP8への遷移を示す図である。マルウェアふるまい検知エンジン25は、「マルウェアの活動フェーズ判定」処理ブロックにおいて、端末(h)がC&C通信フェーズP6に遷移した際に、以下の分析を行い、該当する場合、通信パターンのグレードを補正する。
【0111】
(2.5.1)実行ファイルのダウンロードフェーズP4から攻撃フェーズP8へ遷移
if {条件A = TRUE} then {Gr(h, P8−m) = θ・Gr(h, P8−m)} (θ=1.2)
・条件A:端末(h)で実行ファイルのダウンロードの通信パターンP4−mを観測してから、N(g)秒以内に、端末(h)で攻撃フェーズの通信パターンP8−mを観測した。
【0112】
(2.5.2) C&C通信フェーズP6から攻撃フェーズP8へ遷移
if {条件B = TRUE} then {Gr(h, P8−m) = θ・Gr(h, P8−m)} (θ=1.2)
if {条件C = TRUE} then {Gr(h, P8−m) = θ・Gr(h, P8−m)} (θ=1.5)
・条件B:端末(h)のC&Cサーバー候補リストに登録されているC&Cサーバーの何れかでデータ通信(C&Cサーバーから何らかのデータ(指令)を受信)を観測してから、N(h)秒以内に、端末(h)で攻撃フェーズの通信パターンP8−mを観測した。
・条件C: 条件Bを満足する2台以上の端末を検出した。(同時に発生する必要はない)
【0113】
<ドライブバイダウンロード攻撃の検出−概要>
ここで、上記説明した活動遷移モデルおよび相関分析を用いた、ドライブバイダウンロード攻撃の検出について説明する。
【0114】
従来、組織や個人の機密情報を搾取する目的で実行される標的型攻撃等で利用される攻撃手法の一つに、所謂ドライブバイダウンロード攻撃がある。従来、ドライブバイダウンロード攻撃を検出するために、ファイル/コンテンツ自体の悪性(不正なコードや攻撃コードの有無)を解析する手法が用いられている。しかし、このような手法では、膨大なログの解析を行う必要があり、また、攻撃者が攻撃に用いるトラフィック量を抑えた場合、誤検知の可能性が高まるという問題があった。
【0115】
本開示は、上記した問題に鑑み、従来の手法に比べて軽量な手法でネットワーク端末における所定の活動を検出することを課題とする。
【0116】
ここで、ドライブバイダウンロード攻撃は、例えば、以下の流れで実行される。
1.準備段階
攻撃者は、標的がアクセスする正規のウェブサイトを改ざんして、攻撃サーバーへ誘導(リダイレクト)するリンクを挿入する。
2.攻撃サーバーへの誘導
標的が改ざんされたサイトにアクセスすると、標的は、サイトに埋め込まれた「攻撃サーバーへ誘導するリンク」に従って、攻撃サーバーまで誘導される。
3.悪性コンテンツのダウンロード
攻撃サーバーから、標的に対して、標的が使用するウェブブラウザや各種プラグイン・ソフトウェアの脆弱性を利用する悪性コンテンツが送り込まれる。
4.マルウェア本体のダウンロード
悪性コンテンツによる脆弱性を利用した攻撃が成功すると、標的に対してダウンロードコードが読み込まれ、ダウンロードコードにより、標的に対してマルウェア本体が自動的にダウンロードされる。
【0117】
そこで、本実施形態では、ドライブバイダウンロード攻撃が、「悪性コンテンツのダウンロード」と「マルウェア本体のダウンロード」の2つの通信が連続して発生すること、および「悪性コンテンツのダウンロード」と「マルウェア本体のダウンロード」の2つの通信では、異なる種類のファイルが使用されることに着目して、マルウェアふるまい検知エンジンを用いて、各通信においてダウンロードされるファイル/コンテンツの種類、および2つの通信のフェーズ遷移に基づいて攻撃を検知することとした。
【0118】
なお、本実施形態では、上述の通り、「悪性コンテンツのダウンロード」の通信パターンが侵入フェーズP1に、「マルウェア本体のダウンロード」の通信パターンが実行ファイルのダウンロードフェーズP4にマッピングされている。
【0119】
以下、本実施形態に係るシステム1によって実行される処理の流れを、フローチャートを用いて説明する。なお、以下に説明するフローチャートに示された処理の具体的な内容および処理順序は、本発明を実施するための一例である。具体的な処理内容および処理順序は、本発明の実施の形態に応じて適宜選択されてよい。
【0120】
<ドライブバイダウンロード攻撃の検出−悪性コンテンツの侵入判定>
はじめに、通信が「悪性コンテンツのダウンロード」の通信パターンに該当し、端末が侵入フェーズP1にあることを決定するための処理を説明する。
【0121】
図16は、本実施形態に係る、マルウェアふるまい検知エンジン25によるコンテンツリクエスト解析処理の流れを示すフローチャートである。本フローチャートは、図5を用いて説明した検知処理のステップS006の処理、換言すれば、図6を用いて説明した処理のステップS101からステップS103の処理に相当する。
【0122】
ステップS201では、取得されたデータ(1または複数の入力パケットの組み合わせ)が、HTTPのGET/POST/PUSHリクエストに該当するか否かが判定される。比較部251は、取得データと予め保持された通信パターン(ここでは、HTTPのGET/POST/PUSHリクエストのデータパターン)とを比較することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定する。判定の結果、取得データがHTTPのGET/POST/PUSHリクエストではないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、取得データがHTTPのGET/POST/PUSHリクエストであると判定された場合、処理はステップS202へ進む。
【0123】
ステップS202では、取得データ(HTTPのGET/POST/PUSHリクエスト)のURIパス部のファイル名が、所定の拡張子を含むか否かが判定される。比較部251は、取得データ(HTTPのGET/POST/PUSHリクエスト)のURIパス部のファイル名の文字列と、予め保持された拡張子の文字列(例えば、“.jar”,“.class”,“.xap”,“.swf”,“.pdf”の何れか)とを比較することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定する。判定の結果、URIパス部のファイル名が所定の拡張子を含むと判定された場合、処理はステップS204へ進む。一方、URIパス部のファイル名が所定の拡張子を含まないと判定された場合、処理はステップS203へ進む。
【0124】
ステップS203では、取得データ(HTTPのGET/POST/PUSHリクエスト)のヘッダーが、予め定義された通信パターンの何れに該当するかが判定される。比較部251は、取得データと予め保持された通信パターン(ここでは、リクエストされたファイルが所定の種類のファイルである場合にヘッダーに含まれ得るデータパターン)とを比較することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定する。これは、ステップS202において、リクエストに係るファイル名が所定の拡張子を含まない場合にも、拡張子が改ざんされている可能性があるため、攻撃者が改ざん困難である情報に基づいて、リクエストに係るファイルの種類を正確に判定するための処理である。判定の結果、取得データが悪性コンテンツのリクエストに係る特徴を含まないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、取得データが悪性コンテンツのリクエストに係る特徴を含むと判定された場合、処理はステップS204へ進む。
【0125】
ステップS204では、各種のコンテンツレスポンス解析処理が実行される。マルウェアふるまい検知エンジン25は、ステップS202またはステップS203において、リクエストされたファイルの種類が所定のファイル種別であると判定された通信について、レスポンスを監視し、当該ファイル種別への該当性を判定する。コンテンツレスポンス解析処理は、ファイル種別毎に用意されてよい。本実施形態では、例えば、Javaコンテンツレスポンス解析処理、PDFコンテンツレスポンス解析処理、Silverlightコンテンツレスポンス解析処理、Flashコンテンツレスポンス解析処理およびHTMLコンテンツレスポンス解析処理が用意される。但し、コンテンツレスポンス解析処理は、当該通信が侵入フェーズP1の通信であるか否かを判定するために必要なファイル種別について用意されればよく、本実施形態において例示されたファイル種別に限定されない。コンテンツレスポンス解析処理が実行されると、本フローチャートに示された処理は終了する。
【0126】
具体的には、ステップS202またはステップS203における判定の結果毎に、以下のコンテンツレスポンス解析処理が実行される。以下に列挙された条件は、ステップS202またはステップS203における判定用に予め定義された通信パターン(P1−m)である。
Javaコンテンツレスポンス解析処理:
・URIパス部のファイル名が拡張子“.jar”若しくは“.class”を含む、または
・JavaのUser−AgentヘッダーおよびAccept−Encodingヘッダーが設定されている。
PDFコンテンツレスポンス解析処理:
・URIパス部のファイル名が拡張子“.pdf”を含む、または
・ブラウザのUser−Agentヘッダーが設定されており、且つ
・・Accept−LanguageとRefererヘッダーが設定されていない、または
・・URIのパス部に任意のファイル拡張子を含まず、クエリ部が設定されている。
Silverlightコンテンツレスポンス解析処理:
・URIパス部のファイル名が拡張子“.xap”を含む、または
・ブラウザのUser−Agentヘッダーが設定されており、且つ
・・Accept−LanguageとRefererヘッダーが設定されていない、または
・・URIのパス部に任意のファイル拡張子を含まず、クエリ部が設定されている。
Flashコンテンツレスポンス解析処理:
・URIパス部のファイル名が拡張子“.swf”を含む、または
・ブラウザのUser−Agentヘッダーが設定されており、且つ
・・Accept−LanguageとRefererヘッダーが設定されていない、
・・x−flash−versionヘッダーが設定されている、
・・URIのパス部にファイル拡張子“.php”,“.asp”,“.aspx”,“.cgi”を含む、または
・・URIのパス部に任意のファイル拡張子を含まず、クエリ部が設定されている。
HTMLコンテンツレスポンス解析処理
・ブラウザのUser−Agentヘッダーが設定されており、且つ
・・URIのパス部にファイル拡張子“.php”,“.asp”,“.aspx”,“.cgi”を含む、
・・URIのパス部に任意のファイル拡張子を含まず、クエリ部が設定されている、
・・URIにパス部が設定されておらず、クエリ部が設定されている、または
・・URIのパス部にファイル拡張子“.htm”または“.html”を含み、URIにクエリ部が設定されていない。
【0127】
図17は、本実施形態に係る、マルウェアふるまい検知エンジン25によるコンテンツレスポンス解析処理の流れを示すフローチャートである。本フローチャートは、図16を用いて説明したコンテンツリクエスト解析処理のステップS204の処理をより詳細に説明するものである。そして、本フローチャートは、図5を用いて説明した検知処理のステップS006の処理、換言すれば、図6を用いて説明した処理のステップS101からステップS103の処理に相当する。また、先述の通り、本実施形態では、コンテンツレスポンス解析処理は、ファイル種別毎に用意されており、上記説明した条件が満たされた場合に、各ファイル種別のためのコンテンツレスポンス解析処理が実行される。
【0128】
ステップS301およびステップS302では、HTTPリクエストに対応するレスポンスパケットが監視され、レスポンスのContent−Typeヘッダーの内容が判定される。通信取得部21は、上記コンテンツリクエスト解析処理で所定のファイル種別のファイルがリクエストされたと判定された通信と同じセッション/コネクション(例えば、TCPコネクション)におけるレスポンスパケット(戻りパケット)を監視する(ステップS301)。レスポンスパケットが取得されると、比較部251は、当該レスポンスのContent−Typeヘッダーに、リクエストされたファイル種別を示すタイプ値が設定されているか否かを判定することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定し、当該レスポンスに、リクエストされた種類のファイルが含まれているか否かを判定する(ステップS302)。例えば、Javaコンテンツレスポンス解析処理が呼び出されている場合、比較部251は、レスポンスパケットのContent−Typeヘッダーに、Javaのタイプ値が設定されているか否かを判定する。レスポンスパケットのContent−Typeヘッダーに、リクエストされたファイル種別を示すタイプ値が設定されていると判定された場合、処理はステップS304へ進む。一方、レスポンスパケットのContent−Typeヘッダーに、リクエストされたファイル種別を示すタイプ値が設定されていないと判定された場合、処理はステップS303へ進む。
【0129】
ステップS303では、レスポンスのボディが、予め定義されたデータパターンに該当するか否かが判定される。比較部251は、取得データ(レスポンス)と予め保持されたデータパターン(ここでは、レスポンスが所定の種類のファイルを含む場合にレスポンスのボディに含まれ得るデータパターン)とを比較することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定し、当該レスポンスに、リクエストされた種類のファイルが含まれているか否かを判定する。これは、ステップS302において、レスポンスのContent−Typeヘッダーにリクエストされたファイル種別を示すタイプ値が設定されていない場合にも、Content−Typeヘッダーが改ざんされている可能性があるため、攻撃者が改ざん困難である情報に基づいて、レスポンスに係るファイルの種類を正確に判定するための処理である。判定の結果、レスポンスのContent−Typeヘッダーにリクエストされたファイル種別を示すタイプ値が設定されていないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、レスポンスのContent−Typeヘッダーにリクエストされたファイル種別を示すタイプ値が設定されていると判定された場合、処理はステップS304へ進む。
【0130】
なお、ステップS303では、例えば、所定の種類のコンテンツであることを示すためにコンテンツ内部に設定される所定のデータパターン(シグネチャ等)が、レスポンスのボディの先頭部分または所定位置に設定されているか否かが判定されることで、レスポンスのボディが所定の種類のコンテンツであるか否かが判定される。このようなシグネチャ等のデータパターンは、当該コンテンツを端末のアプリケーションに実行させるために、攻撃者も改ざんすることが困難なデータパターンであるため、より正確な判定を行うことが出来る。
【0131】
ステップS304では、当該レスポンスおよびリクエストに係る端末に関して、該当すると判定された通信パターン(P1−m)、即ち、「悪性コンテンツのダウンロード」が検出されたことが記録される。具体的には、HTTPリクエストヘッダーの種類と値、宛先IPアドレス、宛先FQDN、ファイル(パッケージ)の名前、サイズ、および検出時刻が記録される。また、決定部254は、当該リクエストおよびレスポンスに係る通信を行った端末の活動フェーズを侵入フェーズP1に決定し、評価値取得部252は、入力パケットに対応する通信パターン(P1−m)が属するフェーズP1および通信パターン(P1−m)に予め設定されているグレードGr(P1−m)を、入力パケットに係る端末(h)のフェーズP1(h)、および当該フェーズのグレードGr(h, P1−m)として取得する。その後、本フローチャートに示された処理は終了する。
【0132】
図17を用いて説明したコンテンツレスポンス解析処理は、上述の通りファイル種別毎に用意されるが(例えば、Javaコンテンツレスポンス解析処理、PDFコンテンツレスポンス解析処理、Silverlightコンテンツレスポンス解析処理およびFlashコンテンツレスポンス解析処理)、判定のための具体的なデータパターン等を除いて、処理の流れは概略同様である。但し、HTMLコンテンツレスポンス解析処理については、他のコンテンツレスポンス解析処理とは異なる処理の流れが採用されてよい。
【0133】
図18は、本実施形態に係る、マルウェアふるまい検知エンジン25によるHTMLコンテンツレスポンス解析処理の流れを示すフローチャートである。本フローチャートは、図16を用いて説明したコンテンツリクエスト解析処理のステップS204において、HTMLコンテンツレスポンス解析処理が呼び出された場合の処理をより詳細に説明するものである。そして、本フローチャートは、図5を用いて説明した検知処理のステップS006の処理、換言すれば、図6を用いて説明した処理のステップS101からステップS103の処理に相当する。
【0134】
ステップS401およびステップS402では、HTTPリクエストに対応するレスポンスパケットが監視され、レスポンスのContent−Typeヘッダーの内容が判定される。通信取得部21は、上記コンテンツリクエスト解析処理でHTMLファイルがリクエストされたと判定された通信と同じセッション/コネクションにおけるレスポンスパケットを監視する(ステップS401)。レスポンスパケットが取得されると、比較部251は、当該レスポンスのContent−Typeヘッダーに、HTMLファイルのタイプ値が設定されているか否かを判定することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定し、当該レスポンスにHTMLファイルが含まれているか否かを判定する(ステップS402)。レスポンスパケットのContent−TypeヘッダーにHTMLのタイプ値が設定されていないと判定された場合、本フローチャートに示された処理は終了する。一方、レスポンスパケットのContent−TypeヘッダーにHTMLのタイプ値が設定されていると判定された場合、処理はステップS403へ進む。
【0135】
ステップS403では、レスポンスのボディが、予め定義されたHTMLファイルのデータパターンに該当するか否かが判定される。比較部251は、取得データ(レスポンス)と、レスポンスがHTMLファイルを含む場合にレスポンスのボディに含まれ得るデータパターンとを比較することで、取得データと予め定義された通信パターン(P1−m)との共通性を判定し、当該レスポンスにHTMLファイルが含まれているか否かを判定する。これは、ステップS402において、レスポンスのContent−TypeヘッダーにHTMLのタイプ値が設定されている場合にも、他の種別のファイルがHTMLファイルに偽装されている可能性があるため、攻撃者が改ざん困難である情報に基づいて、レスポンスに係るファイルの種類を正確に判定するための処理である。判定の結果、レスポンスのContent−TypeヘッダーにHTMLのタイプ値が設定されていないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、レスポンスのContent−TypeヘッダーにHTMLのタイプ値が設定されていると判定された場合、処理はステップS404へ進む。
【0136】
ステップS404では、当該レスポンスおよびリクエストに係る端末に関して、該当すると判定された通信パターン(P1−m)、即ち、「悪性コンテンツのダウンロード」が検出されたことが記録される。具体的には、HTTPリクエストヘッダーの種類と値、宛先IPアドレス、宛先FQDN、ファイル(パッケージ)の名前、サイズ、および検出時刻が記録される。また、決定部254は、当該リクエストおよびレスポンスに係る通信を行った端末の活動フェーズを侵入フェーズP1に決定し、評価値取得部252は、入力パケットに対応する通信パターン(P1−m)が属するフェーズP1および通信パターン(P1−m)に予め設定されているグレードGr(P1−m)を、入力パケットに係る端末(h)のフェーズP1(h)、および当該フェーズのグレードGr(h, P1−m)として取得する。その後、本フローチャートに示された処理は終了する。
【0137】
<ドライブバイダウンロード攻撃の検出−マルウェア本体の侵入判定>
次に、通信が「マルウェア本体のダウンロード」の通信パターンに該当し、端末が実行ファイルのダウンロードフェーズP4にあることを決定するための処理を説明する。
【0138】
図19は、本実施形態に係る、マルウェアふるまい検知エンジン25による実行ファイルリクエスト解析処理の流れを示すフローチャートである。本フローチャートは、図5を用いて説明した検知処理のステップS006の処理、換言すれば、図6を用いて説明した処理のステップS101からステップS103の処理に相当する。
【0139】
ステップS501では、取得されたデータ(1または複数の入力パケットの組み合わせ)が、HTTPのGET/POST/PUSHリクエストに該当するか否かが判定される。比較部251は、取得データと予め保持された通信パターン(ここでは、HTTPのGET/POST/PUSHリクエストのデータパターン)とを比較することで、取得データと予め定義された通信パターン(P4−m)との共通性を判定する。判定の結果、取得データがHTTPのGET/POST/PUSHリクエストではないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、取得データがHTTPのGET/POST/PUSHリクエストであると判定された場合、処理はステップS502へ進む。
【0140】
ステップS502では、取得データ(HTTPのGET/POST/PUSHリクエスト)が、予め定義された通信パターンの何れに該当するかが判定される。比較部251は、取得データと予め保持された通信パターン(ここでは、リクエストされたファイルが実行ファイルである場合にリクエストに含まれ得るデータパターン)とを比較することで、取得データと予め定義された通信パターン(P4−m)との共通性を判定する。これは、攻撃者が改ざん困難である情報に基づいて、リクエストに係るファイルの種類が実行ファイルであるか否かを正確に判定するための処理である。判定の結果、取得データが実行ファイルのリクエストに係る特徴を含まないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、取得データが実行ファイルのリクエストに係る特徴を含むと判定された場合、処理はステップS503へ進む。
【0141】
具体的には、以下に列挙する何れかの条件を満たす場合、比較部251は、取得データが実行ファイルのリクエストに係る特徴を含むと判定する。但し、以下に列挙する条件は一例であり、判定のための条件は本実施形態における例示に限定されない。
・HTTPリクエストヘッダーにJavaのUser−Agentかつ、Accept−Encodingヘッダーが設定されていない。
・HTTPリクエストが疑わしいHTTP通信パターンに一致する。
・HTTPリクエストヘッダーにHostまたは、HostとConnectionヘッダーが設定されており、User−Agent、Accept系のヘッダーが設定されていない。
・ブラウザのUser−Agentが設定されており、かつ、ブラウザの通常のリクエストヘッダーと異なる構成のリクエストヘッダーである(「ブラウザの通常のリクエストヘッダーとは異なるヘッダーの構成」とは、通常設定されているヘッダーが設定されていないケースを示す)。
・User−Agentが設定されていない、またはConnectionが設定されていない。
・Hostヘッダーの値がIPアドレスまたはHTTP非標準のポート番号が設定されている。
・URIパス部のファイル拡張子が、“.php”,“.asp”,“.aspx”,“.cgi”を含む、かつ、Refererまたは、Cookieヘッダーが設定されていない。
【0142】
ステップS503では、実行ファイルレスポンス解析処理が実行される。マルウェアふるまい検知エンジン25は、ステップS502において、リクエストされたファイルが実行ファイルであると判定された通信について、レスポンスを監視し、レスポンスに係るファイルが実行ファイルであるか否かを判定する。実行ファイルレスポンス解析処理が実行されると、本フローチャートに示された処理は終了する。
【0143】
図20は、本実施形態に係る、マルウェアふるまい検知エンジン25による実行ファイルレスポンス解析処理の流れを示すフローチャートである。本フローチャートは、図19を用いて説明した実行ファイルレスポンス解析処理のステップS503の処理をより詳細に説明するものである。そして、本フローチャートは、図5を用いて説明した検知処理のステップS006の処理、換言すれば、図6を用いて説明した処理のステップS101からステップS103の処理に相当する。
【0144】
ステップS601およびステップS602では、HTTPリクエストに対応するレスポンスパケットが監視され、レスポンスのContent−Typeヘッダーの内容が判定される。通信取得部21は、上記実行ファイルリクエスト解析処理で実行ファイルがリクエストされたと判定された通信と同じセッション/コネクションにおけるレスポンスパケットを監視する(ステップS601)。レスポンスパケットが取得されると、比較部251は、当該レスポンスのContent−Typeヘッダーに実行ファイルのタイプ値が設定されているか否かを判定することで、取得データと予め定義された通信パターン(P4−m)との共通性を判定し、当該レスポンスに実行ファイルが含まれているか否かを判定する(ステップS602)。レスポンスパケットのContent−Typeヘッダーに、実行ファイルを示すタイプ値が設定されていると判定された場合、処理はステップS604へ進む。一方、レスポンスパケットのContent−Typeヘッダーに、実行ファイルを示すタイプ値が設定されていないと判定された場合、処理はステップS603へ進む。
【0145】
ステップS603では、レスポンスのヘッダーまたはボディが、予め定義されたデータパターンに該当するか否かが判定される。比較部251は、取得データ(レスポンス)と予め保持されたデータパターン(ここでは、レスポンスが実行ファイルを含む場合にレスポンスのヘッダーまたはボディに含まれ得るデータパターン)とを比較することで、取得データと予め定義された通信パターン(P4−m)との共通性を判定し、当該レスポンスに実行ファイルが含まれているか否かを判定する。これは、ステップS602において、レスポンスのContent−Typeヘッダーに実行ファイルを示すタイプ値が設定されていない場合にも、Content−Typeヘッダーが改ざんされている可能性があるため、攻撃者が改ざん困難である情報に基づいて、レスポンスに係るファイルの種類を正確に判定するための処理である。判定の結果、レスポンスのヘッダーまたはボディに実行ファイルを示す値が設定されていないと判定された場合、当該取得データに係る処理は終了し、本フローチャートに示された処理は終了する。一方、レスポンスのヘッダーまたはボディに実行ファイルを示す値が設定されていると判定された場合、処理はステップS604へ進む。
【0146】
なお、ステップS603では、例えば、所定のアプリケーションで実行可能な実行ファイルであることを示すためにファイル内部に設定される所定のデータパターン(シグネチャ等)が、レスポンスのボディの先頭部分または所定位置に設定されているか否かが判定されることで、レスポンスのボディが実行ファイルであるか否かが判定される。このようなシグネチャ等のデータパターンは、当該実行ファイルを端末のアプリケーションに実行させるために、攻撃者も改ざんすることが困難なデータパターンであるため、より正確な判定を行うことが出来る。
【0147】
ステップS604では、当該レスポンスおよびリクエストに係る端末に関して、該当すると判定された通信パターン(P4−m)、即ち、「実行ファイルのダウンロード」が検出されたことが記録される。また、決定部254は、当該リクエストおよびレスポンスに係る通信を行った端末の活動フェーズを実行ファイルのダウンロードフェーズP4に決定し、評価値取得部252は、入力パケットに対応する通信パターン(P4−m)が属するフェーズP4および通信パターン(P4−m)に予め設定されているグレードGr(P4−m)を、入力パケットに係る端末(h)のフェーズP4(h)、および当該フェーズのグレードGr(h, P4−m)として取得する。その後、本フローチャートに示された処理は終了する。
【0148】
即ち、上記説明したコンテンツリクエスト解析処理、コンテンツレスポンス解析処理、実行ファイルリクエスト解析処理および実行ファイルレスポンス解析処理によれば、HTTPのトラフィックにおいて、特定の条件を満たすリクエストとこれに対応するレスポンスが監視および解析されることで、「悪性コンテンツのダウンロード」または「マルウェア本体のダウンロード」の可能性があるHTTP通信パターンが抽出される。そして、抽出された通信は、「端末が不正な活動(マルウェアの活動)をしていると推測される程度」を示すグレードが付与された上で、侵入フェーズP1、または実行ファイルのダウンロードフェーズP4にマッピングされる。また、フェーズにマッピングされた通信ごとに、宛先(=攻撃サーバー)FQDN/IPアドレス、HTTPリクエストのヘッダー情報(メソッド種別、URIパス情報、Hostヘッダー、User−Agentヘッダー等)、ダウンロードしたファイル種別、ファイルサイズ、検出時刻等の情報が記録される。
【0149】
<ドライブバイダウンロード攻撃の検出−相関分析>
上述の処理によって、実行ファイルのダウンロードフェーズP4に該当する通信パターンが検出されると、本実施形態では、侵入フェーズP1にマッピングされた通信と実行ファイルのダウンロードフェーズP4にマッピングされた通信の相関分析が実行される(図12を参照)。図12に示された相関分析処理において相関性有りと判定された場合、所定のルールに基づいてグレードの補正が行われ、最終的にマルウェア感染(ドライブバイダウンロード攻撃)の有無が判定される(図8に示す処理を参照)。
【0150】
従来、「悪性コンテンツのダウンロード」の通信パターンや「マルウェア本体のダウンロード」の通信パターンを検出する場合には、ネットワーク上を流れるすべてのトラフィックを検査してファイルの有無を判定する必要があったが、本実施形態において上記に説明した処理によれば、大量に流れるHTTPパケットの中から「特定の条件を満たすHTTPリクエストおよびレスポンス」を抽出して相関分析することで、従来に比べて小さな計算コストで、リアルタイムにドライブバイダウンロード攻撃を検出することが出来る。
【0151】
<バリエーション>
上記実施形態では、ネットワーク監視装置20が、スイッチまたはルータのモニタリングポート(ミラーポート)に接続されることでノード90によって送受信されるパケットやフレーム等を取得し、取得したパケットを転送しないパッシブモードで動作する例について説明した(図1を参照)。但し、上記実施形態に示したネットワーク構成は、本開示を実施するための一例であり、実施にあたってはその他のネットワーク構成が採用されてもよい。
【0152】
例えば、ネットワーク監視装置20は、モニタリングポート(ミラーポート)に接続されず、単にネットワークセグメント2に接続されている場合であっても、ネットワークセグメント2を流れるフレームを、自身のMACアドレス宛でないものも含めて全て取得することで、ノード90によって送受信されるパケットやフレーム等を取得することが出来る。この場合も、ネットワーク監視装置20は、パッシブモードで動作する。また、例えば、ネットワーク監視装置20は、ネットワークセグメント2のスイッチまたはルータと、その上位にある他のスイッチまたはルータと、の間に接続されることで、通過するパケットやフレーム等を取得してもよい(図21を参照)。この場合、ネットワーク監視装置20は、取得したパケットのうち、遮断しなくてもよいパケットについては転送するインラインモードで動作する。また、ネットワーク監視装置20は、ルータまたはスイッチに内包されてもよい。
【0153】
なお、本実施形態では、ネットワークを流れるパケットを取得して、上記した各種の検知エンジンによりリアルタイムで検知を行う実施形態について説明したが、本開示の適用範囲は、リアルタイム検知に限定されない。例えば、ネットワークを流れる通信に係るデータを蓄積しておいて、蓄積されたデータに対して上記した各種の検知エンジンによる処理を行うこととしてもよい。
【符号の説明】
【0154】
1 システム
20 ネットワーク監視装置
50 管理サーバー
90 ノード
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21