JP2013105366A - プログラム解析システム及び方法 - Google Patents

プログラム解析システム及び方法 Download PDF

Info

Publication number
JP2013105366A
JP2013105366A JP2011249562A JP2011249562A JP2013105366A JP 2013105366 A JP2013105366 A JP 2013105366A JP 2011249562 A JP2011249562 A JP 2011249562A JP 2011249562 A JP2011249562 A JP 2011249562A JP 2013105366 A JP2013105366 A JP 2013105366A
Authority
JP
Japan
Prior art keywords
analysis
program
activity
time
record
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.)
Pending
Application number
JP2011249562A
Other languages
English (en)
Inventor
Nobutaka Kawaguchi
信隆 川口
Tadashi Kaji
忠司 鍛
Hiroki Yamaguchi
演己 山口
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011249562A priority Critical patent/JP2013105366A/ja
Priority to US13/667,860 priority patent/US20130124924A1/en
Priority to EP12191031.9A priority patent/EP2595084A3/en
Priority to CN2012104550726A priority patent/CN103106364A/zh
Publication of JP2013105366A publication Critical patent/JP2013105366A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Abstract

【課題】起動後一定時間後或いは、特定の日時にのみ活動を行うプログラムに対して効率的に解析できるようにする。
【解決手段】プログラム実行環境の時間経過速度を調整しながら、プログラムの解析を行うプログラム解析システムの主な機能部は、解析管理部100、検体実行部200、活動記録部、活動解析部300の4つである。解析管理部100は、実行環境における時間経過速度およびプログラム実行開始時間、実行終了時間などの解析条件を設定する。検体実行部200は、解析管理部100の決定に従い、時間経過速度およびプログラム実行開始時間を調整し、実行終了時間までプログラムを実行する。活動記録部は、実行環境を監視し、プログラムの活動記録を取得する。活動解析部300は、活動記録を解析し、プログラムの挙動を明らかにする。さらに、解析管理部100は、解析結果に基づき、解析条件を再設定し、再解析を行う。
【選択図】図1

Description

本発明は、コンピュータプログラムの挙動を解析するプログラム解析システムにおいて、プログラムが動作する実行環境の時刻管理機能を操作し、実行環境内の時間経過速度を、実時間よりも高速あるいは低速に変化させたときの、プログラムの活動を記録する。
ソースコードを用いずに、コンピュータプログラムの挙動を解析する方法としては、静的解析と動的解析の、2種類がある。静的解析は、プログラムのファイルに記述されている命令コードを分析することで、挙動を調査する。一方、動的解析では、プログラムを計算機上で実行し、その時の振る舞いを観測することで、挙動を調査する。プログラムによっては、静的解析を阻止するために様々な防御策が講じられている。特に、昨今のマルウェア(malware:コンピュータウイルスやスパイウェアなどの不正プログラム)は、静的解析を阻止するために、ファイル構造を難読化・暗号化する場合が多いため、静的解析による調査には、長時間かかる、熟練した技術者が必要、という課題が発生している。一方、静的解析に比べて、動的解析は、実際の振る舞いを観測して、挙動を調査するため、ファイル難読化・暗号化による影響を受けにくく、比較的短時間に解析を完了することができる。
これに伴い、特許文献1、特許文献2、非特許文献1など、動的解析の処理を自動化し、効率的な解析を実現するシステムの研究開発が進んでいる。これらのシステムでは、実行環境でマルウェアを実行し、一定時間内に観測された挙動(たとえば、マルウェアのファイルアクセスやネットワーク通信)を取得し・解析する。
特開2009−181335号公報 特開2009−37545号公報
IEEE International Conference of Communications 2008 Proceedings,"Malware Behavior Analysis in Isolated Miniature Network for Revealing Malware’s Network Activity"
しかし、プログラムによっては、起動してから一定時間経過してから、あるいは特定の日時にのみ、実質的な活動を行うものがある。また、Y2K問題にあったように、特定の日時を過ぎると誤動作を起こすものがある。このようなプログラムを上述のシステムで解析する場合、解析に多くの時間がかかる、或いは解析に失敗するという問題がある。非特許文献1では、解析対象のマルウェアが、一定時間活動を停止するために実行する関数を無効化することで、解析の効率化を図っている。しかし、この方法は、関数実行後に時間経過を検証したり、特定の日時にのみ、活動を行うマルウェアに対しては、有効ではない。
本発明の目的は、起動後一定時間後或いは、特定の日時にのみ活動を行うプログラムに対する効率的な解析を行なうシステム及び方法を提供することにある。
開示するプログラム解析システムでは、プログラム実行環境の時間経過速度を調整しながら、プログラムの解析を行う装置である。プログラム解析システムの主な機能部は、解析管理部、検体実行部、活動記録部、活動解析部の4つである。ここで、「検体」とは、解析対象となるマルウェアである。解析管理部は、実行環境における時間経過速度およびプログラム実行開始時間、実行終了時間などの解析条件を設定する。検体実行部は、解析管理部の決定に従い、時間経過速度およびプログラム実行開始時間を調整し、実行終了時間までにプログラムを実行する。活動記録部は、実行環境を監視し、プログラムの活動記録を取得する。活動解析部は、活動記録を解析し、プログラムの挙動を明らかにする。さらに、解析管理部は、解析結果に基づき、解析条件を再設定し、再解析を行う。
本発明によれば、起動後一定時間後或いは、特定の日時にのみ活動を行うプログラムに対する効率的な解析が実現される。
本発明を実施するためのシステムの全体構成を示す図である。 システム管理装置の物理構成を示す図である。 システム管理装置の論理構成を示す図である。 検体実行装置の物理構成を示す図である。 検体実行装置の論理構成を示す図である。 タイマー装置の物理構成を示す図である。 活動解析装置の物理構成を示す図である。 活動解析装置の論理構成を示す図である。 解析シナリオDBのレコード例を示す図である。 活動記録DBのレコード例を示す図である。 再解析ルールDBのレコード例を示す図である。 解析結果DBのレコード例を示す図である。 記録ルールDBのレコード例を示す図である。 解析ルールDBのレコード例を示す図である。 管理席管理処理のフローチャートを示す図である。 検体実行処理のフローチャートを示す図である。 タイマー装置と時計部の関係を示す図である。 時刻経過処理の調整処理のフローチャートを示す図である。 活動記録処理のフローチャートを示す図である。 活動解析処理のフローチャートを示す図である。 発信器のパルスとCPUへのクロック信号との対応関係を示す図である。 発信器のパルスとCPUへのクロック信号との対応関係を示す図である。 発信器のパルスとCPUへのクロック信号との対応関係における各種設定モードを示す図である。
以下、本発明の実施形態を、図面に示す実施例を基に説明する。本実施例では、起動してから活動するまでの時間や活動時刻が不明であるマルウェアを、3種類の装置がネットワークを介して連携して解析するシステムについて説明する。本実施例を説明した後に、変更例について述べる。
(システム構成)
図1は本発明を実施するためのシステムの全体構成を示す図である。本システムを構成する要素として、システム管理装置100、検体実行装置200、活動解析装置300、通信ネットワーク400の3つがある。
システム管理置100は、1つ以上の公知のパーソナルコンピュータやワークステーション等の計算機により構成される。システム管理装置100は、本システムで行われるマルウェア解析処理を管理する。また、解析対象となるマルウェア(以後、検体と呼ぶ)、実行環境で解析開始時に設定される時刻を指定する解析開始時間、解析を終了する時刻を指定する解析終了時間、時間経過速度を決定し、検体実行装置200に指令する。システム管理装置100の構成の詳細および、他の装置との通信の詳細については、後述する。
検体実行装置200は、1つ以上の公知のパーソナルコンピュータやワークステーション等の計算機により構成される。検体実行装置200は、システム管理装置100から送信された指令に従い、実行環境で検体を実行する。また、実行の際、ファイルアクセスやネットワーク通信などの、検体の活動情報を記録する。検体実行装置200の構成の詳細および、他の装置との通信の詳細については、後述する。
活動解析装置300は、1つ以上の公知のパーソナルコンピュータやワークステーション等の計算機により構成される。活動解析装置300は、検体実行装置200が記録した、検体の活動情報を解析し、検体がどのような活動を行ったかを示す、活動記録を作成する。検体実行装置100は、活動記録を参照して、再解析の有無や手順を決定する。活動解析装置300の構成の詳細および、他の装置との通信の詳細については、後述する。
通信ネットワーク400は、WAN(World Area Network)やLAN(Local Area Network)、携帯電話、PHS等の公衆回線網でもよい。
図1のライン1は、システム管理装置100と検体実行装置200との間の情報の論理的な流れを示す。同様に、ライン2は、検体実行装置200と活動解析装置300との間の除法の論理的なの流れを、ライン3は、活動解析装置300とシステム管理装置100との間の情報の論理的な流れを示す。ライン1、ライン2、ライン3とも、物理的な情報の伝達手段として、通信ネットワーク400を用いる。また、物理的な情報の伝達は、各装置間で直接的に行われる必要はなく、外部記憶装置などを経由して行われてもよい。
ライン1を介しては、検体10と解析シナリオ20という2種類の情報が、システム管理装置100から検体実行装置200に伝達される。解析シナリオ20には、検体実行装置200内での時間経過速度30、解析開始時刻40、解析終了時刻50が含まれる。解析シナリオ20を受信した検体実行装置は実行環境の時刻を解析開始時刻40に設定し、解析環境の時刻経過速度を時刻経過速度30に設定する。そして、実行環境の時刻が解析終了時刻50に達するまで、解析を行う。システム管理装置100は、同時に1つ以上の解析シナリオ20を送信する。
ライン2を介しては、活動記録60が、検体実行装置200から活動解析装置300に伝達される。同様に、ライン3を介しては、解析結果70が、活動解析装置300からシステム管理装置100に伝達される。
また、図1では、システム管理装置100、検体実行装置200、及び活動解析装置300をそれぞれ別の処理装置構成したが、これらを1つの処理装置で実現しても良い。また、検体実行装置200、及び活動解析装置300がそれぞれ複数台あって、システム管理装置100がこれらを管理する構成であっても良い。
図2は、システム管理装置100の物理構成を示す図である。システム管理装置100は、装置本体110と、入出力装置180から構成される。
装置本体110は、CPU120、メモリ130、インタフェイス140、外部記憶装置150、バス160、検体保存装置170を備えている。
CPU120は処理を実行するための演算装置である。メモリ130はCPU120で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。
メモリ130には、システム管理プログラム131が含まれている。そして、このシステム管理プログラム131がCPU120で実行されることによって、検体解析の管理を行う。具体的な管理手順については後述する。
インタフェイス140は、システム管理装置100を通信ネットワーク400と接続するための通信装置である。LANカードなどの通信機器がこれに対応する。インタフェイス140は、図中においてIFと記述することがある。
外部記憶装置150は、HDD(Hard Disk Drive)などの記憶媒体から構成され、解析シナリオDB151、活動記録DB152、解析結果DB153、再解析ルールDB154を記憶する。これらのDBの具体的内容については後述する。
バス160は、CPU120、メモリ130、IF140、外部記憶装置150、検体保存装置170、入出力装置180を接続する。
検体保存装置170は、HDDなどの記憶媒体から構成され、解析中の検体10を保存する。
入出力装置180はシステム管理装置100に対して、管理者によるデータの入力、及びシステム管理装置100内のデータの出力を行うための装置である。入出力装置の一例としては、キーボードやマウス、ディスプレイがある。具体的な入出力内容については後述する。
図3は、システム管理装置100の機能的な構成、及び物理的な各装置との関係を示す図である。CPU120は、解析管理部121を含んで構成される。解析管理部121の機能は、CPU120による、システム管理プログラム131の実行によって具現化される。
解析管理部121は、検体10の解析状況を管理するとともに、検体実行装置200に、解析シナリオ20を送信し、検体実行方法を指示する。また、活動解析装置300から解析結果70を受信し、再解析の有無や方法を判断する。詳細については、後述する。
図4は、検体実行装置200の物理構成を示す図である。検体実行装置200は、装置本体210と、入出力装置290から構成される。
装置本体210は、CPU220、メモリ230、インタフェイス240、外部記憶装置250、バス260、タイマー装置270、イメージ保存装置280を備えている。
CPU220は処理を実行するための演算装置である。メモリ230はCPU220で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。
メモリ230には、検体実行プログラム231、活動記録プログラム232、時計プログラム233が含まれている。検体実行プログラム231がCPU220で実行されることによって、時間経過速度を調整しながら、検体10を実行する。活動記録プログラム232がCPU220で実行されることで、検体10の活動記録60を取得する。また、時計プログラム233は、CPU220で実行されることで、検体10及び、検体実行プログラム231、活動記録プログラム232に対して、検体実行装置200における時刻情報を提供する。各プログラムの具体的な管理手順については後述する。
インタフェイス240は、検体実行装置200を通信ネットワーク400と接続するための通信装置である。LANカードなどの通信機器がこれに対応する。インタフェイス240は、図中においてIFと記述することがある。
外部記憶装置250は、HDDなどの記憶媒体から構成され、記録ルールDB251を記憶する。記録ルールDBには、活動記録プログラム232が、検体10のどのような活動を記録するのかが記述されている。DBの具体的内容については後述する。
バス260は、CPU220、メモリ230、IF240、外部記憶装置250、タイマー装置270、イメージ保存装置280、入出力装置290を接続する。
タイマー装置270は、一定周期で振動する素子を含んでいるハードウェアであり、観測される振動数を基に時間経過を測定する。そして、一定時間が経過するごとにCPU220に対して信号を送信する。CPU220は信号を受信することで、時間経過を知ることができる。タイマー装置270の詳細については後述する。
イメージ保存装置280は、HDDなどの記憶媒体から構成され、実行環境イメージ281を記憶する。実行環境イメージ281は、一般的なオペレーティングシステムの構成情報を含んでいるファイルであり、CPU220上で実行されると、検体10を実行するためのソフトウェア環境を提供する。また、イメージ保存装置280には、検体10が実行中に作成・変更したファイルやレジストリに関する情報が、一時的に保存される。
入出力装置290は検体実行装置200に対して、管理者によるデータの入力、及び検体実行装置200内のデータの出力を行うための装置である。入出力装置の一例としては、キーボードやマウス、ディスプレイがある。具体的な入出力内容については後述する。
図5は、検体実行装置200の機能的な構成、及び物理的な各装置との関係を示す図である。CPU220は、検体実行部221、活動記録部222、時計部223を含んで構成される。検体実行部221の機能は、CPU220による、検体実行プログラム231の実行によって具現化される。活動記録部222の機能は、CPU220による、活動記録プログラム232の実行によって具現化される。時計部223の機能は、CPU220による、時計プログラム233の実行によって具現化される。
検体実行部221は、システム管理装置100から受信した検体10を、解析シナリオ20に従って実行する。この際に、タイマー装置270にアクセスし、時間経過速度の調整を行う。詳細については後述する。
活動記録部222は、検体実行部221により実行される検体10の活動を記録し、活動記録60として、活動解析装置300に送信する。詳細については後述する。
時計部223は、タイマー装置270からの信号を、バス260を介して受信し、検体実行装置200における現在時刻を決定する。現在時刻を決定する手順の詳細については後述する。また、検体10は、時計装置223を参照することで、現在時刻を把握する。例えば、検体10が、2010年12月31日0時0分0秒に特定の活動を開始するようにプログラムされている場合、時計部223における時刻が2010年12月31日0時0分0秒になった時に、活動を開始する。
図6に、タイマー装置270の物理構成を示す。タイマー装置270は、発振器271、カウンタレジスタ272、カウンタ最大値レジスタ273、バス274から構成される。
発振器271は、水晶など、一定周期で振動する(パルスを発生する)特性を持つ素子である。発振器271は、振動の度に、バス274を介して、カウンタレジスタ272に信号を与える。たとえば、振動周期が1M(=1000000)Hzである発振器の場合、1マイクロ秒に一回の割合で振動し、カウンタレジスタ272に信号を与える。
カウンタレジスタ272は、一定桁数の数値を記憶することができる素子である。カウンタレジスタ272は、発振器271から信号を受け取ると、記憶している値を+1加算する。カウンタレジスタ272は、内部値が+1加算される度に、バス274を介して、カウンタ最大レジスタ273に記憶された値と比較する。そして、カウンタレジスタ272の値がカウンタ最大値レジスタ273内の値と同値になった場合、バス260を介して、CPU220に信号(クロック信号)を送信する。信号送信後、カウンタレジスタ272の値は0にリセットされる。
カウンタ最大値レジスタ273には、特定の値が格納されている素子であり、前述の通り、カウンタレジスタ272内の値と比較される。
例として、発振器271の振動周期が1MHzで、カウンタ最大値レジスタ273の値が10000である場合、1秒間に100(=1M/10000)回、カウンタレジスタ272の値はカウンタ最大レジスタ273の値と等しくなり、信号がCPU220に送信される。
また、タイマー装置270の構成として、カウンタレジスタ272の値を、発振器271の振動の度に、+1加算するのではなく、特定の値だけ加算してもよいし、加算の場合は、加算される値が大きくなるほど、信号がCPU220に送信される期間が短くなる。たとえば、発振器271の振動周期が1MHz、カウンタ最大値レジスタ273の値が10000の場合、カウンタレジスタ272の加算値が+2であれば、1秒間に50回の信号が発生する。
以上に述べた、発信器のパルスとCPUへのクロックとの対応関係を図示したものを図21A及び図21Bに示す。図21A及び21Bでは、カウンタ加算値をα、カウンタ最大値をβとして、αとβの組合せを変えたものを図示している。図21Aは、カウンタ加算値αをα=1に固定し、カウンタ最大値βを可変した時の対応関係を示す。図21Bは、カウンタ最大値βをβ=4に固定し、カウンタ加算値αを可変した時の対応関係を示す。図21に示した傾きの異なるいくつかの破線は、図中の階段関数の抱落線(envelope)であり、パルス(Tp)とクロック(Tc)との対応関係Tc=(α/β)Tpを示す。但し、α≦βであり、αとβとの比で対応関係が決まり、この比率を変えることでクロックの「高速化」又は「低速化」が実現できる。従って、図21Aのβ=2と図21Bのα=2の対応関係は同じ(いずれも2パルス増加すると1クロック増加する)。
また、カウンタレジスタ272の値を減算することによってクロックを発生させる場合、カウンタレジスタ272の値が0になる度に、信号を送信する。そして、信号送信後に、カウンタレジスタ272の値は、カウンタ最大値レジスタ273の値にリセットされる。また、処理の進行を停止させる際には、タイマー装置270のカウント処理を停止させる。
以上で述べた、発信器のパルスとCPUへのクロックとの対応関係における各種設定モードを図示したものを図22に示す。即ち、プログラムの通常動作時の対応関係である「通常」、発信器のパルスよりもクロックを早く進行させる「高速化」、タイマー動作を停止させて処理の進行を停止する「停止」、クロックの値を所定の値に変更して処理の進行を不連続に変更する「設定変更」、及び、発信器のパルスよりもクロックを遅く進行させる「低速化」の各設定モードが指定される。
バス260は、発振器271、カウンタレジスタ272、カウンタ最大値レジスタ273を接続する。
図7は、活動解析装置300の物理構成を示す図である。活動解析装置300は、装置本体310と、入出力装置370から構成される。
装置本体310は、CPU320、メモリ330、インタフェイス340、外部記憶装置350、バス360を備えている。
CPU320は処理を実行するための演算装置である。メモリ330はCPU320で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。
メモリ330には、活動解析プログラム331が含まれている。そして、この活動解析プログラム331がCPU320で実行されることによって、活動記録60の解析を行う。具体的な解析手順については後述する。
インタフェイス340は、活動解析装置300を通信ネットワーク400と接続するための通信装置である。LANカードなどの通信機器がこれに対応する。インタフェイス340は、図中においてIFと記述することがある。
外部記憶装置350は、HDDなどの記憶媒体から構成され、解析ルールDB351を記憶する。これらのDBの具体的内容については後述する。
バス360は、CPU320、メモリ330、IF340、外部記憶装置350、入出力装置370を接続する。
入出力装置370は、活動解析装置300に対して、管理者によるデータの入力、及びシステム管理装置100内のデータの出力を行うための装置である。入出力装置の一例としては、キーボードやマウス、ディスプレイがある。具体的な入出力内容については後述する。
図8は、システム管理装置300の機能的な構成、及び物理的な各装置との関係を示す図である。CPU320は、活動解析部321を含んで構成される。活動解析部321の機能は、CPU320による、活動解析プログラム331の実行によって具現化される。
活動解析部321は、検体事項装置200が作成した活動記録60の内容を解析して、検体10の解析結果70を出力する。詳細については、後述する。
(処理の説明)
図9以降に、本システムに含まれるDBの構成例及び各機能部のフローチャートを示す。
図9以降の構成例は、以下の手順で検体10の解析が行われたことを想定している。
2011/9/15 17:00:00に、解析管理装置100が、検体10の解析を開始する。解析では、検体実行装置200に対して、2012/1/1 00:00:00から2012/1/1 23:59:59までの48時間の期間の処理を、実時間の72倍速の時間経過速度で、検体A(に対する処理)を実行するように指示する。即ち、48時間の期間の処理を40分(48/72=2/3時間)で実行する。実行完了後、活動記録を、活動解析装置300が解析し、解析結果を出力する。解析結果を参照すると、解析に失敗した期間があったため、解析管理装置100は、検体10の再解析を行う。再解析では、検体実行装置200に対して、2012/1/1 11:55:00から2012/1/1 12:00:05までの期間と、2012/1/2 11:55:00から2012/1/2 12:00:05までの期間、実時間と同じ時間経過速度(1倍速)で検体Aを実行するように指示する。再解析は成功したため、検体Aに対する解析は完了する。
(各種テーブル)
図9は、解析シナリオDB151の構成を示す図である。解析シナリオDB151内の各レコードは、ある検体に対する、検体解析の方法や解析状況を記憶する。各レコードは、システム管理装置100が解析シナリオを決定した時点で、解析シナリオDB151内に保存される。
解析管理ID501は、解析シナリオDB151内のレコードを一意に認識するのに用いられる。このため、各解析管理ID501の値は、解析シナリオDB151内でユニークである。
レコード作時刻502は、各レコードが作成された時刻を示す。レコード作成時刻502には、システム管理装置100内の時刻が適用される。
検体ID503は、本システムで解析される各検体を一意に識別するための番号である。異なるレコードに同一の検体ID503が設定されている場合、同一検体が複数回、異なる条件で解析されていることを意味する。
解析開始時刻504は、検体実行装置200が検体10の実行を開始する時刻を、検体実行装置200内の時刻で示す。このため、レコード作成時刻502とは大きく異なる値が入力される場合がある。解析終了時刻505は、検体実行装置200が検体10の実行を終了する時刻を、検体実行装置200内の時刻で示す。このため、レコード作成時刻502とは大きく異なる値が入力される場合がある。
時間経過速度506は、検体の実行を行う検体実行装置200内のタイマー装置270が管理する時間の経過速度を、通常の時間経過速度の倍率として表現している。時間経過速度506は、正数を取る。たとえば、時間経過速度506=10倍速である場合、通常の時間の流れで1秒が経過する間に、タイマー装置270が管理する時間では、10秒が経過する。同様に、時間経過速度506=0.1倍速である場合、通常の時間の流れで1秒が経過する間に、タイマー装置270が管理する時間では、0.1秒が経過することになる。
本実施例では、検体実行速度506の下限値及び上限値、及び粒度(0.1刻みなど)は指定していない。しかし、検体実行装置200のタイマー装置270の性能によっては、下限値または上限値、及び粒度が定まっていてもよい。
解析状況507は、当該解析シナリオの実行状況を示す。解析状況507が取りうる値としては、「完了」もしくは「解析中」である。「完了」の場合、当該解析シナリオの実行及び解析は完了している。「解析中」の場合、当該解析シナリオは、検体が実行中であるか、実行結果が解析中である。
図9には、3種類の解析シナリオのレコードの例が示されている。解析管理ID=1のレコードは、レコード作成時間は2011/9/15 17:00であり、解析対象の検体は、検体Aである。システム管理装置100は、検体実行装置200に対して、検体Aを、2012/1/1 0:00:00から2012/1/2 23:59:59までの48時間に渡って実行するように指示している。また、時間経過速度506としては、72倍速を指定している。このため、実時間での検体実行時間は、40分(=48/72*60)となる。解析状況507は「完了」となっている。
解析管理ID=2のレコードは、レコード作成時間は2011/9/15 17:50であり、解析対象の検体は、解析ID=1のレコードと同様、検体Aである。システム管理装置100は、検体実行装置200に対して、検体Aを、2012/1/1 11:55:00から2011/1/1 12:05:00までの10分に渡って実行するように指示している。また、時間経過速度506としては、1倍速(=実時間の経過速度と同じ)を指定している。このため、実時間での検体実行時間は、10分となる。解析状況507は「完了」となっている。
解析管理ID=3のレコードは、レコード作製時間は2011/9/15 17:50であり、解析対象の検体は、解析ID=1のレコードと同様、検体Aである。システム管理装置100は、検体実行装置200に対して、検体Aを、2012/1/2 11:55:00から2011/1/2 12:05:00までの10分に渡って実行するように指示している。また、時間経過速度506としては、1倍速(=実時間の経過速度と同じ)を指定している。このため、実時間での検体実行時間は、10分となる。解析状況507は「実行中」となっている。
図10は、活動記録DB152の構成を示す図である。活動記録DB152には、検体実行装置200で検体10が実行されている際に、活動記録部222が取得した検体10の活動記録60が記録されている。具体的に、検体10のどのような活動記録を記録するのかについては、後述の記録ルールDB251にて指定する。
活動記録ID601は、活動記録DB152内のレコードを一意に認識するのに用いられる。このため、活動記録ID601の値は、活動記録DB152内でユニークである。解析管理ID602は、活動記録DB152内の各レコードが対応する解析シナリオDB151内のレコードを、解析管理ID501で指定する。すなわち、当該レコードは、解析管理ID602で指定される解析シナリオを実行中に記録された検体10の活動記録である。
活動記録時刻603は、各レコードが記録された時刻を、検体実行装置200内の時刻として記録する。このため、実時間とは大きく異なる場合がある。
活動種類604は、どのような種類の活動を記録したかを示す。図10では、例として「IP(Internet Protocol)パケット」と「デスクトップ画像」を示している。「IPパケット」は、検体10が送受信したIPパケットを意味する。「デスクトップ画像」は、入出力装置290に表示される、検体10を含む実行環境が描画した画像を意味する。そのほかの、活動種類604の変更例としては、検体10が呼び出した「関数」や、検体10が実行中に作成された「作成ファイル」や「作成レジストリ」等が考えられる。
活動データ605は、実際に記録されたデータを意味する。活動種類604が「IPパケット」の場合、対応する活動データ605は、IPパケットのバイナリデータとなる。活動種類604が「デスクトップ画像」の場合、対応する活動データ605は、デスクトップ画像の画像データとなる。
図10には、活動記録DB152のレコードの例が6種類示されている。活動記録ID601=1であるレコードは、解析管理ID602=1の実行時に取得された活動記録である。活動記録時刻603は2011/01/01 12:00:00であり、活動種類604は、「IPパケット」、活動データ605は「AAAAA...」である。
活動記録ID601=2であるレコードは、先述同様、解析管理ID602=1の実行時に取得された活動記録である。活動記録時刻603は2011/01/01 18:00:00であり、活動種類604は、「デスクトップ画像」、活動データ605は「BBBBB...」である。
活動記録ID601=3であるレコードは、先述同様、解析管理ID602=1の実行時に取得された活動記録である。活動記録時刻603は2011/01/02 12:00:00であり、活動種類604は、「IPパケット」、活動データ605は「CCCCC...」である。
活動記録ID601=4であるレコードは、先述同様、解析管理ID602=1の実行時に取得された活動記録である。活動記録時刻603は2011/01/02 18:00:00であり、活動種類604は、「デスクトップ画像」、活動データ605は「DDDDD...」である。
活動記録ID601=5であるレコードは、解析管理ID602=2の実行時に取得された活動記録である。活動記録時刻603は2011/01/01 12:00:00であり、活動種類604は、「IPパケット」、活動データ605は「EEEEE...」である。
活動記録ID601=6であるレコードは、解析管理ID602=3の実行時に取得された活動記録である。活動記録時刻603は2011/01/02 12:00:00であり、活動種類604は、「IPパケット」、活動データ605は「FFFFF...」である。
図11は、解析結果DB153の構成を示す図である。解析結果DB153は、活動解析装置300が作成した解析結果70を保存する。各レコードは、活動解析装置300の解析の結果明らかになった、検体10が行った活動の内容、及び活動時間を示す。
解析は、活動記録DB152を基に行われるが、活動記録DB152内のレコードと解析結果DB153内のレコードは、一対一に対応する必要はない。例えば、1つの活動記録レコードから、複数の解析結果レコードが作成される場合もあれば、複数の解析結果レコードから、1つの解析結果レコードが作成される場合もある。
解析結果ID701は、解析結果DB153内のレコードを一意に認識するのに用いられる。このため、解析結果ID701の値は、解析結果DB153内でユニークである。解析管理ID702は、解析結果DB152内の各レコードが対応する解析シナリオDB151内のレコードを、解析管理ID501で指定する。すなわち、当該レコードは、解析管理ID702で指定される解析シナリオを実行中に作成された活動記録を解析した結果となる。
レコード作成時刻703は、当該レコードが作成された時刻を、活動解析装置300内の時刻で記録する。活動開始時刻704は、当該レコードが示す活動が開始された時刻を、検体10の実行時の、検体実行装置200内の時刻で記録する。このため、実時間とは大きく異なる場合がある。活動開始時刻705は、当該レコードが示す活動が終了された時刻を、検体10の実行時の、検体実行装置200内の時刻で記録する。このため、実時間とは大きく異なる場合がある。
活動内容706は、解析の結果、明らかになった、検体10の活動内容を示す。検体属性707は、活動内容706に基づいて明らかになった、検体10の属性、すなわち、検体10が、どのようなマルウェアのグループに分類されるのかを示す。活動内容706から、検体属性707を決定できない場合は、「不明」が記録される。
解析成否708は、当該レコードが示す解析が成功したか否かを示す。解析が成功した場合は「成功」が、解析が失敗した場合は、「失敗」が記述される。解析の成否は、活動内容706に基づき、検体属性707を決定できたか否か、などにより決定される。後述のように、解析成否708が「失敗」の場合、システム管理装置100は、解析シナリオを変えて、再解析を行う場合がある。
図11には、解析結果DB153のレコードの例が6種類示されている。
解析結果ID701=1のレコードは、解析管理ID702=1である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、2011/09/15 17:40:08である。当該レコードの解析内容706によると、2011/1/1 12:00:00から2011/1/1 12:00:00の間に、検体実行装置200のIPアドレス(127.0.0.1)から、IPアドレスが192.168.0.1である別の端末のTCP(Transfer Control Protocol)の80番ポートに対して、接続を試行し、失敗している。このため、検体属性707は、「不明」となっており、解析成否708は「失敗」となる。
解析結果ID701=2のレコードは、解析管理ID702=1である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、2011/09/15 17:40:08である。当該レコードの解析内容706によると、2011/1/1 18:00:00から2011/1/1 18:01:00の間に、ユーザに対して入金を要求するダイアログを表示する。これは、「偽アンチウイルスソフト」というマルウェアに固有の活動である。このため、検体属性707は、「偽アンチウイルスソフト」となり、解析成否708は「成功」となる。
解析結果ID701=3のレコードは、解析管理ID702=1である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、2011/09/15 17:40:08である。当該レコードの活動内容706によると、2011/1/2 12:00:00から2011/1/2 12:00:00の間に、検体実行装置200のIPアドレス(127.0.0.1)から、IPアドレスが192.168.0.1である別の端末のTCPの80番ポートに対して、接続を試行し、失敗している。このため、検体属性707は、「不明」となっており、解析成否708は「失敗」となる。
解析結果ID701=4のレコードは、解析管理ID702=1である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、2011/09/15 17:40:08である。当該レコードの活動内容706によると、2011/1/2 18:00:00から2011/1/2 18:01:00の間に、ユーザに対して入金を要求するダイアログを表示する。このため、検体属性707は、「偽アンチウイルスソフト」となり、解析成否708は「成功」となる。
解析結果ID701=5のレコードは、解析管理ID702=2である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、2011/09/15 18:00:08である。当該レコードの活動内容706によると、2011/1/1 12:00:00から2011/1/1 12:01:00の間に、検体実行装置200のIPアドレス(127.0.0.1)から、IPアドレスが192.168.0.1である別の端末のTCPの80番ポートに対して、外部とのやり取りを行なう機能を有するコンピュータウイルスである「ボット」という種類のマルウェアが「C&C通信」を行っている。このため、検体属性707は、「ボット」となっており、解析成否708は「成功」となる。
解析結果ID701=6のレコードは、解析管理ID702=3である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、2011/09/15 18:00:08である。当該レコードの活動内容706によると、2011/1/2 12:00:00から2011/1/2 12:01:00の間に、検体実行装置200のIPアドレス(127.0.0.1)から、IPアドレスが192.168.0.1である別の端末のTCPの80番ポートに対して「C&C通信」を行っている。このため、検体属性707は、「ボット」となっており、解析成否708は「成功」となる。
図12は、再解析ルールDB154の構成を示す図である。再解析ルールDB154は、システム管理装置100が、解析結果DB153の内容を踏まえ、検体10の再解析を行う必要があるかどうかを判断するのに用いられる。各レコードは、解析結果DB153のレコードが満たすべき条件と、条件が満たされた場合の再解析の有無、の対応により構成される。
再解析ルールID801は、各レコードを一意に識別するのに用いられる。このため、再解析ルールID801の値は、再解析ルールDB154の中でユニークである。
解析結果条件802は、再解析ルールを適用するで、解析結果DB153のレコードが満たすべき条件が示されている。条件は、解析結果DB153のレコードの各カラム、及び当該レコードから参照される解析シナリオDB151のレコードの各カラムを用いた論理式として表現される。
再解析判定803は、解析結果DB153のレコードが解析結果条件802を満たした場合に、再解析を行うかどうかを定義する。再解析判定803の値は「必要」又は「不必要」の2値をとる。「必要」の場合、再解析は行われることになる。「不必要」の場合、再解析は行われない。
再解析シナリオ804は、再解析判定803が「必要」の場合、新たに作成する解析シナリオ20を再度決定する。具体的には、解析結果DB153のレコードの値を参照しながら、新たに追加される解析シナリオDB151レコードの各カラムが取るべき値を決定する。なお、再解析判定803が「不要」であるレコードについては、再解析シナリオ804は空白となる。
図12には、再解析ルールDB154のレコードの例が3種類示されている。
再解析ルールID=1のレコードは、解析結果条件802が、解析成否708=“失敗”で、且つ、時間経過速度506が一倍速より大きい場合適応される。再解析判定803が「必要」のため、再解析が行われる。再解析シナリオ804では、時間経過速度506を一倍速に、解析開始時刻504が活動開始時刻704の値−5分に、解析終了時刻505が活動終了時刻705の値+5分となるような、解析シナリオ20を指定する。
再解析ルールID=2のレコードは、解析結果条件802が、解析成否708=“失敗”で、且つ、時間経過速度506が一倍速以下の場合に適応される。この場合、再解析判定803が「不要」のため、再解析は行われない。よって、再解析シナリオ804は空白となる。
再解析ルールID=3のレコードは、解析結果条件802が、解析成否708=“成功”の場合に適応される。この場合、再解析判定803が「不要」のため、再解析は行われない。よって、再解析シナリオ804は空白となる。
図13は、記録ルールDB251の構成を示す図である。記録ルールDB251は、活動記録部222が、検体10の活動のうち、どれを記録するのかを決定する。
記録ルールID901は、記録ルールDB251のレコードを一意に識別するのに用いられる。このため、記録ルールID901の値は、記録ルールDB251の中でユニークである。
記録条件902は、検体10の活動がどのような条件を満たしたときに、活動を記録するのかを指定する。記録内容903は、具体的に記録する情報の内容を指定する。活動記録部222は、検体10が記録条件902に当てはまる活動をしているか判断できる機能と、記録内容903で指定する情報を記録できる機能を、有しているものとする。
図13には、記憶ルールDB251のレコードの例が2種類示されている。
記憶ルールID901=1のレコードは、記録条件902が「パケット送信時」のときに、記録内容903に示されるように「パケット内データ」を記録する。具体的には、活動記録部252は、IF240を観測することで、記録条件902を満たす活動を観測できる。さらに、IF240からパケットデータを取得することで、記録条件903に示す情報を取得することができる。
記憶ルールID901=2のレコードは、記録条件902が「デスクトップ画面更新時」のときに、記録内容903に示されるように「デスクトップ画面の画像」を記録する。具体的には、活動記録部222は、入出力装置290を観測することで、記録条件902を満たす活動を観測できる。さらに、入出力装置290から画像データを取得することで、記録内容903に示す情報を取得することができる。
また、図13には示されていない、その他の例として、検体10が実行されるメモリ230を監視することで、検体10の特定の関数からの呼び出しを観測し、関数に渡された引数や関数の実行結果を記録することができる。また、イメージ保存装置280を監視することで、検体10が作成・変更したファイルやレジストリの情報を観測・取得することができる。
図14は、解析ルールDB351の構成を示す図である。活動解析部321は、解析ルールDB351内のレコードを読み込み、解析ルールDB351内のレコードで指定された解析を行う。
解析ルールID1001は、解析ルールDB351のレコードを一意に識別するのに用いられる。このため、解析ルールID1001の値は、解析ルールDB351の中でユニークである。解析内容1002は、具体的な解析方法が記述されている。
図14には、解析ルールDB351のレコードの例が3種類示されている。
解析ルールID1001=1のレコードは、解析ルールDB351内のレコードに示されるTCP通信内に、特定文字列(PONG,JOIN,NICK等)が有る場合、通信をIRC通信と判定し、検体10に、ボットの属性があると判断する。また、当該レコードに対する解析結果は、「解析成功」と判定する。
解析ルールID1001=2のレコードは、解析ルールDB351内のレコードに示される画像から、検体が出力したダイアログ画面を抽出する。抽出されたダイアログが、「ユーザに入金を要求する」ものである場合、検体10に、偽アンチウイルスソフトの属性があると判断する。 また、当該レコードに対する解析結果は、「解析成功」と判定する。
解析ルールID1001=3のレコードは、時間経過速度の調整の影響で、ネットワーク接続が正常に行われなかったケースが解析ルールDB351内のレコードから発見された場合に、検体10の属性は不明であると判断する。また、当該レコードに対する解析結果を「解析失敗」と判定する。
(処理手順の詳細)
図15は、解析管理部121で実行される、解析管理部処理のフローチャートである。このフローチャートでは、検体が投入されてから、解析が完了するまでの一連の流れを示している。
処理S2001では、検体10がシステム管理装置100を通じて、検体解析部121に投入される。投入方法としては、IF140を介して別の端末から検体10を投入してもよいし、入出力装置180を介して、投入されてもよい。投入された検体10は、検体保存装置170に保存される。
処理S2002では、解析管理部121は、解析シナリオ20の決定を行う。具体的には、時間経過速度30、解析開始時刻40、解析終了時刻50を決定する。各項目で決定される値は、予め定まった標準値でもよいし、入出力180を介して、解析者が、その都度登録してもよい。
処理S2003では、解析管理部121は、処理S2002で定まった解析シナリオ20を、解析シナリオDB151に保存する。この際、解析管理ID501にはユニークな値が、レコード作成時刻502には保存時刻が、解析状況507には、「解析中」が登録される。
処理S2004では、ライン1を通じて、検体10と、1つ以上の解析シナリオ20が、解析管理部121から、検体実行装置200の検体実行部221に送信される。
処理S2005では、解析管理部121は、解析結果DB153に新しいレコードが追加されるまで、即ち、活動解析装置300内の活動解析部321による活動解析が完了するまで待機する。解析結果DB153に新しいレコードが追加されたことの通知方法としては、解析結果DB153に、解析管理部121に信号を送るような仕組みがあってもよいし、活動解析部321から解析管理部121に直接通知が送信されるような仕組みがあってもよい。
処理S2006では、解析管理部121は、解析結果DB153を読み込み、新しく追加されたレコードを取得する。
処理S2007では、解析管理部121は、読み込んだ解析結果DB153を基に、再解析が必要であるかどうかを判定する。基本的な方針としては、再解析ルールDB154内のレコードに従い、再解析判定803=「必要」と判断されるような、解析結果DB153のレコードが1つ以上ある場合、再解析が必要であると判断する。また、入出力装置180を介して解析結果DB153のレコードを管理者に提示して、最終的な判断を行ってもよい。
処理S2008では、処理S2007で、再解析が必要=「YES」と判断された場合に、解析管理部121は、再解析ルールDB154内のレコードに従い、解析シナリオの再設定を行う。再設定後、処理はS2003に戻る。
処理S2009では、処理S2007で、再解析が必要=「NO」と判断された場合に、解析管理部121は、解析結果を出力する。出力内容としては、解析シナリオDB151と解析結果DB153内のレコードを、入出力装置180を通じて管理者に提示してもよいし、ネットワーク400を介して、別の装置に送信してもよい。
次に、図9、図11、図12内のレコード例を用いて、図15で行われる処理の具体例を説明する。
まず、処理S2001では、解析管理部は、検体Aを取得して、検体保存装置170に保存する。処理S2002では、検体Aの解析シナリオとして、時間経過速度30=72倍速、解析開始時刻40=2012/1/1 00:00:00、解析終了時刻50=2012/1/2 23:59:59を決定する。
処理S2003では、決定された解析シナリオを、解析シナリオDB151に、解析管理ID=1のレコードとして保存する。処理S2004では、検体Aと、解析管理ID=1に対応する解析シナリオ20を、検体実行装置200に送信する。処理S2005では、解析結果ID701=1、2,3,4である4つのレコードが、解析結果DB153に出力されるまで、待機する。処理S2006では、解析結果ID701=1〜4の解析結果DB153内のレコードを読み込む。
処理S2007では、解析結果ID701=1,3の解析結果DB153内のレコードの解析成否708が「失敗」となっており、再解析ルールDB154の再解析ルールID=1のレコードを基に、再解析が必要=「YES」と判断される。
処理S2008では、再解析ルールDB154に基づき、解析シナリオ20が再設定される。具体的には、解析結果ID701=1のレコードに対応する解析シナリオ20として「時間経過速度30=1倍速、解析開始時刻40=2012/1/1 11:55:00、解析終了時刻50=2012/1/2 12:05:00」が、解析結果ID=3のレコードに対応する解析シナリオ20として、「時間経過速度30=1倍速、解析開始時刻40=2012/1/1 00:00:00、解析終了時刻50=2012/1/2 23:59:59」が再設定される。
処理は、処理S2003に戻り、処理S2008で決定された2つの解析シナリオ20を、解析管理ID=2、3のレコードとして、解析シナリオDB151に保存する。
処理S2004では、検体Aと、処理S2008で再設定された解析シナリオ20を、検体実行装置200に送信する。処理S2005では、解析結果ID701=5、6である2つのレコードが、解析結果DB153に出力されるまで、待機する。処理S2006では、解析結果ID701=5,6の解析結果DB153内のレコードを読み込む。
処理2007では、解析結果ID701=5,6の解析結果DB153内のレコードの解析成否708が何れも「成功」となっているため、再解析ルールDB154の再解析ルールID=3であるレコードを基に、再解析が必要=「NO」と判断される。
処理S2009では、解析結果DB153内の解析結果ID=2、4、5、6のレコードに従い、「検体Aは、2012/1/1/18:00、202/1/2/18:00に、ユーザに入金を要求するダイアログを表示するという、偽アンチウイルスソフトに固有の活動を行う。また、2012/1/1/12:00、202/1/2/12:00に、192.168.0.1の80番ポートとC&C通信を行うという、ボットに固有の活動を行う」というメッセージを、入出力装置180を介して表示する。
図16は、検体実行装置200の検体実行部221で行われる検体実行処理のフローチャートである。
処理S2101では、検体実行部221は、システム管理装置100の解析管理部121から、検体10及び、1つ以上の解析シナリオ20を受信する。
処理S2102では、イメージ保存装置280から実行環境イメージ281を読み込み、メモリ230上に展開し、実行する。処理S2103では、解析シナリオ20の時間経過速度30に従い、実行環境の時間経過速度を設定する。具体的方法については後述する。
処理S2104では、検体実行装置200の時計部223にアクセスし、現在時刻を、解析シナリオ20の解析開始時刻40に設定する。処理S2105では、処理S2101で受信した検体10及び活動記録部222を起動する。処理S2106では、時計部223が示す現在時刻が、解析シナリオ20の解析終了時刻50になるまで待機する。
処理S2107では、処理S2101で受信した全ての解析シナリオ20について、検体の実行を完了したかどうかをチェックする。処理S2107の結果が「YES」である場合、処理S2108において、検体10及び活動記録部222を停止し、処理を完了する。処理S2107の結果が「NO」である場合、処理S2102に戻り、実行環境イメージ281を再度読み込み、未処理の解析シナリオ20に従って検体10を実行する。
次に、図9内のレコード例を用いて、図16で行われる処理の具体例を説明する。
まず、処理S2101において、検体実行部221は、解析シナリオDB151の解析管理ID501=1のレコードに対応する、解析シナリオ20及び検体Aを、解析管理部121から受信する。
処理S2102で、検体Aを実行するための実行環境イメージ281を読み込む。処理S2103で、実行環境の時間経過速度を72倍速に設定する。処理S2104で、時計部223の現在時刻を「2012/1/1 00:00:00」に設定する。処理S2105で、検体A及び活動記録部222を実行する。処理S2106で、時計部223の現在時刻が「2012/1/2 23:59:59」になるまで待機する。
処理S2107では、全ての解析シナリオ20の処理が完了しているため、処理S2108で、検体A及び活動記録部222を停止する。
その後、処理S2101において、検体実行部221は、解析シナリオDB151の解析管理ID501=2,3のレコードに相当する、2つの解析シナリオ20及び検体Aを、解析管理部121から受信する。
処理S2102で、検体Aを実行するための実行環境イメージ281を読み込む。処理S2103で、解析管理ID501=2のレコードに相当する解析シナリオ20に従い、実行環境の時間経過速度を1倍速に設定する。処理S2104で、時計部223の現在時刻を「2012/1/1 11:55:00」に設定する。処理S2105で、検体A及び活動記録部222を実行する。処理S2106で、時計部223の現在時刻が「2012/1/1 12:00:05」になるまで待機する。
処理S2107では、解析管理ID501=3のレコードに対応する解析シナリオ20の処理が未だ行われていないため、処理S2102に戻る。その後、処理S2103〜2106で、上記解析シナリオ20に従って、検体の実行処理を行う。
処理S2107では、受信した2つの解析シナリオ20の処理が全て完了しているため、処理S2108にて、検体Aと活動記録部222の処理を停止し、全ての処理を終了する。
図17に、タイマー装置270と、時計部223の関係を示す。前述の通り、タイマー装置270は、発振器271が振動する度に、信号を時計部223に送信し、時計部223は受信した信号の回数を基に、現在時刻を決定する。
処理S2201では、タイマー装置270のカウンタレジスタ272の値を0に初期化する。処理S2202では、発振器271が、1回振動する。処理S2203では、発振器271が振動する度に、カウンタレジスタ272の値を+1加算する。処理S2204では、カウンタレジスタ272の値とカウンタ最大値レジスタ273の値を比較する。比較の結果、カウンタレジスタ272の値がカウンタ最大値レジスタ273と等しくない場合、処理S2202に移動する。
カウンタレジスタ272の値がカウンタ最大値レジスタ273の値と等しい場合、処理S2205に移動する。処理S2205では、信号を時計部223に送信する。信号の送信後、処理S2201に移動する。
時計部223は、処理S2206で、タイマー装置223の処理S2205から送信された信号を受信する。処理S2207で、現在時刻に対して、定数時間を加算する。これにより検体実行装置200の現在時刻は更新される。処理S2207実行後、再び処理S2206に移動し、次の信号の受信まで待機する。
ここで、処理S2207で、現在時刻に加算される定数時間は、時計部223における時刻の精度を決定する。定数時間=1秒であるなら、時計部223の時刻精度は1秒単位になり、定数時間=0.01秒であるなら、時刻精度は0.01秒単位となる。
カウンタ最大値レジスタ273の値は、時計部223の起動時に設定される。ここで、発振器271の振動数が1MHz(1秒間に1000000回振動)であり、時計部223の時刻精度が0.01秒とする。この場合、1秒間に100回の信号を、時計部223は受信する必要があるため、カウンタ最大値レジスタ273の値は10000(=1000000/100)に設定される。これにより、カウンタ最大値レジスタ273の値が他のプログラムから変更されない限り、時計部223は、1秒間に100回の割合で信号を受信し、その度に、0.01秒だけ現在時刻を進めることになる。
図18に、図16の検体実行部処理のS2103で実行される、時刻経過速度の調整処理のフローについて述べる。調整処理では、カウンタ最大値レジスタ273の値を変えることで、タイマー装置270が信号を送信する頻度を調整する。
処理S2301では、カウンタ最大値レジスタ273の値を、変数Current_MAXに読み込む。処理S2302では、変数Current_MAXの値を、時刻経過速度30の値で割った値を、変数New_Maxに保存する。処理S2303では、変数New_Maxの値をカウンタ最大値レジスタ2303に格納する。
例として、図17に示したように、カウンタ最大値レジスタ273の値に10000が設定されている状況で、図9の解析管理ID503=1のレコードのように、時間経過速度506を72倍速にする場合を考える。
処理S2301で、変数Current_Maxの値が10000に設定される。処理S2302で、変数NewMaxに139(=10000/72)が格納される。処理S2303で、139がカウンタ最大値レジスタ273に保存される。
図17の例では発振器271の振動数は1MHzであるため、1秒間に約7200回の信号が、タイマー装置270から時計部223に送信される。信号を受信する度に、時計部223は0.01秒だけ現在時刻を進めるため、7200回の信号受信により、検体実行装置200の時刻は72秒進むことになる。これにより、時間調整速度30で指定した72倍速が実現される。
図19は、活動記録部222で実行される、活動記録処理のフローを示している。
処理S2401では、活動記録部222は、記録ルールDB251を読み込む。処理S2402では、読み込んだ記録ルールDB251に従って、実行環境上での検体10の活動を記録する。処理S2403では、検体実行部221が、図16の処理S2108で活動記録部222の停止を行うタイミングで、検体10の実行中に作成された活動記録60を、活動記録DB152に書き出す。
次に、図10、図13内のレコード例を用いて、図19で行われる活動記録処理の具体例を示す。
処理S2401では、記録ルールDB251内の2つのレコード(記録ルールID901=1,2)が、活動記録部222に読み込まれる。処理S2402では、読み込んだ記憶ルールDB251のレコードに従い、検体Aの「パケット送信活動」及び、「デスクトップ画面の更新」を記録する。具体的な記録方法は、図13の説明時に示した通りである。
処理S2403では、検体実行部221が、解析管理ID602=1である解析シナリオ20に従った実行処理を行っていた場合は、活動記録ID601=1,2,3,4のレコードを、活動記録DB152に書き出す。また、検体実行部221が、解析管理ID602=2、3である解析シナリオ20に従った実行処理を行っていた場合は、活動記録ID601=5、6のレコードを、活動記録DB152に書き出す。
図20は、活動解析部321で実行される、活動解析処理のフローを示している。
処理S2501では、活動解析部321は、活動記録DB152が更新され、新しいレコードが追加されるまで待機する。処理S2502では、活動解析部321は、解析ルールDB351及び活動記録DB152を読み込む。
処理S2503では、解析ルールDB351に従って、活動記録DB152のレコードを解析し、解析結果70を作成する。なお、解析の途中においては、入出力装置370を介して、管理者が解析ルールDB351の内容を更新したり、解析ルールDB351には載っていない判断基準を基に、手動で解析を行ってもよい。処理S2504では、処理S2503で作成した解析結果70を、解析結果DB153に保存する。
次に、図10、図11、図14内のレコード例を用いて、図20で行われる活動解析録処理の具体例を示す。
処理S2501では、活動記録ID601が1〜4であるレコードが活動記録DB152に追加されるため、待機を解除する。処理S2502では、活動記録ID601が1〜2であるレコード及び、解析ルールDB351の3つのレコードを読み込む。
処理S2503では、活動記録ID=2および4であるレコードに関しては、解析ルールID=2のレコードを適用し、検体Aには「偽アンチウイルスソフト」の属性があると判断する。また、活動記録ID=1および3であるレコードに関しては、解析ルールID=3のレコードを適用し、ネットワーク接続が正常に行われなかったため、「解析失敗」と判断する。処理S2504では、解析結果DB153を更新し、解析結果ID701=1〜4のレコードを新たに追加する。その後処理S2501に移動する。
再び、処理S2501では、活動記録ID601が5〜6であるレコードが活動記録DB152に追加されるため、待機を解除する。処理S2502では、活動記録ID601が1〜2であるレコード及び、解析ルールDB351の2つのレコードを読み込む。
処理S2503では、活動記録ID=5、6のレコードに関して、解析ルールID=1のレコードを適用し、検体Aには「ボット」の属性があると判断する。処理S2504では、解析結果DB153を更新し、解析結果ID701=5〜6のレコードを新たに追加する。
(変形例)
次に、図1に示すシステムの変形例について説明する。
(1)加算値可変
図1に示すシステムでは、カウンタ最大値レジスタ273の値を変更することで、時間経過速度の調整を行った。変更例としては、カウンタレジスタ272が加算される値を変更することで、時間調整を行ってもよい。例えば、実施例では、カウンタレジスタ272の値は、発振器271の振動ごとに+1加算されていたが、加算値を+2にすることで、時間経過速度を2倍にすることができる。この変更例の利点としては、カウンタ最大値レジスタ273の変更が不可能であるタイマー装置270上でも、時間経過速度の調整が可能であることが挙げられる。
(2)発信器の周波数変更
また、発振器271の周波数を変えることで時間経過速度を調整することも可能である。例えば、発振器271の周波数を2倍にすることで、時間経過速度を2倍にすることができる。この変更例の利点としては、カウンタ最大値レジスタ273の変更が不可能であるタイマー装置270上でも、時間経過速度の調整が可能であることが挙げられる。
(3)現時時刻の定数時間調整
また、図17の処理S2207で示してある、時計部223が管理している、現在時刻に加算される定数時間を調整することで、時間経過速度を2倍にすることができる。例えば、図17の説明では、定数時間として0.01秒を設定していたが、定数時間を0.02秒に再設定することで、時間経過速度を2倍にすることができる。この変更例の利点としては、発振器271、カウンタレジスタ272、カウンタ最大値レジスタ273の変更が不可能なタイマー装置270上でも、時間経過速度の調整が可能であることが挙げられる。
(4)仮想マシンの実行
また、図1に示すシステムでは、実行環境イメージ281を直接メモリ230上で実行したが、計算機の構成・動作を模擬するプログラムである仮想マシン上で実行してもよい。この変更例では、メモリ230上に、仮想マシンプログラムが読み込まれる。仮想マシンプログラム上では、実行環境イメージ281及び、検体実行プログラム231、活動記録プログラム232、時計プログラム233が動作する。検体10は仮想マシンプログラム上で実行される。仮想マシンプログラムは物理的な計算機の構成を模擬しているので、タイマー装置270に相当する、タイマー装置模擬プログラムを有する。時刻調整を行う際は、検体実行装置200上のタイマー装置270を操作するのではなく、仮想マシンプログラム上のタイマー装置模擬プログラムのカウンタ最大値レジスタの値を調整する。この変更例の利点としては、タイマー装置270ではなく、タイマー装置模擬プログラムを操作するため、プログラム内の発振器やレジスタに対する変更が、確実に可能であることが挙げられる。
(5)プログラムへの適用
さらに、図1に示すシステムでは、挙動が不明なプログラムの動作を調べるために発明を利用したが、あるプログラムが一定期間、正常に動作することを、短期間で調査するために利用することもできる。例えば、時間経過速度30を1000倍として、解析開始時刻40を2011/1/1 00:00:00、解析終了時刻50を、2020/12/31 23:59:59とすることで、プログラムが10年間、正常に動作することを、4日程度でテストすることができる。この変更例では、プログラムの実行に伴い発生するエラー情報を、活動記録60として保存する。この変更例の利点としては、プログラムの予期しないエラーを、短時間で調査できることが挙げられる。
(6)発信器の周波数操作
また、CPU220は、その内部に発振器271に類似した発振器を具備しており、発振器が一度振動する度に、1つの命令を実行する。このため、この発振器の周波数を操作することで、検体10の実行速度を変化させることができる。例えば、発振器の周波数を0.5倍にすると、検体の実行速度は半分になる。これにより、検体10が様々な性能の計算機で実行された時の動作をテストすることができる。例えば、検体10がIF140を通じて受信するIPパケットを処理するプログラムである場合、CPU220の発振器の周波数を低減することで、高負荷時に、IPパケットをどの程度取りこぼしなく処理できるかをテストすることができる。
10・・・検体、20・・・、解析シナリオ、30・・・時間経過速度、40・・・解析開始時刻、50・・・解析終了時刻、60・・・活動記録、70・・・解析結果、100・・・システム管理装置、200・・・検体実行装置,300・・・活動解析装置、400・・・ネットワーク

Claims (16)

  1. 動作検証対象のプログラムを、時間経過速度を任意に調整可能な実行環境上で動作させるプログラム解析システムは、
    プログラムの解析状況を管理し、時間経過速度を決定する解析管理部を有するシステム管理装置と、
    解析管理部で指定された時間経過速度に基づき前記プログラムを前記実行環境上で実行する検体実行部と、前記実行環境上での前記プログラムの挙動を、活動記録として取得する活動記録部とを有する少なくとも1つの検体実行装置と、
    前記活動記録を解析して、前記プログラムの特徴を、解析結果として出力する活動解析部を有する少なくとも一つの活動解析装置と、
    を含むことを特徴とするプログラム解析システム。
  2. 前記解析管理部は、前記時間経過速度に加え、前記プログラムを解析する上での解析開始時刻を決定することを特徴とする請求項1に記載のプログラム解析システム。
  3. 前記解析管理部は、前記時間経過速度、前記解析開始時刻に加え、前記プログラムの解析を終了する解析終了時刻を決定することを特徴とする請求項2に記載のプログラム解析システム。
  4. 前記解析管理部は、前記解析結果を基に、前記プログラムの再解析を前記検体実行部に指示することを特徴とする請求項3に記載のプログラム解析システム。
  5. 前記解析管理部は、前記プログラムの解析が失敗した時刻間を対象として、検体の再解析を行うことを特徴とする請求項4に記載のプログラム解析システム。
  6. 前記解析管理部は、再解析を行う際に、前記時間経過速度を変化させることを特徴とする請求項4に記載のプログラム解析システム。
  7. 前記解析管理部は、前記解析結果を基に、再解析の有無の判定を行う再解析ルールDBを持つことを特徴とする請求項4に記載のプログラム解析システム。
  8. 前記検体実行部は、計算機上で、定期的に、時計部に対して信号を発することで時刻管理を行う、タイマー装置を操作することで、時間経過速度を調整することを特徴とする請求項1に記載のプログラム解析システム。
  9. 前記検体実行部は、前記時計部を操作することで、時間経過速度を調整することを特徴とする請求項1に記載のプログラム解析システム。
  10. 前記実行環境は、計算機上で直接実行されるのではなく、計算機上で実行される仮想マシンプログラム上で実行されることを特徴とする請求項1に記載のプログラム解析システム。
  11. 前記実行環境が実行されるCPUの動作速度を調整することで、様々な性能の計算機上での前記プログラムの動作を再現することを特徴とする請求項1に記載のプログラム解析システム。
  12. 前記活動記録部は、前記プログラムのどのような活動を記録するのかを指示する記録ルールDBに従って、活動を記録することを特徴とする請求項1に記載のプログラム解析システム。
  13. 前記活動解析部は、解析方法を指定する解析ルールDBに従って、前記活動記録を解析することを特徴とする請求項1に記載のプログラム解析システム。
  14. 前記記録ルールDBには、記録対象として、ネットワーク通信、画面出力、関数呼び出し、ファイルの作成・修正・削除、レジストリの作成・修正・削除を指定することを特徴とする請求項12に記載のプログラム解析システム。
  15. 前記解析結果には、解析の成功/失敗を示すフラグが含まれることを特徴とする請求項1に記載のプログラム解析システム。
  16. 処理装置を用いて、動作検証対象のプログラムを、時間経過速度を任意に調整可能な実行環境上で動作させるプログラム解析方法は、
    プログラムの解析状況を管理し、時間経過速度を決定し、
    前記管理によって指定された時間経過速度に基づき前記プログラムを前記実行環境上で実行し、
    前記実行環境上での前記プログラムの挙動を、活動記録として取得し、
    前記活動記録を解析して、前記プログラムの特徴を、解析結果として出力する、
    ことを特徴とする、プログラム解析方法。
JP2011249562A 2011-11-15 2011-11-15 プログラム解析システム及び方法 Pending JP2013105366A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011249562A JP2013105366A (ja) 2011-11-15 2011-11-15 プログラム解析システム及び方法
US13/667,860 US20130124924A1 (en) 2011-11-15 2012-11-02 Program analyzing system and method
EP12191031.9A EP2595084A3 (en) 2011-11-15 2012-11-02 Program analyzing system and method
CN2012104550726A CN103106364A (zh) 2011-11-15 2012-11-13 程序分析系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011249562A JP2013105366A (ja) 2011-11-15 2011-11-15 プログラム解析システム及び方法

Publications (1)

Publication Number Publication Date
JP2013105366A true JP2013105366A (ja) 2013-05-30

Family

ID=47177780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011249562A Pending JP2013105366A (ja) 2011-11-15 2011-11-15 プログラム解析システム及び方法

Country Status (4)

Country Link
US (1) US20130124924A1 (ja)
EP (1) EP2595084A3 (ja)
JP (1) JP2013105366A (ja)
CN (1) CN103106364A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015130008A (ja) * 2014-01-06 2015-07-16 富士通株式会社 動態解析方法及び動態解析装置
JP2016009308A (ja) * 2014-06-24 2016-01-18 日本電信電話株式会社 マルウェア検出方法、システム、装置、ユーザpc及びプログラム
JP2017174373A (ja) * 2016-03-18 2017-09-28 エーオー カスペルスキー ラボAO Kaspersky Lab 仮想マシンでファイルのアンチウイルススキャンを実行するシステム及び方法
US10536261B2 (en) 2014-09-25 2020-01-14 Nec Corporation Analysis system, analysis method, and storage medium
US10554383B2 (en) 2014-09-25 2020-02-04 Nec Corporation Analysis system, analysis method, and storage medium
US10931468B2 (en) 2014-09-25 2021-02-23 Nec Corporation Analysis system, analysis method, and storage medium

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235266B2 (en) * 2015-07-10 2019-03-19 Ca, Inc. Application screen mapping for mobile analytics
US10320810B1 (en) * 2016-10-31 2019-06-11 Palo Alto Networks, Inc. Mitigating communication and control attempts
CN109298995B (zh) * 2017-07-24 2022-05-13 北京搜狗科技发展有限公司 一种性能测试方法、装置、电子设备以及存储介质
CN108563566A (zh) * 2018-04-09 2018-09-21 郑州云海信息技术有限公司 一种系统的风险分析方法及系统
CN109542793B (zh) * 2018-11-30 2022-06-14 北京小马智行科技有限公司 一种程序性能分析方法及装置
CN111368295A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 恶意样本检测方法、装置、系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306836A (ja) * 1994-05-10 1995-11-21 Nec Corp 時刻同期化装置
JP2000066759A (ja) * 1998-08-17 2000-03-03 Oki Electric Ind Co Ltd クロック制御回路
JP2004120082A (ja) * 2002-09-24 2004-04-15 Yuji Atsui 電子メール中継システム、方法及びプログラム並びにウィルス検知システム、方法及びプログラム
JP2009181335A (ja) * 2008-01-30 2009-08-13 Nippon Telegr & Teleph Corp <Ntt> 解析システム、解析方法および解析プログラム
JP2010092178A (ja) * 2008-10-06 2010-04-22 Nippon Telegr & Teleph Corp <Ntt> 解析装置、解析方法及び解析プログラム
JP2010267128A (ja) * 2009-05-15 2010-11-25 Ntt Docomo Inc 解析システム、解析装置、検知方法、解析方法及びプログラム
JP2011164973A (ja) * 2010-02-10 2011-08-25 Osaka Univ 救命救急シミュレーション装置、救命救急シミュレーションシステム、プログラムおよびその記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5083760B2 (ja) 2007-08-03 2012-11-28 独立行政法人情報通信研究機構 マルウェアの類似性検査方法及び装置
CN101593249B (zh) * 2008-05-30 2011-08-03 成都市华为赛门铁克科技有限公司 一种可疑文件分析方法及系统
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US8627133B2 (en) * 2010-12-20 2014-01-07 Red Hat Israel, Ltd. Virtual machine boot speed-up by clock acceleration
US9792430B2 (en) * 2011-11-03 2017-10-17 Cyphort Inc. Systems and methods for virtualized malware detection

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306836A (ja) * 1994-05-10 1995-11-21 Nec Corp 時刻同期化装置
JP2000066759A (ja) * 1998-08-17 2000-03-03 Oki Electric Ind Co Ltd クロック制御回路
JP2004120082A (ja) * 2002-09-24 2004-04-15 Yuji Atsui 電子メール中継システム、方法及びプログラム並びにウィルス検知システム、方法及びプログラム
JP2009181335A (ja) * 2008-01-30 2009-08-13 Nippon Telegr & Teleph Corp <Ntt> 解析システム、解析方法および解析プログラム
JP2010092178A (ja) * 2008-10-06 2010-04-22 Nippon Telegr & Teleph Corp <Ntt> 解析装置、解析方法及び解析プログラム
JP2010267128A (ja) * 2009-05-15 2010-11-25 Ntt Docomo Inc 解析システム、解析装置、検知方法、解析方法及びプログラム
JP2011164973A (ja) * 2010-02-10 2011-08-25 Osaka Univ 救命救急シミュレーション装置、救命救急シミュレーションシステム、プログラムおよびその記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015130008A (ja) * 2014-01-06 2015-07-16 富士通株式会社 動態解析方法及び動態解析装置
JP2016009308A (ja) * 2014-06-24 2016-01-18 日本電信電話株式会社 マルウェア検出方法、システム、装置、ユーザpc及びプログラム
US10536261B2 (en) 2014-09-25 2020-01-14 Nec Corporation Analysis system, analysis method, and storage medium
US10554383B2 (en) 2014-09-25 2020-02-04 Nec Corporation Analysis system, analysis method, and storage medium
US10931468B2 (en) 2014-09-25 2021-02-23 Nec Corporation Analysis system, analysis method, and storage medium
JP2017174373A (ja) * 2016-03-18 2017-09-28 エーオー カスペルスキー ラボAO Kaspersky Lab 仮想マシンでファイルのアンチウイルススキャンを実行するシステム及び方法

Also Published As

Publication number Publication date
EP2595084A2 (en) 2013-05-22
CN103106364A (zh) 2013-05-15
US20130124924A1 (en) 2013-05-16
EP2595084A3 (en) 2013-10-09

Similar Documents

Publication Publication Date Title
JP2013105366A (ja) プログラム解析システム及び方法
US10783241B2 (en) System and methods for sandboxed malware analysis and automated patch development, deployment and validation
US11870811B2 (en) Trusted execution security policy platform
Zhao et al. Botgraph: large scale spamming botnet detection.
JP2013171556A (ja) プログラム解析システム及び方法
US9864666B2 (en) Method and system for evaluating the resiliency of a distributed computing service by inducing latency
JP2018049602A (ja) ネットワークの異常検出システムのためのグラフ・データベース分析
US20180285086A1 (en) Automatic Patch Management
Chen et al. Exploring effective fuzzing strategies to analyze communication protocols
CN112511512A (zh) 漏洞扫描引擎和威胁检测引擎的风险管理系统
US10831646B2 (en) Resources usage for fuzz testing applications
US10986112B2 (en) Method for collecting cyber threat intelligence data and system thereof
Gorbenko et al. From analyzing operating system vulnerabilities to designing multiversion intrusion-tolerant architectures
Dowling et al. Using analysis of temporal variances within a honeypot dataset to better predict attack type probability
US10831868B2 (en) Global license spanning multiple timezones in a rate-based system
Fiondella et al. Cloud incident data: An empirical analysis
WO2018213061A2 (en) Timely causality analysis in homegeneous enterprise hosts
Pearson et al. Fume: Fuzzing message queuing telemetry transport brokers
Gui et al. APTrace: A responsive system for agile enterprise level causality analysis
Wu et al. An extensible fault tolerance testing framework for microservice-based cloud applications
Satsyk et al. Reduction of server load by means of CMS Drupal
Santhi et al. CyberSim: Geographic, temporal, and organizational dynamics of malware propagation
Noertjahyana et al. Comparative Analysis of NFS and iSCSI Protocol Performance on OpenStack Cinder Technology
US20240119140A1 (en) A system and methods for sandboxed software analysis with automated vulnerability detection and patch development, deployment and validation
AU2015271911B2 (en) Method and system for evaluating the resiliency of a distributed computing service by inducing latency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140317

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150331