JP4627266B2 - 未知のマルウェアによる情報漏洩防止システム - Google Patents
未知のマルウェアによる情報漏洩防止システム Download PDFInfo
- Publication number
- JP4627266B2 JP4627266B2 JP2006038901A JP2006038901A JP4627266B2 JP 4627266 B2 JP4627266 B2 JP 4627266B2 JP 2006038901 A JP2006038901 A JP 2006038901A JP 2006038901 A JP2006038901 A JP 2006038901A JP 4627266 B2 JP4627266 B2 JP 4627266B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- virtual disk
- web browser
- software
- virtualization module
- 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
Images
Landscapes
- Storage Device Security (AREA)
Description
下記特許文献1に記載のものは、過去に発見されたウィルスのユニークな一連の文字および数値をシグネチャとして登録し、実行可能ファイルのコードと比較する方法で、コンピュータウィルスか否かを検知するものである。
また、下記特許文献2に記載のものは、新たなコンピュータウィルス等の悪性ソフトウェアであっても検知できるようなコンピュータウィルス等の悪性ソフトウェアの検知法などを提供するため、実行形式ファイルの実行が異常なものか否かを判定する機能と、予め登録済みのレジストリ値、プログラムファイル、システムファイルへの不正な書き込みを監視する機能を持ち、万一、不正な動作が発生した場合は、悪性ソフトウェアによる異常な動作と見なし、実行を中止するものである。
また、上記特許文献2に記載の技術は、悪性ソフトウェアが行う異常な動作を元にコンピュータウィルスを検知するため、既知の攻撃方法や脆弱性を突く未知のコンピュータウィルスは検知できる。ただし、コンピュータウィルスが実行する不正な動作が想定外であった場合には、上記特許文献1と同様にコンピュータウィルスを検知できない。
すなわち、上記特許文献1や特許文献2に示される従来技術では、未知のコンピュータウィルスを検知できないケースがある。この結果、コンピュータウィルスが、PC内の重要なデータを全く関係ない第三者に漏洩するような不正な動作を確実に防止することはできない。
また、ユーザからの設定に応じて、あるアプリケーションに対応づけられた仮想ディスクから別のアプリケーションに対応付けられた仮想ディスクにデータ転送する手段を用意していることにより、例えば、WebブラウザでダウンロードしたPDFファイルを、PDF閲覧ソフトで参照することができ、利便性を失なうことなく未知のマルウェアによる情報漏洩を防止することができる。
図1は、本発明の一実施の形態を示すシステム構成図である。
ユーザが利用するパーソナルコンピュータ(以下、PC)1の内部の記憶装置内には、Webブラウザ101、文書ソフト102、データ転送プログラム103が格納されている。
データ転送プログラム103は、あるアプリケーションに対応付けられた仮想ディスクから別のアプリケーションに対応付けられた仮想ディスクにデータを転送するための本発明固有のプログラムである。
コールゲート104は、アプリケーションとオペレーティングシステム105の特権レベルの境界を表す。特権レベルとは、CPU121がメモリ122や外部記憶装置123(外部記憶装置にはファイル131やレジストリ132が保存されている)といったハードウェア106への不正なアクセスを保護するために設けたアクセス区分である。
ソフトウェア割込みとは、オペレーティングシステム105に実装されたソフトウェア割込みルーチン111の呼び出しをCPU121に依頼するための命令である。
CPU121はソフトウェア割込みの実行時に、アプリケーションの実行処理を停止し、オペレーティングシステム105に制御を移す。オペレーティングシステム105のソフトウェア割込みルーチンの先頭アドレスは割込み記述テーブル(IDT)113に定義されている。
割込み記述テーブル113は、オペレーティングシステム105の起動時に設定される。
ページテーブル114には仮想アドレスと物理メモリのアドレスの対応関係が記述されている。ページテーブル114を利用すれば、アプリケーションがアクセスするメモリ領域が共有メモリか否かを検知できる。
マルウェアに感染したWebブラウザ101から外部記憶装置に保存されているファイルを削除、破壊するためのソフトウェア割込みが発生すると(S1)、CPU121は割込み記述テーブル113に登録されているソフトウェア割込みルーチンを実行し(S2)、外部記憶装置123に保存されているファイルにアクセスし(S3)、削除または破壊する。その後、ソフトウェア割込みルーチンはCPU121にソフトウェア割込みの終了を通知し、Webブラウザ101に制御を戻す(S4)。
CPU121はWebブラウザ101のソフトウェア割込みの次のステップの処理を実行する(S5)。
以上のようにして、Webブラウザ101に感染したマルウェアは、Webブラウザ101を実行しているユーザがアクセス権を持っている全てのファイルを削除または破壊することになる。
仮想化モジュール112はオペレーティングシステム105の起動時に割込み記述テーブル113の登録内容を変更し、ソフトウェア割込みルーチンではなく、仮想化モジュール112内のルーチンがソフトウェア割込みを処理できるようにする(S1)。
一方、Webブラウザ101や文書ソフト102等のアプリケーション起動時に、アプリケーション固有のディスクイメージ303,304を仮想ディスク301,302にコピーする(S2)。例えば、Webブラウザ用のディスクイメージ303をWebブラウザ101がアクセスする仮想ディスク301にコピーする。Webブラウザ101がアクセスする仮想ディスク301にはHTMLファイル311やレジストリ312が保存されている。
同様に、文書ソフト102用のディスクイメージ304を文書ソフト102がアクセスする仮想ディスク302にコピーする。文書ソフト102がアクセスする仮想ディスク302には、文書データ321やレジストリ322が保存されている。
仮想化モジュール112のルーチンはWebブラウザ101がアクセスする仮想ディスク301上のファイル311にアクセスし、ファイルを削除する(S5)。その後、仮想化モジュール112はCPU121にソフトウェア割込みルーチンの終了を通知する(S6)。すると、CPU121はWebブラウザ101に制御を移し、Webブラウザの実行が再開される(S7)。
アプリケーションの認証方法としては、実行プログラムファイルのハッシュを採る方法、アプリケーションの実行プログラムのファイルパスを確認する方法、オペレーティングシステム105が保持しているプロセスの構成情報を確認する方法、もしくはこれらの方法の組み合わせがある。
また、Webブラウザ101を再起動するたびに、Webブラウザ101用のディスクイメージ303を仮想ディスク301にコピーする為、マルウェアによって破壊されたHTMLファイル311を復元できる効果もある。
割込み記述テーブル113は“割込みベクター”、“属性”、“割込みルーチンアドレス”で構成されている。
“割込みベクター”は割込みの番号を表している。アプリケーションがオペレーティングシステム105にファイル操作を要求するためのシステムコールを実行する場合、通常は割込み番号(”002E”)のソフトウェア割込みが用いられる。
“属性”は割込みの種類を表している。属性値として、割込みゲート、タスクゲート、トラップゲート等がある。
“割込みルーチンアドレス”は、個々の割込みに対応する処理ルーチンの先頭アドレスを記述している。
オペレーティングシステム105は起動時にソフトウェア割込みルーチンのアドレスを割込み記述テーブル113に設定する。
本発明の仮想化モジュール112は、割込み記述テーブル113に設定されている“割込みルーチンアドレス”を独自のソフトウェア割込みルーチンの先頭アドレスに再設定する。この結果、アプリケーションからのハードディスクやメモリのアクセスを全て監視できる。
Webブラウザ101でPDFファイル501を閲覧する場合、Webブラウザ101はPDFファイル501をダウンロードし、PDFファイル501をキャッシュの格納領域に一時的に保存する。この時、Webブラウザ101はPDFファイル501の保存を要求するソフトウェア割込みを発生させる(S1)。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S2)。
次にWebブラウザ101はPDF閲覧ソフト501を起動し、PDFファイル502の場所を通知する(S4)。
PDF閲覧ソフト501は、Webブラウザ101から受信したPDFファイル502の場所を参照するためのソフトウェア割込みを発生させる(S5)。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S6)。
仮想化モジュール112のルーチンはPDF閲覧ソフト501がアクセスする仮想ディスク302上のPDFファイルを参照しようとするが、該当するPDFファイルはWebブラウザ101がアクセスする仮想ディスク301上には存在するが、PDF閲覧ソフト501がアクセスする仮想ディスク302には存在しないため、ファイルの参照は失敗する。
前述の図5においてPDF閲覧ソフト501がPDFファイル502の参照に失敗した後で、ユーザは本発明のデータ転送プログラム103を起動する(S8)。
データ転送プログラム103の起動は仮想化モジュール112がPDFファイル502の参照の失敗時に実行することも可能である。
データ転送プログラム103は、図8に示す設定画面801を表示し、ユーザにWebブラウザ101がアクセスする仮想ディスク301上のPDFファイル502をPDF閲覧ソフト501がアクセスする仮想ディスク302にコピーするか否かを指定させる。指定の仕方については図8で説明する。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S10)。
仮想化モジュール112はWebブラウザ101がアクセスする仮想ディスク301上のPDFファイル502をPDF閲覧ソフト501がアクセスする仮想ディスク302上のPDFファイル601にコピーする(S11)。
PDF閲覧ソフト501はPDFファイル601を閲覧するソフトウェア割込みを発生させる(S12)。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S13)。
仮想化モジュール112のルーチンはPDF閲覧ソフト501がアクセスする仮想ディスク302上のPDFファイル601の参照に成功する(S14)。
データ転送プログラム103は、仮想ディスクの変更をディスクイメージに反映するため、オペレーティングシステム105の終了時に図8に示す設定画面801を表示し、変更データをディスクイメージにコピーするか否かをユーザに指定させる(S1)。指定の仕方については図8で説明する。
指定されたならば、データ転送プログラム103は仮想ディスクからディスクイメージへのデータのコピーを要求するソフトウェア割込みを発生させる(S2)。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S3)。
仮想化モジュール112はユーザが指定した仮想ディスク上のファイルをディスクイメージにコピーする(S4)。
例えば、Webブラウザ101がアクセスする仮想ディスク301上のHTMLファイル311をWebブラウザ用のディスクイメージ303上のHTMLファイル701、文書ソフト102がアクセスする仮想ディスク302上の文書ファイル321を文書ソフト用102のディスクイメージ304上の文書ファイル702にコピーする。
データ転送プログラム103は表示項目として、”選択”、 ”ファイル名”、 ”仮想ディスク”、”アプリケーション”がある。”選択”はファイルを操作対象に含めるか否かのチェックボタンである。”ファイル名”は仮想ディスク上の変更されたファイルのパス名である。”仮想ディスク”はファイルを保存している仮想ディスクを表す。”アプリケーション”はファイルの転送先の仮想ディスクを表す。
データ転送プログラム103の操作として、”全て選択”、 ”イメージ”、”転送”、”キャンセル”がある。”全て選択”はリストに含まれている全ての”選択”をチェックするボタンである。
”イメージ”はリストに含まれている全ての”アプリケーション”を”ディスクイメージ”に変更するボタンである。
”転送”はリストの設定内容の通りにデータ転送することを仮想化モジュールに要求するボタンである。
”キャンセル”はデータ転送をキャンセルするボタンである。
同様に、812は”D:\WEB\文書2.pdf”というファイルをWebブラウザ101がアクセスする仮想ディスクからPDF閲覧ソフト501がアクセスする仮想ディスクにコピーすること、813は何も処理しないこと、814は”D:\WEB\ページ2.HTML”というファイルをWebブラウザ101がアクセスする仮想ディスクからWebブラウザ101用のディスクイメージにコピーすることを示す。
通常、Webブラウザ101はクッキー情報等の一時的な格納領域として共有メモリ901を利用する。共有メモリ901にアクセスする場合、Webブラウザ101は共有メモリ901にアクセスするソフトウェア割込みを発生させる(S1)。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S2)。
仮想化モジュール112はページテーブル114の登録内容を参照し、他のプロセスが共有メモリ901にアクセスしていないか確認する(S3)。この段階ではまだ共有メモリはアクセスされていないため、仮想化モジュール112は共有メモリ901のデータの参照を許可する(S4)。
次に、文書ソフト102が上記の共有メモリ901にアクセスする場合を考える。文書ソフト102は共有メモリ901にアクセスするソフトウェア割込みを発生させる(S5)。
CPU121はページテーブル114に登録されている仮想化モジュール112のルーチンを実行する(S6)。
本例では二つのアプリケーションの例を示したが、アプリケーションの数が増えた場合も同様である。
ページテーブル114は”物理アドレス”、”属性”、”仮想アドレス”で構成されている。
”物理アドレス”はメモリ上の物理的なアドレスを表す。”属性”はメモリの属性値を表し、メモリページの存在、アクセス済みか否か、読み書き可能か否かを表すフラグが設定可能である。
”仮想アドレス”はアプリケーションから見える仮想的なアドレス空間のアドレス値を表す。仮想化モジュール112は、ページテーブル114の共有メモリ901に対応しているエントリの”属性”の値を参照し、共有メモリ901のアクセスを許可するか否かを決定する。
図11は、本発明に係る仮想化モジュール112の処理を示すフローチャートである。
仮想化モジュール112は、オペレーティングシステム105の起動時に自動的に起動し(ステップ1101)、割込み記述テーブル113の設定内容を変更し、アプリケーションからのソフトウェア割込みの監視を開始する(ステップ1102)。
仮想化モジュール112は監視処理として、ソフトウェア割込みのイベントの受信を待ち(ステップ1103)、ソフトウェア割込みのイベントを受信すると(ステップ1104)、受信したイベントの種類がデータ転送プログラム103からのデータのコピーイベントかチェックする(ステップ1105)。
ステップ1105でデータのコピーイベント以外の場合、仮想化モジュール112はアプリケーションの起動イベントかチェックする(ステップ1107)。
アプリケーションの起動イベントの場合、図3に示した方法でアプリケーション用のディスクイメージを仮想ディスクにコピーし(ステップ1108)、ステップ1103から繰り返す。
ステップ1107でアプリケーションの起動イベント以外の場合、仮想化モジュール112はファイル操作のシステムコールイベントかチェックする(ステップ1109)。ファイル操作のシステムコールイベントの場合、そのアプリケーションに固有の仮想ディスクにアクセスし(ステップ1110)、ステップ1103から繰り返す。
ステップ1113で共有メモリはアクセス済みでない場合、共有メモリのアクセスを許可し(ステップ1115)、ステップ1103から繰り返す。
オペレーティングシステム105の終了処理とは、仮想化モジュール112が仮想ディスク上の変更データをディスクイメージに反映する処理のことである。
ステップ1116でオペレーティングシステム105の終了処理が済んでいない場合、データ転送プログラム103を起動し(ステップ1117)、ステップ1103から繰り返す。
ステップ1116でオペレーティングシステム105の終了処理が済んでいる場合、全ての仮想ディスクを消去し(ステップ1118)、終了する。
図12は本発明に係るデータ転送プログラム103の処理を示すフローチャートである。
データ転送プログラム103はユーザや仮想化モジュール112によって起動されると(ステップ1201)、仮想ディスクから別の仮想ディスク、もしくは仮想ディスクからディスクイメージへのデータのコピーの設定情報をユーザから受信し(ステップ1202)、仮想化モジュール112にデータのコピーイベントを送信する(ステップ1203)。
Claims (1)
- 記憶装置に格納されたアプリケーションにそれぞれ対応した仮想ディスクを作成し、異なるアプリケーションに対応付けられた仮想ディスクや物理的なハードディスクへのアクセスを禁止する手段と、
ユーザの設定に応じて、任意のアプリケーションに対応付けられた仮想ディスクから異なるアプリケーションに対応付けられた仮想ディスクにデータを転送する手段と、
オペレーティングシステムの終了時に全ての仮想ディスクを消去する手段と、
を備えることを特徴とする未知のマルウェアによる情報漏洩防止システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006038901A JP4627266B2 (ja) | 2006-02-16 | 2006-02-16 | 未知のマルウェアによる情報漏洩防止システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006038901A JP4627266B2 (ja) | 2006-02-16 | 2006-02-16 | 未知のマルウェアによる情報漏洩防止システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007219786A JP2007219786A (ja) | 2007-08-30 |
JP4627266B2 true JP4627266B2 (ja) | 2011-02-09 |
Family
ID=38497031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006038901A Expired - Fee Related JP4627266B2 (ja) | 2006-02-16 | 2006-02-16 | 未知のマルウェアによる情報漏洩防止システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4627266B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4712023B2 (ja) * | 2007-11-30 | 2011-06-29 | Sky株式会社 | 資料配布システムおよび資料配布プログラム |
KR101624868B1 (ko) | 2008-08-06 | 2016-06-07 | 삼성전자주식회사 | 가상화 장치의 제어방법 및 가상화 장치 |
CN116414424B (zh) * | 2023-06-09 | 2023-09-12 | 建信金融科技有限责任公司 | 热更新方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002244755A (ja) * | 2001-02-16 | 2002-08-30 | Sony Corp | データ処理方法、半導体回路およびプログラム |
JP2002535772A (ja) * | 1999-01-22 | 2002-10-22 | サン・マイクロシステムズ・インコーポレーテッド | 小面積装置において実行時環境特権を使用してコンテキスト障壁を横断するアクセスを許可する技術 |
JP2003518279A (ja) * | 1999-01-22 | 2003-06-03 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置においてグローバル・データ構造を使用してコンテキスト障壁を横断するアクセスを許可する技術 |
JP2003522986A (ja) * | 1999-01-22 | 2003-07-29 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置においてコンテキスト障壁を用いたセキュリテイを施す技術 |
JP2003522987A (ja) * | 1999-01-22 | 2003-07-29 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置において入力点オブジェクトを使用してコンテキスト障壁を横断するアクセスを許可する技術 |
JP2004272595A (ja) * | 2003-03-07 | 2004-09-30 | Ntt Docomo Inc | 通信システム、サーバ、移動機、プログラムおよび記録媒体 |
JP2007183968A (ja) * | 2006-01-09 | 2007-07-19 | Sun Microsyst Inc | 分離されている実行コンテキスト間でのデータ転送方法及び装置 |
-
2006
- 2006-02-16 JP JP2006038901A patent/JP4627266B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002535772A (ja) * | 1999-01-22 | 2002-10-22 | サン・マイクロシステムズ・インコーポレーテッド | 小面積装置において実行時環境特権を使用してコンテキスト障壁を横断するアクセスを許可する技術 |
JP2003518279A (ja) * | 1999-01-22 | 2003-06-03 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置においてグローバル・データ構造を使用してコンテキスト障壁を横断するアクセスを許可する技術 |
JP2003522986A (ja) * | 1999-01-22 | 2003-07-29 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置においてコンテキスト障壁を用いたセキュリテイを施す技術 |
JP2003522987A (ja) * | 1999-01-22 | 2003-07-29 | サン・マイクロシステムズ・インコーポレイテッド | 小面積装置において入力点オブジェクトを使用してコンテキスト障壁を横断するアクセスを許可する技術 |
JP2002244755A (ja) * | 2001-02-16 | 2002-08-30 | Sony Corp | データ処理方法、半導体回路およびプログラム |
JP2004272595A (ja) * | 2003-03-07 | 2004-09-30 | Ntt Docomo Inc | 通信システム、サーバ、移動機、プログラムおよび記録媒体 |
JP2007183968A (ja) * | 2006-01-09 | 2007-07-19 | Sun Microsyst Inc | 分離されている実行コンテキスト間でのデータ転送方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2007219786A (ja) | 2007-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6352332B2 (ja) | 変更されたデータを復元するシステム及び方法 | |
JP6370747B2 (ja) | バーチャルマシーンモニタベースのアンチマルウェアセキュリティのためのシステム及び方法 | |
US7836504B2 (en) | On-access scan of memory for malware | |
US8484483B2 (en) | Method for protecting computer programs and data from hostile code | |
US6986006B2 (en) | Page granular curtained memory via mapping control | |
JP4828199B2 (ja) | アンチウィルスソフトウェアアプリケーションの知識基盤を統合するシステムおよび方法 | |
US8453243B2 (en) | Real time lockdown | |
US8522015B2 (en) | Authentication of binaries in memory with proxy code execution | |
US7631356B2 (en) | System and method for foreign code detection | |
US20070050848A1 (en) | Preventing malware from accessing operating system services | |
JP2007304954A (ja) | メモリ保護機能を有するコンピュータシステム | |
JP7146812B2 (ja) | 独立した復元領域を有する補助記憶装置およびこれを適用した機器 | |
US7251735B2 (en) | Buffer overflow protection and prevention | |
US9390275B1 (en) | System and method for controlling hard drive data change | |
JP2005316599A (ja) | 割込制御装置 | |
KR100704721B1 (ko) | 실시간 감시를 통한 컴퓨터 보호 방법 및 이에 따라 보호되는 컴퓨터 보호 시스템과 실행가능한 파일이 보호되는 시스템 | |
JP4627266B2 (ja) | 未知のマルウェアによる情報漏洩防止システム | |
US20240152610A1 (en) | Methods and systems for detecting and blocking malicious actions in operating system | |
WO2011095484A1 (en) | Method of countermeasure against the installation-by-tearing of viruses onto a secure portable mass storage device | |
JP5081280B2 (ja) | 可搬記憶媒体 | |
EP1225512A1 (en) | Method for protecting computer programs and data from hostile code | |
JPH0844556A (ja) | 電子計算機におけるセキュリティ、システム保護を行うソフトウェアの構造及び仕組み | |
KR20060083365A (ko) | 해킹방지를 위한 인터럽트 관리방법 및 이를 기록한컴퓨터로 읽을 수 있는 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080708 |
|
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: 20101104 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101104 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |