JPWO2015194438A1 - 情報処理システム、制御方法及び制御プログラム - Google Patents
情報処理システム、制御方法及び制御プログラム Download PDFInfo
- Publication number
- JPWO2015194438A1 JPWO2015194438A1 JP2016529276A JP2016529276A JPWO2015194438A1 JP WO2015194438 A1 JPWO2015194438 A1 JP WO2015194438A1 JP 2016529276 A JP2016529276 A JP 2016529276A JP 2016529276 A JP2016529276 A JP 2016529276A JP WO2015194438 A1 JPWO2015194438 A1 JP WO2015194438A1
- Authority
- JP
- Japan
- Prior art keywords
- information
- data
- information processing
- virtual
- tag
- 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
Links
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/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
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
情報処理装置(10)は、マルウェアの挙動を解析する仮想マシン(30)と、仮想マシン(30)から送信された送信情報を転送する仮想マシン(40)とを有する。仮想マシン(30)は、シャドウメモリ(34b)、シャドウディスク(35b)、仮想NIC(36)を備え、仮想マシン(40)は、ゲストOS(42)を備える。シャドウメモリ(34b)およびシャドウディスク(35b)は、データと、データに付与されたタグ情報とを対応付けて記憶する。仮想NIC(36)は、マルウェアがデータを送信する際に、送信されるデータと、送信されるデータに付与されたタグ情報とを含んだ送信情報を生成し、仮想マシン(40)に送信情報を送信する。ゲストOS(42)は、受信した送信情報からタグ情報を抽出する。また、ゲストOS(42)は、抽出されたタグ情報に基づいて送信情報の転送先を決定し、決定した転送先に送信情報を転送する。
Description
本発明は、情報処理システム、制御方法及び制御プログラムに関する。
従来、マルウェアの解析手法には、大別して静的解析と動的解析とがある。静的解析は、マルウェアのプログラムコードを解析することでマルウェアが備える機能を把握する手法である。ただし、静的解析は、マルウェアが備える機能を網羅的に解析するので、多くの人手による作業が伴う。一方、動的解析は、マルウェアの振る舞いを記録する環境を用意し、この環境内でマルウェアを動作させることで、マルウェアの機能を解析する手法である。動的解析における振る舞いの抽出は、静的解析と比較して、自動化が容易である。
こうしたマルウェアの動的解析の1つとして、動的テイント解析がある。動的テイント解析では、例えば仮想マシンにおいて、仮想CPU(Central Processing Unit)が、仮想メモリや仮想ディスク等でマルウェアが読み書きするデータの流れを追跡する。より具体的には、動的テイント解析は、テイントタグの付与、テイントタグの伝搬、テイントタグの検出という3つのフェーズから構成される。
例えば、マルウェアによる機密情報の漏洩を検出する場合、仮想CPUは、以下の処理を実行する。まず、第1のフェーズでは、仮想CPUは、マルウェアを動作させる。そして、仮想CPUは、機密情報を含むファイルがメモリに読み込まれる段階で、機密情報を含むファイルのメモリにおける格納位置に対応付けて、機密情報を意味するテイントタグを付与する。通常、このテイントタグは、OS(Operating System)が管理する物理メモリとは別に用意された領域(「シャドウメモリ」とも呼ばれる)に格納される。この領域は、OSやアプリケーション(マルウェアを含む)からはアクセスできないように実装される。
その後、第2のフェーズでは、仮想CPUは、レジスタとメモリ領域との間の転送命令等を監視することで、機密情報のコピーに応じてテイントタグが伝搬する。そして、第3のフェーズでは、仮想CPUは、ネットワークインタフェースから出力されるデータに、機密情報を意味するテイントタグが付与されているかを確認する。仮想CPUは、出力されるデータにテイントタグが付与されている場合、機密情報が外部へ出力されようとしたことを検出する。
また、動的テイント解析を応用した例として、デバッガにおけるブレークポイントをテイントタグにより実現する技術がある。この技術では、利用者が、プログラムを中断させたい箇所(「ブレークポイント」を設定する箇所)に対して、テイントタグを事前に割り当てる。そして、仮想CPUは、実行する命令に対応付けてテイントタグが付与されているかを検査し、テイントタグが付与されている場合にプログラムを中断する。またテイントタグの伝搬先として、ディスクへ伝搬させる技術もある。
また、マルウェアの動的解析手法のひとつとして、あらかじめ用意したFTP(File Transfer Protocol)アカウント情報等(ハニートークンという)を解析用PCに設定しておき、故意にマルウェアによる情報漏えいを発生させることで、攻撃者の挙動を追跡する試みがある。これにより攻撃者が取得した情報をどのように悪用しているのかを把握することが可能になる。
川古谷裕平、岩村誠、針生剛男、テイントタグを用いた解析対象コードの識別方法、電子情報通信学会、情報通信システムセキュリティ研究会、2012年7月
Mitsuaki Akiyama, Takeshi Yagi, Kazufumi Aoki, Takeo Hariu, Youki Kadobayashi: Active Credential Leakage for Observing Web-Based Attack Cycle. RAID 2013: pp.223-243
青木一史、川古谷裕平、岩村誠、伊藤光恭、半透性仮想インターネットによるマルウェアの動的解析、マルウェア対策研究人材育成ワークショップ、2009年10月
しかしながら、上記の従来技術では、他者への被害を及ぼさないようにマルウェアの挙動を解析することができないという問題がある。
例えば、故意にマルウェアによる情報漏えいを発生させる動的解析の際には、マルウェアの通信先を実インターネットとして、攻撃者側にハニートークンを送信する必要がある。一方、マルウェアの中には迷惑メールの送信など、実インターネットにつないでしまうと、他者に被害を与える活動がある。このようなことから、他者に被害を与える可能性のある通信を遮断したり、解析者が用意した模擬インターネット内で通信を続行させたりするなどして、他者に被害を与えない方法が必要となる。
このように、マルウェアを動的解析する際には、その通信意図に応じて通信先を実インターネット、もしくは模擬インターネットに切り替える必要がある。従来は、その通信先IP(Internet Protocol)アドレスやURL(Uniform Resource Locator)、通信ペイロードの情報などから通信先を切り替えていたが、未知の通信先や通信ペイロードが難読化されている場合への対応が困難であった。
開示の技術は、上述に鑑みてなされたものであって、他者への被害を及ぼさないようにマルウェアの挙動を解析することを目的とする。
本願の開示する情報処理システムは、起動させたマルウェアの挙動を解析する第1の情報処理装置と、前記第1の情報処理装置から送信された送信情報を転送する第2の情報処理装置とを有する。前記第1の情報処理装置は、記憶部と、送信部とを備え、前記第2の情報処理装置は、抽出部と、転送部とを備える。記憶部は、データと、前記データに付与されたタグ情報とを対応付けて記憶する。送信部は、前記マルウェアがデータを送信する際に、送信されるデータと、前記送信されるデータに付与されたタグ情報とを含んだ送信情報を生成し、前記第2の情報処理装置に前記送信情報を送信する。抽出部は、受信した前記送信情報から前記タグ情報を抽出する。転送部は、抽出された前記タグ情報に基づいて前記送信情報の転送先を決定し、決定した前記転送先に前記送信情報を転送する。
開示する情報処理装置の一つの態様によれば、他者への被害を及ぼさないようにマルウェアの挙動を解析することができるという効果を奏する。
以下に、開示する情報処理システム、制御方法及び制御プログラムの実施形態について、図面に基づいて詳細に説明する。なお、本実施形態により開示する発明が限定されるものではない。
(第1の実施形態)
図1は、情報処理システム1の構成例を示す図である。図1に示すように、情報処理システム1は、模擬インターネット装置2と、実インターネット接続装置3と、実インターネット4と、マルウェア通信先切り替え装置5と、マルウェア実行環境6とを有する。
図1は、情報処理システム1の構成例を示す図である。図1に示すように、情報処理システム1は、模擬インターネット装置2と、実インターネット接続装置3と、実インターネット4と、マルウェア通信先切り替え装置5と、マルウェア実行環境6とを有する。
模擬インターネット装置2は、マルウェア通信先切り替え装置5を介して、マルウェア実行環境6からの通信を受け取り、保存すると同時に通信のプロトコルを判別し、プロトコルに応じたデータを生成する。そして、模擬インターネット装置2は、応答としてマルウェア実行環境6に生成したデータを送信する。模擬インターネット装置2は、このプロトコルに応じたサーバ応答の生成により実現される。
実インターネット接続装置3は、実インターネット4を介して外部装置との間の通信を制御する。実インターネット4は、外部装置と接続するネットワーク網である。
マルウェア実行環境6は、マルウェアを実行するための環境である。なお、ここで言う「マルウェア」とは、悪意あるソフトウェアの総称である。
マルウェア通信先切り替え装置5は、模擬インターネット装置2と、実インターネット接続装置3と、マルウェア実行環境6とに接続されており、例えば、マルウェア実行環境6と模擬インターネット装置2との間での情報の転送を制御する。また、マルウェア通信先切り替え装置5は、マルウェア実行環境6と実インターネット接続装置3との間での情報の転送を制御する。なお、情報処理システム1において、情報はフレーム形式でやり取りされるものとして説明する。
このような情報処理システム1において、例えば、マルウェア実行環境6は、マルウェアが情報漏えいを試みる可能性のあるデータをハニートークンとして事前に設定しておく。なお、ここで言う「データ」には、プログラム及びプログラムが参照するデータが含まれる。例えば、著名なFTPクライアントが用いる設定ファイルに、解析者が用意したFTPアカウント情報(FTPサーバ、ユーザ名、パスワード)を書き込んでおく。この際、この設定ファイルに対応付けて、属性情報としてテイントタグを設定しておく。そして、マルウェア実行環境6は、マルウェアを起動し、マルウェア実行環境6が備える仮想ネットワークインタフェース(仮想NIC)において送信処理が行われる際に、送信データとともにテイントタグを対応付けてマルウェア通信先切り替え装置5に送信する。
また、マルウェア通信先切り替え装置5は、マルウェア実行環境6から受信したデータと当該データに関連付けられたテイントタグを受信する。そして、マルウェア通信先切り替え装置5は、テイントタグに基づき、データの転送先が模擬インターネット装置2か実インターネット接続装置3かを決定する。例えば、FTPアカウント情報を示すテイントタグが付与されたデータに関しては、実インターネット接続装置3に転送する。
以下では、模擬インターネット装置2、実インターネット接続装置3、実インターネット4、マルウェア通信先切り替え装置5、及びマルウェア実行環境6のそれぞれが、仮想マシンとして1台の情報処理装置内において実現される場合について説明する。
図2は、情報処理システム1を実現する情報処理装置10の構成例を示す図である。なお、図2では、情報処理システム1のうちマルウェア通信先切り替え装置5に相当する仮想マシン40及びマルウェア実行環境6に相当する仮想マシン30のみを図示している。図2に示すように、情報処理装置10は、物理マシン20上において、仮想マシン30と仮想マシン40とを実現する。
物理マシン20は、図示しないハードウェアと、ホストOS(Operating System)と、仮想マシンソフトウェアとを有する。ハードウェアは、情報処理装置10を構成する電子回路や周辺機器であり、例えば、メモリ、CPU(Central Processing Unit)などである。また、ハードウェアは、後述する解析対象プログラム33とその解析を行うための環境を格納したディスクのイメージファイルを記憶する。つまり、ハードウェアは、仮想マシン30上で起動させるゲストOS32のイメージを記憶する。なお、ゲストOS32については、後述する。同様に、ハードウェアは、後述する解析対象プログラム43とその解析を行うための環境を格納したディスクのイメージファイルを記憶する。つまり、ハードウェアは、仮想マシン40上で起動させるゲストOS42のイメージを記憶する。なお、ゲストOS42については、後述する。
ホストOSは、仮想マシン30及び仮想マシン40を動作させる基盤となるOSであり、ハードウェアを用いて実行される。仮想マシンソフトウェアは、ホストOS上で動作し、仮想マシン30及び仮想マシン40を提供するソフトウェアである。例えば、仮想マシンソフトウェアは、仮想ハードウェア31をゲストOS32に割り当てて、仮想マシン30を動作させる。また、仮想マシンソフトウェアは、仮想ハードウェア41をゲストOS42に割り当てて、仮想マシン40を動作させる。
仮想マシン30は、例えば、仮想ハードウェア31と、ゲストOS32と、解析対象プログラム33とを有する。仮想ハードウェア31は、仮想マシンソフトウェアから提供された仮想ディスク、仮想物理メモリ、仮想CPUなどを用いてゲストOS32を動作させて、各種処理を実行する仮想的な情報処理装置である。ゲストOS32は、解析対象プログラム33を動作させる。解析対象プログラム33は、情報処理装置10において解析対象であるプログラムやアプリケーションであり、例えばマルウェアである。
また、仮想ハードウェア31は、ゲストOS32を動作させて、各種処理を実行する仮想的な情報処理装置であり、仮想メモリ34a、シャドウメモリ34b、仮想ディスク35a、シャドウディスク35b、仮想NIC(Network Interface Card)36、仮想CPU37、及びテイントタグ種別情報テーブル38を有する。なお、仮想メモリ34a、シャドウメモリ34b、仮想ディスク35a、シャドウディスク35b、仮想NIC36、仮想CPU37、及びテイントタグ種別情報テーブル38などは、仮想マシンソフトウェアから提供される。
仮想メモリ34aは、情報処理装置10が有する物理メモリにおける所定領域を仮想マシン30で動作するゲストOS32が使用するメモリとして割り当てることで実現された仮想的なメモリである。例えば、仮想メモリ34aは、仮想CPU37によって仮想ディスク35aから読み出されたプログラムやデータを記憶する。
シャドウメモリ34bは、データが記憶される仮想メモリ34a上の格納位置を特定する情報と、データが監視対象であることを示すテイントタグとを対応付けた位置情報を記憶するデータ構造体である。例えば、シャドウメモリ34bの構造としては、単純な配列構造でもよいし、ツリー構造としてテイントタグを保持してもよい。また、格納する情報としては、テイントタグとしての値を持たせてもよいし、テイント情報を保持させたデータ構造体へのポインタとして持たせてもよい。
図3を用いて、シャドウメモリ34bの一例を説明する。図3は、シャドウメモリ34bに記憶される情報の一例を示す図である。図3に示すように、シャドウメモリ34bは、「データID」と、「仮想メモリのアドレス」と「テイントタグID」とを対応付けて記憶する。
ここで、「データID」は、データの識別子を示す。例えば、「データID」には、「0001」、「0002」等が格納される。また、「仮想メモリのアドレス」は、仮想メモリ34a上の格納位置を示す位置情報である。例えば、「仮想メモリのアドレス」には、「0x0010」、「0x0020」等が格納される。「テイントタグID」は、監視対象であることを識別する識別子である。例えば、「テイントタグID」には、「1」、「2」等が格納される。
一例をあげると、図3に示すシャドウメモリ34bは、識別子が「0001」であるデータが、仮想メモリ34aのアドレス「0x0010」に格納されており、テイントタグ「1」が付与されていることを示す。また、図3に示すシャドウメモリ34bは、識別子が「0002」であるデータが、仮想メモリ34aのアドレス「0x0020」に格納されており、テイントタグ「2」が付与されていることを示す。なお、図3に示した数値等は、あくまで例示であり、値等を限定するものではない。なお、これらのテイントタグは、利用者によって選択されたデータに対して事前に設定される。
仮想ディスク35aは、情報処理装置10が有する物理ディスクにおける所定領域を仮想マシン30で動作するゲストOS32が使用する領域として割り当てることで実現された仮想的なディスクである。例えば、仮想ディスク35aは、仮想CPU37が実行対象とするプログラムや、プログラムの処理対象となるデータ等を記憶する。
シャドウディスク35bは、データが記憶される仮想ディスク35a上の格納位置を特定する情報と、データが監視対象であることを示すテイントタグとを対応付けた位置情報を記憶するデータ構造体である。例えば、シャドウディスク35bの構造としては、単純な配列構造でもよいし、ツリー構造としてテイントタグを保持してもよい。また、格納する情報としては、テイントタグとしての値を持たせてもよいし、テイント情報を保持させたデータ構造体へのポインタとして持たせてもよい。なお、シャドウディスク35bは、シャドウメモリ34bが記憶する「仮想メモリのアドレス」に代えて、仮想ディスク35a上の格納位置を示す位置情報である「仮想ディスクのアドレス」を記憶する。また、これらのテイントタグは、利用者によって選択されたデータに対して事前に設定される。
テイントタグ種別情報テーブル38は、テイントタグに対応付けられたデータの転送先を示すテイントタグ種別情報を記憶する。図4は、テイントタグ種別情報テーブル38が記憶する情報の一例を示す図である。図4に示すように、テイントタグ種別情報テーブル38は、「テイントタグID」と、「外部送信ステータス」とを対応付けた情報を記憶する。
ここで、テイントタグ種別情報テーブル38が記憶する「テイントタグID」は、テイントタグの識別子を示す。例えば、「テイントタグID」には、「1」、「2」等の値が格納される。また、テイントタグ種別情報テーブル38が記憶する「外部送信ステータス」は、実インターネット4を介した外部装置との間の通信を許可されていることを示す「許可」、実インターネット4を介した外部装置との間の通信を許可されていないことを示す「不許可」等が格納される。すなわち、「外部送信ステータス」が「許可」である場合、データは、実インターネット接続装置3に転送され、「外部送信ステータス」が「不許可」である場合、データは、模擬インターネット装置2に転送される。
一例をあげると、図4に示すテイントタグ種別情報テーブル38は、テイントタグID「1」が付与されたデータは、実インターネット4を介して外部装置との間の通信を許可されていることを示す。また、図4に示すテイントタグ種別情報テーブル38は、テイントタグID「2」が付与されたデータは、実インターネット4を介して外部装置との間の通信を許可されていないことを示す。
仮想CPU37は、情報処理装置10が有する物理CPUにおける所定処理能力を仮想マシン30で動作するゲストOS32が使用するCPUとして割り当てることで実現された仮想的なCPUである。例えば、仮想CPU37は、図示しない、プログラム実行機能部と、更新機能部とを有する。
また、仮想CPU37は、図示しない仮想レジスタとシャドウレジスタとを有する。仮想レジスタは、情報処理装置10が有する物理レジスタ・物理メモリ・物理ディスクにおける所定領域を仮想マシン30で動作するゲストOS32が使用する領域として割り当てることで実現された仮想的なレジスタである。例えば、仮想レジスタは、仮想CPU37によって仮想メモリ34aから読み出されたプログラムやデータを記憶する。また、シャドウレジスタは、データが記憶される仮想レジスタ上の格納位置を特定する情報と、データが監視対象であることを示すテイントタグとを対応付けた位置情報を記憶するデータ構造体である。
プログラム実行機能部は、仮想ディスク35aに記憶されるプログラムを実行する処理部である。例えば、プログラム実行機能部は、仮想ディスク35aからプログラムを読み出して仮想メモリ34aに展開する。つまり、プログラム実行機能部は、実行対象のプログラムを仮想ディスク35aから読み出して仮想メモリ34aに格納した後、仮想メモリ34aに記憶させた実行対象のプログラムを実行する。
更新機能部は、データのフローに応じて、データの格納位置を示す情報と、タグとを対応付けた位置情報を更新する。例えば、更新機能部は、プログラム実行機能部が解析対象プログラム33を実行している間、データがコピーされて他の記憶領域に格納されたり、他の記憶領域に移動されたりすると、コピー先や移動先となる記憶領域の格納位置に関連付けて、テイントタグを格納する。なお、ここで言う「記憶領域」には、仮想レジスタ、仮想メモリ34a及び仮想ディスク35aが含まれる。
より具体的には、更新機能部は、解析対象プログラム33を実行している最中に生じる仮想レジスタと仮想メモリ34a間及び仮想メモリ34aと仮想ディスク35a間のデータのコピーや、演算命令が生じた場合、データのコピー先や移動先となる記憶領域の格納位置に関連付けて、各記憶領域に対応するシャドウレジスタ、シャドウメモリ34b及びシャドウディスク35bにテイントタグを格納する。言い換えると、更新機能部は、コピー先や移動先となる記憶領域の格納位置に対して、テイントタグを伝搬させる。なお、以下では、シャドウレジスタ、シャドウメモリ34b及びシャドウディスク35bをあわせてシャドウ領域と呼ぶ場合がある。
仮想NIC36は、ゲストOS32からNICとして認識され、物理CPUで動作するソフトウェアとして実現される。また仮想NIC36が物理NICを制御することで、ゲストOS32は物理NICを通じて仮想マシン40(マルウェア通信先切り替え装置5)と通信することができる。
ここで、仮想NIC36は、マルウェアがデータを送信する際に、送信されるデータと、送信されるデータに付与されたテイントタグとを含んだフレームを生成し、仮想マシン40(マルウェア通信先切り替え装置5)にフレームを送信する。より具体的には、仮想NIC36は、シャドウメモリ34b又はシャドウディスク35bを参照して、送信されるデータにテイントタグが付与されている否かを判定する。そして、仮想NIC36は、テイントタグが付与されていると判定した場合には、データとテイントタグとを含んだフレームを生成する。なお、仮想NICは、送信されるデータにテイントタグが付与されていないと判定した場合、データを含んだフレームを生成する。
図5及び図6を用いて、仮想NIC36により生成されるフレームについて説明する。図5は、データにテイントタグが付与されていない場合に仮想NIC36により生成されるフレームの構造の一例を示す図であり、図6は、データにテイントタグが付与されている場合に仮想NIC36により生成されるフレームの構造の一例を示す図である。
図5に示すように、フレームは、通常、8バイトの「プリアンブル」、6バイトの「宛先MACアドレス」、6バイトの「送信元MACアドレス」、2バイトの「タイプ」、46〜1500バイトの「データ」、4バイトの「FCS」から構成される。仮想NIC36は、データにテイントタグが付与されていない場合、送信されるデータを「データ」に格納する。ここで、仮想NIC36は、データサイズが1500バイト未満の場合は、データ長がオフセット1522バイト目に位置するように、データの直後からオフセット1521バイト目までをパディングする。
一方、仮想NIC36は、データにテイントタグが付与されている場合、仮想CPU37からデータの送信要求を受け取ると、送信するデータのサイズを取得する。そして、仮想NIC36は、図6に示すように、データのサイズを2バイトの値として、プリアンブルから数えて(以後オフセットという)1522バイト目の「データ長」に設定する。ここで、仮想NIC36は、データサイズが1500バイト未満の場合は、データ長がオフセット1522バイト目に位置するように、データの直後からオフセット1521バイト目までをパディングする。なお、データサイズが最大(1500バイト)のときには、データの直後にデータサイズが位置することになる。
そして、仮想NIC36は、送信するデータが格納されている仮想メモリに対応するシャドウメモリの内容を、オフセット1524バイト目以降の「テイントタグ格納領域」に追加し、これをフレームとして送信する。言い換えると、仮想NIC36は、データを送信する際に、データに付与されたテイントタグを所定の最大送信可能サイズを超えたフレーム内の領域に格納する。これは、例えば、仮想NIC36が、データとそれに対応するテイントタグを別のフレームとして送信すると、通信パケット数が倍増してしまい、また、受信側でデータまたはテイントタグが到着した後に、それとペアになるテイントタグまたはデータを待つ処理も必要となるからである。仮想NIC36がデータとテイントタグを同一のフレームに格納することで、こうした問題を解決することができる。テイントタグは送信データ1バイト当たり1バイトを割り当ててもよいし、256通り以上のデータの属性を区別する必要がある場合は、送信データ1バイト当たり複数バイトのテイントタグを割り当ててもよい。また、仮想NIC36は、ジャンボ・フレームに非対応であるハードウェアを装うことで、OSが1500バイトより大きなデータを送信要求するケースを抑制することができる。
続いて、仮想マシン40について説明する。仮想マシン40は、例えば、仮想ハードウェア41と、ゲストOS42と、解析対象プログラム43とを有する。仮想ハードウェア41は、仮想マシンソフトウェアから提供された仮想ディスク、仮想物理メモリ、仮想CPUなどを用いてゲストOS42を動作させて、各種処理を実行する仮想的な情報処理装置である。ゲストOS42は、解析対象プログラム43を動作させる。解析対象プログラム43は、情報処理装置10において解析対象であるプログラムやアプリケーションである。
また、仮想ハードウェア41は、ゲストOS42を動作させて、各種処理を実行する仮想的な情報処理装置であり、仮想メモリ44a、シャドウメモリ44b、仮想ディスク45a、シャドウディスク45b、仮想NIC46、仮想CPU47、及びテイントタグ種別情報テーブル48を有する。なお、仮想メモリ44a、シャドウメモリ44b、仮想ディスク45a、シャドウディスク45b、仮想NIC46、仮想CPU47、及びテイントタグ種別情報テーブル48などは、仮想マシンソフトウェアから提供される。
また、仮想ハードウェア41が有する仮想メモリ44aは、仮想ハードウェア31が有する仮想メモリ34aと同様の機能を有し、仮想ハードウェア41が有するシャドウメモリ44bは、仮想ハードウェア31が有するシャドウメモリ34bと同様の機能を有する。なお、シャドウメモリ44bには、テイントタグは事前に設定されず、後述する仮想CPU47の格納制御機能部によって設定される。
また、仮想ハードウェア41が有する仮想ディスク45aは、仮想ハードウェア31が有する仮想ディスク35aと同様の機能を有し、仮想ハードウェア41が有するシャドウディスク45bは、仮想ハードウェア31が有するシャドウディスク35bと同様の機能を有する。なお、シャドウディスク45bには、テイントタグは事前に設定されず、後述する仮想CPU47の格納制御機能部によって設定される。また、仮想ハードウェア41が有するテイントタグ種別情報テーブル48は、仮想ハードウェア31が有するテイントタグ種別情報テーブル38と同様の機能を有する。
仮想CPU47は、情報処理装置10が有する物理CPUにおける所定処理能力を仮想マシン40で動作するゲストOS42が使用するCPUとして割り当てることで実現された仮想的なCPUである。仮想CPU47は、格納制御機能部を更に有する点を除いて、仮想CPU37と同様の機能を有する。
格納制御機能部は、受信したフレームに含まれるデータが抽出され、仮想メモリ44aに格納される際に、テイントタグを書き込み先の仮想メモリ44aと対応するシャドウメモリ44bに格納する。例えば、格納制御機能部は、受信したデータにテイントタグが付与されている場合には、データとテイントタグとを対応付けてシャドウメモリ44bに格納する。なお、格納制御機能部は、受信したデータにテイントタグが付与されていない場合には、処理を実行しない。また、受信したデータにテイントタグが付与されているか否かに関わらず、仮想CPU47は、受信したデータを仮想メモリ44aに格納する。
仮想NIC46は、ゲストOS42からNICとして認識され、物理CPUで動作するソフトウェアとして実現される。また仮想NIC46が物理NICを制御することで、ゲストOS42は物理NICを通じて仮想マシン30(マルウェア実行環境6)、模擬インターネット装置2及び実インターネット接続装置3と通信することができる。
また、ゲストOS42は、フレームを受信した場合、フレームの転送先を決定し、決定した転送先にフレームを転送する。ゲストOS42は、図示しない抽出機能部と、転送機能部とを有する。ここで、ゲストOS42は、TCPのようなデータを受信するまでに接続確立のためのパケットが交換されるプロトコルの場合は、例えばTCPスリーウェイハンドシェイクを行いTCPのセションを確立することで、通信先を確定する前に、データとそれに対応するテイントタグを受信する。
例えば、ゲストOS42の抽出機能部は、受信したデータにテイントタグが付与されている否かを判定する。そして、ゲストOS42の抽出機能部は、テイントタグが付与されていると判定した場合には、受信したフレームからテイントタグを抽出する。そして、ゲストOS42の転送機能部は、抽出したテイントタグに基づいてフレームの転送先を決定する。
より具体的には、ゲストOS42の抽出機能部は、受信したフレームのフレーム長を参照し、データにテイントタグが付与されているか否かを判定する。ここで、ゲストOS42の抽出機能部は、フレーム長が1526バイトである場合には、データにテイントタグが付与されていないと判定し、フレーム長が1529バイトである場合には、データにテイントタグが付与されていると判定する。
そして、ゲストOS42の抽出機能部は、データにテイントタグが付与されていると判定した場合、テイントタグを抽出する。例えば、ゲストOS42の抽出機能部は、フレームのオフセット1522バイト目から実データのサイズ分を実データとして抽出する。これにより、仮想CPU47は、抽出された実データを仮想メモリ44aにコピーする。また、ゲストOS42の抽出機能部は、オフセット1524バイト目以降からテイントタグを抽出する。これにより、仮想CPU47は、抽出したテイントタグをシャドウメモリ44bにコピーする。これにより、マルウェア実行環境6とマルウェア通信先切り替え装置5との間でのテイントタグの送受信が可能になる。
そして、ゲストOS42の転送機能部は、テイントタグ種別情報を参照して、抽出されたテイントタグに対応付けられた「外部送信ステータス」を読み出す。ここで、ゲストOS42の転送機能部は、「外部送信ステータス」が外部装置との間の通信を許可されていることを示す「許可」である場合、受信したフレームを実インターネット接続装置3に転送する。一方、ゲストOS42の転送機能部は、「外部送信ステータス」が外部装置との間の通信を許可されていないことを示す「不許可」である場合、受信したフレームを模擬インターネット装置2に転送する。また、ゲストOS42の転送機能部は、データにテイントタグが付与されていない場合には、受信したフレームを転送しない。なお、ゲストOS42の転送機能部は、データにテイントタグが付与されていない場合には、受信したフレームを、模擬インターネット装置2又は実インターネット接続装置3のいずれか一方に転送するようにしてもよい。
次に、図7を用いて、仮想マシン30が有する仮想NIC36による処理の手順を説明する。図7は、仮想NIC36によるフレーム生成する処理の手順を示すフローチャートである。図7に示すように、仮想NIC36は、データの送信要求を受付けたか否かを判定する(ステップS101)。ここで、仮想NIC36は、データの送信要求を受付けなかったと判定した場合(ステップS101、No)、ステップS101の判定処理を繰り返す。
一方、仮想NIC36は、データの送信要求を受付けたと判定した場合(ステップS101、Yes)、データにテイントタグが対応付けられているか否かを判定する(ステップS102)。ここで、仮想NIC36は、データにテイントタグが対応付けられていると判定した場合(ステップS102、Yes)、データに対応付けられたテイントタグを読み出す(ステップS103)。そして、仮想NIC36は、データとテイントタグとを含んだフレームを生成する(ステップS104)。
一方、仮想NIC36は、データにテイントタグが対応付けられていると判定しなかった場合(ステップS102、No)、データを含んだフレームを生成する(ステップS105)。仮想NIC36は、ステップS104又はステップS105の後、生成したフレームを仮想マシン40に送信し(ステップS106)、処理を終了する。
次に、図8を用いて、仮想マシン40による処理の手順を説明する。図8は、仮想マシン40による処理の手順を示すフローチャートである。図8に示すように、仮想マシン40のゲストOS42の抽出機能部は、フレームを受信したか否かを判定する(ステップS201)。ここで、ゲストOS42の抽出機能部は、フレームを受信したと判定しなかった場合(ステップS201、No)、ステップS201の判定処理を繰り返す。
一方、ゲストOS42の抽出機能部は、フレームを受信したと判定した場合(ステップS201、Yes)、フレームにテイントタグが含まれているか否かを判定する(ステップS202)。ここで、ゲストOS42の抽出機能部は、フレームにテイントタグが含まれていると判定した場合(ステップS202、Yes)、テイントタグを抽出する(ステップS203)。続いて、ゲストOS42は、仮想CPU47にテイントタグ種別情報を要求する(ステップS204)。なお、ゲストOS42の抽出機能部は、フレームにテイントタグが含まれていると判定しなかった場合(ステップS202、No)、処理を終了する。
また、仮想CPU47は、テイントタグ種別情報を要求されたか否かを判定する(ステップS205)。ここで、仮想CPU47は、テイントタグ種別情報を要求されたと判定した場合(ステップS205、Yes)、テイントタグ種別情報をゲストOS42に応答し、データとテイントタグとをゲストOS42に要求する(ステップS206)。一方、仮想CPU47は、テイントタグ種別情報を要求されたと判定しなかった場合(ステップS205、No)、ステップS205の判定処理を繰り返す。
ゲストOS42は、テイントタグ種別情報を取得し(ステップS207)、データとテイントタグとを仮想CPU47に応答する(ステップS208)。そして、仮想CPU47は、データとテイントタグとを取得する(ステップS209)。続いて、仮想CPU47の格納制御機能部は、データとテイントタグとを対応付けてシャドウメモリ44bに格納する(ステップS210)。このように仮想CPU47の格納制御機能部が、データとテイントタグとを対応付けてシャドウメモリ44bに格納しておくことで、例えば、テイントタグを参照し外部へ転送したデータを、事後の解析のために保存しておくことが可能になる。
また、ゲストOS42の転送機能部は、テイントタグ種別情報を参照してテイントタグを判定し(ステップS211)、実インターネット接続が許可されているか否かを判定する(ステップS212)。ここで、ゲストOS42の転送機能部は、実インターネット接続が許可されていると判定した場合(ステップS212、Yes)、実インターネット接続装置3にフレームを転送する(ステップS213)。一方、ゲストOS42の転送機能部は、実インターネット接続が許可されていると判定しなかった場合(ステップS212、No)、模擬インターネット装置2にフレームを転送する(ステップS214)。
上述したように、第1の実施形態に係る情報処理装置10において、マルウェアを動的解析する際、マルウェア実行環境6におけるテイントタグをネットワークに伝搬させることで、マルウェアの通信先を精度よく切り替える。
ここで、マルウェアの動的解析の際、あえてインターネットに存在する攻撃者と通信を許したいケースと、他者へ被害を及ぼさないように通信を遮断もしくは模擬インターネットに転送したいケースとがある。従来の技術では、通信先が全く未知の宛先である場合や、通信ペイロードが難読化されている場合には、通信先を決定することが困難であった。一方、第1の実施形態に係る情報処理装置10では、事前にマルウェア実行環境6において、攻撃者に送信したい情報にテイントタグを付与しておき、このテイントタグをマルウェア通信先切り替え装置5に伝える。これにより、マルウェア通信先切り替え装置5は、テイントタグを参照することで、宛先IPアドレスや通信ペイロードに依存せずに、マルウェア通信の宛先を模擬インターネットか実インターネットかを切り替えることができる。
なお、上述した実施形態では、マルウェア通信先切り替え装置5は、テイントタグ種別情報テーブル48を参照し、外部装置との間の通信を許可されているか否かを判定して転送先を決定するものとして説明したが、実施形態はこれに限定されるものではない。例えば、マルウェア実行環境6は、外部装置との間の通信を許可されているデータに対してのみテイントタグを付与するようにしてもよい。例えば、マルウェア実行環境6は、FTPアカウント情報についてのみテイントタグを付与する。かかる場合、マルウェア通信先切り替え装置5は、受信したフレームにテイントタグが含まれていた場合、データを実インターネット接続装置3に送信し、テイントタグが存在しない場合は、模擬インターネット装置2に送信する。或いは、マルウェア実行環境6は、外部装置との間の通信を許可されていないデータに対してのみテイントタグを付与するようにしてもよい。例えば、マルウェア実行環境6は、解析対象のマルウェアについてのみテイントタグを付与する。かかる場合、マルウェア通信先切り替え装置5は、受信したフレームにテイントタグが含まれていた場合、模擬インターネット装置2に送信し、テイントタグが存在しない場合は、データを実インターネット接続装置3に送信する。
また、マルウェア通信先切り替え装置5は、宛先IPアドレスや通信ペイロードのチェック結果とテイントタグを組み合わせて、転送先を決定してもよい。
また、上述した実施形態では、仮想NIC36は、図6に示すようにオフセット1522バイト目にデータ長を格納しているが、このデータ長を含めずにオフセット1522バイト目からテイントタグ格納領域を開始してもよい。この場合、ジャンボ・フレームのサイズから1526バイト(1522バイト+FCSのバイト数)を引いたサイズが、テイントタグ格納領域のサイズとなり、当該サイズから実データのサイズ(データ1バイトあたりテイントタグが1バイトの場合は、テイントタグ格納領域のサイズと等しい)を決定することができる。また、仮想NIC36は、データをパディングせずにフレームを生成してもよい。かかる場合、ジャンボ・フレームのサイズから28バイト(データまでの22バイト+データ長の2バイト+FCSの4バイト)を引いたサイズが、データのサイズとテイント格納領域のサイズの和となり、当該サイズから実データのサイズ(データ1バイトあたりテイントタグが1バイトの場合は、当該サイズを2で割った値が実データのサイズとなる)を決定することができる。また、仮想NIC36は、データをパディングせず、かつ、データ長を含めずにフレームを生成してもよい。
また、上述した実施形態では、模擬インターネット装置2、実インターネット接続装置3、実インターネット4、マルウェア通信先切り替え装置5、及びマルウェア実行環境6それぞれが、仮想マシンとして1台の情報処理装置内において実現される場合について説明したが、実施形態はこれに限定されるものではない。例えば、模擬インターネット装置2、実インターネット接続装置3、実インターネット4、マルウェア通信先切り替え装置5、及びマルウェア実行環境6それぞれが、仮想マシンとして複数の情報処理装置において任意の組み合わせで分散して実現されてもよい。或いは、情報処理システム1において、模擬インターネット装置2と、実インターネット接続装置3と、実インターネット4と、マルウェア通信先切り替え装置5と、マルウェア実行環境6とが、それぞれ独立した情報処理装置として実現されてもよい。
(第2の実施形態)
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。そこで、以下では、その他の実施形態を示す。
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。そこで、以下では、その他の実施形態を示す。
(システム構成)
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、仮想マシン30および仮想マシン40は、それぞれ別個の情報処理装置10により実現されてもよい。例えば、図10に示すように、仮想マシン30は情報処理装置10aの物理マシン20aにより実現され、仮想マシン40は情報処理装置10bの物理マシン20bにより実現されてもよい。この場合、仮想マシン30から送信されるフレームは、情報処理装置10a,10b間を接続するネットワーク(例えば、インターネット)経由で、仮想マシン40に到達する。
(プログラム)
また、上記実施例1に係る情報処理装置が実行する処理をコンピュータが実行可能な言語で記述した特定プログラムを作成することもできる。この場合、コンピュータが特定プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。更に、かかる特定プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された特定プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1等に示した情報処理装置10と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。
また、上記実施例1に係る情報処理装置が実行する処理をコンピュータが実行可能な言語で記述した特定プログラムを作成することもできる。この場合、コンピュータが特定プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。更に、かかる特定プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された特定プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1等に示した情報処理装置10と同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。
図9は、制御プログラムを実行するコンピュータ1000を示す図である。図9に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110及びキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図9に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093及びプログラムデータ1094を記憶する。上記実施形態で説明した制御プログラムは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
また、制御プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。具体的には、第1のコンピュータに上記実施形態で説明した仮想NIC36と同様の情報処理を実行する送信手順と、第2のコンピュータに上記実施形態で説明したゲストOS42の抽出機能部と同様の情報処理を実行する抽出手順と、ゲストOS42の転送機能部と同様の情報処理を実行する転送手順とが記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
また、制御プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、制御プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、制御プログラムに係るプログラムモジュールやプログラムデータは、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
(その他)
なお、本実施形態で説明した制御プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
なお、本実施形態で説明した制御プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
10、10a、10b 情報処理装置
20、20a、20b 物理マシン
30、40 仮想マシン
31、41 仮想ハードウェア
32、42 ゲストOS
33、43 解析対象プログラム
34a、44a 仮想メモリ
34b、44b シャドウメモリ
35a、45a 仮想ディスク
35b、45b シャドウディスク
36、46 仮想NIC
37、47 仮想CPU
38、48 テイントタグ種別情報テーブル
1000 コンピュータ
1010 メモリ
1011 ROM
1012 RAM
1020 CPU
1030 ハードディスクドライブインタフェース
1040 ディスクドライブインタフェース
1050 シリアルポートインタフェース
1060 ビデオアダプタ
1070 ネットワークインタフェース
1080 バス
1090 ハードディスクドライブ
1091 OS
1092 アプリケーションプログラム
1093 プログラムモジュール
1094 プログラムデータ
1100 ディスクドライブ
1110 マウス
1120 キーボード
1130 ディスプレイ
20、20a、20b 物理マシン
30、40 仮想マシン
31、41 仮想ハードウェア
32、42 ゲストOS
33、43 解析対象プログラム
34a、44a 仮想メモリ
34b、44b シャドウメモリ
35a、45a 仮想ディスク
35b、45b シャドウディスク
36、46 仮想NIC
37、47 仮想CPU
38、48 テイントタグ種別情報テーブル
1000 コンピュータ
1010 メモリ
1011 ROM
1012 RAM
1020 CPU
1030 ハードディスクドライブインタフェース
1040 ディスクドライブインタフェース
1050 シリアルポートインタフェース
1060 ビデオアダプタ
1070 ネットワークインタフェース
1080 バス
1090 ハードディスクドライブ
1091 OS
1092 アプリケーションプログラム
1093 プログラムモジュール
1094 プログラムデータ
1100 ディスクドライブ
1110 マウス
1120 キーボード
1130 ディスプレイ
Claims (7)
- 起動させたマルウェアの挙動を解析する第1の情報処理装置と、前記第1の情報処理装置から送信された送信情報を転送する第2の情報処理装置とを有する情報処理システムにおいて、
前記第1の情報処理装置は、
データと、前記データに付与されたタグ情報とを対応付けて記憶する記憶部と、
前記マルウェアがデータを送信する際に、送信されるデータと、前記送信されるデータに付与されたタグ情報とを含んだ送信情報を生成し、前記第2の情報処理装置に前記送信情報を送信する送信部とを備え、
前記第2の情報処理装置は、
受信した前記送信情報から前記タグ情報を抽出する抽出部と、
抽出された前記タグ情報に基づいて前記送信情報の転送先を決定し、決定した前記転送先に前記送信情報を転送する転送部と
を備えたことを特徴とする情報処理システム。 - 前記第2の情報処理装置は、
前記タグ情報と、前記タグ情報が付与された前記データの外部装置への転送を許可するか否かを示す情報とを対応付けたタグ種別情報を更に備え、
前記転送部は、前記タグ種別情報を参照し、模擬インターネットと実インターネットとのいずれか一方から前記送信情報の転送先を決定する
ことを特徴とする請求項1に記載の情報処理システム。 - 前記第2の情報処理装置は、受信した前記送信情報に含まれるデータと、前記データに付与されたタグ情報とを対応付けて記憶部に格納する格納制御部を更に備えたことを特徴とする請求項1又は2に記載の情報処理システム。
- 前記送信部は、前記データを送信する際に、前記データに付与されたタグ情報を所定の最大送信可能サイズを超えたフレーム内の領域に格納することを特徴とする請求項1又は2に記載の情報処理システム。
- 前記送信部は、前記データを送信する際に、前記データに付与されたタグ情報を所定の最大送信可能サイズを超えたフレーム内の領域に格納することを特徴とする請求項3に記載の情報処理システム。
- 起動させたマルウェアの挙動を解析する第1の情報処理装置と、前記第1の情報処理装置から送信された送信情報を転送する第2の情報処理装置とを有する情報処理システムで実行される制御方法であって、
前記第1の情報処理装置は、
データと、前記データに付与されたタグ情報とを対応付けて記憶する記憶部を備え、
前記第1の情報処理装置が、
前記マルウェアがデータを送信する際に、送信されるデータと、前記送信されるデータに付与されたタグ情報とを含んだ送信情報を生成し、前記第2の情報処理装置に前記送信情報を送信する送信工程を含み、
前記第2の情報処理装置が、
受信した前記送信情報から前記タグ情報を抽出する抽出工程と、
抽出された前記タグ情報に基づいて前記送信情報の転送先を決定し、決定した前記転送先に前記送信情報を転送する転送工程と
を含んだことを特徴とする制御方法。 - 起動させたマルウェアの挙動を解析する第1のコンピュータと、前記第1のコンピュータから送信された送信情報を転送する第2のコンピュータとを有する情報処理システムで実行される制御方法をコンピュータに実行させるための制御プログラムであって、
前記第1のコンピュータは、
データと、前記データに付与されたタグ情報とを対応付けて記憶する記憶部を備え、
前記第1のコンピュータに、
前記マルウェアがデータを送信する際に、送信されるデータと、前記送信されるデータに付与されたタグ情報とを含んだ送信情報を生成し、前記第2の情報処理装置に前記送信情報を送信する送信手順を実行させ、
前記第2のコンピュータに、
受信した前記送信情報から前記タグ情報を抽出する抽出手順と、
抽出された前記タグ情報に基づいて前記送信情報の転送先を決定し、決定した前記転送先に前記送信情報を転送する転送手順と
を実行させるための制御プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014124599 | 2014-06-17 | ||
JP2014124599 | 2014-06-17 | ||
PCT/JP2015/066771 WO2015194438A1 (ja) | 2014-06-17 | 2015-06-10 | 情報処理システム、制御方法及び制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6018346B2 JP6018346B2 (ja) | 2016-11-02 |
JPWO2015194438A1 true JPWO2015194438A1 (ja) | 2017-04-20 |
Family
ID=54935425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016529276A Active JP6018346B2 (ja) | 2014-06-17 | 2015-06-10 | 情報処理システム、制御方法及び制御プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10248790B2 (ja) |
EP (1) | EP3139298B1 (ja) |
JP (1) | JP6018346B2 (ja) |
CN (1) | CN106663170B (ja) |
WO (1) | WO2015194438A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6834688B2 (ja) | 2017-03-30 | 2021-02-24 | 日本電気株式会社 | マルウェア解析方法、マルウェア解析装置およびマルウェア解析システム |
US11016874B2 (en) * | 2018-09-19 | 2021-05-25 | International Business Machines Corporation | Updating taint tags based on runtime behavior profiles |
US11340835B2 (en) * | 2020-07-28 | 2022-05-24 | Dell Products L.P. | Virtual non-volatile memory system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732080A (en) * | 1995-07-12 | 1998-03-24 | Bay Networks, Inc. | Method and apparatus for controlling data flow within a switching device |
US7487543B2 (en) * | 2002-07-23 | 2009-02-03 | International Business Machines Corporation | Method and apparatus for the automatic determination of potentially worm-like behavior of a program |
US8898788B1 (en) * | 2004-04-01 | 2014-11-25 | Fireeye, Inc. | Systems and methods for malware attack prevention |
US8584239B2 (en) * | 2004-04-01 | 2013-11-12 | Fireeye, Inc. | Virtual machine with dynamic data flow analysis |
US8171553B2 (en) | 2004-04-01 | 2012-05-01 | Fireeye, Inc. | Heuristic based capture with replay to virtual machine |
US9027135B1 (en) * | 2004-04-01 | 2015-05-05 | Fireeye, Inc. | Prospective client identification using malware attack detection |
US7908653B2 (en) * | 2004-06-29 | 2011-03-15 | Intel Corporation | Method of improving computer security through sandboxing |
US20070079366A1 (en) | 2005-10-03 | 2007-04-05 | Microsoft Corporation | Stateless bi-directional proxy |
JP4899087B2 (ja) * | 2006-03-24 | 2012-03-21 | 富士通株式会社 | 伝送システム |
US8127360B1 (en) * | 2006-06-29 | 2012-02-28 | Symantec Corporation | Method and apparatus for detecting leakage of sensitive information |
US20090300751A1 (en) * | 2008-05-30 | 2009-12-03 | Balachander Krishnamurthy | Unique packet identifiers for preventing leakage of sensitive information |
JP5389739B2 (ja) * | 2010-06-08 | 2014-01-15 | 日本電信電話株式会社 | 解析システム、解析装置、解析方法及び解析プログラム |
US8914879B2 (en) * | 2010-06-11 | 2014-12-16 | Trustwave Holdings, Inc. | System and method for improving coverage for web code |
JP5437964B2 (ja) | 2010-10-06 | 2014-03-12 | 日本電信電話株式会社 | 解析方法、解析装置及び解析プログラム |
CN102075617A (zh) | 2010-12-02 | 2011-05-25 | 惠州Tcl移动通信有限公司 | 阻止手机病毒自动发送短消息的方法及其装置 |
CN102413134A (zh) | 2011-11-17 | 2012-04-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种传送数据的方法、系统及通信终端 |
US9081959B2 (en) | 2011-12-02 | 2015-07-14 | Invincea, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
US10097567B2 (en) | 2013-05-20 | 2018-10-09 | Nippon Telegraph And Telephone Corporation | Information processing apparatus and identifying method |
-
2015
- 2015-06-10 CN CN201580032199.9A patent/CN106663170B/zh active Active
- 2015-06-10 WO PCT/JP2015/066771 patent/WO2015194438A1/ja active Application Filing
- 2015-06-10 JP JP2016529276A patent/JP6018346B2/ja active Active
- 2015-06-10 EP EP15809912.7A patent/EP3139298B1/en active Active
- 2015-06-10 US US15/316,667 patent/US10248790B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN106663170A (zh) | 2017-05-10 |
EP3139298A4 (en) | 2017-12-13 |
US20170206356A1 (en) | 2017-07-20 |
CN106663170B (zh) | 2019-06-25 |
EP3139298A1 (en) | 2017-03-08 |
EP3139298B1 (en) | 2019-10-16 |
JP6018346B2 (ja) | 2016-11-02 |
WO2015194438A1 (ja) | 2015-12-23 |
US10248790B2 (en) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10009381B2 (en) | System and method for threat-driven security policy controls | |
US9294442B1 (en) | System and method for threat-driven security policy controls | |
JP5965059B2 (ja) | 情報処理装置及び特定方法 | |
WO2018131199A1 (ja) | 結合装置、結合方法および結合プログラム | |
WO2019184664A1 (zh) | 恶意文件的检测方法、设备和系统 | |
CN107391999B (zh) | 封装其它凭据提供者的凭据提供者 | |
JP6018346B2 (ja) | 情報処理システム、制御方法及び制御プログラム | |
JP2014179025A (ja) | 接続先情報抽出装置、接続先情報抽出方法、及び接続先情報抽出プログラム | |
US20180316696A1 (en) | Analysis apparatus, analysis method, and analysis program | |
US20210274021A1 (en) | Securing internal services in a distributed environment | |
JP6092759B2 (ja) | 通信制御装置、通信制御方法、および通信制御プログラム | |
JP5876399B2 (ja) | 不正プログラム実行システム、不正プログラム実行方法及び不正プログラム実行プログラム | |
JP6314036B2 (ja) | マルウェア特徴抽出装置、マルウェア特徴抽出システム、マルウェア特徴方法及び対策指示装置 | |
US20140366084A1 (en) | Management system, management method, and non-transitory storage medium | |
JP6676790B2 (ja) | リクエスト制御装置、リクエスト制御方法、および、リクエスト制御プログラム | |
WO2020255185A1 (ja) | 攻撃グラフ加工装置、方法およびプログラム | |
JP6911723B2 (ja) | ネットワーク監視装置、ネットワーク監視方法及びネットワーク監視プログラム | |
KR102156600B1 (ko) | 네트워크에서 수집된 패킷과 엔드포인트 컴퓨팅 장치의 프로세스 간의 연관관계를 생성하는 시스템 및 방법 | |
JP2019125243A (ja) | マルウェア検知システムおよびマルウェア検知方法 | |
JP2017162042A (ja) | 不正処理解析装置、および不正処理解析方法 | |
CN108289032B (zh) | 一种数据传输方法及装置 | |
JP6687844B2 (ja) | マルウエア解析装置、マルウエア解析方法及びマルウエア解析プログラム | |
Joshi et al. | A Survey of Hypervisor Forensic in Cloud Computing | |
JP2019176273A (ja) | 通信制御装置、クライアント装置、通信制御方法、及びプログラム | |
CN107517264A (zh) | 云数据系统中请求处理的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20160927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160929 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6018346 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |