JPWO2015198600A1 - 解析装置、解析方法、および、解析プログラム - Google Patents

解析装置、解析方法、および、解析プログラム Download PDF

Info

Publication number
JPWO2015198600A1
JPWO2015198600A1 JP2016529083A JP2016529083A JPWO2015198600A1 JP WO2015198600 A1 JPWO2015198600 A1 JP WO2015198600A1 JP 2016529083 A JP2016529083 A JP 2016529083A JP 2016529083 A JP2016529083 A JP 2016529083A JP WO2015198600 A1 JPWO2015198600 A1 JP WO2015198600A1
Authority
JP
Japan
Prior art keywords
data
storage
analysis
stored
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016529083A
Other languages
English (en)
Other versions
JP6213676B2 (ja
Inventor
匡人 山根
匡人 山根
佑樹 芦野
佑樹 芦野
陽一郎 森田
陽一郎 森田
正文 渡部
正文 渡部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2015198600A1 publication Critical patent/JPWO2015198600A1/ja
Application granted granted Critical
Publication of JP6213676B2 publication Critical patent/JP6213676B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

解析対象装置の状態を表すデータを保存及び再現することにより、当該解析対象装置の状態を解析可能な解析装置等を提供する。解析装置2204は、解析対象装置2200における演算部と、メモリ部との間で送受信されるデータから、上記解析対象装置における演算処理の状態を再現可能な採取対象データを生成するディスパッチャ2205と、上記ディスパッチャにおいて生成された採取対象データに含まれる1以上の領域にタグ情報を付与するデータマッパ2206と、上記タグ情報に基づいて、上記採取対象データを所定の記憶容量を有する記憶装置である第1の記憶装置2209に保存する方法を規定する第1のポリシ2208と、上記タグ情報が付与された上記1以上の領域を、上記採取ポリシに基づいて上記第1の記憶装置に保存するデータライタ2207と、を備える。

Description

本発明は、解析対象機器(装置)の状態を表すデータを保存及び再現することにより、当該解析対象機器の状態を解析可能な解析装置等に関する。
近年、コンピュータ等の情報処理装置において、ウィルス等の不正プログラム(以下「マルウェア」と称する)に起因する、情報処理装置への不正侵入、情報漏洩、あるいは、電子データの破壊などの不正行為が発生している。
情報処理装置等においては、このような不正行為に起因した様々な事象(以下「サイバーインシデント」または「インシデント」と称する場合がある)が発生する場合がある。このような事象が発生した際に原因を調査する手法として、例えば、情報処理装置を構成する不揮発性記憶装置(例えば、ハードディスク装置等)に残存するデータや、通信記録等を解析する手法等が知られている。なお、以下において、サイバーインシデントに対する各種調査を「デジタルフォレンジック」あるいは「フォレンジック」と称する場合がある。
デジタルフォレンジックに関する調査手法のうち、上記した不揮発性記憶装置の残存データや、通信記録を解析する調査手法については、以下のような点で限界がある。
まず、不揮発性記憶装置に残された記録データや、通信記録の解析には時間を要することから、インシデントに対する即時的な対応に課題がある。より具体的には、例えば、情報処理装置におけるログや通信記録を解析する場合、膨大かつ複雑なログデータを取得し、解析する必要がある。ログデータの収集及び解析には時間を要することから、インシデント発生時の即時的な対応が困難な場合がある。
また、近年では、マルウェア自体や、それに関係する各種データが、暗号化された状態で不揮発性記憶装置に記録される場合がある。不揮発性記憶装置に残存する記録データが暗号化されている場合には、復号処理が極めて困難な場合が多く、事実上解析が不可能な場合がある。
同様に、例えば、マルウェアが公開鍵暗号等の高度な暗号方式を採用して各種通信処理を実行する場合、採取した通信データの復号が極めて困難である。
また、マルウェア自体が情報処理装置における揮発性のメモリにおいてのみ活動し、不揮発性記憶装置に記憶されないよう構成される場合がある。この場合、不揮発性記憶装置の残存データを解析しても、マルウェアを検出することは不可能である。更に、マルウェアが活動するタイミングや期間が不明であることから、不揮発性記憶装置における特定のタイミングの記録データを解析しても、十分な情報が得られない場合がある。
また、マルウェアによる改ざんあるいは削除等により、不揮発性記憶装置に残されたデータの完全性が損なわれている場合、解析対象として有用なデータが残されていない場合がある。
このため、近年では、情報処理装置等により構成されるシステムが稼働した状態のまま各種情報を取得し、当該収集した情報に対して各種調査や分析を実行するフォレンジック手法が用いられている。以下本願においては、係る調査手法を「ライブフォレンジック」手法と称する。係るライブフォレンジック手法においては、例えば、情報処理装置の稼働時における揮発性の記憶装置(メモリ等)に記憶されるデータも調査対象に含まれる。
このようなライブフォレンジック手法によれば、例えば、情報処理装置においてマルウェアが活動している瞬間(あるいは、活動している状況を略同時に)を捉えられる可能性がある。また、揮発性の記憶装置に記憶されたデータを取得可能であることから、オンメモリに展開された暗号鍵が取得可能である場合がある。この場合、各種暗号通信や、暗号化されたデータを復号できる可能性がある。更に、不揮発性記憶装置に対する入出力と関係しない(即ち、不揮発性記憶装置に痕跡を残さない)マルウェアを解析できる可能性がある。
上記したようなフォレンジック手法あるいはライブフォレンジック手法に用いられる技術に関連して、以下のような特許文献が開示されている。
特許文献1は、コンピュータネットワークに対する不正侵入を検知する技術を開示する。特許文献1に開示された技術は、デコイネットワークデバイスに設けた仮想デコイホストに攻撃者を誘い込み、係るホストにおける攻撃者の行動を記録することにより、攻撃識別情報を生成する。特許文献1に開示された技術は、当該生成した攻撃識別情報をフォレンジックデータとして保存し、当該フォレンジックデータに基づいて侵入防止システムに適用する攻撃シグネチャを生成する。
また、下記特許文献2及び特許文献3は、上記ライブフォレンジック手法に直接関係する技術ではないものの、情報処理装置における揮発性のメインメモリに記憶された各種データを取得する技術を開示する。
特許文献2は、コンピュータプログラムのデバッグを目的として、当該プログラムが実行される機器の任意の時点におけるメモリ状態を再現可能な技術を開示する。特許文献2に開示された技術は、デバッグ対象機器における演算装置とメモリ装置との間を接続するバスを介して送受信されるデータを全て取得し、取得したデータを時系列に並べたバスアクセス情報を記憶する。特許文献2に開示された技術は、障害発生時点におけるメモリ状態を取得し、当該メモリ状態に対して、上記バスアクセス情報に記憶されたデータを順次遡って適用することにより、特定の時点におけるデバッグ対象機器のメモリ状態を再現する。
特許文献3は、演算装置とメモリとの間を接続するバスを介して送受信される全データと、当該演算装置が有するアドレス変換情報とに基づいて、バスを介して送受信されるデータの物理アドレスを論理アドレスに変換して提示する技術を開示する。
また、不揮発性記憶装置の残存データや、通信記録を解析するフォレンジック手法に関連して、下記特許文献4及び特許文献5が開示されている。
特許文献4は、通信ネットワークの所定の接続ポイントにおいて取得した全通信パケットにハッシュキー及び時刻情報を付与して保存しておき、障害が発生した際に保存しておいて当該パケットデータを解析する技術を開示する。
特許文献5は、通信ネットワークにおいて送受信される通信データを解析することにより、異常が発生した端末を特定するとともに、当該特定した端末におけるハードディスクの記録を証拠保全することにより、異常の原因を解析する技術を開示する。
特開2013−240114号公報 特開2008−191796号公報 特開平07−006061号公報 特開2007−173931号公報 特開2006−178521号公報
上記したようなライブフォレンジック手法を採用する際、例えば、解析対象の機器において各種監視プログラム等(以下「エージェント」と称する場合がある)を実行すると、それらのプログラムの実行をマルウェアに検知されてしまう可能性がある。エージェントの実行を検知したマルウェアは、当該マルウェア自体の活動を休止したり、当該マルウェア自体を含む、活動の痕跡を消去したりする。
上記のように、マルウェア自体が、自己の解析を阻止する回避策を実行した場合、当該マルウェアの解析が困難になる。このため、解析対象の機器においてエージェントを実行しない、エージェントレス方式のライブフォレンジック技術が求められている。
また、ライブフォレンジック手法においては、マルウェアの活動状態を解析するために、解析対象の機器におけるメモリ空間の内容等が取得される場合がある。より具体的には、上記ライブフォレンジック手法は、例えば、解析対象機器のメモリ空間等、特定の時点における当該解析対象機器の状態を表すデータを適宜保存する。そして、インシデントが発生した際に、保存したデータを再現(復元)することにより、マルウェアの挙動が解析される。
この場合において、当該解析対象機器の状態を表すデータは、例えば、解析対象機器のメモリ空間の内容や、当該解析対象機器に含まれる演算処理装置の演算状態を保持するデータ(例えばレジスタ等)を含んでもよい。
上記したように、マルウェアの活動タイミングは不明であることが多い。そのようなマルウェアの活動を捕捉するためには、可能な限り多くのメモリ空間の内容等を、時系列で取得可能であることが望ましい。しかしながら、近年の情報処理装置においては処理速度の高速化及びメモリ容量の拡大が著しいことから、例えば、メモリ空間の内容を連続的に取得して保存するには、膨大な量の高速な記憶装置が必要となる。以下、係る高速な記憶装置を、「高速ストレージ」と称する場合がある。
そのような高速ストレージとしては、例えば不揮発性半導体記憶素子により構成されたSSD(Solid State Drive)や、揮発性半導体素子により構成されたRAM(Random Access Memory)ディスク、あるいはRAID(Redundant Arrays of Inexpensive Disks)構成を採用した記憶装置等の採用が考えられる。しかしながら、いずれの構成を採用した場合であっても、十分な記録速度を実現するには、容量当たりの単価が比較的高価になる。このため、解析対象機器のメモリ空間の内容を、連続的に長期間記録し続けることが可能な高速ストレージを用意することは、現実的ではない。
また、解析対象機器のメモリ空間に対する入出力は、例えば、ファイルシステムや通信ネットワークに対する入出力に比べて頻繁に発生する。上記したように、マルウェアの活動タイミングは不明であることが多いことから、例えば、特定のタイミングにおけるメモリ空間の入出力をとらえるだけでは、マルウェアの活動を解析することが難しい場合がある。
これより、上記したライブフォレンジック技術においては、限られたコンピュータリソースを用いて、解析対象の機器におけるマルウェアの活動状況を解析可能な情報をなるべく多く取得することが求められる。また、上記したライブフォレンジック技術においては、マルウェアの活動状況を解析するために、解析対象の機器の状態を再現可能な情報を取得可能であることが求められる。ここで、係るコンピュータリソースは、例えば、例えば、上記高速ストレージと、それを制御可能な制御部等である。また、マルウェアの活動状況を解析可能な情報は、例えば、メモリ空間の内容等、解析対象機器の状態を表すデータである。当該解析対象機器の状態を表すデータを用いて、特定のタイミングにおけるメモリ空間の内容を解析可能である場合、解析対象機器のメモリ空間の内容が再現可能であるとしてもよい。
ここで、特許文献1に開示された技術は、仮想デコイホストにおける攻撃者活動を調査するため、当該仮想デコイホストのメモリセグメントを調査する。しかしながら、特許文献1に開示された技術は、単にマルウェアの実行過程をトレースして調査するにすぎず、メモリ空間を再現する技術ではない。
また、特許文献2、及び、特許文献3に開示された技術は、バスにおいて送受信されるデータを全て取得する構成であり、大量の高速ストレージを必要とする。
また、特許文献4、及び、特許文献5に開示された技術は、通信パケットや、ハードディスクに残された記録を主たる解析対象としており、ライブ・フォレンジック技術が必要とされる状況には適用できない。
本発明は上記のような事情を鑑みてなされたものである。即ち、本発明は、解析対象機器から取得した当該解析対象機器の状態を表すデータの少なくとも一部を、ポリシに基づいて、所定の容量を有する記憶装置に効率的に記録可能な解析装置等を提供することを主たる目的の一つとする。
上記の目的を達成すべく、本発明の一態様に係る解析装置は、以下の構成を備える。即ち、本発明の一態様に係る解析装置は、演算部と、当該演算部に通信可能に接続されたメモリ部とを用いて演算処理を実行する解析対象装置と通信可能に接続され、上記演算部と、上記メモリ部との間で送受信される対象であるデータに基づいて、上記解析対象装置における演算処理の状態の少なくとも一部を再現するためのデータである採取対象データを生成するディスパッチャと、上記採取対象データに含まれる1以上の領域に対して、当該領域を識別するための情報であるタグ情報を付与するデータマッパと、上記タグ情報を用いて上記採取対象データを所定の記憶容量を有する第1の記憶装置に保存する手順を規定する第1のポリシに基づいて、上記1以上の領域を、上記第1の記憶装置に保存するデータライタと、を備える。
また、本発明の一態様に係る解析方法は、演算部と当該演算部に通信可能に接続されたメモリ部とを用いて演算処理を実行する解析対象装置における上記演算部と、上記メモリ部との間で送受信される対象であるデータに基づいて、上記解析対象装置における演算処理の状態の少なくとも一部を再現するためのデータである採取対象データを生成し、上記採取対象データに含まれる1以上の領域について、当該領域を識別するためのタグ情報を付与し、上記タグ情報を用いて上記採取対象データを所定の記憶容量を有する記憶装置である第1の記憶装置に保存する手順を規定する第1のポリシに基づいて、上記1以上の領域を、上記第1の記憶装置に保存する。
また、同目的は、上記構成を有する解析装置、並びに対応する解析方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納(記録)されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本発明によれば、解析対象機器から取得した当該解析対象機器の状態を表すデータの少なくとも一部を、ポリシに基づいて、所定の容量を有する記憶装置に効率的に記録可能である。即ち、本発明によれば、限られた記憶容量の記憶装置を用いて、解析対象機器の状態を再現可能なデータをより多く保存することが可能である。
図1は、本願発明の第1の実施形態における解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図2は、本願発明の第1の実施形態における解析装置及び解析対象装置を仮想化環境において実現した場合の構成を例示するブロック図である。 図3は、本願発明の第1の実施形態における、マッピングデータの具体例を示す図である。 図4は、本願発明の第1の実施形態における、マッピングデータの他の具体例を示す図である。 図5は、本願発明の第1の実施形態における、タグ情報が付与された採取対象データの具体例を示す図である。 図6は、本願発明の第1の実施形態における、採取ポリシの具体例を示す図である。 図7は、本願発明の第1の実施形態における、高速リポジトリに保存される保存データの具体例を示す図である。 図8は、本願発明の第1の実施形態にかかる解析装置が、解析対象装置の演算状態を再現可能なデータを高速リポジトリに保存する処理を例示するフローチャートである。 図9は、本願発明の第1の実施形態にかかる解析装置が、解析対象装置の演算状態を再現可能なデータを高速リポジトリに保存する処理を例示するフローチャートである。 図10は、本願発明の第1の実施形態にかかる解析装置が、高速リポジトリに保存されたデータを、外部からの要求に応じて、蓄積装置に蓄積する処理を例示するフローチャートである。 図11は、本願発明の第1の実施形態にかかる解析装置が、高速リポジトリに保存されたデータを、採取ポリシに基づいて、蓄積装置に蓄積する処理を例示するフローチャートである。 図12は、本願発明の第1の実施形態に対する第1の変形例における、解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図13は、本願発明の第1の実施形態に対する第2の変形例における、解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図14は、本願発明の第1の実施形態に対する第2の変形例における、採取ポリシの具体例を示す図である。 図15は、本願発明の第1の実施形態に対する第2の変形例における、高速リポジトリに保存される保存データの具体例を示す図である。 図16は、本願発明の第2の実施形態における、解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図17は、本願発明の第2の実施形態における、解析装置の他の構成例を示すブロック図である。 図18は、本願発明の第2の実施形態における、解析装置の他の構成例を示すブロック図である。 図19は、本願発明の第2の実施形態に係る解析装置が、解析対象装置における演算処理の状態を再現する処理を例示するフローチャートである。 図20は、本願発明の第2の実施形態の変形例における、解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図21は、本願発明の第3の実施形態における、解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図22は、本願発明の第4の実施形態における、解析装置及び解析対象装置の機能的な構成を例示するブロック図である。 図23は、本願発明の各実施形態に係る、解析装置の各構成要素を実現可能な情報処理装置のハードウェア構成を例示したブロック図である。
次に、本発明を実施する形態について図面を参照して詳細に説明する。以下の実施の形態に記載されている構成は単なる例示であり、本願発明の技術範囲はそれらには限定されない。
<第1の実施形態>
以下、本発明の第1の実施形態について説明する。まず、図1及び図2を参照して、本実施形態における解析装置について説明する。図1は本実施形態における解析装置の機能的な構成を例示する、ブロック図である。また、図2は、本実施形態における解析装置を、任意の仮想化基盤を用いて構成された仮想化環境において、少なくとも一部にソフトウェア・プログラム(コンピュータ・プログラム)を用いて実現する場合の具体例を示す図である。なお、図1には、解析対象装置100の一部として解析装置104が設けられた構成が例示されているが、本実施形態はこの構成には限定されない。解析対象装置100と、解析装置104とは、図2に例示するように、個別の装置として実現してもよい。
解析対象装置100は、演算部101と、通信バス103を介して当該演算部101と通信可能に接続されたメモリ部102とを備える。係る解析対象装置100は、物理的なハードウェアにより構成されたコンピュータ等の情報処理装置であってもよい。また、係る解析対象装置100は、図2に例示するように、情報処理装置等の各種ハードウェアを仮想化可能な仮想化基盤において提供される、仮想的なコンピュータ(VM:Virtual Machine)であってもよい。この場合、解析対象装置100は、仮想化基盤において提供される一つのVMとして実現されてもよい。係るVMは、例えば、VMの動作を制御する機能を有するVMM(Virtual Machine Monitor)であるVMM200において実行される。なお、以下において、上記説明したVMを構成する仮想的なデバイスを、仮想デバイスと称する場合がある。
演算部101は、各種演算処理を実行可能なCPU(Central Processing Unit)や、MPU(Microprocessing Unit)である。演算部101は、例えば、メモリ部102に記憶された各種データ及びプログラム(コンピュータ・プログラム)を読み出して、当該プログラムに実装された処理を実行する。係る演算部101は、当該演算部101における演算処理の状態を表す状態保持データを有する。当該状態保持データは、例えば、演算部101が備えるレジスタやMMU(Memory Management Unit)等(いずれも不図示)に保持されるデータ等であってもよい。
演算部101は、各種ロジック回路や集積回路等のハードウェアを用いて構成される物理的な演算装置であってもよい。演算部101は、また、図2に例示するように、当該ハードウェアを仮想化可能な仮想化基盤における、仮想的な演算装置(仮想CPU)であってもよい。
本実施形態における演算部101が備えるレジスタやMMU等の値は、外部から取得もしくは設定可能である。例えば、当該演算部101が物理的なハードウェアにより構成される場合、当該ハードウェアにおける特定の入出力ポート等を介して、レジスタやMMU等に保持された値が入出力可能であってもよい。係る特定の入出力ポートは、例えば、ハードウェアデバッグに用いる特定のピンに接続されたポートであってもよい。
また、当該演算部101を仮想的な演算装置として構成した場合、仮想化基盤が提供する機能や、仮想化基盤が提供するデータを介して、レジスタやMMU等に保持された値が入出力可能であってもよい。仮想化基盤が提供する機能は、例えば、特定のAPI(Application Programming Interface)等であってもよい。また、仮想化基盤が提供するデータは、例えば、仮想CPUのレジスタ値を保持するデータ等であってもよい。
上記処理を実現する具体的な方法は、演算部101の具体的な構成等に応じて周知の技術を適宜採用してよいので、詳細な説明は省略する。
メモリ部102は、例えば、解析対象装置におけるメインメモリとして機能し、上記したように、演算部101において処理される各種プログラムやデータを保持する。係るメモリ部102は、特定のハードウェア(集積回路等)により構成された物理的なメモリ装置(メモリデバイス)であってもよい。係るメモリ装置は、例えば、DIMM(Dual Inline Memory Module)により構成されたDRAM(Dynamic Random Access Memory)であってもよい。また、メモリ部102は、図2に例示するように、上記した所定の仮想化基盤において提供される、仮想的なメモリ装置(メモリデバイス)であってもよい。
本実施形態におけるメモリ部102については、当該メモリ部102に記憶される記憶内容(記憶データ)を外部から取得または設定可能である。より具体的には、メモリ部102が物理的なハードウェアにより構成された場合、上記演算部101と、メモリ部102とを接続する通信バス103において送受信されるデータを取得することにより、当該メモリ部102に記憶されるデータを取得することができる。また、特定のタイミングにおいて、当該メモリ部102の記憶領域を全て出力(メモリダンプ)することにより、当該メモリ部102に記憶されたデータが取得されてもよい。また、通信バス103等を介して、上記取得されたデータをメモリ部102に書き戻すことにより、当該メモリ部102に記憶される記憶内容が、外部から設定されてもよい。なお、以下において、メモリ部102における記憶領域を「メモリ空間」と称する場合がある。
また、メモリ部102が仮想的なメモリ装置として構成された場合、仮想化基盤が提供する機能(例えば、特定のAPI等)や、仮想化基盤が提供するデータを介して、当該メモリ部102に記憶されるデータが、取得または設定されてもよい。上記仮想化基盤が提供するデータは、例えば、仮想的なメモリ部に記憶されたデータの保存領域を特定可能な情報(データ)等であってもよい。係る処理の具体的な実現方法は、メモリ部102の具体的な構成に応じて周知の技術を適宜採用してよいので、詳細な説明は省略する。
なお、解析対象装置100において、演算部101あるいはメモリ部102と、図示しない周辺デバイスとの間の入出力が、メモリ部102における特定の領域を介して実行される場合がある。具体的には、係る入出力は、例えば、メモリマップドIO(MMIO(Memory−mapped Input Output))等の方法により実行される。この場合、係るMMIOにおいて用いられるメモリ領域に対して入出力されるデータも、上記と同様に外部から取得可能である。即ち、演算部101とメモリ部102との間の送受信データを取得することにより、図示しない周辺デバイスとの間で通信される入出力データを取得することが可能である。
通信バス103は、少なくとも上記演算部101及びメモリ部102との間を通信可能に接続する通信回線である。通信バス103の構成は、上記演算部101及びメモリ部102の具体的な構成に応じて適宜選択してよい。なお、本実施形態における通信バス103は、必ずしもバス接続による通信回線には限定されず、例えば、上記演算部101及びメモリ部102をピアツーピアで接続してもよい。また、上記演算部101及びメモリ部102が上記仮想化基盤において提供される仮想的なハードウェアとして構成される場合、通信バス103は、仮想的な通信バスとして、任意の適切な方法で実現されてよい。また、通信バス103は、必ずしも仮想化された通信回線を用いて実装されなくともよい。通信バス103は、例えば、単に演算部101とメモリ部102との間でデータを送受信可能な任意の方法を用いて実装されてよい。
次に、上記のように構成された解析対象装置100における演算処理の状態を解析可能な、解析装置104の構成について説明する。
本実施形態における解析装置104は、上記演算部101及びメモリ部102に通信可能に接続されたディスパッチャ105を有する。また、解析装置104は、ディスパッチャ105が取得したデータを加工するデータマッパ106を有する。また、解析装置104は、データマッパ106が加工したデータを、当該データを保存する方法を規定したポリシに基づいて高速リポジトリ109(第1の記憶装置)に保存するデータライタ107を有する。
また、本実施形態における解析装置104は、データライタ107の動作を制御可能な記録管理部108を有する。また、解析装置104は、高速リポジトリ109に保存されたデータを複製して長期間保存可能な解析ストレージ110(第2の記憶装置)を有する。
また、本実施形態における解析装置104は、解析対象装置100の動作に影響を与えるインシデントを検知可能なセンサ111、及び、解析装置104に対して各種要求を通知する監視装置112と通信可能に接続されていてもよい。なお、本実施形態において、監視装置112、及び、センサ111を設けるか否かは、適宜選択してよい。
次に上記のように構成された解析装置104の各構成要素について説明する。
まず、本実施形態におけるディスパッチャ105について説明する。本実施形態におけるディスパッチャ105は、解析対象装置100における演算部101及びメモリ部102と通信可能に接続され、当該演算部101と、当該メモリ部102との間で送受信される対象であるデータ(以下「送受信対象データ」)を取得する。また、本実施形態におけるディスパッチャ105は、後述するデータマッパ106と通信可能に接続され、上記取得したデータをデータマッパ106に通知する。また、本実施形態におけるディスパッチャ105は、記録管理部108と通信可能に接続されてもよい。
具体的には、ディスパッチャ105は、例えば、通信バス103を介して、上記送受信対象データを取得してもよい。また、上記演算部101及びメモリ部102が仮想デバイスとして構築される場合、ディスパッチャ105は、上記説明したように仮想化基盤が提供する各種機能などを用いて上記送受信対象データを取得してもよい。
なお、本実施形態におけるディスパッチャ105は、必ずしも、通信バス103を介して上記送受信対象データを取得する必要はない。上記したように、本実施形態における演算部101、及び、メモリ部102については、それらが保持するデータ等を外部から取得あるいは設定可能である。このため、ディスパッチャ105は、上記説明したような方法により、上記演算部101、あるいはメモリ部102が保持するデータをそれぞれ直接取得することにより、送受信対象データに相当するデータを取得してもよい。
本実施形態におけるディスパッチャ105は、上記取得した送受信対象データに基づいて、解析対象装置100における演算処理の状態を再現可能なデータである採取対象データを生成する。
ここで、本実施形態における解析対象装置100における演算処理の状態は、メモリ部102に記憶された記憶データ、及び、演算部101における状態保持データの少なくともいずれかを用いて表すことが可能である。採取対象データは、解析対象装置100における演算処理の状態を完全に再現可能なデータに限らず、演算処理の状態の一部を再現可能なデータを含む。
具体的には、本実施形態における採取対象データは、少なくとも、特定の時点におけるメモリ部102に記憶された記憶データを含む。係る記憶データは、当該記憶データがメモリ部102において記憶された領域を特定可能な情報(アドレス等)を含んでもよい。また、採取対象データは、特定の時点における演算部101の演算状態を特定可能なデータ(レジスタ値等)を含んでもよい。
ディスパッチャ105は、例えば、演算部101及びメモリ部102の間を送受信される送受信対象データを、特定の開始点から時系列に全て取得(キャプチャ)することにより、係る開始点以降の特定の時点においてメモリ部102が記憶する記憶データを構築することができる。また、ディスパッチャ105は、特定の時点において上記メモリ部102が記憶する記憶データの複製(メモリダンプ)を取得することにより、特定の時点においてメモリ部102が記憶する記憶データを構築することができる。ディスパッチャ105は、上記のようにして取得された記憶データを含むよう、上記採取対象データを生成してもよい。また、ディスパッチャ105は、演算部101から状態保持データを取得し、係る状態保持データを含むよう、上記採取対象データを生成してもよい。
なお、上記したように、解析対象装置100がMMIOを実行する場合、解析対象装置100の周辺装置(不図示)と、演算部101またはメモリ部102との間の通信データも取得可能である。このため、ディスパッチャ105は、解析対象装置100の周辺装置(不図示)の処理状態についても、間接的に取得することが可能である。
なお、ディスパッチャ105は、所定のサンプリング設定に従って、特定の周期ごとに上記採取対象データを生成してもよい。この場合、例えば、後述する記録管理部108が、ディスパッチャ105に対してサンプリング周期を設定してもよい。係るサンプリング周期は、例えば、演算部101のクロックカウント、バス103のクロックカウント、あるいは、時間的な間隔(インターバル)等を用いて適宜設定されてよい。かかるサンプリング周期が設定された場合、ディスパッチャ105は、当該サンプリング周期ごとに上記送受信対象データを取得し、取得した送受信対象データに基づいて採取対象データを生成してもよい。
また、上記サンプリング周期が設定されている場合であっても、ディスパッチャ105は、例えば、後述する記録管理部108からの要求に応じて、係るサンプリングのタイミングとは関係なく、上記採取対象データを生成してもよい。
上記のように構成されたディスパッチャ105は、サンプリング周期を調整することにより、単位時間あたりに生成される採取対象データの数を調整可能である。これにより、後述する高速リポジトリ109に対して、単位時間あたりに保存されるデータのサイズを調整することが可能である。また、ディスパッチャ105は、記録管理部108からの要求に応じて適宜採取対象データを生成可能であることから、例えば、インシデント発生時に即時的に採取対象データを生成することが可能である。
ディスパッチャ105は、採取対象データの生成元となった送受信対象データを取得したタイミング(時点)、あるいは時刻を表す情報(採取タイミング情報)を、上記採取対象データに付与してもよい。
上記のように構成されたディスパッチャ105は、例えば、時系列に上記採取対象データを生成し、当該生成した採取対象データを、後述するデータマッパ106に通知する。
なお、ディスパッチャ105は、例えば、後述する記録管理部108からの要求に応じて、上記採取対象データの生成を開始してもよく、解析装置104を起動した時点から自動的に上記採取対象データの生成を開始してもよい。
次に、本実施形態におけるデータマッパ106について説明する。本実施形態におけるデータマッパ106は、上記ディスパッチャ105と通信可能に接続され、当該ディスパッチャ105が生成した採取対象データを受け付ける。そして、データマッパ106は、マッピングデータ106aに基づいて、当該採取対象データを加工する。この場合、データマッパ106は、ディスパッチャ105から採取対象データを取得してもよく、ディスパッチャ105が、データマッパ106に対して採取対象データを設定(通知)してもよい。
以下、図面を参照して、本実施形態におけるマッピングデータ106aについて説明する。図3は、本実施形態におけるマッピングデータ106aの具体例を示す図である。
マッピングデータ106aには、ディスパッチャ105から受け付けた採取対象データに含まれる記憶データが、上記メモリ部102において記憶される記憶領域を特定可能な情報(メモリ領域特定情報301)が設定される。採取対象データに含まれる記憶データは、メモリ領域特定情報301に基づいて、メモリ部102における特定の記憶領域(記憶領域の範囲)毎に分類される。より具体的には、採取対象データに含まれる記憶データは、当該記憶データが記憶される上記メモリ部102における1以上の記憶領域(記憶領域の範囲)毎に分類される。
また、マッピングデータ106aには、メモリ領域特定情報301により特定される記憶領域に対して付与される識別情報(タグ情報302)が設定される。
本実施形態におけるマッピングデータ106aは、メモリ領域特定情報301と、タグ情報302とを関連付けて保持する。即ち、本実施形態におけるマッピングデータ106aにより、メモリ領域特定情報301により1以上の領域に分類された記憶データに対して、当該領域を識別可能なタグ情報302を付与することが可能となる。
なお、メモリ領域特定情報301は、図3に例示するように、上記メモリ空間における特定の記憶領域を特定可能な情報として、上記メモリ部102におけるメモリ空間のオフセットアドレスと、当該オフセットアドレスからのサイズとを含んでもよい。係るオフセットアドレスからのサイズは、上記メモリ空間における特定の記憶領域のサイズを表す。
また、メモリ領域特定情報301は、上記メモリ空間における特定の記憶領域を特定可能な情報として、図4に例示するように、上記メモリ部102におけるメモリ空間における特定の位置を表す開始アドレスと、終了アドレスとを含んでもよい。
本実施形態におけるデータマッパ106は、上記マッピングデータ106aを参照して、ディスパッチャ105から受け付けた採取対象データに含まれる記憶データに対して、タグ情報を付与する。具体的には、データマッパ106は、図5に例示するように、採取対象データに含まれる記憶データ501に対して、メモリ領域特定情報301により特定される記憶領域毎に、当該記憶領域に関連付けされたタグ情報302を付与する。
図5に示す具体例においては、例えば、記憶データにおいてオフセットアドレスが「0」から始まり、サイズが「1024」である領域についてタグ情報”A”が付与される。同様に、記憶データにおいてオフセットアドレスが「1024」から始まり、サイズが「512」である領域についてタグ情報”B”が付与される。同様に、記憶データにおいてオフセットアドレスが「1536」から始まり、サイズが「512」である領域についてタグ情報”C”が付与される。なお、オフセットアドレス及び、サイズの具体的な単位は適宜定められてよく、例えばバイト単位や、ワード単位で指定されてもよい。
なお、採取対象データに演算部101から取得した状態保持データが含まれる場合、データマッパ106は、状態保持データであることを示す特定のタグ情報を、当該状態保持データに対して付与してもよい。
データマッパ106は、マッピングデータ106aを参照してタグ情報を付与した採取対象データを、データライタ107に通知する。
次に、本実施形態におけるデータライタ107について説明する。本実施形態におけるデータライタ107は、上記データマッパ106、及び、後述する記録管理部108と通信可能に接続される。
データライタ107は、後述する採取ポリシ107aに基づいて、上記データマッパ106から受け付けた採取対象データの少なくとも一部を、保存データとして後述する高速リポジトリ109に保存する。また、本実施形態におけるデータライタ107は、採取ポリシ107aに基づいて、後述する高速リポジトリ109に保存したデータを、後述する解析ストレージ110に保存(蓄積)する。また、データライタ107は、後述する記録管理部108からの要求に応じて、後述する高速リポジトリ109に保存したデータを、後述する解析ストレージ110に蓄積する。
以下、データライタ107の具体的な構成について説明する。
まず、本実施形態におけるデータライタ107は、上記データマッパからタグ情報が付与された上記採取対象データを受け付ける。この場合、データライタ107が、上記データマッパ106から上記採取対象データを取得してもよい。また、上記データマッパ106が、データライタ107に対して、上記採取対象データを通知してもよい。
データライタ107は、採取対象データに含まれる記憶データの特定の領域に付与されたタグ情報と、当該特定の領域のデータと、後述する記録タイミング情報と、を関連付けて、保存データとして高速リポジトリ109に書き込む。
この場合、データライタ107は、図7に例示するようなデータ構造により、上記保存データを高速リポジトリ109に保存してもよい。ここで、タグ情報701には、採取対象データに含まれる記憶データの特定の領域に付与されたタグ情報が設定される。記録タイミング情報702には、保存データの記録に関するタイミングや時刻を表す情報が設定される。保存対象データ703には、採取対象データにおいて、タグ情報701により識別される特定の領域のデータが設定される。
ここで、記録タイミング情報702には、例えば、上記説明した採取タイミング情報が設定されてもよい。また、記録タイミング情報702には、当該保存データが高速リポジトリ109に保存されるタイミング(時点)、あるいは時刻を表す情報(保存タイミング情報)が設定されてもよい。なお、当該記録タイミング情報702には、上記説明した保存タイミング情報または採取タイミング情報以外の時刻を表す情報が設定されてもよい。
なお、採取対象データに状態保持データが含まれる場合は、データライタ107は、状態保持データであることを示すタグ情報と、状態保持データの記録タイミング情報と、状態保持データの内容と、を関連付けたデータを、保存データとして扱ってもよい。
次に採取ポリシ107aについて、図6を参照して説明する。本実施形態における採取ポリシ107aは、リポジトリ保存ポリシ601を含む。リポジトリ保存ポリシ601は、上記採取対象データを高速リポジトリ109に保存する方法を規定した第1のポリシである。また、本実施形態における採取ポリシ107aは、ストレージ蓄積ポリシ602を含む。ストレージ蓄積ポリシ602は、高速リポジトリ109に保存した上記保存データを、解析ストレージ110に蓄積する方法を規定した第2のポリシである。
上記リポジトリ保存ポリシ601には、上記データマッパ106において付与されるタグ情報601aと、リポジトリ領域特定情報601bと、リポジトリ領域保存情報601cとが、関連付けて設定される。
リポジトリ領域特定情報601bは、上記保存データが実際に保存される高速リポジトリ109における記憶領域(以下「リポジトリ記憶領域」と称する場合がある)を特定可能な情報である。
リポジトリ領域特定情報601bは、保存データが保存(記憶)される領域の開始位置を指定する開始アドレスと、保存データが保存(記憶)される領域のサイズとを含む。これにより、特定のタグが付与された保存データが保存される、高速リポジトリ109における記憶領域が特定される。なお、リポジトリ領域特定情報601bは、上記開始アドレスと、特定のタグが付与された保存データが保存される領域の終了位置を指定する終了アドレスとを含んでもよい。なお、リポジトリ領域特定情報601bにおける、開始(終了)アドレス及びサイズの具体的な単位は適宜定めてよい。係る単位は、例えば、バイト単位や、ワード単位で指定されてもよい。
リポジトリ領域保存情報601cは、上記リポジトリ記憶領域に対する新たな保存データの保存方法を特定可能な情報を含む。
データライタ107は、リポジトリ保存ポリシ601を参照して、採取対象データに付与されたタグ情報に関連付けされたリポジトリ領域特定情報601bを抽出する。具体的には、データライタ107は、特定のタグ情報が付与された、採取対象データに含まれる記憶データの特定の領域が、高速リポジトリ109において保存データとして保存される領域(リポジトリ記憶領域)を特定する。
そして、データライタ107は、リポジトリ領域保存情報601cを参照して、タグ情報が付与された採取対象データを高速リポジトリ109に保存する保存方法を特定する。そして、データライタ107は、その保存方法に従って、上記タグ情報が付与された採取対象データを上記特定したリポジトリ記憶領域に保存する。
図6に示す具体例においては、例えば、リポジトリ領域保存情報601cに「リングバッファ」、「複製」、「追記」、「保存不要」などの保存方法が指定されている。これらの保存方法は、データライタ107が、リポジトリ領域特定情報601bにより特定されたリポジトリ記憶領域に、タグ情報が付与された採取対象データを保存データとして保存する具体的な方法を特定可能な情報である。より具体的には、データライタ107は、これらの保存方法により、新たな保存データがリポジトリ記憶領域において保存される具体的な領域を特定可能である。これより、リポジトリ領域保存情報601cは、新たな保存データが保存されるリポジトリ記憶領域を特定可能な情報であるといえる。それぞれの保存方法に対する具体的な説明は後述する。
特定のタグ情報601aに対して、リポジトリ領域保存情報601cが「保存不要」と指定されている場合(例えば、図6のタグ情報「D」)、そのタグ情報が付与された採取対象データの領域は、高速リポジトリには保存されない。即ち、データライタ107は、リポジトリ領域保存情報601cに基づいて、採取対象データを保存データとして高速リポジトリに保存するか否かを判定可能である。これより、リポジトリ領域保存情報601cは、採取対象データを保存データとして高速リポジトリに保存するか否かを判定可能な情報であるといえる。なお、本実施形態におけるリポジトリ領域保存情報601cは、図6に示す具体例に限定されず、他の任意の保存方法を採用してもよい。
また、本実施形態におけるデータライタ107は、保存データを高速リポジトリ109に保存する際、当該保存データを任意の圧縮方法により圧縮してもよい。この場合、高速リポジトリに保存(記憶)されるデータの容量を削減可能であることから、データライタ107は、より多くの保存データを高速リポジトリに保存可能である。
ストレージ蓄積ポリシ602は、高速リポジトリ109に保存された保存データを解析ストレージ110に保存(蓄積)するか否かを表す、蓄積要否情報602aを含む。また、ストレージ蓄積ポリシ602は、高速リポジトリに保存された保存データを解析ストレージ110に蓄積する方法を表す、蓄積方法情報602bを含む。データライタ107は、係る蓄積方法情報602bに基づいて、高速リポジトリに保存された保存データを解析ストレージ110に蓄積する契機を特定する。なお、以下において、高速リポジトリ109に保存された保存データを解析ストレージ110に蓄積する処理を、単に「高速リポジトリ109のバックアップ」と称する場合がある。
例えば、図6に例示するように、蓄積要否情報602aが「要」であり、蓄積方法情報602bが「定期(1分毎)」である場合、データライタ107は、ストレージ蓄積ポリシ602に基づいて、1分ごとに高速リポジトリ109をバックアップする。
なお、本実施形態におけるストレージ蓄積ポリシ602は、図6に示す具体例に限定されず、任意の蓄積方法を採用してよい。例えば、データライタ107は、上記リポジトリ保存ポリシ601におけるタグ情報601aを参照して、特定のタグ情報ごとに、蓄積方法を変更してもよい。
高速リポジトリ109のバックアップが不要である場合、ストレージ蓄積ポリシ602の蓄積要否情報602aに「否」が設定されてもよく、ストレージ蓄積ポリシ602自体が採取ポリシ107aから削除されてもよい。
このように構成された本実施形態におけるデータライタ107は、例えば、後述する記録管理部108からの要求が無くとも、採取ポリシ107aに基づいて、高速リポジトリ109を自動的にバックアップ可能である。即ち、データライタ107は、例えば、後述する記録管理部108からバックアップ要求が通知されるより前の保存データを、解析ストレージ110に保存することが可能である。係るバックアップ要求(後述する蓄積要求)は、インシデントの発生に伴い、記録管理部108から通知される要求である。これより、解析装置104は、インシデント発生の前にさかのぼって、解析対象装置100の状態を解析可能である。
また、本実施形態におけるデータライタ107は、後述する記録管理部108からの要求に応じて、高速リポジトリ109をバックアップしてもよい。これにより、本実施形態におけるデータライタ107は、図示しないユーザや管理者などからの指示に応じて、高速リポジトリ109に保存された保存データを解析ストレージに蓄積可能である。
また、本実施形態におけるデータライタ107は、後述する記録管理部108からの要求に応じて、特定のタイミングにおける解析対象装置100の演算状態を保持する保存データに対して、ラベル情報を付与してもよい。
この場合、データライタ107は、記録管理部108から受信したスナップショット情報(後述)から、上記特定のタイミングを表す情報(例えば時刻情報等)と、ラベル情報とを抽出する。そして、データライタ107は、当該特定のタイミングに対応する保存データを高速リポジトリ109、あるいは、解析ストレージ110から抽出し、抽出した保存データに対してラベル情報を付与する。例えば、上記特定のタイミングを表す情報が時刻を表す情報である場合、データライタ107は、保存データの記録タイミング情報702を参照し、上記特定のタイミングに最も近い時刻に取得された保存データにラベル情報を付与してもよい。各保存データに対するラベル情報の付与方法は、適宜定めてよい。
次に、本実施形態における記録管理部108について説明する。
記録管理部108は、図示しないユーザや管理者等から、高速リポジトリ109を解析ストレージ110にバックアップする要求を受けつける。この場合、記録管理部108は、当該要求に従って、データライタ107に対して、高速リポジトリ109のバックアップ要求(蓄積要求)を通知する。
また、記録管理部108は、センサ111から、高速リポジトリ109を解析ストレージ110にバックアップする要求を受けつける。係る要求を受け付けた記録管理部108は、当該要求に従って、データライタ107に対して蓄積要求を通知する。
また、記録管理部108は、図示しないユーザや管理者等から、新たな採取ポリシ107aの設定や、採取ポリシ107aの変更に関する要求を受け付ける。この場合、係る要求を受け付けた記録管理部108は、当該要求に従って、採取ポリシ107aに含まれるリポジトリ保存ポリシ601や、ストレージ蓄積ポリシ602を設定する。なお、この場合、記録管理部108が、採取ポリシ107aを直接変更してもよく、データライタ107に対して採取ポリシ107aの変更を要求してもよい。
また、記録管理部108は、図示しないユーザや管理者等から、マッピングデータ106aの変更に関する要求を受け付ける。この場合、係る要求を受け付けた記録管理部108は、当該要求に従って、マッピングデータ106aを変更する。なお、この場合、記録管理部108が、マッピングデータ106aを直接変更してもよく、データマッパ106に対してマッピングデータ106aの変更を要求してもよい。
また、記録管理部108は、図示しないユーザや管理者等から、ディスパッチャ105に対するサンプリング周期の設定を受け付ける。この場合、係る要求を受け付けた記録管理部108は、当該要求に従って、ディスパッチャ105に対してサンプリング周期の変更を通知する。
また、記録管理部108は、図示しないユーザや管理者等から、上記採取対象データの生成に関する要求を受け付けてもよい。この場合、係る要求を受け付けた記録管理部108は、当該要求に従って、ディスパッチャ105に対して採取対象データの生成を要求する。
また、記録管理部108は、後述するセンサ111から、インシデントの発生に伴う、上記採取対象データの生成に関する要求を受け付けてもよい。この場合、係る要求を受け付けた記録管理部108は、当該要求に従って、ディスパッチャ105に対して採取対象データの生成を要求する。
上記のように構成された記録管理部108及びデータライタ107は、ユーザや管理者の要求に応じて採取ポリシ107aを設定することにより、特定のメモリ空間だけを記録したり、メモリ空間毎に保存方法を変更可能である。即ち、本実施形態においては、採取ポリシ107aに基づいて、高速リポジトリ109に保存される保存データのサイズや保存方法が調整される。これにより、データライタ107は、高速リポジトリ109の記憶容量を節約して、より多くの保存データを蓄積することが可能である。
また、上記したように、記録管理部108がディスパッチャ105に対するサンプリング周期を設定可能である場合、記録管理部108は、単位時間あたりに高速リポジトリ109に保存される保存データの数を調整可能である。
また、上記したように、センサ111においてインシデントの発生を検知した際、記録管理部108は、センサ111から通知される、採取対象データの生成と、高速リポジトリ109のバックアップに関する要求に対応可能である。これにより、解析装置104は、インシデントが発生した時点の付近における、解析対象装置100の動作を解析可能である。
なお、本実施形態における記録管理部108は、図示しないユーザ等から、特定のタイミングにおける解析対象装置100の演算状態をスナップショットとして保存する要求を受け付けてもよい。この場合、記録管理部は108は、スナップショットを表すラベル情報と、当該特定のタイミングを表す情報(例えば時刻情報等)とを含むスナップショット情報を、データライタ107に送信する。なお、係るラベル情報は、図示しないユーザ等から与えられてもよく、記録管理部108が生成してもよい。
次に、本実施形態における高速リポジトリ109について説明する。高速リポジトリ109は、高速な入出力(IO:Input Output)が可能な、所定の記憶容量を有する記憶領域である。高速リポジトリ109としては、例えば、SSDやRAMディスク等、比較的記憶容量が小さいが、データの入出力が高速な記憶装置を採用可能である。
本実施形態における高速リポジトリ109は、データライタ107と通信可能に接続され、データライタ107から受け付けた保存データを、自装置における記憶領域に保存する。この際、高速リポジトリ109において実際の保存データが書き込まれる領域は、上記説明した通り、採取ポリシ107a(特にはリポジトリ保存ポリシ601)により設定される。
本実施形態における高速リポジトリ109の記憶容量には限界があるので、高速リポジトリ109は、データライタ107から受け付けた全ての保存データを長期的に蓄積できない場合がある。このため、上記採取ポリシ107a(特にはリポジトリ保存ポリシ601)に基づいて、高速リポジトリ109に保存されるデータが選択されると共に、その保存方法が設定される。本実施形態における解析装置104は、これにより、なるべく多くの保存データを高速リポジトリ109に保存可能とする。
次に、本実施形態における解析ストレージ110について説明する。解析ストレージ110は、高速リポジトリ109よりも入出力処理が低速であるが、記憶容量が大きい不揮発性の記憶装置である。また、解析ストレージ110は、自装置に記憶された記憶データを長期間にわたって保持可能な記憶装置である。係る解析ストレージ110としては、例えば磁気ディスク装置や、複数の磁気ディスク装置を用いたRAID構成による記憶装置等が採用されてもよい。
本実施形態における解析ストレージ110は、上記説明したデータライタ107と通信可能に接続され、データライタ107から受け付けた蓄積用のデータ(保存データ)を、自装置における特定の記憶領域に書き込む。
なお、解析ストレージ110と、高速リポジトリ109とは、任意の通信回線(通信バス等)により直接接続されてもよい。この場合、データライタ107からの要求に応じて、高速リポジトリ109が保存されたデータを直接解析ストレージ110に転送し、解析ストレージ110が当該データを蓄積してもよい。
本実施形態においては、データライタ107が、上記採取ポリシ107a(特にはストレージ蓄積ポリシ602)に基づいて、高速リポジトリ109に保存された保存データを、解析ストレージ110に蓄積する。本実施形態における解析装置104は、これにより、解析ストレージ110を用いて、ディスパッチャ105にて生成された採取対象データを長期間にわたって蓄積することが可能である。
次に、センサ111について説明する。センサ111は、解析対象装置100における演算処理に影響を及ぼす可能性を有するインシデントを検出可能な、任意の装置である。センサ111は、例えば、周知の侵入検知システム(IDS:Intrusion Detection System)や侵入防止システム(IPS:Intrusion Prevention System)等であってもよい。また、センサ111は、例えば、解析対象装置100の動作状態を類推可能な情報を検知する検知器であってもよい。より具体的には、センサ111は、例えば、解析対象装置100の温度や、演算部101の使用率などを検出する検知器であってもよい。
センサ111は、記録管理部108と通信可能に接続されており、例えば、インシデントを検知した際に、記録管理部108に対して、高速リポジトリ109に保存されたデータを解析ストレージ110に蓄積するよう要求してもよい。また、センサ111は、記録管理部108に対して、ディスパッチャ105における採取対象データの生成を要求してもよい。
このように、解析装置104とセンサ111とが連携することにより、解析装置104は、高速リポジトリ109に保存されたデータを、インシデント発生時に解析ストレージ110に蓄積することが可能である。これにより、解析装置104は、インシデント発生時点の付近における解析対象装置100の動作を解析可能なデータを解析ストレージ110に蓄積可能である。
次に、本実施形態における監視装置112について説明する。監視装置112は、図示しないユーザや管理者等に対して提供されるインタフェース装置であり、解析装置104(特には記録管理部108)と通信可能に接続されている。図示しないユーザや管理者等は、監視装置112を介して、解析装置104に対して各種要求を通知する。なお、監視装置112を設けるか否かは適宜選択してよい。
次に、上記のように構成された本実施形態における解析装置104の動作について説明する。
図8は、ディスパッチャ105によるデータの取得から、データライタ107による高速リポジトリへの保存までの一連の処理を例示したフローチャートである。なお、下記フローチャートに例示する処理は、例えば、記録管理部108からの要求に応じて開始されてもよく、解析装置104が起動された際に、自動的に開始されてもよい。
まず、ディスパッチャ105が、送受信対象データを取得する(ステップS801)。
次に、ディスパッチャ105は、上記ステップS801において取得したデータを複製して、上記説明した採取対象データを生成する(ステップS802)。この場合、ディスパッチャ105は、例えば、以下のような処理により、採取対象データを生成してもよい。即ち、ディスパッチャ105は、演算部101とメモリ部102との間を送受信されるデータを、特定の開始点から時系列に全て取得(キャプチャ)することにより、特定の時点においてメモリ部102が記憶する記憶データを構築する。そして、ディスパッチャ105は、このようにして構築された記憶データを含む上記採取対象データを生成する。また、ディスパッチャ105は、特定の時点において上記メモリ部102が記憶する記憶データの複製(メモリダンプの複製)を取得することにより、係る記憶データを含む上記採取対象データを生成してもよい。
そして、ディスパッチャ105は、上記のようにして生成した採取対象データをデータマッパ106に送信してもよい。
次に、データマッパ106は、上記ステップS802においてディスパッチャ105が生成した採取対象データに対して、マッピングデータ106aを参照してタグ情報を付与する(ステップS803)。具体的には、データマッパ106は、マッピングデータ106aに設定されたメモリ領域特定情報301と、タグ情報302とに基づいて、採取対象データに含まれる特定の領域毎にタグ情報を付与する。
次に、データマッパ106は、上記ステップS803においてタグが付与された採取対象データを、データライタ107に送付(送信)する(ステップS804)。この場合、データライタ107が、係る採取対象データをデータマッパ106から取得してもよい。
採取対象データを受信したデータライタ107は、採取ポリシ107aに基づいて、当該採取対象データを保存データとして高速リポジトリ109に保存する(ステップS805)。
以下、ステップS805における処理の内容について、図9に例示するフローチャートを参照して説明する。
まず、データライタ107は、採取対象データのそれぞれの領域について設定されたタグ情報を確認し、採取ポリシ107aにおいて、当該タグ情報に対応するポリシ(リポジトリ保存ポリシ601)を特定する(ステップS901)。例えば、タグ情報として”A”が設定された採取対象データに含まれる領域について、データライタ107は、リポジトリ保存ポリシ601から、タグ情報”A”に対応するリポジトリ領域特定情報601b(この場合は開始アドレス「0」からサイズ「102400」分)を特定する。また、データライタ107は、リポジトリ保存ポリシ601から、タグ情報”A”に対応するリポジトリ領域保存情報601c(この場合は「リングバッファ」)を特定する。
次に、データライタ107は、採取ポリシ107aに設定された保存方法を確認する(ステップS902)。より具体的には、データライタ107は、上記特定したリポジトリ領域保存情報601cを確認する。
ステップS902における確認の結果、保存方法が「保存不要」である場合(ステップS903において「保存不要」の場合に相当)、データライタ107は処理を終了する。
ステップS902における確認の結果、保存方法が「リングバッファ」である場合、(ステップS903において「リングバッファ」の場合に相当)、データライタ107は、リングバッファに、保存データを保存する(ステップS904)。係るリングバッファは、リポジトリ領域特定情報601bにより特定された高速リポジトリ109の記憶領域に構成される。
より具体的には、例えば、データライタ107は、リポジトリ領域特定情報601bにより特定された領域に構成されたリングバッファに、空きバッファ(空きブロック)が存在するか否かを確認する。空きバッファが存在しない場合、データライタ107は、高速リポジトリ109の当該領域に保存された保存データの内、もっとも古いデータを削除し、そのバッファに新たな保存データを書き込む。即ち、データライタ107は、新しい保存データにより、最も古い保存データを更新する。この場合、データライタ107は、記録タイミング情報702を参照することにより、高速リポジトリ109の特定の領域に保存された最も古いデータを抽出可能である。
ステップS902における確認の結果、保存方法が「複製」である場合、(ステップS903において「複製」の場合に相当)、データライタ107は、リポジトリ領域特定情報601bにより特定された高速リポジトリ109の記憶領域を、保存データにより上書きする(ステップS905)。即ち、保存方法が「複製」である場合、データライタ107は、リポジトリ領域特定情報601bにより特定された領域を、常に新たな保存データにより上書きしてよい。
ステップS902における確認の結果、保存方法が「追記」である場合、(ステップS903において「追記」の場合に相当)、データライタ107は、リポジトリ領域特定情報601bにより特定された高速リポジトリ109の記憶領域に、新たな保存データを追記する(ステップS906)。当該記憶領域に空き領域がなくなった場合、データライタ107は、当該記憶領域に保存されていた保存データを、解析ストレージ110に蓄積し、当該記憶領域を初期化してもよい。
なお、上記保存方法はあくまで例示である。上記以外の保存方法として、例えば、データライタ107は、リポジトリ領域特定情報601bにより特定された高速リポジトリ109の記憶領域の空き容量がなくなるまで新たな保存データを書き込み、空き容量が無くなった場合に書き込みを停止してもよい。また、データライタ107は、リポジトリ領域特定情報601bにより特定された高速リポジトリ109の記憶領域に特定の期間分の保存データを保存し、当該期間が経過した際、保存されていた保存データを廃棄してもよい。本実施形態におけるリポジトリ領域保存情報601cには、上記以外の任意の保存方法が設定されてもよい。
なお、上記ステップS904乃至ステップS906において、データライタ107は、採取対象データの特定の領域に付与されたタグ情報と、採取対象データの記録タイミング情報と、採取対象データの特定の領域に含まれるデータとを関連付けて、保存データとして高速リポジトリ109に書き込む。
次に、図10に例示するフローチャートを参照して、記録管理部108がデータライタ107に対して高速リポジトリ109のバックアップを要求した場合の処理について説明する。
まず、記録管理部108が、監視装置112、あるいは、センサ111から、高速リポジトリ109のバックアップを要求する通知を受信する(ステップS1001)。
記録管理部108は、ステップS1001において受け付けた通知に基づいて、データライタ107に対して、高速リポジトリ109のバックアップ要求(蓄積要求)を通知する(ステップS1002)。
上記ステップS1002における通知を受信したデータライタ107は、高速リポジトリ109に保存された保存データを、解析ストレージ110にバックアップする(ステップS1003)。
次に、図11に例示するフローチャートを参照して、ストレージ蓄積ポリシ602に基づいて、データライタ107が、高速リポジトリ109を解析ストレージ110にバックアップする処理について説明する。
まず、データライタ107は、採取ポリシ107aに含まれるストレージ蓄積ポリシ602を確認する(ステップS1101)。
ステップS1101における確認の結果、ストレージ蓄積ポリシ602が存在しない場合、データライタ107は高速リポジトリ109を解析ストレージ110にバックアップ(蓄積)する必要が無いと判断し(ステップS1102において「蓄積不要」)、処理を終了する。同様に、ストレージ蓄積ポリシ602においてバックアップが不要(蓄積要否情報602aが「否」)であると設定されている場合(ステップS1102において「蓄積不要」)、データライタ107は処理を終了する。
ステップS1102において「蓄積要」の場合(蓄積要否情報602aが「要」の場合)、データライタ107は、蓄積方法情報602bを参照する。そして、データライタ107は、高速リポジトリ109に保存された保存データを、蓄積方法情報602bに基づいて解析ストレージ110にバックアップする(ステップS1103)。
以上のように構成された本実施形態における解析装置104によれば、演算部101と、メモリ部102との間で送受信される対象である送受信対象データに基づいて、ディスパッチャ105が採取対象データを生成する。そして、係る採取対象データに対して、データマッパ106が、マッピングデータ106aに基づいてタグ情報を付与する。そして、データライタ107が、採取ポリシ107aに基づいて採取対象データを高速リポジトリ109に保存する。また、採取ポリシ107aに基づいて、データライタ107が、高速リポジトリ109を、解析ストレージ110にバックアップする。
具体的には、解析装置104は、例えば、特定のタグ情報が付与された領域のみを高速リポジトリ109に保存することが可能である。また、解析装置104は、例えば、特定のタグが付与された保存データを多く保存し、他の特定のタグが付与された保存データを少なく保存することが可能である。この意味において、本実施形態におけるマッピングデータ106a、及び採取ポリシ107aは、タグ情報に基づいて、採取対象データに含まれるデータを保存するか否かを規定する、フィルタとして機能すると言える。
即ち、本実施形態における解析装置104は、採取対象データに付与されたタグ情報に基づいて、当該タグ情報が付与された領域毎に、高速リポジトリへの保存方法を変更可能である。これより、解析装置104は、所定の記憶容量を有する高速リポジトリ109の記憶領域を有効に利用可能である。
また、データライタ107は、保存データを圧縮して高速リポジトリ109に保存可能である。これより、解析装置104は、高速リポジトリの記憶容量に対して、より多くの保存データを保存可能である。
また、ディスパッチャ105におけるサンプリング周期を設定することにより、単位時間に取得する採取対象データの個数を調整することが可能である。これにより、解析装置104は、単位時間に消費する高速リポジトリの記憶容量を調整可能である。
また、センサ111あるいは監視装置112からの通知に基づいて、ディスパッチャ105が採取対象データを生成することが可能である。同様に、センサ111あるいは監視装置112からの通知に基づいて、データライタ107が、高速リポジトリ109を解析ストレージ110にバックアップ可能である。よって、本実施形態における解析装置104は、例えば、特定のインシデントが発生した時点の前後における解析対象装置100の演算状態を保存可能である。
以上より、本実施形態における解析装置104によれば、限られた記憶容量の記憶装置を用いて、解析対象装置100の状態を再現可能なデータを、より多く保存することが可能である。
<第1の実施形態の第1の変形例>
次に、上記説明した第1の実施形態の第1の変形例について説明する。本変形例は、上記第1の実施形態における解析装置104に対して、図12に例示するように、マップジェネレータ1201が追加された点においてのみ相違し、その他は同様である。よって、以下、係る相違点についてのみ説明し、共通する構成についての説明は省略する。
本変形例におけるマップジェネレータ1201は、ディスパッチャ105及びデータマッパ106と通信可能に接続される。また、マップジェネレータ1201は、記録管理部108と通信可能に接続されてもよい。
マップジェネレータ1201は、解析対象装置100の基本構成を表す情報であるアーキテクチャに関する情報に基づいて、適切なマッピングデータを生成する。そして、マップジェネレータ1201は、生成したマッピングデータを、マッピングデータ106aに登録する。マップジェネレータ1201は、生成したマッピングデータをデータマッパ106に送付し、マッピングデータ106aの更新を要求してもよい。
より具体的には、マップジェネレータ1201は、例えば、ディスパッチャ105から、演算部101の基本構成を表すアーキテクチャに関する情報を取得する。また、マップジェネレータ1201は、記録管理部108を介して、解析対象装置100において実行されるOS(Operating System)に関する情報を取得してもよい。この場合、図示しないユーザや管理者等が、記録管理部108を介して、マップジェネレータ1201にOSに関する情報を通知してもよい。
マップジェネレータ1201は、上記取得した演算部101のアーキテクチャに関する情報と、解析対象装置100において実行されるOSに関する情報とを、解析対象装置100のアーキテクチャに関する情報として扱う。マップジェネレータ1201は、係るアーキテクチャに関する情報に基づいてマッピングデータを生成する。そして、マップジェネレータ1201は、当該生成したマッピングデータを、マッピングデータ106aに登録する。
具体的には、マップジェネレータ1201は、例えば、上記記憶データを、解析対象装置100において実行されているプロセス毎の領域に分割し、それぞれの領域に対してプロセス名をタグ情報として関連付けるマッピングデータを生成してもよい。こうして生成されたマッピングデータ106aと、それに応じた採取ポリシ107aとを用いることにより、解析装置104は、例えば、高速リポジトリ109に保存されるデータを、以下のように制御可能である。即ち、解析装置104は、重要度が高い特定のプロセスに関するメモリ領域(記憶データ)を高速リポジトリ109に多く保存し、重要度が低いプロセスに関するメモリ領域を保存しない、等の制御が可能である。
また、マップジェネレータ1201を導入することにより、例えば、解析装置104は、解析対象装置100における処理の状況に応じて、マッピングデータ106aを動的に変更することも可能である。
このように本変形例における解析装置104は、重要度が高いメモリ領域と、そうではないメモリ領域とをタグ情報を用いて区別することにより、当該タグ情報ごとに採取ポリシ107aの保存方法を変更することが可能である。また、マップジェネレータ1201を導入することにより、解析装置104は、解析対象装置100における処理の状況に応じて、重要度が高いメモリ領域と、そうではないメモリ領域とを区別するタグ情報を動的に変更可能である。
よって、本実施形態における解析装置104によれば、限られた記憶容量の記憶装置を用いて、解析対象装置100の状態を再現可能なデータをより多く保存することが可能である。
<第1の実施形態の第2の変形例>
次に、上記説明した第1の実施形態の第2の変形例について説明する。本変形例は、上記第1の実施形態に対して、解析対象装置100が複数台存在する点において異なる。これに伴い、本変形例においては、図13に例示するように、ディスパッチャ105、データマッパ106、及び、マップジェネレータ1201が、複数存在する。なお、複数存在するそれぞれの構成要素自体は、上記説明した第1の実施形態と同様としてよい。
また、図13に例示するデータライタ1301は、上記第1の実施形態におけるデータライタ107に対して、複数のデータマッパ106からの採取対象データを受け付ける点において異なり、その他は同様である。本変形例におけるデータライタ1301は、複数のデータマッパ106から受け付けた採取対象データを、それぞれ保存データとして高速リポジトリ109に保存する。
また、採取ポリシ1301aは、図14に例示するように、第1の実施形態における採取ポリシ107aに対して、複数のディスパッチャ105を識別可能なディスパッチャID(Identifier)1401aを含む点において異なる。採取ポリシ1301aのその他の構成は、採取ポリシ107aと同様である。
データライタ1301は、採取ポリシ1301aに基づいて、各データマッパ106から受け付けた採取対象データを、保存データとして高速リポジトリ109に保存する。この場合、データライタ1301は、採取対象データをどのデータマッパ106から取得したか(いずれのディスパッチャ105により生成された採取対象データか)判別可能である。これより、データライタ1301は、各採取対象データに対して、当該採取対象データを生成したディスパッチャ105に対応するディスパッチャIDが付与されたポリシを適用することが可能である。
なお、データライタ1301は、図15に例示するような形式で、保存データを高速リポジトリ109に保存してもよい。即ち、各保存データは、ディスパッチャID1501によって、何れのディスパッチャ105により生成されたデータであるか(いずれの解析対象装置100に関するデータであるか)判別可能である。
なお、本変形例における解析装置104のその他の動作は、上記第1の実施形態における解析装置104と同様としてよいため、詳細な説明は省略する。
本変形例における解析装置104は、複数の解析対象装置100のそれぞれに関するデータを単一の解析装置104により収集し、解析可能である。よって、本変形例における解析装置104は、上記第1の実施形態と同様の効果を奏すると共に、少ない解析装置104により、多くの解析対象装置100を解析可能である。
なお、図13に例示する構成においては、2台の解析対象装置100が例示されているが、本実施形態はこれには限定されず、任意の台数の解析対象装置100を採用してよい。
<第2の実施形態>
次に、上述した第1の実施形態に係る解析装置を基本とする第2の実施形態について説明する。
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成についての重複する説明は省略する。
図16に例示する、本実施形態における解析装置1604は、上記第1の実施形態における解析装置104に対して、再現部1605を有する点において異なる。なお、以下の説明においては、本実施形態に係る特徴的な部分である再現部1605を中心に説明する。図16に例示する解析部1606は、上記第1の実施形態における解析装置104の構成要素と同様としてよいため、詳細な説明は省略する。
まず、本実施形態における再現対象装置1600について説明する。再現対象装置1600は、演算部1601と、当該演算部1601に通信バス1603を介して通信可能に接続されたメモリ部1602とを備える。なお、演算部1601及びメモリ部1602は、上記第1の実施形態における演算部101及び、メモリ部102と同様としてよいので、詳細な説明は省略する。なお、図16においては、解析対象装置100と、再現対象装置1600とを別々の装置として記載しているが、本実施形態はこれには限定されない。解析対象装置100と、再現対象装置1600は同じ装置として構成されてもよい。
次に、本実施形態における再現部1605について説明する。再現部1605は、データリーダ1609と、プレーヤ1608と、再現指示部1607とを有する。以下それぞれの構成要素について説明する。
まず、本実施形態における再現指示部1607について説明する。再現指示部1607は、データリーダ1609、及び、プレーヤ1608と通信可能に接続される。
再現指示部1607は、例えば、図示しないユーザや管理者等からの要求に応じて、プレーヤ1608に対して、解析対象装置100における特定の演算状態の再現を指示する要求である再現要求を送信する。この場合、再現指示部1607は、例えば、再現対象である解析対象装置100の演算状態を特定可能な再現対象特定情報を、上記再現要求に設定する。そのような再現対象特定情報は、例えば、解析対象装置100の演算状態を再現したいタイミング(あるいは時刻)を表す情報や、上記説明したスナップショットに対応するラベル情報であってもよいが、これには限定されない。
次に、本実施形態におけるプレーヤ1608について説明する。本実施形態におけるプレーヤ1608は、データリーダ1609、及び、再現指示部1607と通信可能に接続される。また、プレーヤ1608は、再現対象装置1600における演算部1601、及び、メモリ部1602に通信可能に接続される。
プレーヤ1608は、例えば、上記再現指示部1607からの要求(再現要求)に応じて、高速リポジトリ109に保存されたデータを演算部1601及びメモリ部1602に展開(設定)する。これにより、プレーヤ1608は、解析対象装置100の演算状態を、再現対象装置1600において再現する。
具体的には、プレーヤ1608は、まず、再現指示部1607から受信した再現要求に含まれる再現対象特定情報を抽出する。そして、プレーヤ1608は、当該再現対象特定情報をデータリーダ1609に送信して、採取対象データの再現を要求する。例えば、再現対象特定情報に時刻情報が設定されている場合、プレーヤ1608は、当該時刻における採取対象データを再現するよう、データリーダ1609に要求する。また、例えば、再現対象特定情報にラベル情報が設定されている場合、当該ラベル情報が付与された保存データに基づいて、採取対象データを再現するよう、データリーダ1609に要求する。データリーダ1609における採取対象データの再現処理については後述する。
プレーヤ1608は、データリーダ1609において再現された採取対象データを、データリーダ1609から受信する。以下、再現された採取対象データを「再現用データ」と称する場合がある。
そして、プレーヤ1608は、当該再現用データに含まれる、メモリ部102の記憶データをメモリ部1602に設定する。当該記憶データに、メモリ部102において記憶される領域を特定可能な情報(アドレス等)が含まれている場合、プレーヤ1608は、係る情報を基に当該記憶データをメモリ部1602に設定する。
また、プレーヤ1608は、当該再現された再現用データに演算部101の状態保持データが含まれる場合、係る状態保持データを演算部1601に設定する。
なお、上記第1の実施形態において説明したように、データライタ107は、採取ポリシ107aに基づいて、ディスパッチャ105において採取された採取対象データの一部を保存データとして高速リポジトリ109に保存する場合がある。即ち、この場合、係る保存データからは、ディスパッチャ105において取得された、元の送受信対象データの一部のみが再現用データとして再現可能である。
この場合、再現用データのみでは、解析対象装置100の動作を完全に再生できない場合がある。しかしながら、少なくとも、再現用データに含まれるデータに基づいて、解析対象装置の特定のタイミングにおける演算状態を解析することが可能である。また、元の採取対象データから欠落している領域の種類や内容によっては、再現対象装置1600に再現用データを展開した際に、解析対象装置100の動作の一部または全部を再生可能である場合がある。
これより、本実施形態におけるプレーヤ1608は、再現用データが元の採取対象データの一部のみを再現可能である場合にも、データリーダ1609において再現された採取可能データを演算部1601及びメモリ部1602に展開してよい。
なお、演算部1601に対する状態保持データの具体的な設定方法は、当該演算部1601の構成に応じて適宜選択してよい。例えば、プレーヤ1608は、演算部1601の特定の入出力ポートを介して、状態保持データを設定してもよい。同様に、メモリ部1602に対する記憶データの具体的な設定方法は、当該メモリ部1602の構成に応じて適宜選択してよい。例えば、プレーヤ1608は、通信バス1603を介してメモリ部1602にそれぞれ必要なデータを流し込んでもよい。また、演算部1601及びメモリ部1602を仮想デバイスとして構成した場合、プレーヤ1608は、仮想化基盤において提供される機能を利用してもよい。
また、プレーヤ1608は、演算部1601を制御することにより、処理速度を遅延させてもよい。より具体的には、プレーヤ1608は、例えば、演算部1601に対して所定のコマンドを送付する、あるいは、演算部1601における所定のレジスタに特定の値を設定することにより、演算部1601の動作周波数(動作クロック)を低くする。また、演算部1601が仮想的な演算装置として提供される場合、プレーヤ1608は、仮想化基盤において提供される機能を用いて、当該演算部1601の動作周波数を変更してもよい。
このように、演算部1601の処理速度を遅くして(低減して)採取対象データを展開することにより、採取対象データが展開された状態における再現対象装置1600の動作を解析することが容易になる。これにより、例えば、再現対象装置1600の動作を解析するために、再現対象装置1600において実行される特定のプロセスを、デバッガ等を用いて追跡することが容易になる。
なお、本実施形態におけるプレーヤ1608は、特定の時点から時系列に順次再現用データをデータリーダ1609に要求してもよい。プレーヤ1608は、順次取得した再現用データを演算部1601及びメモリ部1602に展開してもよい。
また、本実施形態におけるプレーヤ1608は、再現用データを演算部1601及びメモリ部1602に展開した後、演算部1601が処理を実行するよう制御してもよい。この場合、再現用データが展開された状態から、再現対象装置1600を動作させながら、演算状態を解析することが可能である。
次に、本実施形態におけるデータリーダ1609について説明する。データリーダ1609は、高速リポジトリ109、及び、解析ストレージ110と通信可能に接続される。また、データリーダ1609は、プレーヤ1608、及び、再現指示部1607と通信可能に接続される。また、データリーダ1609は採取ポリシ107aを参照可能に構成される。この場合、データリーダ1609は、データライタ107と通信可能に接続され、データライタ107が有する採取ポリシ107aを参照してもよく、データライタ107から採取ポリシ107aを受信(取得)してもよい。
また、データリーダ1609は、必要に応じて、マッピングデータ106aを参照可能に構成される。この場合、データリーダ1609は、データマッパ106と通信可能に接続され、データライタ107が有するマッピングデータ106aを参照してもよく、データライタ107からマッピングデータ106aを受信(取得)してもよい。
データリーダ1609は、再現指示部1607、あるいは、プレーヤ1608からの要求に応じて、解析ストレージ110に保存されている保存データを、高速リポジトリ109に復元(リストア)する。また、データリーダ1609は、高速リポジトリに復元した保存データをもとに、上記第1の実施形態において説明した採取対象データを再現する。以下データリーダ1609の動作について説明する。
まず、データリーダ1609は、プレーヤ1608から採取対象データの再現要求を受け付け、当該採取対象データに相当する保存データを抽出する。具体的には、データリーダ1609は、解析ストレージ110に保存された保存データに付与された記録タイミング情報702を確認し、プレーヤ1608から指定された特定の時刻に最も近い時刻以降の保存データを抽出する(読み出す)。なお、プレーヤ1608から特定のスナップショットを表すラベル情報が指定された場合には、当該ラベル情報が付与された保存データを抽出してもよい。そして、データリーダ1609は、上記抽出した保存データを、高速リポジトリ109に書き込む(リストアする)。
この場合、データリーダ1609は、記録タイミング情報702に、上記抽出した(リストアした)保存データよりも後の時刻が設定されている保存データを時系列に順次読み込んで、高速リポジトリ109に順次リストアしてもよい。
なお、データリーダ1609は、例えば、採取ポリシ107aを参照し、各タグ情報601aに関連付けられたリポジトリ領域特定情報601bによって特定される領域の空き容量が、所定の割合以下になるまで、保存データをリストアし続けてもよい。
データリーダ1609は、保存データがリストアされた高速リポジトリ109を参照して、記録タイミング情報702に特定の時刻情報(プレーヤ1608から指定された、再現対象の時刻情報)が設定された保存データを収集する。データリーダ1609は、収集された保存データを構成するタグ情報701と、保存対象データ703とを用いて、再現用データを生成する。即ち、データリーダ1609は、特定の時点における、解析対象装置100の演算処理の状態を再現可能な再現用データを生成する。
また、データリーダ1609は、特定のラベル(プレーヤ1608から指定された、再現対象のラベル情報)が付与された保存データを収集し、収集された保存データにおける保存対象データ703を用いて、再現用データを生成してもよい。
なお、データリーダ1609は、再現用データを生成する際、必要に応じて、マッピングデータ106aを参照してもよい。
ここで、具体例として、リストアした高速リポジトリ109に、図7に例示するような保存データが保存されており、マッピングデータ106aに図4に例示するデータが設定されていることを仮定する。また、プレーヤ1608が、「時刻10」を表す再現対象特定情報を含む再現要求を、データリーダ1609に送信したことを仮定する。
まず、データリーダ1609は、記録タイミング情報として「時刻10」が設定されている保存データを抽出する。この場合、保存対象データ703が「データA10」、「データB10」、「データC10」のデータが抽出される。
データリーダ1609は、マッピングデータ106aに基づいて、各保存データにおけるタグ情報701と、保存対象データ703とを用いて、再現用データを生成する。この場合、データリーダ1609は、マッピングデータ106aを参照して、上記抽出した保存データに設定されているタグ情報701に対応するタグ情報302を特定する。この場合タグ情報は「A」、「B」、「C」である。
次に、データリーダ1609は、当該特定したタグ情報302に関連付けられたメモリ領域特定情報301を抽出する。そして、データリーダ1609は、当該メモリ領域特定情報301により指定される領域に、保存対象データ703が配置されるよう、再現用データを生成する。即ち、データリーダ1609は、再現用データにおける開始アドレス「0」からサイズ「1024」の範囲に、「データA10」を設定する。また、データリーダ1609は、再現用データにおける開始アドレス「1024」からサイズ「512」の範囲に、「データB10」を設定する。また、データリーダ1609は、再現用データにおける開始アドレス「1536」からサイズ「512」の範囲に、「データC10」を設定する。
ここで、保存対象データ703に含まれる記憶データに、メモリ部102におけるアドレスが含まれている場合、係るアドレスを基に再現用データを生成してもよい。
上記説明した図16に例示する構成においては、再現部1605は、解析装置1604の一部として設けられているが、本実施形態はこれには限定されない。本実施形態における再現部1605は、例えば、図17に例示するように、独立した再現装置1701として構成してもよい。
また、図18に例示するように、上記第1の実施形態における解析装置104の各構成要素が、再生装置の構成要素を兼ねるように構成してもよい。この場合、例えば、第1の実施形態におけるディスパッチャ105に相当するディスパッチャ1801は、プレーヤ1608の機能を兼ね備えるよう構成されてもよい。また、例えば、第1の実施形態におけるデータライタ107に相当するデータライタ1802は、データリーダ1609の機能を兼ね備えるよう構成されてもよい。また、例えば、第1の実施形態における記録管理部108に相当する記録管理部1803は、再現指示部1607の機能を兼ね備えるよう構成されてもよい。
次に、上記のように構成された本実施形態における解析装置の動作について説明する。以下においては、特に再現部1605の動作について、図19に例示するフローチャートを参照して説明する。
まず、図示しないユーザや管理者等が再現指示部1607に対して、特定のタイミングにおける解析対象装置100の演算状態を、再現対象装置1600において再現するよう要求する。
再現指示部1607は、当該要求に応じて、プレーヤ1608に対して解析対象装置100における特定の演算状態の再現を指示する再現要求を送信する(ステップS1901)。
次に、プレーヤ1608が、データリーダ1609に対して、特定のタイミングにおける再現用データを要求する(ステップS1902)。この場合、プレーヤ1608は、データリーダ1609に対して、再現される演算状態を特定可能な情報(特定のタイミングを表す時刻の情報や、ラベル情報等)をデータリーダ1609に送信する。
ステップS1902における要求を受信したデータリーダ1609は、解析ストレージ110から、保存データを高速リポジトリ109に読み込む(ステップS1903)。この場合、データリーダ1609は、ステップS1902において指定された特定のタイミングに最も近い時刻に取得あるいは保存された保存データを高速リポジトリ109に読み込む。なお、データリーダ1609は、特定のラベルが付与された保存データを、高速リポジトリ109に読み込む。
次に、データリーダ1609は、高速リポジトリ109に読み込んだ保存データに基づいて再現用データを生成し、生成した再現用データをプレーヤに送信する(ステップS1904)。保存データからの再現用データを生成する具体的な方法は、上記説明した通りである。
次に、プレーヤ1608は、上記ステップS1904においてデータリーダ1609から受信した再現用データを、演算部1601、および、メモリ部1602に展開(設定)する(ステップS1905)。
なお、本実施形態における再現部1605は、上記ステップS1901乃至ステップS1905を連続して繰り返してもよい。この場合、特定のタイミング以降の保存データを連続的に高速リポジトリが読み出されることになり、再現対象装置1600において、解析対象装置100の動作が連続的に再現される。
上記のように構成された本実施形態における再現部1605は、高速リポジトリ109あるいは解析ストレージ110に保存された保存データに基づいて、特定のタイミングにおける解析対象装置100の演算状態を、再現対象装置1600に再現可能である。これにより、例えば、インシデント発生等の特定のタイミングにおける解析対象装置100の演算処理の状態を、他の再現対象装置1600において解析することが可能である。
また、再現部1605は、再現対象装置1600における演算部1601の動作を遅らせる(動作クロックを低くする)ことが可能である。これによって、再現対象装置1600に再現した演算状態を解析することが容易になる。
また、高速リポジトリ109、及び、解析ストレージ110には、上記第1の実施形態における解析装置104と同様の構成を有する解析部1606によって、保存データが保存される。これより、本実施形態における解析装置は、上記第1の実施形態と同様の効果を奏する。
なお、上記の説明においては、再現指示部1607がプレーヤ1608に対して、再現要求を通知しているが、本実施形態はこれには限定されない。例えば、再現指示部1607は、データリーダ1609に対して再現要求を通知してもよい。データリーダ1609は、係る再現要求に基づいて再現データを生成し、プレーヤ1608に当該再現データを通知してもよい。即ち、再現要求を、再現部1605におけるどの構成要素が解釈するかは適宜選択してよい。
<第2の実施形態の変形例>
次に、上記説明した第2の実施形態に対する変形例について説明する。本変形例は、上記第2の実施形態に対して、再現対象装置1600が複数台存在する点において異なる。本変形例におけるその他の構成は、上記第2の実施形態と同様としてよい。本変形例においては、図20に例示するように、プレーヤ1608が複数存在する。プレーヤ1608自体の構成は、上記第2の実施形態と同様としてよいので、詳細な説明は省略する。なお、図20においては、説明の為、図16に例示する解析装置2001の一部の構成要素が図示されていない。図20において図示されない構成要素は、図16に例示した構成要素と同様としてよいので、詳細な説明は省略する。
本実施形態におけるデータリーダ2003は、複数のプレーヤ1608からの要求に応じて、それぞれのプレーヤ1608に対して、再現用データを提供する。この場合、データリーダ2003は、複数のプレーヤ1608に同じ再現用データを提供してもよく、異なる再現用データを提供してもよい。
具体的には、図19に例示するフローチャートにおいて、ステップS1902が複数のプレーヤ1608において実行される。データリーダ2003には、複数のプレーヤ1608から再現用データの要求が通知される。
データリーダ2003は、図19に例示するステップS1904において、再現用データを複数のプレーヤ1608にそれぞれ送信する。
その他の処理は、上記第1の実施形態と同様としてよいので、詳細な説明は省略する。
上記のように構成された本変形例における再現部2002によれば、解析対象装置100における特定の演算状態を、複数の再現対象装置1600に再現することが可能である。なぜならば、複数の再現対象装置1600毎にプレーヤ1608が設けられ、複数のプレーヤ1608に対して、データリーダ2003が再現用データを送信するからである。
このため、本変形例による再現部2002によれば、同時に複数の再現対象装置1600を用いて解析対象装置100の演算処理の状態を解析することが可能であり、解析処理に要する時間を短縮可能である。
なお、図20に例示する構成においては、2台の再現対象装置1600が例示されているが、本実施形態はこれには限定されず、任意の台数の再現対象装置1600を採用してよい。
<第3の実施形態>
次に、本願発明の第3の実施形態について説明する。
まず、図21を参照して、本実施形態における解析装置2104について説明する。図21は本実施形態における解析装置2104の機能的な構成を例示する、ブロック図である。
解析対象システム2100は、第1の処理部2101と、当該第1の処理部と通信可能に接続された第2の処理部2102とを有する。なお、第1の処理部2101と、第2の処理部2102との間は、任意の通信バス2103により通信可能に接続されてもよい。
第1の処理部2101は、任意の処理を実行し、当該処理の状態を第1の状態情報2101aとして記憶する。なお、本実施形態において、第1の状態情報2101aは、第1の処理部2101の外部から取得または設定可能である。
第2の処理部2102は、任意の処理を実行し、当該処理の状態を第2の状態情報2102aとして記憶する。なお、本実施形態において、第2の状態情報2102aは、第2の処理部2102の外部から取得または設定可能である。
係る第1の処理部、及び、第2の処理部は、例えば、任意の通信回線(通信バス)を介して通信可能に接続された任意のデバイスであってもよい。より具体的には、第1の処理部、及び、第2の処理部は、例えば、PCI(Peripheral Component Interconnect)、SCSI(Small Computer System Interface)、USB(Universal Serial Bus)等の通信バスにより接続された、各種デバイスであってもよい。また、第1の処理部、及び、第2の処理部は、例えば、無線あるいは有線の通信ネットワークにより通信可能に接続された、通信機能を有するデバイスであってもよい。係る通信ネットワークとしては、例えばLAN(Local Area Network)や、Internetなどが採用されてもよい。
本実施形態における解析装置2104は、上記のように構成された解析対象システム2100の状態を解析する解析装置である。解析装置2104は、ディスパッチャ2105と、データマッパ2106と、データライタ2107と、採取ポリシ2108と、第1の記憶装置2109とを備える。以下、それぞれの構成要素について説明する。
本実施形態におけるディスパッチャ2105は、上記第1の処理部2101と、第2の処理部2102と通信可能に接続され、当該第1の処理部と、当該第2の処理部との間で送受信される対象であるデータ(送受信対象データ)を取得する。
ディスパッチャ2105は、通信バス2103を介して、当該送受信対象データを取得してもよい。また、ディスパッチャ2105は、第1の処理部2101、及び、第2の処理部2102から、直接送受信対象データを取得してもよい。
具体的には、ディスパッチャ2105は、例えば、PCIバス等の通信バスに接続された各種デバイスである第1の処理部2101と、第2の処理部2102との間で送受信される各種データやコマンドを取得してもよい。また、ディスパッチャ2105は、例えば、任意の通信ネットワークに接続されたデバイスである第1の処理部2101と、第2の処理部2102との間で送受信される各種データを取得してもよい。
ディスパッチャ2105は、上記取得したデータに基づいて、解析対象システム2100の状態を再現可能なデータである、採取対象データを生成する。ここで、本実施形態における解析対象システム2100の状態は、第1の状態情報2101a、及び、第2の状態情報2102aの少なくとも何れかを用いて表すことが可能であるとする。即ち、ディスパッチャ2105が生成する採取対象データは、特定の時点における第1の状態情報2101a、及び、第2の状態情報2102aの少なくともいずれかを含む。
次に、本実施形態におけるデータマッパ2106について説明する。データマッパ2106は、上記ディスパッチャ2105において生成された上記採取対象データに含まれる1以上の領域に対して、当該領域を識別可能なタグ情報を付与する。
データマッパ2106は、例えば、上記第1の実施形態において説明したデータマッパ106と同様に、採取対象データに含まれる第1の状態情報2101aを複数の領域に分類する。具体的には、データマッパ2106は、第1の状態情報2101aが第1の処理部2101において保存される記憶領域の範囲に基づいて、上記採取対象データに含まれる第1の状態情報2101aを複数の領域に分類する。そして、データマッパ2106は、当該分類された各領域ごとにタグ情報を付与する。同様に、データマッパ2106は、例えば、採取対象データに含まれる第2の状態情報2102aが、第2の処理部2102において保存される記憶領域の範囲に基づいて、上記採取対象データに含まれる第2の状態情報2102aを複数の領域に分類する。そして、データマッパ2106は、当該分類された各領域ごとにタグ情報を付与する。
また、上記に限定されず、データマッパ2106は、例えば、採取対象データの生成元である送受信対象データの種類や属性に応じて、上記採取対象データに含まれる特定の領域にタグを付与してもよい。具体的には、データマッパ2106は、例えば、送受信対象データがPCIバスにおいて送受信されるデータである場合、当該データに含まれるPCIバスにおけるコマンドの種類に応じて、上記採取対象データに含まれる特定の領域にタグ情報を付与してもよい。
また、送受信対象データが通信ネットワークにおいて送受信される通信パケットである場合、通信パケットの宛先情報に応じて、上記採取対象データに含まれる特定の領域にタグ情報を付与してもよい。なお、タグ情報が付与される特定の領域は、送受信対象データの種類に応じて、予め定められてもよい。
次に、本実施形態における採取ポリシ2108について説明する。採取ポリシ2108は、第1のポリシを有する。係る第1のポリシは、上記タグ情報に基づいて、上記タグ情報が付与された上記採取対象データを所定の記憶容量を有する第1の記憶装置2109に保存する手順を規定するポリシである。採取ポリシ2108は、データライタ2107から参照可能である。
採取ポリシ2108には、特定のタグ情報が付与された採取対象データを多く保存し、他のタグ情報が付与された採取対象データを少なく保存するような保存方法が規定されてもよい。
次に、本実施形態におけるデータライタ2107について説明する。データライタ2107は、第1のポリシに基づいて、データマッパ2106により上記タグ情報が付与された1以上の領域を、第1の記憶装置2109に保存する。
上記のように構成された採取ポリシ2108及びデータライタ2107により、解析装置2104は、例えば、採取対象データにおける特定の領域だけを記録することが可能である。また、解析装置2104は、例えば、採取対象データにおける領域毎に、保存方法を変更可能である。即ち、これにより、解析装置2104は、第1の記憶装置2109に保存される保存データのサイズや保存方法を調整することが可能である。また解析装置2104は、第1の記憶装置2109の記憶容量を節約して、より多くの保存データを蓄積することが可能である。
次に、本実施形態における第1の記憶装置2109について説明する。第1の記憶装置2109は、所定の記憶容量を有する記憶装置である。
以上のように構成された本実施形態における解析装置2104は、第1の処理部2101及び第2の処理部2102との間で送受信される対象である送受信対象データから、解析対象システム2100の状態を表す採取対象データを生成する。そして、解析装置2104は、当該採取対象データを保存する方法を規定した採取ポリシ2108に基づいて、当該採取対象データの少なくとも一部を、所定の容量を有する第1の記憶装置2109に記憶する。
解析装置2104は、採取対象データの領域毎に保存方法を変更することが可能であることから、所定の記憶容量を有する第1の記憶装置2109の記憶領域を有効に利用可能である。即ち、本実施形態における解析装置2104は、限られた記憶容量の記憶装置を用いて、解析対象システム2100の状態を再現可能なデータを、より多く保存することが可能である。
なお、本実施形態における解析装置2104は、上記各実施形態における解析装置(104、1604、2001)と組み合わせることも可能である。即ち、上記各実施形態における解析装置(104、1604、2001)により、解析対象装置(解析対象システム)を構成する演算部及びメモリ部における演算処理の状態を再現可能なデータが保存される。これに加えて、本実施形態における解析装置2104により、解析対象装置(解析対象システム)を構成する、他の構成要素(演算部、メモリ部以外のデバイス等)の状態を再現可能なデータが保存される。
これにより、例えば、上記各実施形態における解析装置が、解析対象装置(解析対象システム)における演算処理の状態を再現した際に、当該解析対象装置における他の構成要素の状態を併せて再現可能である。この場合、解析対象装置における演算部、メモリ部、及び他の構成要素の状態が再現されることから、解析対象装置の演算状態がより正確に再現可能である。
<第4の実施形態>
次に、本願発明の第4の実施形態について説明する。
まず、図22を参照して、本実施形態における解析対象装置2200、及び、解析装置2204について説明する。
解析対象装置2200は、演算部2201と、当該演算部と通信可能に接続されたメモリ部2202とを有する。解析対象装置は、演算部2201と、メモリ部2202とを用いて任意の演算処理を実行する。
解析装置2204は、ディスパッチャ2205と、データマッパ2206と、データライタ2207と、第1のポリシ2208を保持する保持部と、第1の記憶装置2209とを備える。以下、それぞれの構成要素について説明する。
まず、本実施形態におけるディスパッチャ2205は、上記解析対象装置2200に通信可能に接続される。この場合、ディスパッチャ2205は、上記演算部2201と、上記メモリ部2202とに通信可能に接続されてもよい。ディスパッチャ2205は、上記演算部2201と、上記メモリ部2202との間で送受信される対象であるデータ(「送受信対象データ」)に基づいて、上記解析対象装置2200における演算処理の状態の少なくとも一部を再現可能なデータである採取対象データを生成する。
なお、本実施形態におけるディスパッチャ2205は、上記第1の実施形態におけるディスパッチャ105と同様としてもよい。
次に、本実施形態におけるデータマッパ2206について説明する。データマッパ2206は、上記ディスパッチャ2205において生成された上記採取対象データに含まれる1以上の領域に対して、当該領域を識別するためのタグ情報を付与する。なお、データマッパ2206は、ディスパッチャ2205から上記採取対象データを取得してもよい。また、ディスパッチャ2205が、上記採取対象データをデータマッパ2206に設定してもよい。
本実施形態におけるデータマッパ2206は、例えば、上記第1の実施形態におけるデータマッパ106と同様としてもよい。
次に、本実施形態における第1のポリシ2208について説明する。第1のポリシ2208は、タグ情報を用いて、所定の記憶容量を有する第1の記憶装置2209に採取対象データを保存する手順を規定するポリシである。第1のポリシ2208は、データライタ2207から参照可能であってもよい。
本実施形態における第1のポリシ2208は、例えば、上記第1の実施形態における採取ポリシ107aと同様としてもよい。
次に、本実施形態におけるデータライタ2207について説明する。データライタ2207は、第1のポリシに基づいて、上記1以上の領域を、第1の記憶装置2209に保存する。データライタ2207は、上記データマッパ2206から採取対象データを取得してもよい。また、上記データマッパ2206が、データライタ2207に対して、採取対象データを設定してもよい。
本実施形態におけるデータライタ2207は、例えば、上記第1の実施形態におけるデータライタ107と同様としてもよい。
次に、本実施形態における第1の記憶装置2209について説明する。第1の記憶装置2209は、所定の記憶容量を有する記憶装置である。第1の記憶装置2209は、上記データライタ2207から保存対象のデータを取得してもよい。また、上記データライタ2207が、第1の記憶装置2209に対して、保存対象のデータを設定(書き込み)してもよい。
本実施形態における第1の記憶装置2209は、例えば、上記第1の実施形態における高速リポジトリ109と同様としてもよい。
なお、本実施形態において、第1のポリシ2208、及び、第1の記憶装置2209は、解析装置2204と通信可能に接続された、任意の外部の装置により提供されてもよい。即ち、第1のポリシ2208、及び、第1の記憶装置2209をどこに配置するかは、適宜定めてよい。
上記のように構成された本実施形態における解析装置2204は、演算部2201及びメモリ部2202との間で送受信される対象である送受信対象データから、解析対象装置2200の状態を表す採取対象データを生成する。そして、解析装置2204は、当該採取対象データを保存する方法を規定した第1のポリシ2208に基づいて、当該採取対象データに含まれる1以上の領域を、所定の容量を有する第1の記憶装置2209に記憶(保存)する。
本実施形態における解析装置2204は、第1のポリシ2208に基づいて、採取対象データに含まれる領域毎に保存方法を変更することが可能である。これより、解析装置2204は、所定の記憶容量を有する第1の記憶装置2209の記憶領域を有効に利用可能である。即ち、本実施形態における解析装置2204は、限られた記憶容量の記憶装置を用いて、解析対象装置2200の状態を再現可能なデータを、より多く保存することが可能である。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
以下の説明において、解析装置(符号104、符号1604、符号2104、及び、符号2204)をまとめて、単に「解析装置」と称する場合がある。また、当該データ解析装置の各構成要素をまとめて、単に「解析装置の構成要素」と称する場合がある。係る解析装置の構成要素には、例えば、ディスパッチャ(符号105、符号1801、符号2105、符号2205等)が含まれてもよい。係る解析装置の構成要素には、例えば、データマッパ(符号106、符号2106、符号2206等)が含まれてもよい。係る解析装置の構成要素には、例えば、データライタ(符号107、符号1301、符号1802、符号2107、符号2207等)が含まれてもよい。係る解析装置の構成要素には、例えば、採取ポリシ(符号107a、符号1301a、符号2108)、あるいは、第1のポリシ(符号2208等)が含まれてもよい。係る解析装置の構成要素には、例えば、高速リポジトリあるいは第1の記憶装置(符号109、符号2109、符号2209)が含まれてもよい。係る解析装置の構成要素には、例えば、解析ストレージ(符号110)、プレーヤ(符号1608)、データリーダ(符号1609、符号2003)、再現指示部(符号1607)が含まれてもよい。
上記各実施形態において説明した解析装置は、専用のハードウェア装置により構成されてもよい。その場合、上記各図に示した各構成要素は、一部または全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現されてもよい。
例えば、各構成要素がハードウェアにより実現される場合、それらの構成要素の機能を提供可能な集積回路は、SoC(System−on−a−chip)等により実装されてもよい。この場合、例えば、各構成要素が保持するデータは、SoCとして統合されたRAM領域やフラッシュメモリ領域に記憶されてもよい。
また、この場合、各構成要素を接続する通信回線としては、周知のの通信バスが採用されてもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素の間は、ピアツーピアで接続されてもよい。
また、上述した解析装置は、図23に例示するようなハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。
図23における演算装置2301は、汎用のCPU(Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置2301は、例えば後述する不揮発性記憶装置2303に記憶された各種ソフトウェア・プログラムを記憶装置2302に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。
記憶装置2302は、演算装置2301から参照可能な、RAM(Random Access Memory)等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置2302は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置2303は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置2303は、各種ソフトウェア・プログラムやデータ等を記録(保存)してもよい。
ネットワークインタフェース2306は、通信ネットワークに接続するインタフェース装置である。ネットワークインタフェース2306としては、例えば、有線及び無線のLAN(Local Area Network)接続用インタフェース装置等が採用されてもよい。
例えば、上記各実施形態における解析装置は、図示しない当該解析装置のユーザが使用する監視装置(符号112)、あるいは、センサ(符号111)と、上記ネットワークインタフェース2306を介して通信可能に接続されていてもよい。
外部記憶装置2304は、例えば、後述する外部記憶媒体2305に対するデータの読み込みや書き込みを処理する装置である。
外部記憶媒体2305は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記憶媒体である。
入出力インタフェース2307は、外部装置との間の入出力を制御する装置である。
例えば、上記各実施形態においては、センサ111からの入力は、入出力インタフェース2307を介して、記録管理部(符号108等)に入力されてもよい。
上述した各実施形態を例に説明した本発明は、例えば、図23に例示したハードウェア装置により解析装置を構成し、係る装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより実現されてもよい。この場合、係る装置に対して供給したソフトウェア・プログラムを、演算装置2301が実行することによって、本願発明が達成されてもよい。
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。但し、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
例えば、図1、図2、図12、図13、図16、図17、図18、図20、図21、及び、図22に例示した各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置2303に記憶されてもよい。そして、演算装置2301が、それぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置2302に読み出してもよい。
また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法を用いて、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールの間を、相互に通信可能に接続することが可能である。
更に、上記各ソフトウェア・プログラムは外部記憶媒体2305に記録されてもよい。上記解析装置は、当該解析装置等の出荷段階、あるいは運用段階等において、外部記憶装置2304を介して、当該ソフトウェア・プログラムが不揮発性記憶装置2303に格納されるよう構成されてもよい。
また、上記各実施形態において説明した、マッピングデータ(符号106a)、採取ポリシ(符号107a、1301a、2108)、及び、第1のポリシ(符号2208等)は、適切なファイルシステムや、データベース等を用いて、記憶装置2302や、不揮発性記憶装置2303に記憶されてもよい。
なお、上記の場合において、上記解析装置への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更または改良を加えることが可能であることは明らかである。そのような場合、係る変更または改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。また、上記説明した各実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。
本発明は、例えば、情報処理装置の動作状態を解析する解析処理装置等に適用可能である。より具体的には、例えば、情報処理装置における不正プログラムの実行状態を解析する、ライブフォレンジック手法を実現可能な解析装置等に適用可能である。
この出願は、2014年6月26日に出願された日本出願特願2014−131309を基礎とする優先権を主張し、その開示の全てをここに取り込む。
100 解析対象装置
101 演算部
102 メモリ部
103 通信バス
104 解析装置
105 ディスパッチャ
106 データマッパ
106a マッピングデータ
107 データライタ
107a 採取ポリシ
108 記録管理部
109 高速リポジトリ
110 解析ストレージ
111 センサ
112 監視装置
200 VMM
1201 マップジェネレータ
1301 データライタ
1301a 採取ポリシ
1600 再現対象装置
1601 演算部
1602 メモリ部
1603 通信バス
1604 解析装置
1605 再現部
1607 再現指示部
1608 プレーヤ
1609 データリーダ
1701 再現装置
1801 ディスパッチャ
1802 データライタ
1803 記録管理部
2001 解析装置
2002 再現部
2003 データリーダ
2100 解析対象システム
2101 第1の処理部
2102 第2の処理部
2104 解析装置
2105 ディスパッチャ
2106 データマッパ
2107 データライタ
2108 採取ポリシ
2109 第1の記憶装置
2200 解析対象装置
2201 演算部
2202 メモリ部
2204 解析装置
2205 ディスパッチャ
2206 データマッパ
2207 データライタ
2208 第1のポリシ
2209 第1の記憶装置
2301 演算装置
2302 記憶装置
2303 不揮発性記憶装置
2304 外部記憶装置
2305 外部記憶媒体
2306 ネットワークインタフェース
2307 入出力インタフェース
これより、本実施形態におけるプレーヤ1608は、再現用データが元の採取対象データの一部のみを再現可能である場合にも、データリーダ1609において再現された採取対象データを演算部1601及びメモリ部1602に展開してよい。
<第2の実施形態の変形例>
次に、上記説明した第2の実施形態に対する変形例について説明する。本変形例は、上記第2の実施形態に対して、再現対象装置1600が複数台存在する点において異なる。本変形例におけるその他の構成は、上記第2の実施形態と同様としてよい。本変形例においては、図20に例示するように、プレーヤ1608が複数存在する。プレーヤ1608自体の構成は、上記第2の実施形態と同様としてよいので、詳細な説明は省略する。なお、図20においては、説明の為、図16に例示する解析装置1604の一部の構成要素が図示されていない。図20において図示されない構成要素は、図16に例示した構成要素と同様としてよいので、詳細な説明は省略する。

Claims (23)

  1. 演算部と、当該演算部に通信可能に接続されたメモリ部とを用いて演算処理を実行する解析対象装置と通信可能に接続され、前記演算部と、前記メモリ部との間で送受信される対象であるデータに基づいて、前記解析対象装置における演算処理の状態の少なくとも一部を再現するためのデータである採取対象データを生成するディスパッチャと、
    前記採取対象データに含まれる1以上の領域に対して、当該領域を識別するための情報であるタグ情報を付与するデータマッパと、
    前記タグ情報を用いて前記採取対象データを所定の記憶容量を有する第1の記憶装置に保存する手順を規定する第1のポリシに基づいて、前記1以上の領域を、前記第1の記憶装置に保存するデータライタと、を備える解析装置。
  2. 前記採取対象データは、当該採取対象データの生成元となった前記データが取得された際の、前記演算部の演算状態を表すデータ、及び、前記メモリ部に記憶されているデータの少なくとも何れかを含む、請求項1に記載の解析装置。
  3. 前記データライタは、前記タグ情報と、当該タグ情報が付与された前記1以上の領域に含まれるデータである保存対象データと、記録タイミング情報との対応関係を示すデータである保存データを前記第1の記憶装置に保存し、
    前記記録タイミング情報は、前記保存データの記録に関するタイミングを表す情報である、請求項1または請求項2に記載の解析装置。
  4. 前記第1のポリシには、1以上の前記タグ情報毎に、当該タグ情報が関連付けされた前記保存データが前記第1の記憶装置において保存される記憶領域を特定するための情報と、当該記憶領域に前記保存データを保存する保存方法を表す情報と、が設定され、
    前記データライタは、当該第1のポリシに基づいて、前記保存データを前記第1の記憶装置に保存する、請求項3に記載の解析装置。
  5. 前記保存データの保存方法は、前記保存データが前記第1の記憶装置において保存される領域のうち、新たな前記保存データが保存される領域を特定可能な方法である、請求項4に記載の解析装置。
  6. 前記データマッパは、
    前記採取対象データが分類された前記1以上の領域を特定するための情報と、当該領域を識別するための前記タグ情報との対応関係を示すデータであるマッピングデータに基づいて、
    前記採取対象データに含まれる前記1以上の領域について、前記タグ情報を付与する、請求項1乃至請求項5のいずれかに記載の解析装置。
  7. 前記マッピングデータは、前記採取対象データに含まれる前記メモリ部に記憶されるデータである記憶データが前記メモリ部において記憶される領域に基づいて、当該採取対象データが分類された1以上の領域を特定するメモリ領域特定情報と、当該領域を識別するための前記タグ情報との対応関係を示すデータであり、
    前記データマッパは、前記マッピングデータに基づいて、前記採取対象データに含まれる1以上の領域について前記タグ情報を付与する、請求項6に記載の解析装置。
  8. 前記解析対象装置のアーキテクチャを表す情報に基づいて、前記採取対象データに含まれる記憶データを複数の領域に分類し、
    当該分類された複数の領域毎に、当該分類された領域を特定するための前記メモリ領域特定情報と、当該メモリ領域特定情報によって特定される領域を識別するための前記タグ情報との対応関係を示すデータである前記マッピングデータを生成するマップジェネレータを更に備える、請求項6または請求項7に記載の解析装置。
  9. 前記第1の記憶装置よりも記憶容量が大きい記憶装置である第2の記憶装置を更に備え、
    前記データライタは、前記第1の記憶装置に保存された前記保存データを前記第2の記憶装置に保存する手順を規定する第2のポリシに基づいて、前記第1の記憶装置に保存した前記保存データを、前記第2の記憶装置に保存する、請求項6乃至請求項8のいずれかに記載の解析装置。
  10. 前記第2のポリシには、
    前記第1の記憶装置に保存された前記保存データを前記第2の記憶装置に保存するか否かを特定するための保存要否情報と、
    少なくとも、前記第1の記憶装置に保存された前記保存データを前記第2の記憶装置に保存する契機を特定するための蓄積方法情報とが設定され、
    前記データライタは、
    前記第2のポリシに設定された前記保存要否情報に基づいて、前記第1の記憶装置に保存された前記保存データを前記第2の記憶装置に保存する必要があると判定した場合、
    前記蓄積方法情報に基づいて特定の前記契機を検知することにより、前記第1の記憶装置に保存された前記保存データの少なくとも一部を、前記第2の記憶装置に保存する、請求項9に記載の解析装置。
  11. 前記データライタは、
    前記第1の記憶装置に既に保存されている前記保存データを前記第1の記憶装置から削除する場合に、前記第1のポリシ又は前記第2のポリシに基づいて、当該削除される前記保存データを前記第2の記憶装置に保存するか否かを判定し、
    当該判定の結果に基づいて、当該削除される前記保存データを前記第2の記憶装置に保存する、請求項9または請求項10に記載の解析装置。
  12. 前記第1の記憶装置に保存された前記保存データを前記第2の記憶装置に保存する要求を前記データライタに通知する記録管理手段を更に備え、
    前記データライタは、前記記録管理手段から受け付けた前記要求に応じて、前記第1の記憶装置に保存された前記保存データを、前記第2の記憶装置に保存する、請求項9乃至請求項11のいずれかに記載の解析装置。
  13. 前記記録管理手段は、
    前記解析対象装置における演算処理に影響を及ぼす可能性を有する所定の事象を検出するためのセンサと通信可能に接続され、
    前記センサから通知された前記所定の事象に対する検出情報に基づいて、前記要求を前記データライタに通知する、請求項12に記載の解析装置。
  14. 前記解析対象装置が複数存在する場合において、
    少なくとも前記解析対象装置の台数と同じ数の前記ディスパッチャと、少なくとも前記ディスパッチャと同じ数の前記データマッパと、を備え、
    複数の前記解析装置のそれぞれに対して、相異なる前記ディスパッチャが通信可能に接続され、
    相異なる前記データマッパが、それぞれ相異なる前記ディスパッチャにおいて生成された前記採取対象データに含まれる1以上の領域に対して、当該領域を識別するためのタグ情報を付与し、
    前記第1のポリシには、1以上の前記タグ情報毎に、相異なる前記ディスパッチャを識別するための情報と、当該タグ情報が関連付けされた前記保存データが前記第1の記憶装置において保存される記憶領域を特定するための情報と、その情報により特定される記憶領域に前記保存データを保存する保存方法を表す情報と、が関連付けて設定され、
    前記データライタは、前記第1のポリシに基づいて、前記採取対象データに含まれる前記1以上の領域を前記保存データとして前記第1の記憶装置に保存する、請求項3乃至請求項13に記載の解析装置。
  15. 前記第1の記憶装置に保存された1以上の前記保存データを抽出し、
    前記抽出した1以上の前記保存データのそれぞれについて、当該前記保存データに設定された前記タグ情報と、前記保存対象データとを抽出し、
    前記マッピングデータを参照して、当該抽出した前記タグ情報に対応付けられた領域に、当該抽出した前記保存対象データを配置した再現用データを生成する
    データリーダと、
    演算部と、当該演算部に通信可能に接続されたメモリ部とを用いて演算処理を実行する再現対象装置に通信可能に接続され、
    前記データリーダにおいて生成された前記再現用データに基づいて、
    当該再現用データに前記解析対象装置における前記メモリ部に記憶されていたデータが含まれる場合には、当該データを前記再現対象装置におけるメモリ部に展開し、
    当該再現用データに前記解析対象装置における前記演算部の演算状態を表すデータが含まれる場合には、当該演算状態を表すデータを前記再現対象装置における演算部に展開する、
    プレーヤと、を更に備える請求項6乃至請求項14のいずれかに記載の解析装置。
  16. 前記データリーダは、前記第1の記憶装置を参照し、当該第1の記憶装置に保存された保存データのうち、当該保存データにおける前記記録タイミング情報に、同じタイミングを表す情報が設定された1以上の前記保存データを読み出す、請求項15に記載の解析装置。
  17. 前記プレーヤは、前記再現用データを、前記再現対象装置における演算部、または、前記再現対象装置におけるメモリ部に展開する際に、当該再現対象装置における演算部の処理速度を低減する、請求項16に記載の解析装置。
  18. 前記再現対象装置が複数存在する場合において、
    複数の前記再現対象装置と同じ数の前記プレーヤを備え、
    複数の前記再現対象装置に含まれるそれぞれの前記再現対象装置に対して、複数の前記プレーヤのうち相異なる前記プレーヤが通信可能に接続され、
    複数の前記プレーヤが、それぞれ前記データリーダにおいて生成された前記再現用データに基づいて、
    当該再現用データに前記解析対象装置における前記メモリ部に記憶されていたデータが含まれる場合には、当該データを、当該プレーヤが接続された前記再現対象装置におけるメモリ部に展開し、
    当該再現用データに前記解析対象装置における前記演算部の演算状態を表すデータが含まれる場合には、当該演算状態を、当該プレーヤが接続された表すデータを前記再現対象装置における演算部に展開する、請求項15乃至請求項17のいずれかに記載の解析装置。
  19. 前記ディスパッチャは、設定されたサンプリング周期に基づいて、前記採取対象データを生成する、請求項1乃至請求項18のいずれかに記載の解析装置。
  20. 前記保存データの保存方法は、
    前記保存データが前記第1の記憶装置において保存される領域に対する、新たな前記保存データの保存の可否を判定可能な方法である請求項4に記載の解析装置。
  21. 任意の処理を実行し、当該処理の状態を第1の状態情報として記憶する第1の処理部と、前記第1の処理部と通信可能に接続され、任意の処理を実行し、当該処理の状態を第2の状態情報として記憶する第2の処理部とを備える解析対象システムと通信可能に接続され、前記第1の処理部と、前記第2の処理部との間で送受信される対象であるデータを取得し、当該取得したデータに基づいて、前記第1の状態情報、及び、前記第2の状態情報の少なくともいずれかを再現することにより前記解析対象システムの状態を再現するための採取対象データを生成するディスパッチャと
    前記採取対象データに含まれる1以上の領域に対して、当該領域を識別するためのタグ情報を付与するデータマッパと、
    前記タグ情報を用いて前記採取対象データを所定の記憶容量を有する第1の記憶装置に保存する手順を規定した第1のポリシに基づいて、前記1以上の領域を、前記第1の記憶装置に保存するデータライタと、を備える、解析装置。
  22. 情報処理装置が、
    演算部と当該演算部に通信可能に接続されたメモリ部とを用いて演算処理を実行する解析対象装置における前記演算部と、前記メモリ部との間で送受信される対象であるデータに基づいて、前記解析対象装置における演算処理の状態の少なくとも一部を再現するためのデータである採取対象データを生成し、
    前記採取対象データに含まれる1以上の領域について、当該領域を識別するためのタグ情報を付与し、
    前記タグ情報を用いて前記採取対象データを所定の記憶容量を有する記憶装置である第1の記憶装置に保存する手順を規定する第1のポリシに基づいて、前記1以上の領域を、前記第1の記憶装置に保存する、解析方法。
  23. 演算部と、当該演算部に通信可能に接続されたメモリ部とを用いて演算処理を実行する解析対象装置における演算処理の状態を解析するコンピュータに、
    前記解析対象装置における前記演算部と、前記メモリ部との間で送受信される対象であるデータに基づいて前記解析対象装置における演算処理の状態の少なくとも一部を再現するためのデータである採取対象データを生成する処理と、
    前記採取対象データに含まれる1以上の領域について、当該領域を識別するためのタグ情報を付与する処理と、
    前記タグ情報を用いて前記採取対象データを所定の記憶容量を有する記憶装置である第1の記憶装置に保存する手順を規定する第1のポリシに基づいて、前記1以上の領域を、前記第1の記憶装置に保存する処理と、を実行させるコンピュータ・プログラムが記録された記憶媒体。
JP2016529083A 2014-06-26 2015-06-24 解析装置、解析方法、および、解析プログラム Active JP6213676B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014131309 2014-06-26
JP2014131309 2014-06-26
PCT/JP2015/003179 WO2015198600A1 (ja) 2014-06-26 2015-06-24 解析装置、解析方法、および、解析プログラムが記録された記憶媒体

Publications (2)

Publication Number Publication Date
JPWO2015198600A1 true JPWO2015198600A1 (ja) 2017-05-25
JP6213676B2 JP6213676B2 (ja) 2017-10-18

Family

ID=54937707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016529083A Active JP6213676B2 (ja) 2014-06-26 2015-06-24 解析装置、解析方法、および、解析プログラム

Country Status (5)

Country Link
US (2) US10528730B2 (ja)
EP (2) EP3163449B1 (ja)
JP (1) JP6213676B2 (ja)
SG (1) SG11201610809YA (ja)
WO (1) WO2015198600A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101997695B1 (ko) * 2017-08-21 2019-07-09 국방과학연구소 라이브 포렌식 기반 공격 탐지 장치 및 방법
US20190362075A1 (en) * 2018-05-22 2019-11-28 Fortinet, Inc. Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween
US11036856B2 (en) 2018-09-16 2021-06-15 Fortinet, Inc. Natively mounting storage for inspection and sandboxing in the cloud
US11086991B2 (en) * 2019-08-07 2021-08-10 Advanced New Technologies Co., Ltd. Method and system for active risk control based on intelligent interaction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63298542A (ja) * 1987-05-29 1988-12-06 Nec Corp システム異常終了時の解析情報収集方式
JPH01320547A (ja) * 1988-06-22 1989-12-26 Nec Corp プログラム実行情報の収集方式
JPH04346139A (ja) * 1991-05-24 1992-12-02 Nec Corp メモリダンプ方式

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076061A (ja) 1993-06-21 1995-01-10 Nippon Telegr & Teleph Corp <Ntt> 計算機の動作解析装置
US5915262A (en) * 1996-07-22 1999-06-22 Advanced Micro Devices, Inc. Cache system and method using tagged cache lines for matching cache strategy to I/O application
JP2006178521A (ja) 2004-12-20 2006-07-06 Ubic:Kk デジタル・フォレンジックの方法及びフォレンジックitセキュリティシステム
JP4699893B2 (ja) 2005-12-19 2011-06-15 三菱スペース・ソフトウエア株式会社 パケット解析システム、パケット解析プログラム、パケット解析方法及びパケット取得装置
US20140373144A9 (en) 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
JP2008191796A (ja) 2007-02-02 2008-08-21 Mitsubishi Electric Corp 解析装置及び解析方法及びプログラム
US7693877B1 (en) * 2007-03-23 2010-04-06 Network Appliance, Inc. Automated information lifecycle management system for network data storage
US20100125554A1 (en) 2008-11-18 2010-05-20 Unisys Corporation Memory Recovery Across Reboots of an Emulated Operating System
US9232462B2 (en) 2009-10-15 2016-01-05 Qualcomm Incorporated Methods and apparatus for cross-cell coordination and signaling
US8307434B2 (en) * 2010-01-27 2012-11-06 Mcafee, Inc. Method and system for discrete stateful behavioral analysis
AU2011293160B2 (en) * 2010-08-26 2015-04-09 Verisign, Inc. Method and system for automatic detection and analysis of malware
US8683592B1 (en) * 2011-12-30 2014-03-25 Emc Corporation Associating network and storage activities for forensic analysis
US20140181975A1 (en) * 2012-11-06 2014-06-26 William Spernow Method to scan a forensic image of a computer system with multiple malicious code detection engines simultaneously from a master control point
US20140244699A1 (en) * 2013-02-26 2014-08-28 Jonathan Grier Apparatus and Methods for Selective Location and Duplication of Relevant Data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63298542A (ja) * 1987-05-29 1988-12-06 Nec Corp システム異常終了時の解析情報収集方式
JPH01320547A (ja) * 1988-06-22 1989-12-26 Nec Corp プログラム実行情報の収集方式
JPH04346139A (ja) * 1991-05-24 1992-12-02 Nec Corp メモリダンプ方式

Also Published As

Publication number Publication date
EP3163449A4 (en) 2018-04-04
SG11201610809YA (en) 2017-01-27
EP3163449A1 (en) 2017-05-03
EP3761181A1 (en) 2021-01-06
US20170147817A1 (en) 2017-05-25
WO2015198600A1 (ja) 2015-12-30
EP3163449B1 (en) 2020-07-22
US10528730B2 (en) 2020-01-07
US20200143050A1 (en) 2020-05-07
JP6213676B2 (ja) 2017-10-18
US11436325B2 (en) 2022-09-06

Similar Documents

Publication Publication Date Title
Ji et al. Rain: Refinable attack investigation with on-demand inter-process information flow tracking
Pohly et al. Hi-fi: collecting high-fidelity whole-system provenance
Ji et al. Enabling refinable {Cross-Host} attack investigation with efficient data flow tagging and tracking
US11436325B2 (en) Analysis device, analysis method, and storage medium in which analysis program is recorded
US8621282B1 (en) Crash data handling
Viennot et al. Transparent mutable replay for multicore debugging and patch validation
JP2018028907A (ja) 要求オリジネータを識別するためのリモートプロシージャリンケージにわたるシステム動作のトレーシング
CN111522703A (zh) 监控访问请求的方法、设备和计算机程序产品
US11601443B2 (en) System and method for generating and storing forensics-specific metadata
US10466924B1 (en) Systems and methods for generating memory images of computing devices
Elkhail et al. Seamlessly safeguarding data against ransomware attacks
CN114518985B (zh) 存储系统命令的故障指示
US10275595B2 (en) System and method for characterizing malware
US10114947B1 (en) Systems and methods for logging processes within containers
Choi et al. Cloud-BlackBox: Toward practical recording and tracking of VM swarms for multifaceted cloud inspection
US8171345B2 (en) Disablement of an exception generating operation of a client system
CN114978963B (zh) 一种网络系统监控分析方法、装置、电子设备及存储介质
US11507656B2 (en) Ransomware detection and remediation
Oliveira et al. A cloud-native monitoring and analytics framework
Han et al. Forensic analysis of the Windows telemetry for diagnostics
Goel et al. Reconstructing system state for intrusion analysis
US12093414B1 (en) Efficient detection of in-memory data accesses and context information
Bharkad et al. Optimizing root cause analysis time using smart logging framework for unix and gnu/linux based operating system
Alam et al. SBBox: A tamper-resistant digital archiving system
US20240211375A1 (en) Payload data removal from execution traces

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161215

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A527

Effective date: 20161215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170904

R150 Certificate of patent or registration of utility model

Ref document number: 6213676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150