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

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

▶ 日本電信電話株式会社の特許一覧

特許5996481監視装置、監視方法、および、監視プログラム
<>
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000002
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000003
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000004
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000005
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000006
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000007
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000008
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000009
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000010
  • 特許5996481-監視装置、監視方法、および、監視プログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5996481
(24)【登録日】2016年9月2日
(45)【発行日】2016年9月21日
(54)【発明の名称】監視装置、監視方法、および、監視プログラム
(51)【国際特許分類】
   G06F 21/53 20130101AFI20160908BHJP
   G06F 21/56 20130101ALI20160908BHJP
【FI】
   G06F21/53
   G06F21/56 360
【請求項の数】5
【全頁数】16
(21)【出願番号】特願2013-87176(P2013-87176)
(22)【出願日】2013年4月18日
(65)【公開番号】特開2014-211733(P2014-211733A)
(43)【公開日】2014年11月13日
【審査請求日】2015年6月23日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】青木 一史
(72)【発明者】
【氏名】幾世 知範
(72)【発明者】
【氏名】針生 剛男
【審査官】 戸島 弘詩
(56)【参考文献】
【文献】 特開2012−103893(JP,A)
【文献】 細渕 嘉彦,インターネット接続型動的解析におけるIPアドレス使用法に関する考察,情報処理学会研究報告 コンピュータセキュリティ(CSEC) [DVD−ROM],日本,情報処理学会,2010年 4月15日,No.48,第1〜7頁
【文献】 川古谷 裕平,Dense Ship:サーバ型ハニーポット用仮想マシンモニタ,電子情報通信学会技術研究報告,日本,電子情報通信学会,2011年 6月 9日,Vol.111,No.82,第63〜68頁
【文献】 八木 毅,Webサイト向けマルウェアダウンロードサイトの生存期間監視方式,電子情報通信学会技術研究報告,日本,電子情報通信学会,2010年 6月10日,Vol.110,No.79,第75〜80頁
【文献】 2013年 春季会合 都道府県CIOフォーラム,日経BPガバメントテクノロジー,日本,日経BP社,2013年 4月 4日,第27号,第20〜21頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/50
(57)【特許請求の範囲】
【請求項1】
マルウェアであるプログラムを動作させ、前記プログラムによる通信を監視する監視装置であって、
前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定し、前記所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定する、継続判定処理を行う継続判定部と、
前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する第1の動的解析部と、
前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する第2の動的解析部と、
を備え
前記継続判定部は、前記第1の動的解析部または前記第2の動的解析部による前記プログラムの動作後、前記プログラムの動作記録を参照して、再度、前記継続判定処理を行うことを特徴とする監視装置。
【請求項2】
前記継続判定部は、
前記第2の動的解析部による前記プログラムの動作後、前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、(1)いずれかのホストとの通信が実施されたこと、(2)過去に確認されていないホストとの通信が実施されたこと、(3)いずれかのホストから応答を受信したこと、および、(4)過去に確認されていない応答をいずれかのホストから受信したこと、のいずれかまたはこれらの組み合わせが確認できたとき、前記プログラムを、継続的に動作させると判定することを特徴とする請求項1に記載の監視装置。
【請求項3】
前記継続判定部は、
前記第1の動的解析部による前記プログラムの動作後、前記プログラムの動作記録を参照して、前記プログラムにより、(1)いずれかのホストと最後に通信を実施してから所定期間以上経過していること、(2)所定期間内に、過去に確認されていないホストとの通信が実施されていないこと、(3)所定期間内に、いずれのホストからも応答を受信していないこと、および、(4)所定期間内に、過去に確認されていない応答をいずれのホストからも受信していないことと、のいずれかまたはこれらの組み合わせが確認できたとき、前記プログラムを、前記予め決められた時刻に動作させると判定することを特徴とする請求項1または請求項2に記載の監視装置。
【請求項4】
マルウェアであるプログラムを動作させ、前記プログラムによる通信を監視する監視方法であって、
コンピュータが、
前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたか否かを判定する継続判定ステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストと通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定するステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定するステップと、
前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する第1の動的解析ステップと、
前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する第2の動的解析ステップと、
を実行し、
前記第1の動的解析ステップまたは前記第2の動的解析ステップの実行後、前記プログラムの動作記録を参照して、再度、前記継続判定ステップを実行することを特徴とする監視方法。
【請求項5】
マルウェアであるプログラムを動作させ、前記プログラムによる通信を監視するための監視プログラムであって、
コンピュータに、
前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたか否かを判定する継続判定ステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストと通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定するステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定するステップと、
前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する第1の動的解析ステップと、
前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する第2の動的解析ステップと、
を実行させ、
前記第1の動的解析ステップまたは前記第2の動的解析ステップの実行後、前記プログラムの動作記録を参照して、再度、前記継続判定ステップを実行させるための監視プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムの監視装置、監視方法、および、監視プログラムに関するものである。
【背景技術】
【0002】
近年、情報漏洩や不正アクセス等の脅威をもたらす不正プログラム(以下、「マルウェア」と呼ぶ)が猛威を振るっている。昨今のマルウェアは、C&C(Command and Control)サーバを介して攻撃者からの指令を受け取り、他のサーバに対する攻撃や情報漏洩といった被害をもたらす。また、一度感染させたマルウェアに対して、新たな攻撃機能を具備させようとしたときには、攻撃者は感染端末にマルウェアダウンロードサイトへの接続を行わせ、新たなマルウェアを感染させる。C&Cサーバからどのような指令を送るのか、またマルウェアダウンロードサイトからどのようなマルウェアをインストールさせるのかについては、攻撃者の意思によって変化する。
【0003】
このような、攻撃者の意思によって変化する脅威をいち早く把握するには、継続的にC&Cサーバやマルウェアダウンロードサイトといった攻撃者サイトの監視を行うのが有効である。継続的な監視により、いつどのような命令が送信されたのか、またどういった機能をマルウェアに追加しようとしているのかといったことを把握することができる。
【0004】
継続的に攻撃者サイトを監視する場合、マルウェアの通信を模擬するプログラムを作成し、それを用いて攻撃者サイトとの通信を監視する手法(非特許文献1)や、マルウェアを実際に動作させて攻撃者サイトとの通信を監視する手法(動的解析)がある(特許文献1)。非特許文献1の手法は、マルウェアの通信を完全に模擬する必要があるため、マルウェア自体の詳細な解析が必要となる。しかしながら、非特許文献2に記載されているように、現在確認されているマルウェアは非常に膨大であり、すべてを詳細に解析するのは困難である。そのため、解析の容易さ・早さの観点から、動的解析を用いて監視する手法が有効である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4755658号公報
【非特許文献】
【0006】
【非特許文献1】Catching Malware -Detecting, Tracking, and Mitigating Botnets-, Georg Wicherski and Thorsten Holz, Black Hat Japan 2006 Briefings.
【非特許文献2】McAfee脅威レポート:2012年第3四半期
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら上述した従来技術では、マルウェアを実際に動作させる環境を準備する必要があるため、多数のマルウェアを同時に、かつ、継続的に解析し続けるのは計算機資源の都合上困難である、という問題があった。
【0008】
具体的には、1つのマルウェアをハードウェア上にインストールしたOS(Operating System)上で動作させる場合、継続的な解析を行うためのハードウェアを、解析するマルウェアの数だけ用意しなければならない。また、仮想環境を用いて1つのハードウェア上で複数の仮想OSを動作させる場合には、ハードウェア上にインストールしたOS上で動作させる場合に比べ、同時に多数のマルウェアを継続的に解析できるものの、1つのハードウェア上で動作可能な仮想OSの数も限りがあるため、同時に解析を実施可能なマルウェア数には限りがある。
【0009】
そこで、本発明は、上述の問題を解決し、計算機資源が限られている場合でも、複数のマルウェアを動作させ、通信を監視できる装置、方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明は、プログラムを動作させ、前記プログラムによる通信を監視する監視装置であって、前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定し、前記所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定する継続判定部と、前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する連続動的解析部と、前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する時分割動的解析部と、を備えることを特徴とする監視装置とした。
【発明の効果】
【0011】
本発明によれば、計算機資源が限られている場合でも、複数のマルウェアを動作させ、通信を監視できる。
【図面の簡単な説明】
【0012】
図1図1は、監視装置の処理の概要を説明する図である。
図2図2は、監視装置の構成図である。
図3図3は、解析情報の一例を示す図である。
図4図4は、時分割動的解析制御処理を示すフローチャートである。
図5図5は、時分割動的解析処理を示すフローチャートである。
図6図6は、連続動的解析判定処理を示すフローチャートである。
図7図7は、連続動的解析制御処理を示すフローチャートである。
図8図8は、連続動的解析処理を示すフローチャートである。
図9図9は、連続動的解析継続判定処理を示すフローチャートである。
図10図10は、監視プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の監視装置の実施の形態を説明する。本発明は、以下の実施の形態に限定されるものではない。なお、以下の説明において、マルウェアの解析とは、例えば、監視装置がマルウェアを動作させて、このマルウェアによる通信先(攻撃者サイト等のホストコンピュータ)との通信を監視することをいう。また、このマルウェアの解析は、マルウェアによる通信先との通信の監視の他に、マルウェアがOS上で動作する際に実行される機械語や呼び出されるAPI(Application Programming Interface)、読み書きされるメモリ領域を監視することも含んでいてもよい。さらに、ここでは監視装置の監視対象をマルウェアとしたが、マルウェア以外のプログラムを対象としてもよい。
【0014】
(概要)
まず、図1を用いて、本実施の形態における監視装置の処理の概要を説明する。図1は、監視装置の処理の概要を説明する図である。
【0015】
監視装置10(図2参照)は、複数のマルウェアを保管しており、解析情報112に示されるスケジュールに基づき各マルウェアを解析する(時分割で解析する)。そして、監視装置10は、各マルウェアの解析結果に基づき、今後当該マルウェアを時分割で解析するか、連続で解析する(継続的に解析する)かを判定する。
【0016】
例えば、監視装置10が、当該マルウェアについて、所定時間以上ネットワーク上のホストとの通信がなかった場合、そのマルウェアを、今後も時分割で解析すると判定する。一方、当該マルウェアについて、所定時間の間にネットワーク上のホストへの通信が検出された場合、監視装置10は、そのマルウェアを、今後連続で解析すると判定する。
【0017】
また、監視装置10は、図1(a)に示すように、連続で解析すると判定したマルウェアについて、再度解析を行った結果、所定時間以上インターネット上のホストへの通信がなかった場合、そのマルウェアを時分割で解析すると判定する。一方、監視装置10が、再度解析を行った結果、所定時間内にインターネット上のホストへの通信があった場合、そのマルウェアを引き続き連続で解析すると判定する。つまり、監視装置10は、いったん連続で解析すると判定したマルウェアについても、その後の解析結果に基づき、時分割での解析の対象に戻したり、連続での解析の対象としたりする。また、監視装置10は、図1(b)に示すように、いったん時分割で解析すると判定したマルウェアについても、その後の解析結果に基づき、引き続き時分割での解析の対象としたり、連続での解析の対象としたりする。
【0018】
このように、監視装置10は、マルウェアの解析の結果、ネットワーク上のホストとの通信が検出されたマルウェアについてはその後も連続で解析するが、それ以外のマルウェアは時分割で解析する。よって、監視装置10が、マルウェアの解析に用いる計算機資源(CPUやメモリ等)を有効活用できる。つまり、監視装置10の計算機資源が限られている場合でも、多数のマルウェアを解析することができる。
【0019】
(構成)
図2は、監視装置の構成図である。監視装置10は、記憶部11と、制御部12と、通信I/F(インタフェース)部13とを備え、ネットワーク経由でホストコンピュータ(ホスト)と通信可能に接続される。なお、このネットワークは、インターネットや、LAN(Local Area Network)等である。
【0020】
記憶部11は、マルウェア保管部111を備え、解析情報112および解析結果(マルウェアの動作記録)113を記憶する領域を備える。
【0021】
マルウェア保管部111は、監視装置10の解析対象のマルウェアを保管する。解析情報112は、マルウェアごとの解析スケジュールを示した情報である。
【0022】
解析情報112は、例えば、図3に示すように、マルウェアの解析開始時刻、解析終了時刻、および、当該解析開始時刻から解析終了時刻までの間に実行するマルウェアのIDが示される。この解析情報112は、後記する時分割動的解析部121がマルウェアを解析する際に参照される。なお、解析情報112において解析終了時刻の代わりに、解析を行う時間を用いてもよい。
【0023】
図2の解析結果113は、監視装置10による各マルウェアの解析結果を示した情報である。この解析結果113には、当該マルウェアの実行による通信先(ホスト)のアドレスや、通信先との通信時刻、通信内容等が示される。この解析結果113は、制御部12の各部がマルウェアを解析した際に追加、更新される。
【0024】
制御部12は、監視装置10全体の制御を司り、ここでは主に、各マルウェアについて継続的に解析するか否かを判定し、継続的に解析すると判定されたマルウェアについては継続的に解析する。一方、継続的に解析しないと判定されたマルウェアについては、時分割で解析する。制御部12は、時分割動的解析部121と、連続動的解析部122と、解析管理部123とを備える。
【0025】
時分割動的解析部121は、マルウェアに時分割動的解析を行う。つまり、時分割動的解析部121は、解析情報112に指定された時刻に各マルウェアを動作させて解析を行う。そして、時分割動的解析部121は、マルウェアの解析の結果を解析結果113に書き込む。
【0026】
連続動的解析部122は、連続動的解析制御部125(後記)により指示されたマルウェアに対し連続動的解析を行う。つまり、連続動的解析部122は、連続動的解析制御部125により指示されたマルウェアを継続的に動作させて解析を行う。そして、連続動的解析部122は、マルウェアの解析の結果を解析結果113に書き込む。
【0027】
なお、時分割動的解析部121および連続動的解析部122はそれぞれ、実際にマルウェアを動作させるマルウェア実行部127と、このマルウェア実行部127によるネットワーク上のホスト(通信先)と通信制御を行う外部通信制御部128とを備える。
【0028】
解析管理部123は、時分割動的解析部121を制御する時分割動的解析制御部124と、連続動的解析部122を制御する連続動的解析制御部125と、継続判定部126とを備える。
【0029】
時分割動的解析制御部124は、マルウェア保管部111からマルウェアを取得すると、この取得したマルウェアと、解析情報112とを時分割動的解析部121へ転送する。これにより、時分割動的解析部121は、解析情報112に示されるマルウェアについて、解析情報112に示されるスケジュールに従い解析するよう指示する。
【0030】
連続動的解析制御部125は、継続判定部126からの指示に基づき、連続動的解析部122にマルウェアの連続動的解析を実行させる。なお、連続動的解析制御部125が、継続判定部126から当該マルウェアの連続動的解析を実行させる旨の指示を受け取ったとき、解析情報112から当該マルウェアのIDを削除する。これにより、当該マルウェアは、時分割動的解析部121による時分割動的解析の対象から外される。
【0031】
継続判定部126は、連続動的解析部122または時分割動的解析部121によるマルウェアの解析後、当該マルウェアを連続動的解析の対象とするか否かを判定する。例えば、連続動的解析部122または時分割動的解析部121によるマルウェアの解析から所定時間経過した後、継続判定部126は、解析情報112における当該マルウェアの動作記録を確認する。そして、継続判定部126が、当該マルウェアの動作記録によりいずれかのホストと通信したことを検出したとき、当該マルウェアを連続動的解析の対象とすると判定する。そして、継続判定部126は、連続動的解析制御部125へ当該マルウェアの連続動的解析を指示する。一方、連続動的解析部122または時分割動的解析部121によるマルウェアの解析から所定時間経過した後、継続判定部126は、解析情報112における当該マルウェアの動作記録を確認し、当該マルウェアによる通信を検出しなかったとき、当該マルウェアを時分割動的解析の対象とすると判定する。そして、継続判定部126は、割解析情報112に当該マルウェアのIDを追加する。これにより、時分割動的解析部121は当該マルウェアに対し時分割動的解析を実施する。
【0032】
通信I/F(インタフェース)部13は、制御部12の各部がネットワーク上のホストと通信を行う際に用いられるインタフェースであり、例えば、ネットワークインタフェースカードである。
【0033】
(処理手順)
次に、監視装置10の処理手順を説明する。まず、時分割動的解析制御部124の処理手順を説明する。図4は、時分割動的解析制御処理を示すフローチャートである。
【0034】
時分割動的解析制御部124はマルウェア保管部111からマルウェアを取得し(S1)、取得したマルウェアを予め決められた数のセットに分割する(S2)。分割されたマルウェアのセットは、例えば、記憶部11のメインメモリ(図示省略)等に格納される。なお、時分割動的解析制御部124は、マルウェア分割する際、個々のマルウェアにIDを設定し、解析情報112との対応を取れるようにしておく。
【0035】
その後、時分割動的解析制御部124は、時分割動的解析部121にマルウェアセットと解析情報112を転送し(S3)、時分割動的解析部121は、転送されたマルウェアセットに対し、解析情報112に基づく時分割動的解析処理を実行する(S4)。その後、継続判定部126は、S4で解析を行ったマルウェアを連続動的解析処理の対象とするか否かを判定する(S5:連続動的解析判定処理)。そして、連続動的解析制御部125は、継続判定部126により連続動的解析処理の対象と判定されたマルウェアの解析を連続動的解析部122に対し指示する(S6:連続動的解析制御処理)。
【0036】
S6の後、解析が終了であれば(S7のYes)、処理を終了し、まだ解析終了でなければ(S7のNo)、S4へ戻る。なお、解析の終了は、監視装置10に対し、解析終了の指示入力がされたときであってもよいし、マルウェアの解析開始から所定時間経過したときであってもよい。
【0037】
次に、図5を用いて、図4の時分割動的解析処理(S4)を詳細に説明する。図5は、時分割動的解析処理を示すフローチャートである。
【0038】
時分割動的解析部121は、現在時刻が、解析情報112に示される解析開始時刻であるか否かを確認し(S51)、解析開始時刻であることを確認すると(S51のYes)、当該解析開始時刻に割り当てられたマルウェアIDのマルウェアを記憶部11のメインメモリ上等から取り出す(S52)。そして、時分割動的解析部121は、マルウェア実行部127に、取り出したマルウェアを実行させる。一方、まだ解析開始時刻でなければ(S51のNo)、S51へ戻る。なお、マルウェア実行部127に仮想マシンを用いる場合、マルウェア実行部127は仮想OSとして動作する。そして、時分割動的解析部121は1つのマルウェア実行部(仮想OS)127に対しては、取り出したマルウェアのうち1つを実行させる。
【0039】
S52の後、時分割動的解析部121は、取り出したマルウェアを過去に実行したマルウェア実行部127が存在するか否かを確認する(S53)。ここで、過去に当該マルウェアを実行したマルウェア実行部127が存在すれば(S53のYes)、時分割動的解析部121は、過去に当該マルウェアを実行したマルウェア実行部127を起動し、起動したマルウェア実行部127に当該マルウェアを実行させる(S54)。
【0040】
一方、当該マルウェアを実行したマルウェア実行部127が存在しない場合には(S53のNo)、時分割動的解析部121は、いずれかのマルウェア実行部127を起動し、当該マルウェアをマルウェア実行部127に転送し、実行させる(S55)。そして、時分割動的解析部121は、S54およびS55におけるマルウェアの実行結果(動作結果)を解析結果113に書き込む。
【0041】
S54、S55の後、時分割動的解析部121は、解析情報112において当該解析開始時刻に割り当てられたマルウェアを全て取り出したと判断すると(S56のYes)、解析情報112に示される解析終了時刻まで待機する(S57)。一方、解析情報112において当該解析開始時刻に割り当てられたマルウェアのうち、まだ取り出していないマルウェアがあれば(S56のNo)、S52へ戻る。
【0042】
S57の後、時分割動的解析部121は、解析終了時刻になると、起動していたマルウェア実行部127を終了させる(S58)。そして、時分割動的解析処理を終了する。なお、マルウェア実行部127の終了は、通常のOSのシャットダウン処理でもよいし、仮想マシンを利用している場合には仮想OSのサスペンド処理でもよい。
【0043】
次に、図6を用いて、図4の連続動的解析判定処理(S5)を詳細に説明する。図6は、連続動的解析判定処理を示すフローチャートである。
【0044】
まず、継続判定部126は、解析結果113を参照して、連続動的解析の判定を実施するのに必要な期間(例えば、2日間)の解析結果があるか否かを判断する(S61)。例えば、継続判定部126は、解析結果113に、判定対象とするマルウェアに関する解析結果が2日分あるか否かを判断する。ここで、必要な期間の解析結果がある場合(S61のYes)、継続判定部126は、例えば、以下の処理により、各マルウェアが連続動的解析の対象となるか否かを判定する。一方、まだ必要な期間の解析結果がない場合(S61のNo)、S67へ進む。
【0045】
例えば、継続判定部126は、指定された期間内(例えば、前記した2日間のうち所定期間内)に、マルウェアによりネットワーク上のいずれかのホストへの通信が発生しているか否か(S62)、指定された期間内に通信を行ったホストは当該マルウェアが過去に通信したことのないホストか否か(S63)、指定された期間内にネットワーク上のホストから応答を取得しているか否か(S64)、指定された期間内にネットワーク上のホストから取得した応答は、当該マルウェアが過去に取得したことがない応答であるか否か(S65)を判定する。
【0046】
そして、継続判定部126は、S62〜S65のすべてでYesだったとき、当該マルウェアを連続動的解析の対象に設定する(S66)。つまり、継続判定部126は、指定された期間内にマルウェアによるネットワーク上のホストへの通信が発生し(S62のYes)、かつ、当該ホストは当該マルウェアが過去に通信したことのないホストであり(S63のYes)、かつ、当該ホストから応答を取得し(S64のYes)、かつ、当該応答は、当該マルウェアが過去に取得したことがない応答である(S65のYes)とき、当該マルウェアを連続動的解析の対象と判定する。そして、継続判定部126は、連続動的解析の対象と判定されたマルウェアのIDを、解析情報112から削除する。これにより、当該マルウェアは時分割動的解析の処理対象から外されることになる。そして、S67へ進む。
【0047】
また、S62〜S65のいずれかでNoだったときはS66をスキップして、S67へ進む。つまり、S62〜S65のいずれかでNoだったマルウェアは、引き続き、時分割動的解析の対象となる。S67において、継続判定部126は、時分割動的解析を行った全マルウェアに対して、S62〜S65の判定を実施したことを確認すると(S67のYes)、連続動的解析判定処理を終了する。一方、まだS62〜S65の判定を実施していないマルウェアがあれば(S67のNo)、S61へ戻る。
【0048】
なお、継続判定部126は、連続動的解析判定処理を、S62〜S65の判定処理のうちいずれか、またはいずれかの組み合わせにより実施してもよい。また、連続動的解析判定処理において、連続動的解析の対象と判定されたマルウェアのIDを記憶部11のメインメモリ等に記憶しておいてもよい。そして、連続動的解析制御部125が現在連続動的解析の対象とすべきマルウェアを特定する際、このメインメモリ上に記録されたマルウェアのIDを参照するようにしてもよい。
【0049】
このようにすることで監視装置10は、所定期間内にネットワーク上のホストとの間で何らかの通信を行ったマルウェアについては連続動的解析の対象とし、それ以外のマルウェアについては時分割動的解析の対象とすることができる。
【0050】
次に、図7を用いて、図4の連続動的解析制御処理(S6)を詳細に説明する。図7は、連続動的解析制御処理を示すフローチャートである。
【0051】
連続動的解析制御部125は、連続動的解析を実施するマルウェア(継続判定部126により連続動的解析対象と判定されたマルウェア)が存在するとき(S71のYes)、連続動的解析部122に当該マルウェアの連続動的解析処理を実施させる(S72)。一方、連続動的解析を実施すると判定されたマルウェアが存在しなければ(S71のNo)、連続動的解析制御部125は、連続動的解析制御処理を終了する。なお、S72の後、解析が終了であれば(S73のYes)、連続動的解析制御処理を終了し、まだ解析終了でなければ(S73のNo)、S72へ戻る。
【0052】
次に、図8を用いて、図7の連続動的解析処理(S72)を詳細に説明する。図8は、連続動的解析処理を示すフローチャートである。
【0053】
連続動的解析部122は、連続動的解析対象のマルウェアを取得すると(S81)、前記したS53と同様に、過去に当該マルウェアを実行したマルウェア実行部127が存在するか否かを確認する(S82)。
【0054】
ここで、当該マルウェアを実行したマルウェア実行部127が存在しなければ(S82のNo)、連続動的解析部122は、当該マルウェアをマルウェア実行部127に転送し、実行させる(S84)。一方、当該マルウェアを実行したマルウェア実行部127が存在し(S82のYes)、かつ、当該マルウェアを実行したマルウェア実行部127が起動済みであれば(S83のYes)、S86へ進む。また、当該マルウェアを実行したマルウェア実行部127がまだ起動していなければ(S83のNo)、連続動的解析部122は、当該マルウェアを実行したマルウェア実行部127を起動し、当該マルウェアを実行させる(S85)。そして、時分割動的解析部121は、S84およびS85におけるマルウェアの実行結果(動作結果)を解析結果113に書き込む。
【0055】
S84、S85の後、連続動的解析部122は連続動的解析対象のマルウェアを全て実行したと判断すると(S86のYes)、所定時間待機した後(S87)、継続判定部126により連続動的解析継続判定処理を行い(S88)、連続動的解析処理を終了する。一方、連続動的解析対象のマルウェアのうち未実行のマルウェアがあれば(S86のNo)、S81へ戻る。
【0056】
次に、図9を用いて、図8の連続動的解析継続判定処理(S88)を詳細に説明する。図9は、連続動的解析継続判定処理を示すフローチャートである。
【0057】
まず、継続判定部126は、図6のS61と同様に、解析結果113を参照して、マルウェアを連続動的解析の判定を実施するのに必要な期間(例えば、2日間)の解析結果があるか否かを判断する(S91)。ここで、必要な期間の解析結果がある場合(S91のYes)、S92へ進む。継続判定部126は、例えば、S92以降の処理により、各マルウェアが引き続き連続動的解析の対象となるか否かを判定する。一方、まだ、必要な期間の解析結果がない場合(S91のNo)、S98へ進む。
【0058】
S91でYesだったとき、継続判定部126は、例えば、当該マルウェアについて、ネットワーク上のホストと最後に通信してから所定期間以上経過していないか否か(S92)、指定された期間内に通信を行ったホストは当該マルウェアが過去に通信したことのないホストか否か(S93)、指定された期間内にネットワーク上のホストから応答を取得しているか否か(S94)、指定された期間内にネットワーク上のホストから取得した応答は、当該マルウェアが過去に取得したことがない応答であるか否か(S95)を判定する。
【0059】
S92〜S95のいずれかでNoだったとき、継続判定部126は、当該マルウェアを連続動的解析対象外に設定する(S96)。つまり、継続判定部126は、当該マルウェアについて、ネットワーク上のホストと最後に通信してからまだ所定期間経過していない場合(S92のNo)、指定された期間内に通信を行ったホストは当該マルウェアが過去に通信したことのあるホストである場合(S93のNo)、指定された期間内にネットワーク上のホストから応答を取得していない場合(S94のNo)、指定された期間内にネットワーク上のホストから取得した応答は、当該マルウェアが過去に取得したことのある応答である場合(S95のNo)、のいずれかに該当すれば、当該マルウェアを連続動的解析対象外と判定する。つまり、継続判定部126は、当該マルウェアを時分割動的解析の対象と判定し、当該マルウェアのIDを解析情報112に追加する。これにより、S92〜S95のいずれかでNoだったマルウェアは、時分割動的解析の対象となる。継続判定部126は、当該マルウェアの連続動的解析で起動していたマルウェア実行部127bを終了させる(S97)。一方、S92〜S95すべてでYesだったときはS96およびS97は実行せず、S98へ進む。つまり、継続判定部126は、現在、連続動的解析中のマルウェアを引き続き連続動的解析の対象とする。
【0060】
S98において、継続判定部126は、連続動的解析中の全マルウェアに対して、S92〜S95の判定を実施したことを確認すると(S98のYes)、連続動的解析継続判定処理を終了する。一方、まだS92〜S95の判定を実施していないマルウェアがあれば(S98のNo)、S91へ戻る。
【0061】
なお、継続判定部126は、連続動的解析継続判定処理を、S92〜S95の判定処理のうちいずれか、またはいずれかの組み合わせにより実施してもよい。
【0062】
このようにすることで監視装置10は、いったん連続動的解析の対象としたマルウェアについても、その後のマルウェアの解析結果に基づき、時分割動的解析の対象に戻すことができる。従って、監視装置10は、限られた計算機資源を有効活用して、マルウェアを解析することができる。
【0063】
なお、本実施の形態では時分割動的解析制御部124から時分割動的解析部121にマルウェアセットと解析情報112を転送することとしたがこれに限定されない。例えば、時分割動的解析制御部124で解析情報112を基にして、時分割動的解析部121のマルウェア実行環境における個々のマルウェアの実行を制御してもよい。
【0064】
また、本実施の形態では、時分割動的解析処理(図5参照)において、時分割動的解析部121が、S52で取り出したマルウェアを過去に実行したマルウェア実行部127が存在すれば(S53のYes)、そのマルウェア実行部127に当該マルウェアを実行させることとしたが、これに限定されない。例えば、時分割動的解析部121は、S52の後、マルウェア実行部127における仮想OSのイメージをマルウェアのインストール前の状態に復元した上で、S52で取り出したマルウェアを実行させるようにしてもよい。
【0065】
また、連続動的解析処理(図8参照)においても、連続動的解析部122が、S81で取得したマルウェアを過去に実行したマルウェア実行部127が存在すれば(S82のYes)、そのマルウェア実行部127に取り出したマルウェアを実行させることとしたが、これに限定されない。例えば、連続動的解析部122は、S81の後、マルウェア実行部127における仮想OSのイメージをマルウェアのインストール前の状態に復元した上で、S81で取得したマルウェアを実行させるようにしてもよい。
【0066】
このようにすることで、監視装置10は、マルウェアの解析を行う際、いったんマルウェア実行部127をマルウェア感染前の状態に戻してから、マルウェアに感染させてマルウェアの解析を行うので、マルウェアに新規に感染したときの動作を解析することができる。
【0067】
前記した実施の形態において説明した監視装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、監視装置10が実行する処理をコンピュータが実行可能な言語で記述した監視プログラムを作成することもできる。この場合、コンピュータが監視プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる監視プログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録された監視プログラムをコンピュータに読み込ませて実行することにより前記した実施形態と同様の処理を実現してもよい。以下に、図2に示した監視装置10と同様の機能を実現する監視プログラムを実行するコンピュータの一例を説明する。
【0068】
図10は、監視プログラムを実行するコンピュータ1000を示す図である。図10に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0069】
メモリ1010は、図10に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図10に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図10に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図10に例示するように、例えばディスプレイ1061に接続される。
【0070】
ここで、図10に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の監視プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
【0071】
また、上記実施の形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し実行することで監視装置10の制御部12の機能を実現する。
【0072】
なお、監視プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、監視プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0073】
10 監視装置
11 記憶部
12 制御部
13 通信I/F部
111 マルウェア保管部
112 解析情報
113 解析結果
121 時分割動的解析部
122 連続動的解析部
123 解析管理部
124 時分割動的解析制御部
125 連続動的解析制御部
126 継続判定部
127 マルウェア実行部
128 外部通信制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10