JP2013242633A - タグ付与装置及びタグ付与方法 - Google Patents

タグ付与装置及びタグ付与方法 Download PDF

Info

Publication number
JP2013242633A
JP2013242633A JP2012114118A JP2012114118A JP2013242633A JP 2013242633 A JP2013242633 A JP 2013242633A JP 2012114118 A JP2012114118 A JP 2012114118A JP 2012114118 A JP2012114118 A JP 2012114118A JP 2013242633 A JP2013242633 A JP 2013242633A
Authority
JP
Japan
Prior art keywords
tag
taint
data
analysis
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.)
Granted
Application number
JP2012114118A
Other languages
English (en)
Other versions
JP5832954B2 (ja
Inventor
Makoto Iwamura
誠 岩村
Yuhei Kawakoya
裕平 川古谷
Takeo Hario
剛男 針生
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012114118A priority Critical patent/JP5832954B2/ja
Publication of JP2013242633A publication Critical patent/JP2013242633A/ja
Application granted granted Critical
Publication of JP5832954B2 publication Critical patent/JP5832954B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】データ構造を意識することなくタグを付与すること。
【解決手段】タグ付与装置100は、一実施形態において、記憶部から所定のデータを読み出す。また、タグ付与装置100は、一実施形態において、記憶部の記憶領域各々に関連付けられた第1のタグ各々を記憶するタグテーブルから、所定のデータが読み出された記憶領域に関連付けられた第1のタグを取得する。また、タグ付与装置100は、一実施形態において、取得した第1のタグに、所定のデータのデータフローを追跡するための第2のタグを付与する。
【選択図】図1

Description

本発明は、タグ付与装置及びタグ付与方法に関する。
マルウェアなどの悪意ある不正プログラムの挙動を把握する手法として、テイント解析がある。テイント解析では、外部から入力されるデータをテイント、すなわち、汚染されたデータであるとみなし、データフローを追いかけることで、外部から入力されたデータがどのような効果を引き起こすかを検出する。例えば、テイント解析では、CPU(Central Processing Unit)やメモリ等のハードウェア、もしくはそれらのエミュレータ上で、マルウェアにより読み書きされるデータにテイントタグを付与し、テイントタグが付与されたデータの流れを追跡することで、機密情報の外部への流出を検知する。
なお、外部ネットワークから受信したデータが命令ポインタとして解釈される事象を検知し、未知の攻撃を防ぐ手法や、プログラム解析時のブレークポイントをテイントタグで実現する手法もある。
Georgios Portokalidis, Asia Slowinska, Herbert Bos, "Argos: an Emulator for Fingerprinting Zero-Day Attacks", in Proceedings of ACM SIGOPS/EUROSYS 2006, European Conference on Computer Systems 2006 中山 心太、青木 一史、川古谷 裕平、岩村 誠、伊藤 光恭、 "メモリ拡張によるアドレスに依存しないブレークポイント技術の提案",マルウェア対策研究人材育成ワークショップ2010
しかしながら、従来の手法では、ストレージの各データに予めテイントタグを付与しておく場合、データ構造が公にされていないと解析プログラムを開発することが困難であり、テイントタグを付与できないという問題がある。
例えば、OS(Operating System)やアプリケーション上で機密情報を取り扱う場合、機密情報はOSやアプリケーションが規定するデータ形式で格納される。例えば、多くのOSはファイルシステムを備えており、データを格納する単位として「ファイル」というデータ形式を提供する。ここで、機密情報が「ファイル」に格納されているとすると、機密情報を意味するテイントタグを付与すべき対象はファイルになる。ファイルシステムは、OSにより提供される機能であり、システムコール等により利用される。
ここで、ストレージの各データがどのファイルに対応するかを識別する際には、例えば、ファイルシステムに応じた解析プログラムが開発されて用いられる。OSのレジストリや、DBMS(DataBase Management System)におけるレコードに機密情報が含まれる場合は、ファイルシステムに応じた解析プログラムに加えて、各形式に応じた解析プログラムが用いられる。解析プログラムの開発は、OSやアプリケーションがプロプライエタリ・ソフトウェアである場合、言い換えると、データ構造が公にされていない場合には困難となる。
開示の技術は、上述に鑑みてなされたものであって、データ構造を意識することなくタグを付与可能となるタグ付与装置及びタグ付与方法を提供することを目的とする。
開示するタグ付与装置は、一つの態様において、記憶部から所定のデータを読み出す読出部を備える。また、開示するタグ付与装置は、一つの態様において、前記記憶部の記憶領域各々に関連付けられた第1のタグ各々を記憶するタグテーブルから、前記読出部により前記所定のデータが読み出された前記記憶領域に関連付けられた前記第1のタグを取得する取得部を備える。また、開示するタグ付与装置は、一つの態様において、前記取得部により取得された前記第1のタグに、前記所定のデータのデータフローを追跡するための第2のタグを付与するタグ付与部を備える。
開示のタグ付与装置の一つの態様によれば、データ構造を意識することなくタグを付与可能となるという効果を奏する。
図1は、実施例1に係るタグ付与装置の構成の一例を示すブロック図である。 図2は、実施例1におけるタグメモリに記憶される情報の一例を示す図である。 図3は、実施例1に係るタグ付与装置によるタグ付与処理の流れの一例を示すフローチャートである。 図4は、実施例1に係るテイント解析処理によるタグ付与処理の流れの一例を示すフローチャートである。 図5は、仮想化技術を用いて実現する場合の一例を示す図である。 図6は、タグ付与装置による処理を実行するためのタグ付与プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
以下に、開示するタグ付与装置及びタグ付与方法の実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[タグ付与装置の構成]
図1は、実施例1に係るタグ付与装置の構成の一例を示すブロック図である。図1に示す例では、タグ付与装置100は、入出力部101と、データベース110と、タグメモリ111と、制御部120とを有する。
入出力部101は、制御部120と接続される。入出力部101は、情報や指示を利用者から受け付け、受け付けた情報や指示を制御部120に入力する。また、入出力部101は、制御部120から情報を受け付け、受け付けた情報を出力する。入出力部101は、キーボードやマウス、マイクモニタやスピーカなどである。なお、入出力部101によって受け付けられる情報や指示の詳細や、入出力部101によって出力される情報の詳細については、説明を省略する。
データベース110は、制御部120と接続される。データベース110は、制御部120による各種処理に用いられるデータを記憶する。データベース110は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、ハードディスクや光ディスクなどである。データベース110は、「記憶部」とも称する。
以下では、データベース110が、データとして、「機密情報A」と「機密情報B」とを記憶する場合を例に説明するが、これに限定されるものではなく、他の任意のデータを記憶しても良い。「機密情報A」と「機密情報B」とを「所定のデータ」とも称する。また、以下では、データベース110に記憶されたデータを読み出す場合について説明するが、これに限定されるものではなく、任意のストレージや記憶部に記憶されたデータを読み出して良い。
また、以下では、データベース110が、データベース110の記憶領域のうち、先頭の記憶領域からのオフセットが「101バイト」から「199バイト」までの記憶領域に「機密情報A」を記憶するものとして説明する。また、同様に、データベース110が、データベース110の記憶領域のうち、先頭の記憶領域からのオフセットが「250バイト」から「270バイト」までの記憶領域に「機密情報B」を記憶するものとして説明する。
なお、以下では、データベース110の記憶領域のうち、データが記憶されている記憶領域を識別するための情報として、記憶領域の先頭からのオフセットを用いる場合を例に説明するが、これに限定されるものではなく、任意の情報を用いて良い。例えば、データベース110の記憶領域各々に対して、オフセットとは関係なく、一意に識別するための情報を付与して用いて良い。例えば、データベース110の記憶領域のバイトごとに、ID(identifier)を付与して用いても良い。
図1の説明に戻る。タグメモリ111は、制御部120と接続される。タグメモリ111は、制御部120による各種処理に用いられるデータを記憶する。タグメモリ111は、例えば、RAMやフラッシュメモリなどの半導体メモリ素子、ハードディスクや光ディスクなどである。タグメモリ111は、「タグテーブル」とも称する。
タグメモリ111は、データベース110の記憶領域各々に関連付けられた第1のタグ各々を記憶する。第1のタグとは、例えば、データベース110の記憶領域を識別するための位置情報であったり、データベース110の記憶領域を識別するための識別情報であったりする。以下では、第1のタグが、データベース110の記憶領域の先頭からのオフセットである場合を用いて説明する。また、以下では、タグメモリ111が、データベース110の記憶領域各々に関連付けられた第1のタグ各々を、全て、予め記憶する場合を用いて説明する。言い換えると、データベース110の全記憶領域に対して、予め第1のタグが付与されており、付与された第1のタグがタグメモリ111に格納されている場合を用いて説明する。
また、タグメモリ111は、所定のデータのデータフローを追跡するための第2のタグを記憶する。第2のタグは、第1のタグに関連付けられる。第2のタグは、関連付けられた第1のタグにより識別される記憶領域に、所定のデータの一部又は全てが記憶されていることを示す識別情報である。第2のタグは、タグメモリ111に記憶された第1のタグのうち、所定のデータの一部又は全てが格納されている記憶領域を識別する第1のタグに関連付けられている。また、第2のタグは、所定のデータの一部又は全てが格納されていない記憶領域を識別する第1のタグには関連付けられていない。
なお、以下では、第1のタグを「調査用テイントタグ」とも称し、第2のタグを「解析用テイントタグ」とも称する。また、以下では、解析用テイントタグとして、データを一意に識別する識別情報を用いる場合を例に説明するが、これに限定されるものではない。例えば、解析用テイントタグとして「機密情報A」と「機密情報B」とを区別可能な識別情報を用いなくても良い。
図2は、実施例1におけるタグメモリに記憶される情報の一例を示す図である。図2に示す例では、タグメモリ111は、解析用テイントタグと調査用テイントタグとを関連付けて記憶する。図2に示す例では、解析用テイントタグ「機密情報A」と調査用テイントタグ「101」とを関連付けて記憶し、解析用テイントタグ「機密情報A」と調査用テイントタグ「102」とを関連付けて記憶し、解析用テイントタグ「機密情報A」と調査用テイントタグ「199」とを関連付けて記憶する場合を例に示した。また、解析用テイントタグ「null」と調査用テイントタグ「200」とを関連付けて記憶する場合を例に示した。
すなわち、図2に示す例では、タグメモリ111は、調査用テイントタグ「101」〜「199」によって識別されるデータベース110の記憶領域各々に「機密情報A」が記憶されていることを記憶する。また、タグメモリ111は、調査用テイントタグ「200」によって識別されるデータベース110の記憶領域各々に、テイント解析による追跡対象となるデータが記憶されていないことを記憶する。
ここで、調査用テイントタグと解析用テイントタグとがタグメモリ111に格納されるタイミングの一例について更に説明する。調査用テイントタグは、例えば、予めタグメモリ111に格納されている。その上で、制御部120が後述のタグメモリ格納処理を実行することで、テイント解析による追跡対象となるデータが格納された記憶領域に関連付けられた調査用テイントタグについて、解析用テイントタグが格納される。その後、制御部120により、後述のテイント解析が実行される。
制御部120は、入出力部101とデータベース110とタグメモリ111と接続される。制御部120は、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部120は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などである。図1に示す例では、制御部120は、読出部121と、取得部122と、タグ付与部123と、テイント解析部124とを有する。
読出部121は、データベース110から所定のデータを読み出す。例えば、読出部121は、OSや他のアプリケーションの機能を用いたりすることで、データベース110からデータを読み出す。より詳細な一例をあげて説明すると、読出部121は、直接、又は、他のアプリケーションを介して、OSにより提供されるAPI(Application Programming Interface)やシステムコール等により、データベース110から機密情報Aや機密情報Bを読み出す。なお、この段階においては、タグメモリ111には、調査用テイントタグのみが格納されている。
なお、読出部121によって読み出されるデータは、データベース110に記憶された全データであっても良く、データベース110に記憶されたデータのうち一部のデータであっても良い。データベース110に記憶されたデータのうち一部のデータを読み出す場合には、読み出し時にユーザによって指定されたデータを読み出しても良く、予め設定されたデータを読み出しても良い。また、例えば、データベース110に記憶されている情報のうち、機密情報を指定しても良い。
取得部122は、データベース110の記憶領域各々に関連付けられた第1のタグ各々を記憶するタグメモリ111から、読出部121により所定のデータが読み出された記憶領域に関連付けられた第1のタグを取得する。ここで、取得部122は、所定のデータがデータベース110の複数の記憶領域にまたがって記憶されている場合に、複数の記憶領域各々に関連付けられた第1のタグ各々を取得する。
読出部121により機密情報Aと機密情報Bとが読み出された場合を用いて説明する。この場合、取得部122は、タグメモリ111に記憶された調査用テイントタグのうち、機密情報A又は機密情報Bが読み出された記憶領域を識別する調査用テイントタグ各々を取得する。図1に示す例では、取得部122は、調査用テイントタグ「101」〜「199」、「250」〜「270」を取得する。
タグ付与部123は、取得部122により取得された第1のタグに、所定のデータのデータフローを追跡するための第2のタグを付与する。具体的には、タグ付与部123は、取得部122により取得された第1のタグに対応付けて第2のタグをタグメモリ111に格納することで、第2のタグを付与する。
例えば、図1に示すように、タグ付与部123は、取得部122により取得された調査用テイントタグ「101」〜「199」、「250」〜「270」に関連付けて、解析用テイントタグを格納する。より詳細な一例をあげて説明すると、タグ付与部123は、調査用テイントタグ「101」〜「199」に関連付けて解析用テイントタグ「機密情報A」を格納する。また、タグ付与部123は、調査用テイントタグ「250」〜「270」に関連付けて解析用テイントタグ「機密情報B」を格納する。
すなわち、上述したように、タグ付与装置100は、予めストレージに対応する調査用テイントタグ格納領域を用意し、そこに調査用テイントタグとして、ストレージ内の何番目のデータかを表す値を格納しておく。その上で、調査用テイントタグが付与されたストレージを用いて、OSやアプリケーションを起動し、OSやアプリケーションにおいて規定されるデータ構造に基づきデータフローを解析したいデータを一度読み出し、読み出したデータに付与された調査用テイント情報を取得し、データフローを解析するための解析用テイントタグと調査用テイントタグを対にして格納する。
テイント解析部124は、タグメモリ111に記憶された情報に基づいて、テイント解析を実行する。具体的には、テイント解析部124は、テイントタグの伝搬処理及びテイントタグの検出処理を実行する。例えば、テイント解析部124は、データベース110に記憶されたデータがコピーされて他の記憶領域に格納されたり、他の記憶領域に移動されたりすると、コピー先や移動先となる記憶領域に関連付けられた第1のタグに関連付けて、第2のタグを格納する。言い換えると、コピー先や移動先となる記憶領域に対応する調査用テイントタグに対して、解析用テイントタグが伝搬される。また、テイント解析部124は、入出力部101からデータが出力される場合に、出力されるデータに第2のタグが付与されているかを監視する。そして、テイント解析部124は、第2のタグが付与されているとの監視結果が得られた場合に、データの外部への流出を検出する。
例えば、テイント解析部124は、任意の処理タイミングとなると、OSを起動し、解析対象となるアプリケーションを起動する。解析対象となるアプリケーションとは、例えば、マルウェアなどの不正プログラムである可能性のあるアプリケーションが該当する。そして、テイント解析部124は、その後、出力されるデータを監視し、外部に機密情報Aや機密情報Bが流出するかを監視する。より詳細な一例をあげて説明すると、テイント解析部124は、出力されるデータに関連付けられる第1のタグを用いてタグメモリ111を検索し、第2のタグが関連付けられている場合には、データの外部への流出を検出し、第2のタグが関連付けられていない場合には、データの外部への流出を検出しない。この結果、テイント解析部124は、解析用テイントタグ「機密情報B」が関連付けられている場合には、解析対象アプリケーションが「機密情報B」を流出させるアプリケーションであることを識別する。
例えば、テイント解析部124は、出力されるデータについて、解析用テイントタグが付与されている場合に、データの流出ありと判定する。一方、テイント解析部124は、出力されるデータがあるとの監視結果が得られなかった場合や、出力されるデータがあるとの監視結果が得られたが第2のタグがない場合には、流出なしと判定する。
すなわち、タグ付与装置100は、調査用テイントタグが付与されたストレージを用いて、データフローを解析したいプログラムを起動し、データフローを解析する際に、調査用テイントタグに対応する解析用テイントタグを、調査用テイントタグと解析用テイントタグの対から求める。そして、タグ付与装置100は、解析用テイントタグに基づいて、データの流出を検出する。
なお、タグ付与装置100は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、PHS(Personal Handyphone System)端末、移動体通信端末又はPDA(Personal Digital Assistant)などの情報処理装置を利用して実現しても良い。例えば、PDAなどの情報処理装置に、図1に示したデータベース110とタグメモリ111、制御部120の各機能を搭載することによって実現しても良い。
[タグ付与装置によるタグ付与処理]
図3は、実施例1に係るタグ付与装置によるタグ付与処理の流れの一例を示すフローチャートである。なお、以下では、ユーザによって、タグ付与処理の対象となるデータがユーザによって指定される場合を例に説明するが、これに限定されるものではない。
図3に示すように、タグ付与装置100では、ユーザによって所定のデータが指定されると(ステップS101肯定)、読出部121は、ユーザによって指定された所定のデータを読み出す(ステップS102)。例えば、読出部121は、データベース110から機密情報Aと機密情報Bとを読み出す。
そして、取得部122は、第1のタグを取得する(ステップS103)。例えば、取得部122は、機密情報A又は機密情報Bが格納されているデータベース110の記憶領域に関連付けられた調査用テイントタグ全てを取得する。図1に示す例では、取得部122は、調査用テイントタグ「101」〜「199」、「250」〜「270」を取得する。
そして、タグ付与部123は、第2のタグを付与する(ステップS104)。具体的には、タグ付与部123は、取得部122により取得された調査用テイントタグ「101」〜「199」、「250」〜「270」に関連付けて、解析用テイントタグを格納する。より詳細な一例をあげて説明すると、タグ付与部123は、調査用テイントタグ「101」〜「199」に関連付けて解析用テイントタグ「機密情報A」を格納する。また、タグ付与部123は、調査用テイントタグ「250」〜「270」に関連付けて解析用テイントタグ「機密情報B」を格納する。
[タグ付与装置によるテイント解析処理]
図4は、実施例1に係るテイント解析処理によるタグ付与処理の流れの一例を示すフローチャートである。以下に説明する一連の処理は、図3に示したタグ付与処理が実行され、タグメモリ111に調査用テイントタグと解析用テイントタグとが格納された後に実行される。また、以下では、説明の便宜上、タグの伝搬処理については言及することなく、テイントタグの検出処理について説明する。
図4に示すように、タグ付与装置100では、処理タイミングとなると(ステップS201肯定)、テイント解析部124が、解析対象アプリケーションの起動を行う(ステップS202)。具体的には、タグ付与装置100では、解析対象となるアプリケーションを起動する。
そして、テイント解析部124は、出力されるデータを監視する(ステップS203)。例えば、テイント解析部124は、出力されるデータがあるとの監視結果が得られた場合には(ステップS204肯定)、出力されるデータに付与された第1のタグを用いてタグメモリ111を検索する(ステップS205)。そして、テイント解析部124は、第2のタグがある場合には(ステップS206肯定)、流出ありと判定する(ステップS207)。つまり、テイント解析部124は、出力されるデータについて、解析用テイントタグが付与されている場合に、データの流出ありと判定する。一方、テイント解析部124は、出力されるデータがあるとの監視結果が得られなかった場合や(ステップS204否定)、出力されるデータがあるとの監視結果が得られたが第2のタグがない場合には(ステップS204肯定及びステップS206否定)、流出なしと判定する(ステップS208)。
[実施例1の効果]
上述したように、実施例1によれば、タグ付与装置100は、データベース110から所定のデータを読み出す。また、タグ付与装置100は、データベース110の記憶領域各々に関連付けられた第1のタグ各々を記憶するタグメモリ111から、所定のデータが読み出された記憶領域に関連付けられた第1のタグを取得する。また、タグ付与装置100は、取得した第1のタグに、所定のデータのデータフローを追跡するための第2のタグを付与する。この結果、データ構造を意識することなくタグを付与可能となる。言い換えると、OSやアプリケーション上で取り扱われるデータ構造に応じたテイントタグを、ストレージに付与可能になる。
すなわち、ストレージの各データがどのファイルに対応するかを識別する際には、例えば、ファイルシステムに応じた解析プログラムが開発されて用いられる。また、OSのレジストリや、DBMS(DataBase Management System)におけるレコードに機密情報が含まれる場合は、ファイルシステムに応じた解析プログラムに加えて、各形式に応じた解析プログラムが用いられる。解析プログラムの開発は、OSやアプリケーションがプロプライエタリ・ソフトウェアである場合、言い換えると、データ構造が公にされていない場合には困難である。
言い換えると、ファイルやDBMSのデータに対してテイントタグを用いた動的テイント解析を行おうとした場合、OSのファイルシステムの構造、DBMSのデータ構造に応じて重要な情報がどこに格納されているかを意識して、タグ付け、解析を行う必要がある。これに対して、実施例1によれば、ストレージの格納箇所にテイントタグをつけて機密情報との関連付けを行うことで、OSやアプリケーションによらずにタグ付け可能となり、テイント解析を実行可能となる。
ここで、上述したように、実施例1によれば、予めストレージに対応する調査用テイント格納領域を用意し、調査用テイント格納領域に、ストレージの各データのオフセット等、ストレージの場所を示す情報を格納しておく。その上で、OSやアプリケーションを起動し、調査用テイント情報が付与されたストレージからOSやアプリケーションがデータを一度読み出し、読み出したデータに付与された調査用テイント情報を取得し、解析用テイント情報と調査用テイント情報を合わせて格納する。この結果、OSやアプリケーションで取り扱われるデータに関して、データ構造を意識することなく予めテイントタグを付与可能となる。
また、例えば、ファイルシステムは、OSにより提供される機能であり、システムコール等により利用される。このため、テイントタグを付与する契機の一つとして、システムコール等によりファイルが読み込まれた場合が考えられる。例えば、テイント解析において、タグを付与することなく解析対象アプリケーションを起動し、解析対象アプリケーションによりデータがメモリに読み込まれる段階において、調査用テイントタグや解析用テイントタグを付与する手法が考えられる。とはいえ、例えば、マルウェアなどの不正プログラムは、原理的には、システムコールを用いずに直接ストレージ操作を行い、機密情報を取得することも考えられる。この結果、テイントタグは、データベースの各データに予め付与しておくことが望ましい。ここで、上述したように、実施例1によれば、データ構造を意識することなく、データベースの各データに予めテイントタグを付与可能となる。
また、実施例1によれば、タグ付与装置100は、取得部122により取得された第1のタグに対応付けて第2のタグをタグメモリ111に格納することで、第2のタグを付与する。この結果、データ構造を意識することなく予めテイントタグを付与可能となる。
また、実施例1によれば、タグ付与装置100は、所定のデータがデータベース110の複数の記憶領域にまたがって記憶されている場合に、複数の記憶領域各々に関連付けられた第1のタグ各々を取得する。この結果、データ構造を意識することなく予めテイントタグを付与可能となる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例を示す。
[タグメモリ]
例えば、実施例1では、タグメモリ111が、予め調査用テイントタグを記憶し、その後、解析用テイントタグが格納される場合を用いて説明した。ただし、これに限定されるものではなく、予め調査用テイントタグを記憶するメモリと、解析用テイントタグと調査用テイントタグとの関連付けを記憶するメモリとが別メモリであっても良い。
[シャドウメモリ]
例えば、タグメモリ111について、制御部120のうち、タグ付与処理又はテイント解析処理を実行する処理部のみがアクセス可能なシャドウメモリとしても良い。すなわち、OSやアプリケーションからタグメモリ111へのアクセスを許可した場合、マルウェア自身が解析されていることを検知する可能性がある。このことを踏まえ、タグ付与処理やテイント解析処理を実行する処理部のみがアクセス可能な一方、他の処理部からは参照不可なメモリとすることで、マルウェアに検知される可能性を低減可能となる。
例えば、タグメモリ111とデータベース110とを別個のメモリで実現し、タグ付与処理や、テイント解析処理を実行する場合にのみ、タグメモリ111に参照可能となるような構成としても良い。
[仮想化]
例えば、上述した制御部120やデータベース110、タグメモリ111などを仮想化技術を用いて実現しても良い。図5は、仮想化技術を用いて実現する場合の一例を示す図である。図5に示す例では、仮想ハードウェア200が、仮想CPU201と、仮想ディスク202と、シャドウディスク203と、仮想メモリ204と、シャドウメモリ205とを有する。また、仮想ハードウェア200は、仮想マシンモニタ220により実現される。ここで、仮想ディスク202は、データベース110に相当し、シャドウディスク203が、タグメモリ111に相当する。また、仮想ハードウェア200上では、OS210が実行され、OS210において、調査用アプリケーション211と解析対象アプリケーション212とが実行される。ここで、調査用アプリケーション211と仮想ハードウェア200とが、読出部121、取得部122、タグ付与部123に相当する。また、解析対象アプリケーション212は、実施例1におけるテイント解析部124の解析対象に相当する。なお、調査用アプリケーション211は、テイント解析に先立って処理を実行し、解析対象アプリケーション212がOS210にて実行されてテイント解析が実行される際には、処理を実行しない。
また、仮想マシンモニタ220は、解析用アプリケーション221を有する。解析用アプリケーション221は、実施例1におけるテイント解析部124に相当する。このように、図5に示す例では、実施例1におけるテイント解析部124に相当する処理は、仮想ハードウェア200を実現する仮想マシンモニタ220にて実行される。この結果、テイント解析を実行する際に、OS210にて処理を実行する解析対象アプリケーション212に気づかれることなく、解析用アプリケーション221がテイント解析を実行可能となる。
なお、シャドウディスク203は、仮想ディスク202上のデータに関するテイントタグを格納するためのデータ格納領域であり、シャドウメモリ205は、仮想メモリ204上のデータに関するテイントタグを格納するためのデータ格納領域である。
また、図5に示す例では、仮想ディスク202から読み出されたデータに関連付けられた調査用テイントタグを一時的に記憶するシャドウメモリ205を更に有する場合を例に示した。この場合、シャドウメモリ205に格納された調査用テイントタグ各々に対して、解析用テイントタグが関連付けて付与されることになる。解析用テイントタグは、その後、シャドウディスク203に格納されても良く、シャドウメモリ205に格納されても良い。また、データコピーによるテイントタグの伝搬処理は、仮想CPU201が行う。ここで、仮想ハードウェア200が、仮想CPU201に加えて仮想DMAコントローラを更に備える場合、仮想CPU201を介さないデータコピーを行う際には、仮想DMAコントローラがテイントタグの伝搬処理を行う。
また、図5に示す場合において、仮想CPU201や仮想ハードウェア200を提供するPCエミュレータにおいて、アプリケーションからシャドウメモリの参照を許す調査専用モードを用意しておき、調査専用モード時にのみ、シャドウディスク203やシャドウメモリ205への参照を許可するようにしても良い。
[システム構成]
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、図1に示す例では、データベース110を別装置としても良い。この場合、データベース110とタグ付与装置100とがネットワーク経由で接続するようにしても良い。また、制御部120のうち、テイント解析部124を別装置とし、ネットワーク経由で接続されて協働することで、上述したタグ付与装置100のテイント解析処理を実行するようにしても良い。
[プログラム]
図6は、タグ付与装置による処理を実行するためのタグ付与プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図6に例示するように、コンピュータ3000は、例えば、メモリ3010と、CPU(Central Processing Unit)3020と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス3100によって接続される。
メモリ3010は、図6に例示するように、ROM3011及びRAM3012を含む。ROM3011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。
ここで、図6に例示するように、ハードディスクドライブ3080は、例えば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る更新プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、例えばハードディスクドライブ3080に記憶される。具体的には、上記実施例で説明した制御部120の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ3080に記憶される。
また、上記実施例で説明したタグメモリ111に記憶されるデータのように、タグ付与プログラムによる情報処理に用いられるデータは、プログラムデータ3084として、例えばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAM3012に読み出し、各種の手順を実行する。
なお、タグ付与プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。例えば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されても良い。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、タグ付与プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されても良い。この場合、CPU3020は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
[その他]
なお、本実施例で説明したタグ付与プログラムは、インターネットなどのネットワークを介して配布することができる。また、タグ付与プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
100 タグ付与装置
101 入出力部
110 データベース
111 タグメモリ
120 制御部
121 読出部
122 取得部
123 タグ付与部
124 テイント解析部
200 仮想ハードウェア
201 仮想CPU
202 仮想ディスク
203 シャドウディスク
204 仮想メモリ
205 シャドウメモリ
210 OS
211 調査用アプリケーション
212 解析用アプリケーション

Claims (4)

  1. 記憶部から所定のデータを読み出す読出部と、
    前記記憶部の記憶領域各々に関連付けられた第1のタグ各々を記憶するタグテーブルから、前記読出部により前記所定のデータが読み出された前記記憶領域に関連付けられた前記第1のタグを取得する取得部と、
    前記取得部により取得された前記第1のタグに、前記所定のデータのデータフローを追跡するための第2のタグを付与するタグ付与部と
    を備えたことを特徴とするタグ付与装置。
  2. 前記タグ付与部は、前記取得部により取得された前記第1のタグに対応付けて前記第2のタグを前記タグテーブルに格納することで、前記第2のタグを付与することを特徴とする請求項1に記載のタグ付与装置。
  3. 前記取得部は、前記所定のデータが前記データベースの複数の記憶領域にまたがって記憶されている場合に、前記複数の記憶領域各々に関連付けられた前記第1のタグ各々を取得することを特徴とする請求項1又は2に記載のタグ付与装置。
  4. 記憶部から所定のデータを読み出す読出工程と、
    前記記憶部の記憶領域各々に関連付けられた第1のタグ各々を記憶するタグテーブルから、前記読出工程により前記所定のデータが読み出された前記記憶領域に関連付けられた前記第1のタグを取得する取得工程と、
    前記取得工程により取得された前記第1のタグに、前記所定のデータのデータフローを追跡するための第2のタグを付与するタグ付与工程と
    を含んだことを特徴とするタグ付与方法。
JP2012114118A 2012-05-18 2012-05-18 タグ付与装置及びタグ付与方法 Expired - Fee Related JP5832954B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012114118A JP5832954B2 (ja) 2012-05-18 2012-05-18 タグ付与装置及びタグ付与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012114118A JP5832954B2 (ja) 2012-05-18 2012-05-18 タグ付与装置及びタグ付与方法

Publications (2)

Publication Number Publication Date
JP2013242633A true JP2013242633A (ja) 2013-12-05
JP5832954B2 JP5832954B2 (ja) 2015-12-16

Family

ID=49843478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012114118A Expired - Fee Related JP5832954B2 (ja) 2012-05-18 2012-05-18 タグ付与装置及びタグ付与方法

Country Status (1)

Country Link
JP (1) JP5832954B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016040698A (ja) * 2014-08-13 2016-03-24 Kddi株式会社 テイント解析装置、テイント解析方法、およびプログラム
JP2019504403A (ja) * 2015-12-17 2019-02-14 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド メタデータ処理のための技法
CN112840341A (zh) * 2018-10-11 2021-05-25 Avl李斯特有限公司 用于探测与安全相关的数据流的方法
US11709680B2 (en) 2018-02-02 2023-07-25 The Charles Stark Draper Laboratory, Inc. Systems and methods for policy execution processing
US11748457B2 (en) 2018-02-02 2023-09-05 Dover Microsystems, Inc. Systems and methods for policy linking and/or loading for secure initialization
US11797398B2 (en) 2018-04-30 2023-10-24 Dover Microsystems, Inc. Systems and methods for checking safety properties
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US11875180B2 (en) 2018-11-06 2024-01-16 Dover Microsystems, Inc. Systems and methods for stalling host processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265832A (ja) * 1992-03-16 1993-10-15 Nec Corp データセキュリティ機能付きクライアント・サーバ型ファイルシステム
JP2002132583A (ja) * 2000-10-20 2002-05-10 Sony Corp データ処理装置、データ記憶装置、およびデータ処理方法、並びにプログラム提供媒体
JP2007133770A (ja) * 2005-11-11 2007-05-31 Toshiba Corp メモリカード、プロセッサモジュールおよびホスト機器の制御方法
JP2008210377A (ja) * 2007-01-29 2008-09-11 Rockwell Automation Technologies Inc 文字列タグに記録された名前を用いて制御装置のデータに間接アクセスする方法
US8127360B1 (en) * 2006-06-29 2012-02-28 Symantec Corporation Method and apparatus for detecting leakage of sensitive information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265832A (ja) * 1992-03-16 1993-10-15 Nec Corp データセキュリティ機能付きクライアント・サーバ型ファイルシステム
JP2002132583A (ja) * 2000-10-20 2002-05-10 Sony Corp データ処理装置、データ記憶装置、およびデータ処理方法、並びにプログラム提供媒体
JP2007133770A (ja) * 2005-11-11 2007-05-31 Toshiba Corp メモリカード、プロセッサモジュールおよびホスト機器の制御方法
US8127360B1 (en) * 2006-06-29 2012-02-28 Symantec Corporation Method and apparatus for detecting leakage of sensitive information
JP2008210377A (ja) * 2007-01-29 2008-09-11 Rockwell Automation Technologies Inc 文字列タグに記録された名前を用いて制御装置のデータに間接アクセスする方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSNG200600734069; 勝沼 聡: 'アドレスオフセットに着目したデータフロー追跡による注入攻撃の検出' 先進的計算基盤システムシンポジウム SACSIS2006 論文集 Vol.2006,No.5, 20060522, 第518,520頁, 社団法人情報処理学会 *
CSNG200800813005; 勝沼 聡: '文字列に着目した情報フロー追跡によるインジェクション攻撃の検出' 情報処理学会研究報告 Vol.2008,No.32, 20080327, 第27頁, 社団法人情報処理学会 *
CSNG201001086031; 中山 心太: 'メモリ拡張によるアドレスに依存しないブレークポイント技術の提案' コンピュータセキュリティシンポジウム2010 論文集 Vol.2010,No.9, 20101012, 第215頁, 一般社団法人情報処理学会 *
CSNJ201210002306; 大石 達也: '動的テイント解析とOSの連携による情報漏洩防止手法の提案' 第74回(平成24年)全国大会講演論文集(3) , 20120306, 第3-631〜3-632頁, 一般社団法人情報処理学会 *
JPN6015011434; 勝沼 聡: '文字列に着目した情報フロー追跡によるインジェクション攻撃の検出' 情報処理学会研究報告 Vol.2008,No.32, 20080327, 第27頁, 社団法人情報処理学会 *
JPN6015011435; 中山 心太: 'メモリ拡張によるアドレスに依存しないブレークポイント技術の提案' コンピュータセキュリティシンポジウム2010 論文集 Vol.2010,No.9, 20101012, 第215頁, 一般社団法人情報処理学会 *
JPN6015011438; 勝沼 聡: 'アドレスオフセットに着目したデータフロー追跡による注入攻撃の検出' 先進的計算基盤システムシンポジウム SACSIS2006 論文集 Vol.2006,No.5, 20060522, 第518,520頁, 社団法人情報処理学会 *
JPN6015011439; 大石 達也: '動的テイント解析とOSの連携による情報漏洩防止手法の提案' 第74回(平成24年)全国大会講演論文集(3) , 20120306, 第3-631〜3-632頁, 一般社団法人情報処理学会 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016040698A (ja) * 2014-08-13 2016-03-24 Kddi株式会社 テイント解析装置、テイント解析方法、およびプログラム
US11720361B2 (en) 2015-12-17 2023-08-08 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
JP2019504403A (ja) * 2015-12-17 2019-02-14 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド メタデータ処理のための技法
JP7000326B2 (ja) 2015-12-17 2022-01-19 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド メタデータ処理のための技法
US11340902B2 (en) 2015-12-17 2022-05-24 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US11507373B2 (en) 2015-12-17 2022-11-22 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US11635960B2 (en) 2015-12-17 2023-04-25 The Charles Stark Draper Laboratory, Inc. Processing metadata, policies, and composite tags
US11782714B2 (en) 2015-12-17 2023-10-10 The Charles Stark Draper Laboratory, Inc. Metadata programmable tags
US11748457B2 (en) 2018-02-02 2023-09-05 Dover Microsystems, Inc. Systems and methods for policy linking and/or loading for secure initialization
US11709680B2 (en) 2018-02-02 2023-07-25 The Charles Stark Draper Laboratory, Inc. Systems and methods for policy execution processing
US11977613B2 (en) 2018-02-02 2024-05-07 Dover Microsystems, Inc. System and method for translating mapping policy into code
US11797398B2 (en) 2018-04-30 2023-10-24 Dover Microsystems, Inc. Systems and methods for checking safety properties
CN112840341A (zh) * 2018-10-11 2021-05-25 Avl李斯特有限公司 用于探测与安全相关的数据流的方法
CN112840341B (zh) * 2018-10-11 2024-03-15 Avl李斯特有限公司 用于探测与安全相关的数据流的方法
US11875180B2 (en) 2018-11-06 2024-01-16 Dover Microsystems, Inc. Systems and methods for stalling host processor
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection

Also Published As

Publication number Publication date
JP5832954B2 (ja) 2015-12-16

Similar Documents

Publication Publication Date Title
JP5832954B2 (ja) タグ付与装置及びタグ付与方法
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
US9230106B2 (en) System and method for detecting malicious software using malware trigger scenarios in a modified computer environment
US20150007325A1 (en) System and Method for Detecting Malicious Software Using Malware Trigger Scenarios
US20200074080A1 (en) Malware clustering based on function call graph similarity
US8782615B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
JP2017527864A (ja) パッチファイル分析システム及び分析方法
US20150161390A1 (en) Fast and accurate identification of message-based api calls in application binaries
AU2017206284A1 (en) Tracing system operations across remote procedure linkages to identify request originators
EP2985716B1 (en) Information processing device and identifying method
EP2988242B1 (en) Information processing device, and information processing method
WO2019013033A1 (ja) コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム
US11886350B2 (en) System memory context determination for integrity monitoring and related techniques
US20160092313A1 (en) Application Copy Counting Using Snapshot Backups For Licensing
JP6018344B2 (ja) 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム
JP2013222422A (ja) プログラム、情報処理装置、及び情報処理方法
Ascia et al. Making android apps data-leak-safe by data flow analysis and code injection
JP5766650B2 (ja) 情報処理装置、監視方法および監視プログラム
JP2017033286A (ja) マルウェア動作環境推定方法、その装置およびシステム
CN106203087B (zh) 注入防护方法、系统、终端以及存储介质
JP6258189B2 (ja) 特定装置、特定方法および特定プログラム
EP2819055B1 (en) System and method for detecting malicious software using malware trigger scenarios
JP2013077154A (ja) マルウェア検知装置およびプログラム
JP2014225160A (ja) 情報処理装置および情報処理方法
JP7255681B2 (ja) 実行制御システム、実行制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150804

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

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: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151028

R150 Certificate of patent or registration of utility model

Ref document number: 5832954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees