JP6246377B2 - プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム - Google Patents
プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム Download PDFInfo
- Publication number
- JP6246377B2 JP6246377B2 JP2016545089A JP2016545089A JP6246377B2 JP 6246377 B2 JP6246377 B2 JP 6246377B2 JP 2016545089 A JP2016545089 A JP 2016545089A JP 2016545089 A JP2016545089 A JP 2016545089A JP 6246377 B2 JP6246377 B2 JP 6246377B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- information
- input
- output
- unit
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 127
- 238000004458 analytical method Methods 0.000 title claims description 120
- 238000000605 extraction Methods 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 31
- 239000000284 extract Substances 0.000 claims description 12
- 230000006870 function Effects 0.000 description 46
- 230000006837 decompression Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 18
- 230000008520 organization Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
図1は、実施の形態1に係るプロセス解析装置の一構成例を示す構成図である。
図1において、プロセス解析装置100は、実行トレース取得部110、ブロック抽出部120、ブロック情報抽出部130、ブロック情報解析部140、及び、解析結果出力部150を備える。
図2は、実施の形態1に係るプロセス解析装置のプロセス解析処理の流れを示すフローチャートである。
・実行した命令のアドレス
・実行した命令のアドレス(オペコード、オペランド)
・アクセスされたレジスタとその値
・アクセスされたメモリのアドレス、その値、そのモード(READ/WRITE)
・プロセスのベースアドレス
・プロセスがロードしているDLLの名前、アドレス、サイズ
・DLLがエクスポートしているAPIの名前、アドレス
なお、プロセス情報103の分かりやすい実例としては、メモリにロードされているプロセスのPEヘッダである。
・ブロックID
・ブロックの種類
・ブロックの開始アドレス
・ブロックの終了アドレス
・ブロック内の命令列(プロセスのメモリイメージから取得)
ブロック抽出部120は、抽出した複数のブロックについて上記のブロックの情報を、ブロックリスト104として管理する。
ブロックIDは、ブロックリストにおいて一意となる値を設定する。ブロックの種類とは、ブロックを構成する最も外側のロジック(関数、ループ、連結したループ)を設定する。ブロックの開始アドレスとは、プロセスが利用するメモリ上の何番地目からブロックが開始しているかを示す。ブロックの終了アドレスとは、プロセスが利用するメモリ上の何番地目でブロックが終了しているかを示す。ブロック内の命令列とは、プロセスが利用するメモリ上で、開始アドレスと終了アドレスの範囲に存在する命令シーケンスである。
図3は、定義リスト105の一例を示す図である。
図3に示すように、定義リスト105は、ブロック抽出部120が実行トレース102を1行ずつ読んでいく中で、以下の情報を記録したテーブルである。
・実行トレースの行番号
・同行で実行された命令があるアドレス
・同行で変更された記憶領域(レジスタ、メモリ)
・新しい値
・値のサイズ
・ブロックID
・入力情報
・出力情報
・コンテキスト
ブロックIDとは、ブロックリスト104に登録されているブロックと対応づけるための情報である。
入力情報とは、実行トレース102において、以下の条件を満たす情報である。
・ブロックの実行前に定義される情報
・ブロックの実行中において、上書きされる前に、読まれる情報
出力情報とは、実行トレース102において、以下の条件を満たす情報である。
・記憶領域(レジスタ、メモリ)において、ブロック実行中、同記憶領域に最後に書き込まれた情報
コンテキストとは、ブロックが実行トレース102において、どのタイミングで実行されているかを表わすための情報である。
ブロック情報抽出部130は、実行トレース102を1行ずつ解析する。注目している実行トレース102の命令アドレスが、ブロックリスト104に登録されている、いずれかのブロックB1の開始アドレスと終了アドレスの範囲に含まれているとする。ブロック情報抽出部130は、実行トレース102をさらに解析し、ブロックB1の範囲にあるアドレスXで命令が実行され、同命令によって、ある記憶領域がREADされているとする。そして、ブロック情報抽出部130は、定義リスト105を解析し、ブロックB1の範囲内かつアドレスXよりも前に実行された命令によって、同記憶領域がWRITEされていないかを確認する。WRITEされていない場合、同記憶領域を入力情報とする。
ブロック情報抽出部130が、あるブロックB1の実行トレース102を解析しているとする。ブロック情報抽出部130は、実行トレース102をさらに解析し、トレースがブロックB1の範囲を超えたとする。このとき、ブロック情報抽出部130は、定義リスト105を解析することで、同ブロックの範囲で実行された命令によってWRITEされた情報を出力情報とする。また、同じ記憶領域に複数回WRITEが行なわれている場合は、実行トレース102の行番号が大きいもの、すなわち、最新のものを出力情報とする。
図4は、入力情報と出力情報を格納するデータ形式の一例を説明する図である。
図4において、入力情報と出力情報に関する情報は、記憶領域(開始アドレス)、値(バイト列)、サイズ(バイト)、情報の種類が格納されている。
コンテキストは、ブロックの呼び出し関係(入れ子関係)を表現するためのものである。例えば、B1、B2、B3、B4、B5、B6、B7、B8をブロックとする。このとき、B1の実行終了後にB2が実行され、B2の中でB3とB4が実行され、B2の実行終了後にB5が実行されるとする。さらに、B5の中でB6が実行され、B6の中で、B7が実行されるとする。そして、B7、B6の実行終了後、B8が実行されるとする。
・あるブロックの実行トレース102を解析している最中に、関数呼び出し(例えばcallやenter)以外の命令(例えばjmp、jne、ret)でブロックの範囲外へジャンプする場合、同ブロックの終了を意味する。
・あるブロックの実行トレース102を解析している最中に、関数呼び出し(例えばcallやenter)命令でブロックの範囲外へジャンプする場合、同ブロックは終了せず、同ブロックの中で新たにブロックが呼び出されたものとする。
・あるブロックの実行トレース102を解析している最中に、上記以外のケースで、実行トレース102がブロックの範囲を超えた場合、同ブロックの終了を意味する。
ステップS140において、ブロック情報解析部140は、ブロック情報リスト106のブロック情報を解析し、暗号ロジックを特定する。ブロック情報の解析では、ブロック情報解析部140は、ブロック情報の入力情報または出力情報を用いて、ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用してブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定する。ブロック情報解析部140が生成する特徴判定情報と、特徴判定情報を利用した暗号ロジックの判定方法は、後述する実施例1〜実施例4で詳細に説明する。ブロック情報解析部140は、ブロック情報を解析した結果、暗号ロジックの判定結果を含む解析結果リスト107を出力する。
・暗号ロジックの開始アドレス
・入力情報(記憶領域、値、サイズ)
・出力情報(記憶領域、値、サイズ)
・復号ロジックの開始アドレス
暗号関数の入力は、通常、平文である。一方、暗号関数の出力は、ランダムなバイト列である。そのため、暗号関数の入力には印刷可能文字列の割合が多く、出力には印刷可能文字列の割合が少ないという特徴が見られる。
図5は、暗号関数の入出力情報が含む印刷可能文字列の特徴を示す図である。
図5では、入力される「こんにちは」が印刷可能文字列であり、また、出力される情報の内、「唖」が印刷可能文字列であり、「・」が印刷不可能な文字列を示している。実施例1では、このような暗号関数の入出力情報が含む印刷可能文字列の特徴を特徴判定情報に利用して、暗号ロジックを特定する実施例を説明する。
図6において、ブロック情報解析部140は、文字列割合判定部160、文字コード判定アルゴリズムデータベース(データベースは、以下DBと記載する)161、文字コード表DB162を備える。ブロック情報解析部140は、ブロック情報リスト106が入力され、文字列割合判定処理を行なって、解析結果リスト107を出力する。また、文字列割合判定部160は、ブロック情報解析部140から入力されたブロック情報の入力情報に対して、印刷可能文字列割合を判定して暗号ロジックを特定し、特定した暗号ロジックを含む暗号ロジックリスト1(163)をブロック情報解析部140に出力する。
図7は、実施例1に係る文字列割合判定部160の文字列割合判定処理の流れを示すフローチャートである。
図8は、文字コード表DB162に格納された文字コード表の例を示す図である。
図8では、文字「あ」から文字「ぱ」に対して、文字コードが対応付けられて格納された例を示している。
マルウェアなどの不正プログラムは、暗号化されたデータを印刷可能なデータにエンコード(例えばBase64エンコード)してから、インターネット上に送信することがある。
図9は、マルウェアの暗号関数の使い方の一例(その1)を示す図である。
図9では、マルウェアが、暗号関数によりメッセージを暗号化した暗号文を、Base64エンコードしてから、HTTP送信によりインターネット上に送信している例を示している。そこで、あるブロックの出力情報を、既知のデコーダ(例えばBase64デコーダ)を用いてデコードを行ない、デコードに成功した場合、デコードした値と等しい出力情報を持っているブロックを、暗号ロジックの候補とすることができる。実施例2では、このような暗号関数の入出力情報が含むエンコードの特徴を特徴判定情報に利用して、暗号ロジックを特定する実施例を説明する。
図10において、ブロック情報解析部140は、データデコード部170、エンコード/デコードアルゴリズムDB171を備える。ブロック情報解析部140は、ブロック情報リスト106が入力され、デコード判定処理を行なって、解析結果リスト107を出力する。また、データデコード部170は、ブロック情報解析部140から入力されたブロック情報の出力情報に対してデコードを行ない、デコードに成功した場合、デコードした値と等しい出力情報を持っているブロックを、暗号ロジックの候補とし、候補とした暗号ロジックを含む暗号ロジックリスト2(172)をブロック情報解析部140に出力する。
図11は、実施例2に係るデータデコード部170のデコード判定処理の流れを示すフローチャートである。
マルウェアなどの不正プログラムは、データを暗号化する前に、同データを圧縮することがある。
図12は、マルウェアの暗号関数の使い方の一例(その2)を示す図である。
図12では、マルウェアが、メッセージが暗号関数に入力される前に、メッセージを圧縮関数により圧縮し、この圧縮データを暗号関数により暗号化した暗号文を、HTTP送信によりインターネット上に送信している例を示している。そこで、あるブロックの入力情報を、既知の解凍アルゴリズム(例えばzip、lzh)で解凍を試み、解凍に成功した場合、同ブロックを暗号ロジックの候補とすることができる。実施例3では、このような暗号関数の入出力情報が含む圧縮処理の特徴を特徴判定情報に利用して、暗号ロジックを特定する実施例を説明する。
図13において、ブロック情報解析部140は、データ解凍部180、圧縮/解凍アルゴリズムDB181を備える。ブロック情報解析部140は、ブロック情報リスト106が入力され、データ解凍判定処理を行なって、解析結果リスト107を出力する。また、データ解凍部180は、ブロック情報解析部140から入力されたブロック情報の入力情報に対して解凍を行ない、解凍に成功した場合、同ブロックを、暗号ロジックの候補とし、候補とした暗号ロジックを含む暗号ロジックリスト3(182)をブロック情報解析部140に出力する。
図14は、実施例3に係るデータ解凍部180のデータ解凍判定処理の流れを示すフローチャートである。
暗号の基本定義より、あるメッセージ(平文)をある鍵によって暗号化して得られる暗号文を、同じ鍵で復号すると元のメッセージが得られることは自明である。すなわち、暗号関数、復号関数、鍵、平文を、それぞれEnc、Dec、k、mとした場合、m = Dec(k、Enc(k、m))が成立する。
図15は、暗号の基本定義を説明する図である。
図15では、平文「こんにちは」をある鍵によって暗号化して、暗号文「・・・唖・」を得た場合、同じ鍵で暗号文「・・・唖・」を復号して、元のメッセージの平文「こんにちは」が得られることを示している。
このような暗号の基本定義に従えば、あるブロックfの出力の一部(暗号文と想定)を、別のブロックgの入力の一部としてgの処理を実行し、gの出力がfの入力(平文と想定)と一致すれば、fは暗号関数、gは復号関数である可能性が高い。そこで、あるブロックのペアを選び、これらのブロックの入力情報と出力情報に対して、上記の暗号の基本定義を利用した処理を行なえば、同ブロックのペアを暗号ロジックの候補とすることができる。実施例4では、このような暗号の基本定義による入出力情報の特徴を特徴判定情報に利用して、暗号の基本定義の関係が成立するブロックのペアを見つけ出すことにより、暗号ロジックを特定する実施例を説明する。
図16において、ブロック情報解析部140は、仮想実行部190を備える。
ブロック情報解析部140は、ブロック情報リスト106が入力され、仮想実行判定処理を行なって、解析結果リスト107を出力する。また、仮想実行部190は、ブロック情報解析部140から入力されたブロック情報の入力情報と出力情報を利用して、ブロックのペアに対して、暗号の基本定義を利用した仮想実行を行ない、仮想実行に成功した場合、同ブロックのペアを暗号/復号関数ペアの候補とし、候補とした暗号/復号関数ペアを含む暗号/復号関数ペアリスト191をブロック情報解析部140に出力する。
図17は、実施例4に係る仮想実行部190の仮想実行判定処理の流れを示すフローチャートである。
図18は、実施例4に係る仮想実行部190の仮想実行解析の流れ(前半)を示すフローチャートである。
図19は、実施例4に係る仮想実行部190の仮想実行解析の流れ(後半)を示すフローチャートである。
次に、ステップS202において、仮想実行部190は、解析対象の実行ファイル101を仮想環境上で実行してプロセスを起動し、一定期間経過後、同プロセスをサスペンドする。
次に、ステップS203において、仮想実行部190は、同プロセスのスナップショットを作成する。これをスナップショット1と呼ぶ。
次に、ステップS207において、仮想実行部190は、ブロックBjを構成する命令列をプロセスにインジェクトする。具体的には、ブロック情報BjのブロックIDに対応する要素を、ブロックリスト104から検索し、ブロックの命令列と開始アドレスを取得する。そして、同プロセスの同開始アドレスから同命令列をインジェクトする。
次に、ステップS208において、仮想実行部190は、同プロセスのスナップショットを作成する。これをスナップショット2と呼ぶ。
次に、ステップS209において、仮想実行部190は、Bjの入力情報を取得する。
次に、ステップS217において、仮想実行部190は、ブロックの実行が終了したか否かを判定する。仮想実行部190は、監視している実行アドレスがブロックBjの範囲を超えた場合、ブロックBjの実行が終了したと判定し、ステップS218において、プロセスをサスペンドする。
Claims (9)
- 解析対象のプロセスの実行トレースを取得する実行トレース取得部と、
前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出部と、
前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出部と、
前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析部と、
前記ブロック情報の前記入力情報または前記出力情報に含まれる印刷可能な文字列の割合である印刷可能文字列割合を判定する文字列割合判定部とを備え、
前記ブロック情報解析部は、前記特徴判定情報として、前記文字列割合判定部により判定された前記入力情報の第1の印刷可能文字列割合と前記出力情報の第2の印刷可能文字列割合との差分を算出し、この差分が予め定められた閾値以上の場合に、前記ブロックを暗号ロジックと判定する
プロセス解析装置。 - 解析対象のプロセスの実行トレースを取得する実行トレース取得部と、
前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出部と、
前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出部と、
前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析部と、
前記ブロック情報の前記出力情報をデコードするデータデコード部とを備え、
前記ブロック情報解析部は、前記特徴判定情報として、前記データデコード部により前記ブロック情報の前記出力情報をデコードしたデコード結果を生成し、このデコード結果と一致する前記出力情報を持つ前記ブロックを暗号ロジックと判定する
プロセス解析装置。 - 解析対象のプロセスの実行トレースを取得する実行トレース取得部と、
前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出部と、
前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出部と、
前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析部と、
前記ブロック情報の前記出力情報を他のブロックへ入力して前記他のブロックの処理を実行する仮想実行部とを備え、
前記ブロック情報解析部は、前記特徴判定情報として、前記仮想実行部により前記他のブロックの処理を実行した実行結果を生成し、この実行結果と一致する前記入力情報を持つ前記ブロックを暗号ロジックと判定する
プロセス解析装置。 - 解析対象のプロセスを解析して暗号ロジックを判定するプロセス解析装置のプロセス解析方法であって、
実行トレース取得部が、解析対象のプロセスの実行トレースを取得する実行トレース取得ステップと、
ブロック抽出部が、前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出ステップと、
ブロック情報抽出部が、前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出ステップと、
ブロック情報解析部が、前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析ステップと、
文字列割合判定部が、前記ブロック情報の前記入力情報または前記出力情報に含まれる印刷可能な文字列の割合である印刷可能文字列割合を判定する文字列割合判定ステップとを備え、
前記ブロック情報解析部は、前記特徴判定情報として、前記文字列割合判定部により判定された前記入力情報の第1の印刷可能文字列割合と前記出力情報の第2の印刷可能文字列割合との差分を算出し、この差分が予め定められた閾値以上の場合に、前記ブロックを暗号ロジックと判定する
プロセス解析方法。 - 解析対象のプロセスを解析して暗号ロジックを判定するプロセス解析装置のプロセス解析方法であって、
実行トレース取得部が、解析対象のプロセスの実行トレースを取得する実行トレース取得ステップと、
ブロック抽出部が、前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出ステップと、
ブロック情報抽出部が、前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出ステップと、
ブロック情報解析部が、前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析ステップと、
データデコード部が、前記ブロック情報の前記出力情報をデコードするデータデコードステップとを備え、
前記ブロック情報解析部は、前記特徴判定情報として、前記データデコード部により前記ブロック情報の前記出力情報をデコードしたデコード結果を生成し、このデコード結果と一致する前記出力情報を持つ前記ブロックを暗号ロジックと判定する
プロセス解析方法。 - 解析対象のプロセスを解析して暗号ロジックを判定するプロセス解析装置のプロセス解析方法であって、
実行トレース取得部が、解析対象のプロセスの実行トレースを取得する実行トレース取得ステップと、
ブロック抽出部が、前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出ステップと、
ブロック情報抽出部が、前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出ステップと、
ブロック情報解析部が、前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析ステップと、
仮想実行部が、前記ブロック情報の前記出力情報を他のブロックへ入力して前記他のブロックの処理を実行する仮想実行ステップとを備え、
前記ブロック情報解析部は、前記特徴判定情報として、前記仮想実行部により前記他のブロックの処理を実行した実行結果を生成し、この実行結果と一致する前記入力情報を持つ前記ブロックを暗号ロジックと判定する
プロセス解析方法。 - コンピュータに、
解析対象のプロセスの実行トレースを取得する実行トレース取得ステップと、
前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出ステップと、
前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出ステップと、
前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析ステップと、
前記ブロック情報の前記入力情報または前記出力情報に含まれる印刷可能な文字列の割合である印刷可能文字列割合を判定する文字列割合判定ステップとを実行させるためのプロセス解析プログラムであって、
前記ブロック情報解析ステップは、前記特徴判定情報として、前記文字列割合判定ステップにより判定された前記入力情報の第1の印刷可能文字列割合と前記出力情報の第2の印刷可能文字列割合との差分を算出し、この差分が予め定められた閾値以上の場合に、前記ブロックを暗号ロジックと判定する
プロセス解析プログラム。 - コンピュータに、
解析対象のプロセスの実行トレースを取得する実行トレース取得ステップと、
前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出ステップと、
前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出ステップと、
前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析ステップと、
前記ブロック情報の前記出力情報をデコードするデータデコードステップとを実行させるためのプロセス解析プログラムであって、
前記ブロック情報解析ステップは、前記特徴判定情報として、前記データデコードステップにより前記ブロック情報の前記出力情報をデコードしたデコード結果を生成し、このデコード結果と一致する前記出力情報を持つ前記ブロックを暗号ロジックと判定する
プロセス解析プログラム。 - コンピュータに、
解析対象のプロセスの実行トレースを取得する実行トレース取得ステップと、
前記実行トレースからループ構造を示す処理単位であるブロックを抽出するブロック抽出ステップと、
前記ブロックから、入力情報と記憶領域に書き込まれた値を含む出力情報とを含むブロック情報を抽出するブロック情報抽出ステップと、
前記ブロック情報の前記入力情報または前記出力情報を用いて前記ブロックの入出力関係の特徴を判定する特徴判定情報を生成し、この特徴判定情報を利用して前記ブロックの入出力関係を解析し、暗号関数または復号関数の入出力関係の特徴を示すブロックを暗号ロジックと判定するブロック情報解析ステップと、
前記ブロック情報の前記出力情報を他のブロックへ入力して前記他のブロックの処理を実行する仮想実行ステップとを実行させるためのプロセス解析プログラムであって、
前記ブロック情報解析ステップは、前記特徴判定情報として、前記仮想実行ステップにより前記他のブロックの処理を実行した実行結果を生成し、この実行結果と一致する前記入力情報を持つ前記ブロックを暗号ロジックと判定する
プロセス解析プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/004417 WO2016030927A1 (ja) | 2014-08-28 | 2014-08-28 | プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016030927A1 JPWO2016030927A1 (ja) | 2017-04-27 |
JP6246377B2 true JP6246377B2 (ja) | 2017-12-13 |
Family
ID=55398876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016545089A Expired - Fee Related JP6246377B2 (ja) | 2014-08-28 | 2014-08-28 | プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10325094B2 (ja) |
JP (1) | JP6246377B2 (ja) |
CN (1) | CN106664201A (ja) |
WO (1) | WO2016030927A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10050798B2 (en) * | 2015-02-06 | 2018-08-14 | Mitsubishi Electric Corporation | Cryptographic block identification apparatus, cryptographic block identification method, and non-transitory computer readable recording medium storing cryptographic block identification program |
CN109313688A (zh) * | 2016-06-16 | 2019-02-05 | 三菱电机株式会社 | 密钥生成源确定装置、密钥生成源确定方法和密钥生成源确定程序 |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3746098B2 (ja) | 1996-02-28 | 2006-02-15 | 株式会社日立製作所 | データの暗号化装置 |
US8661539B2 (en) * | 2000-07-10 | 2014-02-25 | Oracle International Corporation | Intrusion threat detection |
US7093239B1 (en) * | 2000-07-14 | 2006-08-15 | Internet Security Systems, Inc. | Computer immune system and method for detecting unwanted code in a computer system |
US20070192863A1 (en) * | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US6792543B2 (en) * | 2001-08-01 | 2004-09-14 | Networks Associates Technology, Inc. | Virus scanning on thin client devices using programmable assembly language |
US7171690B2 (en) * | 2001-08-01 | 2007-01-30 | Mcafee, Inc. | Wireless malware scanning back-end system and method |
JP2003114616A (ja) | 2001-10-03 | 2003-04-18 | Mitsubishi Electric Corp | 鍵探索装置 |
US8027473B2 (en) * | 2003-01-13 | 2011-09-27 | Conexant Systems, Inc. | System and method for improved data protection in PONs |
US7730482B2 (en) * | 2004-06-08 | 2010-06-01 | Covia Labs, Inc. | Method and system for customized programmatic dynamic creation of interoperability content |
JP2007334536A (ja) | 2006-06-14 | 2007-12-27 | Securebrain Corp | マルウェアの挙動解析システム |
US20080126766A1 (en) * | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US9015301B2 (en) * | 2007-01-05 | 2015-04-21 | Digital Doors, Inc. | Information infrastructure management tools with extractor, secure storage, content analysis and classification and method therefor |
JP5083760B2 (ja) | 2007-08-03 | 2012-11-28 | 独立行政法人情報通信研究機構 | マルウェアの類似性検査方法及び装置 |
JP4755658B2 (ja) | 2008-01-30 | 2011-08-24 | 日本電信電話株式会社 | 解析システム、解析方法および解析プログラム |
JP5009244B2 (ja) | 2008-07-07 | 2012-08-22 | 日本電信電話株式会社 | マルウェア検知システム、マルウェア検知方法及びマルウェア検知プログラム |
JP2010235911A (ja) * | 2009-03-11 | 2010-10-21 | Konica Minolta Ij Technologies Inc | 活性エネルギー線硬化型インクジェットインク、インクジェット記録方法及び印刷物 |
US20100234071A1 (en) * | 2009-03-12 | 2010-09-16 | Comsys Communication & Signal Processing Ltd. | Vehicle integrated communications system |
US8402541B2 (en) * | 2009-03-12 | 2013-03-19 | Microsoft Corporation | Proactive exploit detection |
US9197736B2 (en) * | 2009-12-31 | 2015-11-24 | Digimarc Corporation | Intuitive computing methods and systems |
US8464345B2 (en) | 2010-04-28 | 2013-06-11 | Symantec Corporation | Behavioral signature generation using clustering |
JP5499976B2 (ja) | 2010-07-29 | 2014-05-21 | 富士通株式会社 | 暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラム |
US9245114B2 (en) * | 2010-08-26 | 2016-01-26 | Verisign, Inc. | Method and system for automatic detection and analysis of malware |
JP2012083849A (ja) | 2010-10-07 | 2012-04-26 | Hitachi Ltd | マルウェア検知装置、及びその方法とプログラム |
JP5437977B2 (ja) | 2010-11-10 | 2014-03-12 | 日本電信電話株式会社 | 解析システム、解析装置、解析方法及び解析プログラム |
US8621620B2 (en) * | 2011-03-29 | 2013-12-31 | Mcafee, Inc. | System and method for protecting and securing storage devices using below-operating system trapping |
JP5687593B2 (ja) | 2011-10-06 | 2015-03-18 | 日本電信電話株式会社 | 解析装置、解析方法および解析プログラム |
JP5732372B2 (ja) | 2011-10-27 | 2015-06-10 | Kddi株式会社 | ソフトウェア検知ルール生成装置、ソフトウェア検知ルール生成方法およびソフトウェア検知ルール生成プログラム |
JP2013109553A (ja) | 2011-11-21 | 2013-06-06 | Hitachi Ltd | プログラムのホワイトリスト配信装置及び方法 |
JP5839967B2 (ja) * | 2011-12-01 | 2016-01-06 | 三菱電機株式会社 | マルウェア解析システム |
US9659173B2 (en) | 2012-01-31 | 2017-05-23 | International Business Machines Corporation | Method for detecting a malware |
WO2013123441A1 (en) * | 2012-02-17 | 2013-08-22 | Tt Government Solutions, Inc. | Method and system for packet acquisition, analysis and intrusion detection in field area networks |
US9245120B2 (en) * | 2012-07-13 | 2016-01-26 | Cisco Technologies, Inc. | Method and apparatus for retroactively detecting malicious or otherwise undesirable software as well as clean software through intelligent rescanning |
CN103902895B (zh) * | 2012-12-24 | 2017-07-07 | 腾讯科技(深圳)有限公司 | 僵尸网络控制协议挖掘方法和装置 |
CN103905391B (zh) * | 2012-12-26 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 僵尸网络命令和控制协议的获取方法及装置 |
CN103914652B (zh) * | 2013-01-09 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 恶意程序控制指令识别方法及装置 |
CN103914657B (zh) * | 2014-04-16 | 2016-10-19 | 南京大学 | 一种基于函数特征的恶意程序检测方法 |
CN103902911B (zh) * | 2014-04-16 | 2016-09-14 | 南京大学 | 一种基于程序结构特征的恶意程序检测方法 |
-
2014
- 2014-08-28 US US15/500,476 patent/US10325094B2/en not_active Expired - Fee Related
- 2014-08-28 WO PCT/JP2014/004417 patent/WO2016030927A1/ja active Application Filing
- 2014-08-28 CN CN201480081225.2A patent/CN106664201A/zh active Pending
- 2014-08-28 JP JP2016545089A patent/JP6246377B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPWO2016030927A1 (ja) | 2017-04-27 |
US20170337378A1 (en) | 2017-11-23 |
CN106664201A (zh) | 2017-05-10 |
US10325094B2 (en) | 2019-06-18 |
WO2016030927A1 (ja) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915659B2 (en) | Privacy detection of a mobile application program | |
Poudyal et al. | A framework for analyzing ransomware using machine learning | |
Chowdhury et al. | Malware analysis and detection using data mining and machine learning classification | |
US10678921B2 (en) | Detecting malware with hash-based fingerprints | |
TWI419003B (zh) | 自動化分析與分類惡意程式之方法及系統 | |
Ullah et al. | Modified decision tree technique for ransomware detection at runtime through API calls | |
Martín et al. | Android malware characterization using metadata and machine learning techniques | |
Rahimian et al. | On the reverse engineering of the citadel botnet | |
CN111163095B (zh) | 网络攻击分析方法、网络攻击分析装置、计算设备和介质 | |
Marastoni et al. | Groupdroid: Automatically grouping mobile malware by extracting code similarities | |
İbrahim et al. | A method for automatic android malware detection based on static analysis and deep learning | |
Al-Fawa'reh et al. | Malware detection by eating a whole APK | |
Bakour et al. | The android malware static analysis: techniques, limitations, and open challenges | |
CN111163094A (zh) | 网络攻击检测方法、网络攻击检测装置、电子设备和介质 | |
White et al. | A method for the automated detection phishing websites through both site characteristics and image analysis | |
Rafiq et al. | AndroMalPack: enhancing the ML-based malware classification by detection and removal of repacked apps for Android systems | |
Yang et al. | Detecting android malware with intensive feature engineering | |
JP6246377B2 (ja) | プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム | |
WO2020168614A1 (zh) | 移动恶意软件大数据的快速智能比对和安全检测方法 | |
KR101557455B1 (ko) | 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법 | |
Odebade et al. | Mitigating anti-forensics in the cloud via resource-based privacy preserving activity attribution | |
Patsakis et al. | Assessing llms in malicious code deobfuscation of real-world malware campaigns | |
Hindarto et al. | Android-manifest extraction and labeling method for malware compilation and dataset creation. | |
CN114595483B (zh) | 一种安全多方计算方法、装置、电子设备及存储介质 | |
Kucuk et al. | BigBing: Privacy-Preserving Cloud-Based Malware Classification Service. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170929 |
|
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: 20171017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171114 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6246377 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |