JP2011145945A - マルウェア検出装置及びマルウェア検出方法 - Google Patents

マルウェア検出装置及びマルウェア検出方法 Download PDF

Info

Publication number
JP2011145945A
JP2011145945A JP2010007177A JP2010007177A JP2011145945A JP 2011145945 A JP2011145945 A JP 2011145945A JP 2010007177 A JP2010007177 A JP 2010007177A JP 2010007177 A JP2010007177 A JP 2010007177A JP 2011145945 A JP2011145945 A JP 2011145945A
Authority
JP
Japan
Prior art keywords
monitoring
instruction
data
program
processor
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.)
Withdrawn
Application number
JP2010007177A
Other languages
English (en)
Inventor
Jun Anzai
潤 安齋
Yutaka Yokomizo
豊 横溝
Takatoshi Tanaka
卓敏 田中
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2010007177A priority Critical patent/JP2011145945A/ja
Publication of JP2011145945A publication Critical patent/JP2011145945A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】第三者により作成されたプログラムの命令による保護対象リソースへのアクセスを実環境でリアルタイムに監視し、マルウェアの可能性を示す挙動を検出する。
【解決手段】メモリの所定アドレスに格納されているプログラムの命令に、当該命令が監視対象である旨を通知する監視制御部と、前記プログラムの命令を実行すると共に、前記監視制御部の通知に基づいて前記監視対象であることを示す命令監視ビットが付与された命令を格納するキャッシュを含むプロセッサと、前記プロセッサによる前記命令の実行を監視すると共に、前記命令監視ビットが付与された前記命令が所定の保護対象リソースにアクセスする命令である場合にマルウェアの可能性を示唆する挙動が実行されると検出する監視実行部とを備える。
【選択図】図3

Description

本発明は、ダウンロードされたプログラムの挙動を監視することにより当該プログラムがマルウェアの可能性を示唆する挙動を行うか否かを検出するマルウェア検出装置及びマルウェア検出方法に関する。
最近、携帯電話機等の組込み機器を操作してネットワークを介して所望のプログラムをダウンロードし、当該組込み機器にインストールして使用する事例が増えている。既に、スマートフォンの様な高度な携帯電話で自由にプログラムがダウンロード可能とされ、今後、多くの組込み機器にてユーザが自由にプログラムをダウンロードすることが益々流行すると期待されている。以下の説明において、ダウンロードには、ネットワークを介して取得する行為に限らず、メールに添付されているファイルを取得する行為、更に、メモリーカード等の外部格納媒体を当該組込み機器に接続して取得する行為も含まれるとする。
このようにダウンロードされたプログラムの中にはマルウェアが潜在する可能性がある。例えば、プログラム内に潜在するマルウェアがメモリに格納されているユーザのクレジット番号等を不正に取得してネットワークに送信するという被害事例も報告されており、このようなマルウェアによる被害は社会的に大きな問題となっている。
ダウンロードされたプログラムにマルウェアが存在するか否かを検出する技術は、静的解析に基づいた方法と、動的解析に基づいた方法とに分類される。静的解析に基づく方法とは、プログラムを実行せずに、当該プログラムのバイナリコードを直接解析することにより、当該プログラムの振る舞い又は構造を分析する方法である。しかし、静的解析では、動作に関わる全てのプログラム要素が既知である必要があり、未知の脆弱性を攻撃するバイナリコード等については確定的な推定を行うことが難しい。静的解析に基づく方法の一例として、パターンマッチング法又はヒューリスティック法等がある。
動的解析に基づく方法とは、プログラムを実際に実行し、当該プログラムが行う振る舞いを観測することにより解析を行う方法である。このため、プログラムの中に未知の脆弱性を攻撃するバイナリコード等が含まれている場合に、当該バイナリコード等を検出することが有効である旨が指摘されている。しかし、プログラムを実際に動作させるため、解析を実施している環境にマルウェアが感染する危険性があるため、感染を防ぐための環境及び対策等が必要となる。動的解析に基づく方法の一例として、ビヘイビア法等がある。
また前述した方法の他に、プログラムへの不正なアクセスを検出して当該プログラムを保護する技術も開示されている。例えば、特許文献1には、プログラムの割付アドレスに対応したプログラム識別コードを持つアクセスチェックテーブルと実行中のプログラム識別コードを持つプロセッサの状態を表す制御レジスタとを備え、プログラム実行時に当該アクセスチェックテーブルと制御レジスタ内のプログラム識別コードとを照会し、一致していない場合には照合エラーとして検出するプログラム保護方式が開示されている。
また、特許文献2には、モードレジスタへストアアクセスを行うストア命令を専用ストア命令としてCPUの命令セットに備え、前記専用ストア命令のCPUによる実行を監視するモードレジスタアクセス制御器が、当該CPUの命令コードを監視し、前記専用ストア命令の実行が確認された場合だけモードレジスタライトイネーブル信号をアサートし、前記モードレジスタへのストア命令を許可するマイクロコントローラが開示されている。
また、特許文献3には、コンピュータ上で実行されるアプリケーションがハードディスク等の記憶装置に記憶された情報にアクセスしようとした時点で、予め設定されたアクセス許容条件を満たすかどうかを判定部により判定して、当該判定部によって不正なアクセスと判定された場合に前記記憶装置に記憶された情報のアプリケーションへの受け渡しを禁止するコンピュータの情報漏洩防止システムが開示されている。
特開平6−266551号公報 特開2004−062550号公報 特開2007−140798号公報
しかしながら、特許文献1は、デバッグの際にプログラムに存在するバグを修正することが想定されたものであり、ビルド時に特定領域への書込みを専用ストア命令に置換えて命令種別で判断する仕組みであるため、第三者により作成されたプログラムに対して適用することが難しい。
特許文献2は、同様にデバッグの際にプログラムに存在するバグを修正することが想定されたものであり、ビルド時にプログラムへ識別IDを埋め込みレジスタにIDを設定する仕組みであるため、同様に第三者により作成されたプログラムに適用することが難しい。
特許文献3は、プロセスID等でシステムコールの呼び出し元を識別して予め用意したリストと比較するためリアルタイムにプログラムを監視することが難しく、特に携帯電話の様なリソースの少ない組込み機器において特許文献3に開示されている方法で解析することは難しい。
また、ソフトウェアによるビヘイビア法の解析により、仮想環境の存在の有無、及び処理遅延の有無に基づいてデバッグの有無を判定して動作停止させるマルウェアが発見されている。以上から、より実環境に近い状態で、プログラムの命令による保護対象リソースへのアクセスをリアルタイムに監視することが求められていた。
本発明は前述した従来の事情に鑑みてなされたもので、その目的は、第三者により作成されたプログラムの命令による保護対象リソースへのアクセスを実環境でリアルタイムに監視し、マルウェアの可能性を示す挙動を検出することのできるマルウェア検出装置及びマルウェア検出方法を提供することである。
本発明のマルウェア検出装置は、メモリの所定アドレスに格納されているプログラムの命令に、当該命令が監視対象である旨を通知する監視制御部と、前記プログラムの命令を実行すると共に、前記監視制御部の通知に基づいて前記監視対象であることを示す命令監視ビットが付与された命令を格納するキャッシュを含むプロセッサと、前記プロセッサによる前記命令の実行を監視すると共に、前記命令監視ビットが付与された前記命令が所定の保護対象リソースにアクセスする命令である場合にマルウェアの可能性を示唆する挙動が実行されると検出する監視実行部とを備える。
前述した構成によれば、第三者により作成されたプログラムの命令が保護対象リソースへアクセスすることを実環境でリアルタイムに監視することができ、マルウェアの振る舞いを実行するプログラムを検出することができる。
本発明のマルウェア検出方法は、メモリの所定アドレスに格納されているプログラムの命令に対し、当該命令が監視対象である旨を通知するステップと、前記プログラムの命令を実行するステップと、前記通知に基づいて、前記監視対象である前記命令に前記命令監視ビットを付与するステップと、前記命令監視ビットが付与された前記命令を格納するステップと、前記命令の実行を監視するステップと、前記命令監視ビットが付与された前記命令が所定の保護対象リソースにアクセスする命令である場合に、マルウェアの可能性を示唆する挙動が実行されると検出するステップとを備える。
前述した構成によれば、第三者により作成されたプログラムの命令が保護対象リソースへアクセスすることを実環境でリアルタイムに監視することができ、マルウェアの振る舞いを実行するプログラムを検出することができる。
本発明に係るマルウェア検出装置及びマルウェア検出方法によれば、第三者により作成されたプログラムの命令が保護対象リソースへアクセスすることを実環境でリアルタイムに監視することができ、マルウェアの振る舞いを実行するプログラムを検出することができる。
携帯電話機の内部構成を示すブロック図 携帯電話機の動作を説明するフローチャート 第1の実施形態のマルウェア検出部の内部構成を示すブロック図 第1の実施形態のマルウェア検出部の動作を示すシーケンス図 保護対象リソースの種別と擬似応答の一例とが関連付けられた擬似応答テーブルの内容を示す説明図 第2の実施形態のマルウェア検出部の内部構成を示すブロック図 第2の実施形態のマルウェア検出部の動作を示すシーケンス図 保護対象データの全部又は一部がメモリにコピーされたときのメモリの状態遷移を示す説明図 保護対象データの全部又は一部がメモリにコピーされたときのデータ監視レジスタの状態遷移を示す説明図 監視対象プログラムが監視対象プログラムではない他のプログラムを動的に呼び出した場合のメモリの状態遷移を示す説明図 監視対象プログラムが監視対象プログラムではない他のプログラムを動的に呼び出した場合の命令監視レジスタの状態遷移を示す説明図
以下、本発明のマルウェア検出装置の一例を携帯電話機として説明する。先ず、本発明のマルウェア検出装置である携帯電話機の内部構成及び当該携帯電話機を用いたマルウェア検出の動作について、図1及び図2を参照して説明する。図1は、携帯電話機1の内部構成を示すブロック図である。図2は、携帯電話機1の動作を説明するフローチャートである。
図1において、携帯電話機1は、ダウンローダ2と、アプリケーションマネージャ3と、信頼性検証部4と、表示部5と、マルウェア検出部6とを備える。
ダウンローダ2は、携帯電話機1を操作するユーザの指示入力に基づき、所望のアプリケーションプログラム(以下、単に「プログラム」という)をダウンロードする。ダウンローダ2は、例えば、ブラウザ又はメーラ等が該当する。
アプリケーションマネージャ3は、携帯電話機1にインストールされる又はインストールされたプログラムの管理及び実行に関する制御を行う。信頼性検証部4は、既存のパターンマッチング等の解析によりプログラムの信頼性を検証する。表示部5は、携帯電話機1の表示画面であり、アプリケーションマネージャ3により制御されるプログラム及び当該プログラムの実行結果等を表示する。マルウェア検出部6は、本発明のマルウェア検出装置の中心的役割を担う。マルウェア検出部6の構成及び動作は、後述の実施形態において詳述する。
図2において、ダウンローダ2は、携帯電話機1を操作するユーザの指示が入力された場合(ステップS1a)、所望のプログラムのダウンロードを実行する(ステップS1b)。ダウンローダ2は、当該プログラムのダウンロードが終了した旨をアプリケーションマネージャ3に通知する(ステップS1c)。アプリケーションマネージャ3は、ダウンローダ2の通知に基づき、ステップS1bにおいてダウンロードされたプログラムのインストールを実行して良いか否かを検証するため、信頼性検証部4に当該プログラムの信頼性を検証させる(ステップS1d)。
信頼性検証部4の信頼性検証の結果でホワイトと判定された場合には(ステップS1e)、アプリケーションマネージャ3は、当該検証の対象であるプログラムをインストールする(ステップS1f)。この場合、例えば、既存のホワイトリストを用いたパターンマッチングによりホワイトと判定された場合が該当する。
信頼性検証部4の信頼性検証の結果でブラックと判定された場合には(ステップS1e)、アプリケーションマネージャ3は、当該検証の対象であるプログラムを削除する(ステップS1g)。この場合、例えば、既存のブラックリストを用いたパターンマッチングによりブラックと判定された場合が該当する。
信頼性検証部4の信頼性検証の結果でグレーと判定された場合には(ステップS1e)、アプリケーションマネージャ3は、マルウェア検出部6に当該検証の対象であるプログラムがマルウェアの可能性を示唆する挙動を実行するか否かを監視するように要求する(ステップS1h)。マルウェア検出部6は、アプリケーションマネージャ3の要求に基づき、後述の実施形態にて説明する方法で、当該検証の対象であるプログラムがマルウェアの可能性を示唆する挙動を実行するか否かを監視する(ステップS1i)。マルウェア検出部6は、監視の結果、マルウェアの可能性を示唆する挙動が実行されたか否かをアプリケーションマネージャ3に通知する(ステップS1j)。
アプリケーションマネージャ3は、マルウェアの可能性を示唆する挙動が実行されなかった場合には、監視対象のプログラムをインストールする(ステップS1f)。アプリケーションマネージャ3は、マルウェアの可能性を示唆する挙動が実行された場合には、監視対象のプログラムを削除する(ステップS1g)。
ただし、携帯電話機1に格納されているセキュリティポリシ等又は携帯電話機1の仕様により、ステップS1iの監視を複数回実行した結果マルウェアの可能性を示唆する挙動が全く実行されなかった場合にインストールすることが好ましい場合もある。又は、携帯電話機1に格納されているセキュリティポリシ等又は携帯電話機1の仕様により、ステップS1iの監視を所定時間(例:約60秒)実行した結果マルウェアの可能性を示唆する挙動が全く実行されなかった場合にインストールすることが好ましい場合もある。従って、ステップS1iの1回目の監視の結果マルウェアの可能性を示唆する挙動が実行されなかった場合には、マルウェア検出部6は、アプリケーションマネージャ3に当該監視結果を通知する。この場合、アプリケーションマネージャ3は、マルウェア検出部6に再度、ステップS1iの監視を実行するように要求する(ステップS1h)。
前述の図2に示した携帯電話機1の動作を前提に、以下、本発明のマルウェア検出装置である携帯電話機のマルウェア検出部に関する実施形態について、図面を参照して説明する。
(第1の実施形態)
第1の実施形態では、図1に示すアプリケーションマネージャ3からの監視要求に従い、マルウェア検出部6は、ダウンロードされたプログラムを監視対象のプログラムとして、当該プログラムがマルウェアの可能性を示唆する挙動を実行するか否かを監視する。第1の実施形態では、マルウェア検出部6は、当該監視対象のプログラムが携帯電話機1の保護対象リソースに書込み命令を実行する場合、マルウェアの可能性を示唆する挙動が実行されると検出する。以下の説明において、マルウェア検出部6により監視されるプログラムを「監視対象プログラム」と定義する。また、監視対象プログラムは、ユーザ自身により作成されたプログラムでも良いし、第三者により作成されたプログラムでも良い。
図3は、第1の実施形態のマルウェア検出部6の内部構成を示すブロック図である。図3に示すように、マルウェア検出部6は、監視制御部11と、命令監視レジスタ21と、リソース監視レジスタ31と、プロセッサ41と、監視実行部51と、メモリ61と、保護対象リソース71とを備える。
監視制御部11は、マイクロコンピュータにより構成されるものであり、対象領域指定部12と、監視ビット付与部13とにより構成されている。また、監視制御部11は、対象領域指定部12をソフトウェアで構成し、監視ビット付与部13はマイクロコンピュータとは別の専用回路であるハードウェアで構成しても良い。
対象領域指定部12は、監視対象プログラムをメモリ61に格納するための物理アドレス空間を確保し、当該確保されたメモリ61の物理アドレス空間に監視対象プログラムを格納する。対象領域指定部12は、監視対象プログラムが格納されているメモリ61の物理アドレスの範囲を示す上限アドレス及び下限アドレスを命令監視レジスタ21に指定する。対象領域指定部12は、携帯電話機1の保護対象リソース71の物理アドレスの範囲を示す上限アドレス及び下限アドレスをリソース監視レジスタ31に指定する。
第1の実施形態では、図3に示すように、監視対象プログラムはメモリ61の物理アドレス「0x00F000」〜「0x0011FF」の範囲に格納される。対象領域指定部12は、「0x0011FF」を上限アドレスとして、「0x00F000」を下限アドレスとして命令監視レジスタ21に指定する。また、第1の実施形態では、携帯電話機1の保護対象リソース71は無線LAN対応の通信部であり、この通信部のアドレスは「0x2EE015」〜「0x221010」と指定されている。対象領域指定部12は、上限アドレス「0x221010」及び下限アドレス「0x2EE015」をリソース監視レジスタ31に指定する。
監視ビット付与部13は、メモリ61からどのような命令がプロセッサ41によりフェッチされているかを常時、検出している。監視ビット付与部13は、命令監視レジスタ21に指定された上限アドレス及び下限アドレスの範囲に格納されているプログラムの命令を監視対象プログラムの命令であると認識している。
メモリ61から命令がプロセッサ41によりフェッチされた場合、監視ビット付与部13は、命令監視レジスタ21に指定されている上限アドレス及び下限アドレスに基づいて当該フェッチされた命令が監視対象プログラムの命令であるか否かを確認する。メモリ61からフェッチされた命令が監視対象プログラムの命令であると確認された場合には、監視ビット付与部13は、当該フェッチされた命令が監視対象プログラムの命令であることを示す命令監視対象信号をプロセッサ41に出力する。
ここで、監視制御部11の監視ビット付与部13と、プロセッサ41との間には、回路上の配線として監視ビット線K1が物理的に配線されている。監視ビット付与部13は、メモリ61からフェッチされた命令が監視対象プログラムの命令であると確認された場合には、命令監視対象信号を監視ビット線K1に出力する。より具体的には、監視ビット付与部13は、監視ビット線K1の出力状態を「H」(High)と設定することにより、命令監視対象信号を監視ビット線K1に出力する。反対に、監視ビット付与部13は、メモリ61からフェッチされた命令が監視対象プログラムの命令でないと確認された場合には、命令監視対象信号を監視ビット線K1に出力しない。この場合には、監視ビット線の出力状態は、「L」(Low)である。
命令監視レジスタ21は、対象領域指定部12により指定された、監視対象プログラムの格納されているメモリ61の物理アドレスを格納する格納領域である。第1の実施形態では、上限アドレスとして「0x0011FF」、下限アドレスとして「0x00F000」が指定されている。
リソース監視レジスタ31は、対象領域指定部12により指定された保護対象リソース71の物理アドレスを格納する格納領域である。第1の実施形態では、上限アドレスとして「0x221010」及び下限アドレスとして「0x2EE015」が指定されている。また、リソース監視レジスタ31には、監視レベルが予め指定されている。この監視レベルには、マルウェアの可能性を示唆する挙動である命令が実行された場合に擬似応答が行われる旨が予め指定されている。例えば、第1の実施形態では、監視対象プログラムが保護対象リソース71に書込む命令を実行した場合に、マルウェアの可能性を示唆する挙動が実行されたと検出され、監視実行部51により擬似応答が行われる。
プロセッサ41は、マイクロプロセッサにより構成されるものであり、命令フェッチ部42と、命令デコード部43と、命令制御部44と、命令キャッシュ45と、データキャッシュ46と、命令実行部47とを備える。
命令フェッチ部42は、メモリ61に格納された実行対象プログラムの命令をフェッチし(読み出し)、当該フェッチされたプログラムの命令を命令デコード部43に出力する。フェッチされたプログラムの命令が監視対象プログラムの命令である場合には、監視ビット付与部13により命令監視対象信号が出力されているため、プロセッサ41は、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する。
命令デコード部43は、命令フェッチ部42によりフェッチされた実行対象プログラムの命令をデコードして当該命令の内容を解釈し、当該内容を命令制御部44に出力する。ここで、命令デコード部43によるデコードの結果、メモリ61の物理アドレス「0x0011FF」〜「0x00F000」に格納されているプログラムの命令は、携帯電話機1の保護対象リソース71である通信部に対してデータを書込む命令であるとする。
命令制御部44は、命令デコード部43により解釈された命令の実行を制御する。命令制御部44は、監視ビット付与部13により出力された命令監視対象信号に基づき、監視対象プログラムとして認識されたプログラムの命令に命令監視ビットを付与する。命令制御部44は、この命令監視ビットの付与された命令を命令キャッシュ45に格納する。図3に示すように、命令1を実行するプログラムは、命令監視レジスタ21に指定されるメモリ61の物理アドレスの範囲に格納されている。従って、命令1は、監視対象プログラムの命令であり、命令制御部44により命令監視ビットが付与される。また、命令2を実行するプログラムは、命令監視レジスタ21に指定される物理アドレスの範囲に対応するメモリ61の物理アドレスに格納されていないとする。従って、命令2は、監視対象プログラムの命令ではなく、命令制御部44により命令監視ビットが付与されない。また、命令フェッチ部42が実行対象プログラムの命令をフェッチする際、プロセッサ41は、当該フェッチ対象の実行対象プログラムの命令が格納されているメモリ61の物理アドレスに基づいて、命令監視レジスタ21を参照して当該フェッチ対象の実行対象プログラムの命令が監視対象プログラムの命令であるか否かを知ることができる。このため、命令フェッチ部42が実行対象プログラムの命令をフェッチした際、プロセッサ41が当該フェッチされた実行対象プログラムの命令に命令監視ビットを付与することにより、プロセッサ41内における命令フェッチ以降のパイプライン処理(デコード、制御、命令実行等)に当該命令監視ビットが付与されても良い。
命令キャッシュ45は、命令実行部47により実行される命令及び実行された命令を一時的に格納する格納領域である。命令キャッシュ45に一時的に格納される命令には、命令制御部44により命令監視ビットが付与された命令、及び命令監視ビットが付与されない命令の両方が含まれる。データキャッシュ46は、命令実行部47による命令の実行に必要なデータ及び当該命令の実行結果のデータを一時的に格納する格納領域である。命令実行部47は、命令制御部44の制御の下で実行対象の命令の内容を実行する。プロセッサ41はフェッチ時に命令キャッシュ45に該当する命令が存在すれば当該命令キャッシュ45からデコード済みの命令をロードする。本発明では命令キャッシュ45に格納された命令にも命令監視ビットが付与されていたため、キャッシュ機構を備えるプロセッサ41においてもマルウェアの監視が可能となる。
また、プロセッサ41は、命令実行部47が今から命令を実行する旨及び当該命令の内容を監視実行部51に通知する。更に、プロセッサ41は、今から実行する命令は命令監視ビットが付与されたものである場合には、当該実行する命令は監視対象プログラムの命令であることを示す命令監視対象信号を監視実行部51に出力する。ここで、プロセッサ41と監視実行部51との間には、回路上の配線として監視ビット線K2が物理的に配線されている。命令実行部47が今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41は、命令監視対象信号を監視ビット線K2に出力する。より具体的には、プロセッサ41は、監視ビット線K2の出力状態を「H」(High)と設定することにより、命令監視対象信号を監視ビット線K2に出力する。反対に、命令実行部47が今から実行する命令は命令監視ビットが付与されたものでない場合には、プロセッサ41は、命令監視対象信号を監視ビット線K2に出力しない。この場合には、監視ビット線の出力状態は「L」(Low)である。
監視実行部51は、マイクロコンピュータにより構成されるものであり、リソース監視レジスタ31に指定されている保護対象リソース71の物理アドレス及び監視レベルを常時、参照している。また、監視実行部51は、携帯電話機1の保護対象リソース71ごとに専用回路を複数設けて構成しても良い。
監視実行部51は、プロセッサ41からの通知に基づき、命令実行部47が今から実行する旨及び当該命令の内容を取得し、当該命令実行部47による命令の実行を監視する。命令実行部47が今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41により命令監視対象信号が出力されているため、監視実行部51は、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する。
監視実行部51は、命令実行部47が今から実行する命令が監視対象プログラムであって、かつ、リソース監視レジスタ31に指定されている内容に基づいて当該監視対象プログラムが携帯電話機1の保護対象リソース71に書込む命令であるか否かを判定する。命令実行部47が今から実行する命令が監視対象プログラムであって、かつ、当該監視対象プログラムが携帯電話機1の保護対象リソース71に書込む命令である場合には、監視実行部51は、当該監視対象プログラムはマルウェアの可能性を示唆する挙動を実行すると検出する。この場合、監視実行部51は、保護対象リソース71である通信部に対して擬似応答を行うと共に、当該擬似応答を行った旨をプロセッサ41に出力する。このとき、プロセッサ41は、携帯電話機1の表示画面に、「マルウェアの可能性を示唆する挙動を行うプログラムが見つかりました。このプログラムをインストールしますか?」という旨のメッセージを表示してユーザの意思確認を促す。
例えば、前述した擬似応答として、監視実行部51は、保護対象リソース71である通信部に書き込まれても影響の全く無いダミーデータ等を通信部に書込む。この擬似応答により、ダミーデータが通信部に書き込まれて携帯電話機1と通信可能に接続された外部装置に送信された場合でも、携帯電話機1は、個人情報等の様な重要なデータの送信を防ぐことができる。仮に監視実行部51により疑似応答が行われない場合には、携帯電話機1内に存在するマルウェアが当該マルウェアによる携帯電話機1内の保護対象リソースへのアクセスが制御されていると判断して以降の処理を実行しない場合、マルウェア検出部6は、マルウェアの可能性を示唆する挙動の検出を失敗する可能性がある。つまり、監視実行部51により疑似応答することにより、マルウェアは処理を継続するため、マルウェア検出部6は、当該挙動を検出することが可能となる。
メモリ61は、RAM(Random Access Memory)又はOCM(On Chip Memory)又は実行可能な不揮発メモリ(NOR型フラッシュメモリ等)が該当する。第1の実施形態では、メモリ61には、監視対象プログラムがアドレス「0x00F000」〜「0x0011FF」に格納される。命令1は監視対象プログラムの命令であるとする。また、命令2は監視対象プログラムの命令ではないとする。
保護対象リソース71は、監視対象プログラムが所定の行為(例:アクセス、読込み、書込み)を行う対象であって、マルウェアの攻撃等から保護される対象となる携帯電話機1内のハードウェアリソースである。第1の実施形態では、無線LAN対応可能な通信部が保護対象リソース71として指定されている。すなわち、監視対象プログラムが保護対象リソース71である通信部にデータを書込む命令を実行する場合、当該監視対象プログラムはマルウェアの可能性を示唆する挙動を実行すると検出される。また、保護対象リソース71は通信部に限定されない。例えば電話帳等が保持されている不揮発メモリ領域を指定することもできる。また、図3では、保護対象リソース71である通信部を物理アドレスで指定しているが、IDで指定しても良い。
(第1の実施形態のマルウェア検出部6の動作)
次に、第1の実施形態のマルウェア検出部6の動作について、図4を参照して説明する。図4は、第1の実施形態のマルウェア検出部6の動作を説明するシーケンス図である。
図4において、対象領域指定部12は、監視対象プログラムをメモリ61に格納するための物理アドレス空間を確保し、当該確保されたメモリ61の物理アドレス空間に監視対象プログラムを格納する(ステップS11)。
対象領域指定部12は、監視対象プログラムが格納されているメモリ61の物理アドレスの範囲を示す上限アドレス及び下限アドレスを命令監視レジスタ21に指定する(ステップS12)。また、対象領域指定部12は、携帯電話機1の保護対象リソース71の物理アドレスの範囲を示す上限アドレス及び下限アドレスをリソース監視レジスタ31に指定する(ステップS12)。
監視ビット付与部13は、メモリ61からどのような命令がプロセッサ41によりフェッチされているかを常時、検出している(ステップS13)。監視ビット付与部13は、命令監視レジスタ21に指定された上限アドレス及び下限アドレスの範囲に格納されているプログラムの命令を監視対象プログラムの命令であると認識している(ステップS14)。
メモリ61から命令がプロセッサ41によりフェッチされた場合(ステップS15)、監視ビット付与部13は、命令監視レジスタ21に指定されている上限アドレス及び下限アドレスに基づいて当該フェッチされた命令が監視対象プログラムの命令であるか否かを確認する(ステップS16)。メモリ61からフェッチされた命令が監視対象プログラムの命令であると確認された場合には、監視ビット付与部13は、当該フェッチされた命令が監視対象プログラムであることを示す命令監視対象信号をプロセッサ41に出力する(ステップS17)。具体的には、監視ビット付与部13は、監視ビット線K1を介して、命令監視対象信号をプロセッサ41に出力する。
フェッチされたプログラムの命令が監視対象プログラムの命令である場合には、監視ビット付与部13により命令監視対象信号が出力されているため、プロセッサ41は、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する(ステップS18)。プロセッサ41は、監視ビット付与部13から出力された命令監視対象信号に基づき、監視対象プログラムとして認識されたプログラムの命令に命令監視ビットを付与する(ステップS19)。
プロセッサ41は、命令実行部47が今から命令を実行する旨及び当該命令の内容を監視実行部51に通知する(ステップS20)。このとき、命令実行部47が今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41は、更に、当該実行する命令は監視対象プログラムの命令であることを示す命令監視対象信号を監視ビット線K2に出力する。具体的には、プロセッサ41は、監視ビット線K2を介して、命令監視対象信号を監視実行部51に出力する。
監視実行部51は、リソース監視レジスタ31に指定されている保護対象リソース71の物理アドレス及び監視レベルを常時、参照している(ステップS21)。また、監視実行部51は、リソース監視レジスタ31に指定されている保護対象リソース71の物理アドレス及び監視レベルを、常時参照するのではなくプロセッサ41から今から命令を実行する旨及び当該命令の内容の通知を受けた場合に参照しても良い。監視実行部51は、プロセッサ41からの通知に基づき、命令実行部47が今から実行する旨及び当該命令の内容を取得している。命令実行部47が今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41により命令監視対象信号が出力されているため、監視実行部51は、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する。
監視実行部51は、命令実行部47が今から実行する命令が監視対象プログラムであって、かつ、リソース監視レジスタ31に指定されている内容に基づいて当該監視対象プログラムが携帯電話機1の保護対象リソース71に書込む命令であるか否かを判定する(ステップS22)。
プロセッサ41の命令実行部47により実行される命令が監視対象プログラムであって、かつ、当該監視対象プログラムが携帯電話機1の保護対象リソース71に書込む命令である場合には、監視実行部51は、当該監視対象プログラムはマルウェアの可能性を示唆する挙動を実行すると検出する(ステップS23)。この場合、監視実行部51は、保護対象リソース71である通信部に擬似応答を行うと共に(ステップS24)、当該擬似応答を行った旨をプロセッサ41に出力する(ステップS25)。このとき、プロセッサ41は、携帯電話機1の表示画面に、「マルウェアの可能性を示唆する挙動を行うプログラムが見つかりました。このプログラムをインストールしますか?」という旨のメッセージを表示してユーザの意思確認を促す。前述した擬似応答として、例えば、監視実行部51は、保護対象リソース71である通信部に書き込まれても影響の全く無いダミーデータ等を通信部に書込む。
ここで、擬似応答の具体例について図5を参照して説明する。擬似応答とは、マルウェアの可能性を示唆する挙動の命令の実行に対する応答である。また、擬似応答は、携帯電話機1にインストールされるプログラムがマルウェアの可能性を示唆する挙動が実行された場合でも当該携帯電話機1のセキュリティを担保するための応答である。図5は、保護対象リソースの種別と擬似応答の一例とが関連付けられた擬似応答テーブルの内容を示す説明図である。
図5に示すように、保護対象リソースが無線LAN対応等の「通信部」である場合には、擬似応答は、当該通信部に対して「書込み命令(送信要求命令)に対する成功通知」という内容である。保護対象リソースである通信部に送信要求命令に対する成功通知を送信することにより、通信部から携帯電話機1内の個人情報等を含む重要なデータが無断で当該携帯電話機1と通信可能な外部装置等に送信されることを防ぐことができる。
また、保護対象リソースがRAM又はフラッシュメモリ等の「メモリ」である場合には、擬似応答は、当該メモリに対する「読込み命令又は書込み命令に対する成功通知」という内容である。擬似応答が読込み命令の成功通知である場合、保護対象リソースのメモリからデータの読出しは実際に行われない。読込みが成功した旨のみを擬似応答として通知することにより、重要なデータの出力を防ぐことができる。また、擬似応答が書込み命令の成功通知である場合、保護対象リソースのメモリに対してデータの書込みは実際に行われない。書込みが成功した旨のみを擬似応答として通知することにより、重要なデータの書換えを防ぐことができる。
また、保護対象リソースが周辺装置との接続に使用される「I/O」(Input/Output)である場合には、擬似応答は、当該I/Oに対する「読込み命令に対するダミーデータの出力」という内容である。I/Oからの読込み命令に対してダミーデータを擬似応答として出力することにより、重要なデータの漏洩等を防ぐことができる。また、擬似応答の内容は図5に示した例に限定されない。
以上のように、第1の実施形態のマルウェア検出部1を含む携帯電話機1によれば、ユーザの携帯電話機1の操作に基づいてダウンロードされたプログラムが携帯電話機1にインストールされる際、当該携帯電話機1により当該プログラムの信頼性が検証される。この検証において、当該プログラムが携帯電話機1の保護対象リソースに書込み命令を実行するものである場合、当該携帯電話機1は、当該プログラムがマルウェアの可能性を示唆する挙動を実行すると検出し、当該プログラムのインストールの意思確認をユーザに対して行う。
従って、第1の実施形態のマルウェア検出部6を含む携帯電話機1によれば、第三者により作成されたプログラムの命令による保護対象リソースへの書込みを実環境でリアルタイムに監視することができ、マルウェアの可能性を示唆する挙動を実行するプログラムを検出することができる。また、監視対象プログラムにおけるメモリ61の格納先アドレスを格納する命令監視レジスタ21を設けることにより、監視対象プログラムの範囲を柔軟に指定することができる。さらに、監視ビット付与部13からの出力に基づき、プロセッサは、命令監視レジスタに保持されているアドレスに格納されているプログラムを監視対象として柔軟に設定することができる。
また、保護対象リソース71の物理アドレスを保持するリソース監視レジスタ31を設けることにより、保護対象リソースの範囲を柔軟に設定することができる。また、監視ビット付与部13とプロセッサ41との間を監視ビット線K1で配線することにより、監視ビット付与部13は、監視対象プログラムの命令に対して命令監視ビットを追加する内容の命令をプロセッサ41に別途実行させる旨を通知する必要がなくなる。
更に、プロセッサ41と監視実行部51との間を監視ビット線K2で配線することにより、プロセッサ41は命令実行部47が今から命令を実行する旨及び当該命令の内容を監視実行部51に通知すれば良い。また、監視実行部51は、物理的に配線された監視ビット線K2の状態に基づいて命令監視対象信号の有無を確認することにより、監視対象プログラムの有無を容易に確認することができる。更に、本発明の監視対象プログラムはユーザ自身により作成されたプログラムでも良いため、当該プログラムのバグの有無の検出にも用いることができる。
(第2の実施形態)
次に、本発明のマルウェア検出部の第2の実施形態について図面を参照して説明する。第2の実施形態では、第1の実施形態と同様、図1に示すアプリケーションマネージャ3からの監視要求に従い、マルウェア検出部6bは、ダウンロードされたプログラムを監視対象のプログラムとして、当該プログラムがマルウェアの可能性を示唆する挙動を実行するか否かを監視する。第2の実施形態では、マルウェア検出部6bは、監視対象プログラムが携帯電話機1bの保護対象リソースに保護対象データを書込む命令を実行する場合、当該携帯電話機1bは、マルウェアの可能性を示唆する挙動が実行されると検出する。
図6は、第2の実施形態のマルウェア検出部6bの内部構成を示すブロック図である。図6に示すように、マルウェア検出部6は、監視制御部11bと、命令監視レジスタ21bと、リソース監視レジスタ31bと、プロセッサ41bと、監視実行部51bと、メモリ61bと、保護対象リソース71bと、保護対象データが格納される格納領域81と、データ監視レジスタ91とを備える。
監視制御部11bは、マイクロコンピュータにより構成されるものであり、対象領域指定部12bと、監視ビット付与部13bとにより構成されている。
対象領域指定部12bは、監視対象プログラムをメモリ61bに格納するための物理アドレス空間を確保し、当該確保されたメモリ61bの物理アドレス空間に監視対象プログラムを格納する。対象領域指定部12bは、監視対象プログラムが格納されているメモリ61bの物理アドレスの範囲を示す上限アドレス及び下限アドレスを命令監視レジスタ21bに指定する。対象領域指定部12bは、携帯電話機1bの保護対象リソース71bの物理アドレスの範囲を示す上限アドレス及び下限アドレスをリソース監視レジスタ31bに指定する。対象領域指定部12は、携帯電話機1bの保護対象データの格納されている格納領域81の物理アドレスの範囲を示す上限アドレス及び下限アドレスをデータ監視レジスタ91に指定する。
第2の実施形態では、図6に示すように、監視対象プログラムはメモリ61の物理アドレス「0x00F000」〜「0x0011FF」の範囲に格納される。対象領域指定部12bは、「0x0011FF」を上限アドレスとして、「0x00F000」を下限アドレスとして命令監視レジスタ21bに指定する。また、第2の実施形態では、携帯電話機1の保護対象リソース71bは無線LAN対応の通信部であり、この通信部のアドレスは「0x2EE015」〜「0x221010」と指定されている。対象領域指定部12bは、上限アドレス「0x221010」及び下限アドレス「0x2EE015」をリソース監視レジスタ31bに指定する。また、第2の実施形態では、携帯電話機1bの保護対象データは格納領域81に格納され、この保護対象データの格納されている物理アドレスは「0xFE0055」〜「0x30101F」と指定されている。対象領域指定部12bは、上限アドレス「0x30101F」及び下限アドレス「0xFE0055」をデータ監視レジスタ91に指定する。
監視ビット付与部13bは、メモリ61bからどのような命令がプロセッサ41bによりフェッチされているかを常時、検出している。監視ビット付与部13bは、プロセッサ41bが格納領域81にアクセスしてどのようなデータをロードしているかを常時、検出している。
監視ビット付与部13bは、命令監視レジスタ21bに指定された上限アドレス及び下限アドレスの範囲に格納されているプログラムの命令を監視対象プログラムの命令であると認識している。また、監視ビット付与部13bは、データ監視レジスタ91に指定された上限アドレス及び下限アドレスの範囲に格納されているデータを保護対象データであると認識している。
メモリ61bから命令がプロセッサ41bによりフェッチされた場合、監視ビット付与部13bは、命令監視レジスタ21bに指定されている上限アドレス及び下限アドレスに基づいて当該フェッチされた命令が監視対象プログラムの命令であるか否かを確認する。また、プロセッサ41bが格納領域81をアクセスしてデータをロードした場合、監視ビット付与部13bは、データ監視レジスタ91に指定されている上限アドレス及び下限アドレスに基づいて当該ロードされたデータが保護対象データであるか否かを確認する。
メモリ61bからフェッチされた命令が監視対象プログラムの命令であると確認された場合には、監視ビット付与部13bは、当該フェッチされた命令が監視対象プログラムであることを示す命令監視対象信号をプロセッサ41bに出力する。また、格納領域81からロードされたデータが保護対象データであると確認された場合には、監視ビット付与部13bは、当該ロードされたデータが保護対象データであることを示すデータ監視対象信号をプロセッサ41bに出力する。
ここで、監視制御部11bの監視ビット付与部13bと、プロセッサ41bとの間には、回路上の配線として監視ビット線K3及び監視ビット線K4が物理的に配線されている。監視ビット付与部13bは、メモリ61bからフェッチされた命令が監視対象プログラムの命令であると確認された場合には、命令監視対象信号を監視ビット線K3に出力する。より具体的には、監視ビット付与部13bは、監視ビット線K3の出力状態を「H」(High)と設定することにより、命令監視対象信号を監視ビット線K3に出力する。反対に、監視ビット付与部13bは、メモリ61bからフェッチされた命令が監視対象プログラムの命令でないと確認された場合には、命令監視対象信号を監視ビット線K3に出力しない。この場合には、監視ビット線K3の出力状態は、「L」(Low)である。
監視ビット付与部13bは、格納領域81からロードされたデータが保護対象データであると確認された場合には、当該ロードされたデータは保護対象データであることを示すデータ監視対象信号を監視ビット線K4に出力する。より具体的には、監視ビット付与部13bは、監視ビット線K4の出力状態を「H」(High)と設定することにより、データ監視対象信号を監視ビット線K4に出力する。反対に、監視ビット付与部13bは、格納領域81からロードされたデータが保護対象データではないと確認された場合には、データ監視対象信号を監視ビット線K4に出力しない。この場合には、監視ビット線の出力状態は、「L」(Low)である。
命令監視レジスタ21bは、第1の実施形態の命令監視レジスタ21と同様のため、説明を省略する。また、リソース監視レジスタ31bは、第1の実施形態のリソース監視レジスタ31と同様のため、説明を省略する。
プロセッサ41bは、マイクロプロセッサにより構成されるものであり、命令フェッチ部42bと、命令デコード部43bと、命令制御部44bと、命令キャッシュ45bと、データキャッシュ46bと、命令実行部47bとを備える。
命令フェッチ部42bは、メモリ61bに格納された実行対象のプログラムの命令をフェッチし、当該フェッチされたプログラムの命令を命令デコード部43bに出力する。フェッチされたプログラムの命令が監視対象プログラムの命令である場合には、監視ビット付与部13bにより命令監視対象信号が出力されているため、プロセッサ41bは、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する。
命令デコード部43bは、命令フェッチ部42bによりフェッチされた実行対象のプログラムの命令をデコードして当該命令の内容を解釈し、当該内容を命令制御部44bに出力する。ここで、命令デコード部43bによるデコードの結果、メモリ61bの物理アドレス「0x0011FF」〜「0x00F000」に格納されているプログラムの命令は、携帯電話機1の保護対象リソース71bである通信部に対して格納領域81に格納されている保護対象データを書込む命令であるとする。
命令制御部44bは、命令デコード部43bにより解釈された命令の実行を制御する。命令制御部44bは、監視ビット付与部13bにより出力された命令監視対象信号に基づき、監視対象プログラムとして認識されたプログラムの命令に命令監視ビットを付与する。命令制御部44bは、この命令監視ビットの付与された命令を命令キャッシュ45bに格納する。
プロセッサ41bは、命令デコード部43bにより解釈された命令の内容に基づき、格納領域81をアクセスして当該格納領域81に格納されているデータをロードする。格納領域81からロードされたデータが保護対象データである場合には、監視ビット付与部13bによりデータ監視対象信号が出力されているため、プロセッサ41bは、このデータ監視対象信号に対応するデータを保護対象データとして認識する。
命令制御部44bは、監視ビット付与部13bにより出力されたデータ監視対象信号に基づき、保護対象データとして認識されたデータにデータ監視ビットを付与する。命令制御部44bは、このデータ監視ビットの付与されたデータをデータキャッシュ46bに格納する。データキャッシュ46bにはデータ監視ビットが付与されたデータ又はそのアドレスが格納されるため、以降にプロセッサ41bがデータキャッシュ46bからデータを取得する際もデータ監視ビットを確認することで監視が可能となる。
図6に示すように、命令1を実行するプログラムは、命令監視レジスタ21bに指定されるメモリ61bの物理アドレスの範囲に格納されている。従って、命令1は、監視対象プログラムの命令であり、命令制御部44bにより命令監視ビットが付与される。また、命令2を実行するプログラムは、命令監視レジスタ21bに指定される物理アドレスの範囲に対応するメモリ61bの物理アドレスに格納されていないとする。従って、命令2は、監視対象プログラムの命令ではなく、命令制御部44bにより命令監視ビットが付与されない。
また、図6に示すように、格納領域81からロードされたデータ1及びデータ2は、データ監視レジスタ91に指定される物理アドレスの範囲に対応する格納領域81の物理アドレスに格納されている。従って、データ1及びデータ2は、保護対象データであり、命令制御部44bによりデータ監視ビットが付与される。
命令キャッシュ45b、データキャッシュ46b及び命令実行部47bは、第1の実施形態における命令キャッシュ45、データキャッシュ46及び命令実行部47と同様のため、説明を省略する。
また、プロセッサ41bは、命令実行部47bが今からデータを用いて命令を実行する旨及び当該命令の内容を監視実行部51bに通知する(ステップS42)。更に、プロセッサ41bは、命令実行部47bが今から実行する命令は命令監視ビットが付与されたものである場合には、当該実行する命令は監視対象プログラムの命令であることを示す命令監視対象信号を監視実行部51bに出力する。更に、プロセッサ41bは、命令実行部47bが今から実行する命令において用いられるデータはデータ監視ビットが付与されたものである場合には、当該データは保護対象データであることを示すデータ監視対象信号を監視実行部51bに出力する。
ここで、プロセッサ41bと監視実行部51bとの間には、回路上の配線として監視ビット線K5及び監視ビット線K6が物理的に配線されている。命令実行部47bが今から実行する命令は命令監視ビットが付与された命令である場合には、プロセッサ41bは、命令監視対象信号を監視ビット線K5に出力する。より具体的には、プロセッサ41bは、監視ビット線K5の出力状態を「H」(High)と設定することにより、命令監視対象信号を監視ビット線K5に出力する。反対に、命令実行部47bが今から実行する命令は命令監視ビットが付与されたものでない場合には、プロセッサ41bは、命令監視対象信号を監視ビット線K5に出力しない。この場合には、第3の監視ビット線の出力状態は「L」(Low)である。
更に、命令実行部47bが今から実行する命令において用いられるデータはデータ監視ビットが付与されたものである場合には、プロセッサ41bは、データ監視対象信号を監視ビット線K6に出力する。より具体的には、プロセッサ41bは、監視ビット線K6の出力状態を「H」(High)と設定することにより、データ監視対象信号を監視ビット線K6に出力する。反対に、命令実行部47bが今から実行する命令において用いられるデータはデータ監視ビットが付与されていない場合には、プロセッサ41bは、データ監視対象信号を監視ビット線K6に出力せず、この場合には、第4の監視ビット線の出力状態は「L」(Low)である。
監視実行部51bは、マイクロコンピュータにより構成されるものであり、リソース監視レジスタ31bに指定されている保護対象リソース71bの物理アドレス及び監視レベルを常時、参照している。
監視実行部51bは、プロセッサ41bからの通知に基づき、命令実行部47bが今からデータを用いて命令を実行する旨及び当該命令の内容を取得し、当該命令実行部47bによる命令の実行を監視する。命令実行部47bが今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41bにより命令監視対象信号が出力されているため、監視実行部51bは、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する。
命令実行部47bが今から実行する命令において用いられるデータはデータ監視ビットが付与されたものである場合には、プロセッサ41bによりデータ監視対象信号が出力されているため、監視実行部51bは、このデータ監視対象信号に対応するデータを保護対象データとして認識する。
監視実行部51bは、命令実行部47bが今から実行する命令が監視対象プログラムであって、かつ、リソース監視レジスタ31bに指定されている内容に基づいて当該監視対象プログラムが携帯電話機1bの保護対象リソース71bに保護対象データを書込む命令であるか否かを判定する。命令実行部47bが今から実行する命令が監視対象プログラムであって、かつ、当該監視対象プログラムが携帯電話機1bの保護対象リソース71bに保護対象データを書込む命令である場合には、監視実行部51bは、当該監視対象プログラムはマルウェアの可能性を示唆する挙動を実行すると検出する。この挙動は保護対象データ(クレジットカード番号等)を携帯電話機1bと通信可能に接続された外部装置に送信すること意味している。この場合、監視実行部51bは、保護対象リソース71bである通信部に擬似応答を行うと共に、当該擬似応答を行った旨をプロセッサ41bに出力する。このとき、プロセッサ41bは、携帯電話機1bの表示画面に、「マルウェアの可能性を示唆する挙動を行うプログラムが見つかりました。このプログラムをインストールしますか?」という旨のメッセージを表示してユーザの意思確認を促す。擬似応答は、図5に示すように、第1の実施形態と同様であるため、説明を省略する。
メモリ61b及び保護対象リソース71bは、第1の実施形態のメモリ61及び保護対象リソース71と同様であるため、説明を省略する。格納領域81は、携帯電話機1bのユーザに関する個人情報等の重要なデータが格納される領域であり、ファイルシステムが構成されている。第2の実施形態では、格納領域81の物理アドレス「0xFE0055」〜「0x30101F」の範囲に格納されているデータは保護対象データとされる。
データ監視レジスタ91は、対象領域指定部12bにより指定された保護対象データの物理アドレスを格納する格納領域である。第2の実施形態では、上限アドレスとして「0x30101F」及び下限アドレスとして「0xFE0055」が指定されている。また、データ監視レジスタ91には、監視レベルが予め指定されている。この監視レベルには、データ監視レジスタ91に指定されている物理アドレスの範囲に格納されている格納領域81のデータに対して読込み命令又は書込み命令が行われる際に、当該データにデータ監視ビットが付与される旨が指定されている。
(第2の実施形態のマルウェア検出部6bの動作)
次に、第2の実施形態のマルウェア検出部6bの動作について、図7を参照して説明する。図7は、第2の実施形態のマルウェア検出部6bの動作を説明するシーケンス図である。
図7において、対象領域指定部12bは、監視対象プログラムをメモリ61bに格納するための物理アドレス空間を確保し、当該確保されたメモリ61bの物理アドレス空間に当該監視対象プログラムを格納する(ステップS31)。対象領域指定部12bは、監視対象プログラムが格納されているメモリ61bの物理アドレスの範囲を示す上限アドレス及び下限アドレスを命令監視レジスタ21bに指定する(ステップS32)。対象領域指定部12bは、携帯電話機1bの保護対象リソース71bの物理アドレスの範囲を示す上限アドレス及び下限アドレスをリソース監視レジスタ31bに指定する(ステップS32)。対象領域指定部12は、携帯電話機1bの保護対象データの格納されている格納領域81の物理アドレスの範囲を示す上限アドレス及び下限アドレスをデータ監視レジスタ91に指定する(ステップS32)。
監視ビット付与部13bは、メモリ61bからどのような命令がプロセッサ41bによりフェッチされているかを常時、検出している(ステップS33)。監視ビット付与部13bは、プロセッサ41bが格納領域81にアクセスしてどのようなデータをロードしているかを常時、検出している(ステップS33)。
監視ビット付与部13bは、命令監視レジスタ21bに指定された上限アドレス及び下限アドレスの範囲に格納されているプログラムの命令を監視対象プログラムの命令であると認識している(ステップS34)。更に、監視ビット付与部13bは、データ監視レジスタ91に指定された上限アドレス及び下限アドレスの範囲に格納されているデータを保護対象データであると認識している(ステップS34)。
メモリ61bから命令がプロセッサ41bによりフェッチされた場合(ステップS35)、監視ビット付与部13bは、命令監視レジスタ21bに指定されている上限アドレス及び下限アドレスに基づいて当該フェッチされた命令が監視対象プログラムの命令であるか否かを確認する(ステップS36)。
プロセッサ41bが格納領域81をアクセスしてデータをプロセッサ41b内にロードした場合(ステップS37)、監視ビット付与部13bは、データ監視レジスタ91に指定されている上限アドレス及び下限アドレスに基づいて当該ロードされたデータが保護対象データであるか否かを確認する(ステップS38)。
メモリ61bからフェッチされた命令が監視対象プログラムの命令であると確認された場合には、監視ビット付与部13は、当該フェッチされた命令が監視対象プログラムであることを示す命令監視対象信号をプロセッサ41bに出力する(ステップS39)。具体的には、監視ビット付与部13bは、監視ビット線K3を介して、命令監視対象信号をプロセッサ41bに出力する。
また、格納領域81からロードされたデータが保護対象データであると確認された場合には、監視ビット付与部13は、当該ロードされたデータが保護対象データであることを示すデータ監視対象信号をプロセッサ41bに出力する(ステップS39)。具体的には、監視ビット付与部13bは、監視ビット線K4を介して、データ監視対象信号をプロセッサ41bに出力する。
フェッチされたプログラムの命令が監視対象プログラムの命令である場合には、監視ビット付与部13bにより命令監視対象信号が出力されているため、プロセッサ41bは、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する(ステップS40)。また、格納領域81からロードされたデータが保護対象データである場合には、監視ビット付与部13bによりデータ監視対象信号が出力されているため、プロセッサ41bは、このデータ監視対象信号に対応するデータを保護対象データとして認識する(ステップS40)。
プロセッサ41bは、監視ビット付与部13bにより出力された命令監視対象信号に基づき、監視対象プログラムとして認識されたプログラムの命令に命令監視ビットを付与する(ステップS41)。また、プロセッサ41bは、監視ビット付与部13bにより出力されたデータ監視対象信号に基づき、保護対象データとして認識されたデータにデータ監視ビットを付与する(ステップS41)。
プロセッサ41bは、命令実行部47bが今からデータを用いて命令を実行する旨及び当該命令の内容を監視実行部51bに通知する(ステップS42)。命令実行部47bが今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41bは、更に、当該実行する命令は監視対象プログラムの命令であることを示す命令監視対象信号を監視ビット線K5に出力する。具体的には、プロセッサ41bは、監視ビット線K5を介して、命令監視対象信号を監視実行部51bに出力する。また、命令実行部47bが今から実行する命令において用いられるデータはデータ監視ビットが付与されたものである場合には、プロセッサ41bは、当該データは保護対象データであることを示すデータ監視対象信号を監視ビット線K6に出力する。具体的には、プロセッサ41bは、監視ビット線K6を介して、データ監視対象信号を監視実行部51bに出力する。
監視実行部51bは、リソース監視レジスタ31bに指定されている保護対象リソース71bの物理アドレス及び監視レベルを常時、参照している(ステップS43)。監視実行部51bは、プロセッサ41bからの通知に基づき、命令実行部47bが今からデータを用いて命令を実行する旨及び当該命令の内容を取得している。命令実行部47bが今から実行する命令は命令監視ビットが付与されたものである場合には、プロセッサ41bにより命令監視対象信号が出力されているため、監視実行部51bは、この命令監視対象信号に対応する命令を監視対象プログラムの命令として認識する。
命令実行部47bが今から実行する命令において用いられるデータはデータ監視ビットが付与されたものである場合には、プロセッサ41bによりデータ監視対象信号が出力されているため、監視実行部51bは、このデータ監視対象信号に対応するデータを保護対象データとして認識する。
監視実行部51bは、命令実行部47bが今から実行する命令が監視対象プログラムであって、かつ、リソース監視レジスタ31bに指定されている内容に基づいて当該監視対象プログラムが携帯電話機1bの保護対象リソース71bに保護対象データを書込む命令であるか否かを判定する(ステップS44)。命令実行部47bが今から実行する命令が監視対象プログラムであって、かつ、当該監視対象プログラムが携帯電話機1bの保護対象リソース71bに保護対象データを書込む命令である場合には、監視実行部51bは、当該監視対象プログラムはマルウェアの可能性を示唆する挙動を実行すると検出する(ステップS45)。この場合、監視実行部51bは、保護対象リソース71bである通信部に擬似応答を行うと共に(ステップS46)、当該擬似応答を行った旨をプロセッサ41bに出力する(ステップS47)。このとき、プロセッサ41bは、携帯電話機1bの表示画面に、「マルウェアの可能性を示唆する挙動を行うプログラムが見つかりました。このプログラムをインストールしますか?」という旨のメッセージを表示してユーザの意思確認を促す。
以上のように、第2の実施形態のマルウェア検出部6bを含む携帯電話機1bによれば、ユーザの携帯電話機1bの操作に基づいてダウンロードされたプログラムが携帯電話機1bにインストールされる際、当該携帯電話機1bにより当該プログラムの信頼性が検証される。この検証において、当該プログラムが携帯電話機1b内の保護対象リソース71bに保護対象データを書込む命令を実行する場合、当該携帯電話機1bは、当該プログラムがマルウェアの可能性を示唆する挙動を実行すると検出し、当該プログラムのインストールの意思確認をユーザに対して行う。
第2の実施形態のマルウェア検出部6bを含む携帯電話機1bによれば、第三者により作成されたプログラムの命令による保護対象リソースへの保護対象データの書込みを実環境でリアルタイムに監視することができ、マルウェアの可能性を示唆する挙動を実行するプログラムを検出することができる。更に、重要なデータを保護対象データとすることにより、マルウェアの攻撃から重要度の高いデータの漏洩、流出等を防ぐことができ、マルウェアの誤検出を低下することができる。また、監視対象プログラムにおけるメモリ61の格納先アドレスを格納する命令監視レジスタ21bを設けることにより、監視対象プログラムの範囲を柔軟に指定することができる。さらに、監視ビット付与部13からの出力に基づき、プロセッサ41bは、命令監視レジスタに保持されているアドレスに格納されているプログラムを監視対象として柔軟に設定することができる。
また、保護対象データの格納先アドレスを格納するデータ監視レジスタ91を設けることにより、保護対象のデータの範囲を柔軟に指定することができる。また、プロセッサ41bは、命令監視レジスタ21b及びデータ監視レジスタ91にそれぞれ保持されている命令及びデータの格納先アドレスに対応する命令及びデータを取得した場合に的確に監視対象として設定することができる。また、保護対象リソースのアドレスを保持するレジスタを設けることにより、監視対象のリソースの範囲を柔軟に設定することができる。
また、監視ビット付与部13bとプロセッサ41bとの間を監視ビット線K3及び監視ビット線K4でそれぞれ配線することにより、監視ビット付与部13bからプロセッサ41bに対して、命令監視ビット及びデータ監視ビットを追加する内容の命令をプロセッサ41bに別途実行させる必要がなくなる。更に、プロセッサ41bと監視実行部51bとの間を監視ビット線K5及び監視ビット線K6で配線することにより、プロセッサ41bは命令実行部47bが今からデータを用いて命令を実行する旨を監視実行部51bに通知すれば良く、監視実行部51bは、物理的に配線された監視ビット線K5及びK6の状態に基づいて命令監視対象信号及びデータ監視対象信号の有無を確認することにより、監視対象プログラム及び保護対象データの有無を容易に確認することができる。
(変形例1:保護対象データのコピー)
次に、前述した各実施形態の変形例1について図8及び図9を参照して説明する。図8は、保護対象データの全部又は一部がメモリ61bにコピーされたときのメモリ61bの状態遷移を示す説明図である。図9は、保護対象データの全部又は一部がメモリ61bにコピーされたときのデータ監視レジスタ91の状態遷移を示す説明図である。
例えば、第2の実施形態において、格納領域81に格納されている保護対象データの全部又は一部がメモリ61bにコピーされた場合には、当該コピーされた保護対象データの格納されたメモリ61bの物理アドレスはデータ監視レジスタ91に指定されていない。このため、監視実行部51bは、データ監視レジスタ91に指定されている物理アドレス以外の物理アドレスに格納されたデータを保護対象データと認識することができず、マルウェアの可能性を示唆する挙動を検出することができない可能性がある。
そこで、変形例1では、監視実行部51bは、第2の実施形態に加え、格納領域81に格納されている保護対象データの全部又は一部がメモリ61bにコピーされたことを検出する。監視実行部51bは、対象領域指定部12bに対し、当該コピーされた保護対象データの全部又は一部が格納されているメモリ61bの物理アドレスをデータ監視レジスタ91に追加指定するように通知する。対象領域指定部12bは、監視実行部51bからの通知に基づき、メモリ61bに格納された保護対象データの格納されている物理アドレスをデータ監視レジスタ91に追加指定する。
具体的には、格納領域81に格納されていた保護対象データの全部又は一部がメモリ61bにコピーされた場合、図8に示すように、当該コピーされた保護対象データはメモリ61bの物理アドレス「0xCD0055」〜「0x01001F」の範囲に格納されるとする。この場合、図9に示すように、データ監視レジスタ91には、物理アドレス「0xCD0055」をメモリ61bにおける下限アドレス「0xCD0055」、物理アドレス「0x01001F」をメモリ61bにおける上限アドレス「0x01001F」に追加指定される。
変形例1では、保護対象データのコピー先となるメモリ61bを保護対象リソース71bとして予めリソース監視レジスタ31bに指定することにより、監視実行部51bは、コピー自体を検出することができる。監視実行部51bによりコピーが検出された後、対象領域指定部12bは、そのコピーされた保護対象データのメモリ61bに格納されている物理アドレスをデータ監視レジスタ91に指定する。なお、コピー先の保護対象データが格納されるメモリ61bの保護対象リソース71bとしての指定は、全ての保護対象データのコピーが検出された時点で解除されて良い。全てのコピー先の保護対象データが格納されている物理アドレスをデータ監視レジスタ91bに指定できるまで、これを繰り返す。全て指定できた後、監視対象プログラムを再実行することでリアルタイムな監視が可能となる。
従って、変形例1によれば、保護対象データの全部又は一部がデータ監視レジスタ91に格納されていないメモリ61の物理アドレスにコピーされた場合でも、当該コピー先の物理アドレスを保護対象データの存在する物理アドレスとしてデータ監視レジスタに追加設定することにより、プログラムの命令の監視をリアルタイムに実行することができる。更に、データ監視レジスタ91に指定されている物理アドレス以外の物理アドレスに格納されているデータを保護対象データと認識することができ、マルウェアの可能性を示唆する挙動の検出をより高精度に行うことができる。
(変形例2:DLLによる他のプログラムの実行)
次に、前述した各実施形態の変形例2について図10及び図11を参照して説明する。図10は、監視対象プログラムが監視対象プログラムではない他のプログラムXを動的に呼び出した場合のメモリの状態遷移を示す説明図である。図11は、監視対象プログラムが監視対象プログラムではない他のプログラムXを動的に呼び出した場合の命令監視レジスタの状態遷移を示す説明図である。
例えば、第1の実施形態において、監視対象プログラムが命令1を実行した場合に、命令監視レジスタ21に指定されていない他のプログラムXを動的に呼び出した場合には、当該呼び出された他のプログラムXの格納されているメモリ61の物理アドレスは命令監視レジスタ21に指定されていない。このため、携帯電話機1の監視実行部51は、命令監視レジスタ21に指定されている物理アドレス以外の物理アドレスに格納された命令を監視対象プログラムの命令と認識することができず、マルウェアの可能性を示唆する挙動を検出することができない可能性がある。
そこで、変形例2では、監視実行部51は、第1の実施形態に加え、監視対象プログラムの命令1の実行時に、監視対象プログラムが監視対象プログラムではない他のプログラムXを動的に呼び出したことを検出する。監視実行部51は、対象領域指定部12に対し、当該呼び出された他のプログラムXのメモリ61に格納された物理アドレスを命令監視レジスタ21に追加指定するように通知する。対象領域指定部12は、監視実行部51からの通知に基づき、メモリ61に格納された他のプログラムXの格納されている物理アドレスを命令監視レジスタ21に追加指定する。
具体的には、監視対象プログラムの命令1の実行時に、監視対象プログラムではない他のプログラムXが動的に呼び出された場合、図10に示すように、当該呼び出された他のプログラムXはメモリ61の物理アドレス「0x06C041」〜「0x03FD25」の範囲に格納されるとする。この場合、図11に示すように、命令監視レジスタ21には、物理アドレス「0x06C041」をメモリ61における第2の下限アドレス、物理アドレス「0x03FD25」をメモリ61における第2の上限アドレスに追加指定される。
変形例2では、呼び出し先の他のプログラムXが格納されるメモリ61を保護対象リソース71として予めリソース監視レジスタ31に指定することにより、監視実行部51は、他のプログラムXの呼び出し自体を検出することができる。監視実行部51により呼び出しが検出された後、対象領域指定部12は、その呼び出された他のプログラムXのメモリ61に格納されている物理アドレスを命令監視レジスタ21に指定する。なお、呼び出し先の他のプログラムXが格納されるメモリ61の保護対象リソース71としての指定は、全ての他のプログラムの呼び出しが検出された時点で解除されて良い。全ての呼び出し先の他のプログラムが格納されている物理アドレスを命令監視レジスタ21に指定できるまで、これを繰り返す。全て指定できた後、監視対象プログラムを実行することでリアルタイムな監視が可能となる。
従って、変形例2によれば、監視対象プログラムの実行時に、監視対象プログラムではない他のプログラムXが動的に呼び出された場合でも、当該呼び出された他のプログラムXのメモリ61に格納されている物理アドレスを命令監視レジスタ21に追加指定することにより、当該呼び出されたプログラムの命令の監視をリアルタイムに実行することができる。更に、命令監視レジスタ21に指定されている物理アドレス以外の物理アドレスに格納されている監視対象プログラムではない他のプログラムXを動的に監視保護プログラムと認識することができ、マルウェアの可能性を示唆する挙動の検出をより高精度に行うことができる。
以上、添付図面を参照しながら各種の実施形態について説明したが、本発明のマルウェア検出装置はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
また、前述した第1の実施形態では、監視対象プログラムが保護対象リソースである通信部に対して「書込み」を行う場合に、当該監視対象プログラムの挙動はマルウェアの可能性を示唆する挙動を実行すると検出される旨を説明した。しかしながら、当該監視対象プログラムが保護対象リソースである通信部に対して「アクセス」を行う場合でも、当該監視対象プログラムの挙動はマルウェアの可能性を示唆する挙動を実行すると検出されても良い。
例えば、前述した各実施形態においては、監視ビット付与部13とプロセッサ41との間、及びプロセッサ41と監視実行部51との間には、それぞれ監視ビット線K1〜K6がそれぞれ配線される旨を説明した。しかし、第1の実施形態において、監視ビット線K1の配線を行わず、監視ビット付与部13は、命令監視レジスタ21に指定されている物理アドレスに格納されているプログラムの命令に命令監視ビットを付与する命令を優先的に実行する旨をプロセッサ41に通知するようにしても良い。この場合、プロセッサ41は、監視ビット付与部13からの通知に基づき、命令監視レジスタ21に指定されている物理アドレスに格納されているプログラムの命令がプロセッサ41にフェッチされた場合に当該命令に命令監視ビットを付与する。
これに関連して、監視ビット線K2の配線を行わず、更に、プロセッサ41は、命令監視ビットが付与された命令を今から実行する旨を監視実行部51に通知すれば良い。監視実行部51は、プロセッサ41からの通知に基づき、実行対象のプログラムの命令は命令監視ビットが付与された命令であることを認識することができる。これにより、携帯電話機1内において監視ビット線K1及び監視ビット線K2の配線が不要となる。
また更に、第2の実施形態において、監視ビット線K3及び監視ビット線K4の配線を行わず、監視ビット付与部13bは、命令監視レジスタ21bに指定されている物理アドレスに格納されているプログラムの命令に命令監視ビットを付与する命令、及び、データ監視レジスタ91に指定されている物理アドレスに格納されているデータにデータ監視ビットを付与する命令を優先的に実行する旨をプロセッサ41bに通知するようにしても良い。この場合、プロセッサ41bは、監視ビット付与部13bからの通知に基づき、命令監視レジスタ21bに指定されている物理アドレスに格納されているプログラムの命令に命令監視ビットを付与すると共に、データ監視レジスタ91に指定されている物理アドレスに格納されているデータにデータ監視ビットを付与する。
これに関連して、監視ビット線K5及び監視ビット線K6の配線を行わず、更に、プロセッサ41bは、データ監視ビットが付与されたデータを用いて命令監視ビットが付与された命令を実行する旨を監視実行部51bに通知すれば良い。監視実行部51bは、プロセッサ41bからの通知に基づき、実行対象のプログラムの命令は命令監視ビットが付与された命令であって、当該命令はデータ監視ビットが付与されたデータを用いることを認識することができる。これにより、携帯電話機1b内において監視ビット線K3〜監視ビット線K6の配線が不要となる。
前述した各実施形態では、監視対象プログラム、保護対象リソース、及び保護対象データは予め指定されているものとして説明した。しかし、監視対象プログラム、保護対象リソース、及び保護対象データの指定の仕方については特に問わない。例えば、ユーザが監視対象プログラム、保護対象リソース、及び保護対象データを指定しても良い。また、監視対象プログラム、保護対象リソース、及び保護対象データは、携帯電話機1により予め指定されても良い。また、ダウンロードされたプログラムそのもの、又はダウンロードされたプログラムに電子署名が添付されていないプログラムは監視対象プログラムと指定されても良い。
また、前述した実施形態では、監視対象プログラムが1つである場合を説明した。しかし、複数の監視対象プログラムが携帯電話機1により監視されても良い。例えば、監視対象プログラムが2つある場合には、どちらの監視対象プログラムがマルウェアの可能性を示唆する挙動を示すかを高精度に検出することが難しい可能性もある。監視対象プログラムが監視対象プログラム1及び監視対象プログラム2の2種類ある場合には、監視ビット付与部13とプロセッサ41との間、及びプロセッサ41と監視実行部51との間にそれぞれ2本の監視ビット線が配線される必要がある。監視対象プログラム1に対しては第1の監視ビット線の出力状態を「H」に設定し、監視対象プログラム2に対しては第2の監視ビット線の出力状態を「H」に設定して通知することにより、どの監視対象プログラムに関する通知であるかを明確にし、複数の監視対象プログラムを同時に監視することができる。また、監視ビット線による通知ではなく、例えば、監視ビット付与部13は、プロセッサ41によりフェッチされた命令が監視対象プログラム1又は監視対象プログラム2であることをプロセッサ41に通知すれば良い。また、プロセッサ41は、命令実行部47が今から実行する命令が監視対象プログラム1又は監視対象プログラム2であることを監視実行部51に通知すれば良い。
また、マルチプロセッサ環境等のように、携帯電話機1内に複数のプロセッサ41が設けられても構わない。この場合には、プロセッサ41に対する識別子が予め付与されることにより、監視実行部51はどのプロセッサ41に対して監視しているかを把握することができる。これにより、監視対象プログラムを実行するプロセッサが複数ある場合でも、監視対象を明確に見分けることができる。
また、前述した実施形態において、命令実行部47が同一の監視対象プログラムを繰り返して実行することも想定される。プロセッサ41は、命令実行部47により一度実行された命令及びデータを命令キャッシュ45及びデータキャッシュ46にそれぞれ格納している。このため、プロセッサ41は、命令キャッシュ45及びデータキャッシュ46にそれぞれ格納された命令及びデータに命令監視ビット及びデータ監視ビットの付与の有無を確認する。この確認結果に基づき、プロセッサ41は、監視ビット線による命令監視ビット及びデータ監視ビットの有無を監視実行部51に通知する。また、プロセッサ41は、監視ビット線による通知ではなく、前述した確認結果に基づき、命令監視ビット及びデータ監視ビットの有無を監視実行部51に通知しても良い。これにより、同一の監視対象プログラムが繰り返して実行される際、監視制御部11及びプロセッサ41間の動作を不要とすることができる。
本発明は、第三者により作成されたプログラムの命令による保護対象リソースへのアクセスをリアルタイムに実環境で監視することのできるマルウェア検出装置及びマルウェア検出方法として有用である。
1、1b 携帯電話機
2 ダウンローダ
3 アプリケーションマネージャ
4 信頼性検証部
5 表示部
6、6b マルウェア検出部
11、11b 監視制御部
12、12b 対象領域指定部
13、13b 監視ビット付与部
21、21b 命令監視レジスタ
31、31b リソース監視レジスタ
41、41b プロセッサ
42、42b 命令フェッチ部
43、43b 命令デコード部
44、44b 命令制御部
45、45b 命令キャッシュ
46、46b データキャッシュ
47、47b 命令実行部
51、51b 監視実行部
61、61b メモリ
71、71b 保護対象リソース
81 格納領域
91 データ監視レジスタ
K1、K2、K3、K4、K5、K6 監視ビット線

Claims (20)

  1. メモリの所定アドレスに格納されているプログラムの命令に、当該命令が監視対象プログラムの命令である旨を通知する監視制御部と、
    前記プログラムの命令を実行すると共に、前記監視制御部の通知に基づいて前記監視対象プログラムの命令であることを示す命令監視ビットが付与された命令を格納するキャッシュを含むプロセッサと、
    前記プロセッサによる前記命令の実行を監視すると共に、前記命令監視ビットが付与された前記命令が所定の保護対象リソースにアクセスする命令である場合にマルウェアの可能性を示唆する挙動が実行されると検出する監視実行部と、
    を備えるマルウェア検出装置。
  2. 請求項1に記載のマルウェア検出装置であって、
    前記監視対象プログラムの命令が格納されている前記メモリの前記所定アドレスが指定される命令監視レジスタと、を更に備え、
    前記監視制御部は、前記命令監視レジスタに指定されている前記所定アドレスに格納されているプログラムの命令が前記プロセッサにより読み出された際、当該プログラムの命令は前記監視対象プログラムの命令である旨を通知するマルウェア検出装置。
  3. 請求項2に記載のマルウェア検出装置であって、
    前記プロセッサは、前記監視制御部の通知に基づいて前記命令に前記命令監視ビットを付与し、当該命令監視ビットが付与された前記命令を実行する旨を前記監視実行部に通知するマルウェア検出装置。
  4. 請求項3に記載のマルウェア検出装置であって、
    前記保護対象リソースのアドレスが指定されるリソース監視レジスタと、を更に備え、
    前記監視実行部は、前記プロセッサからの通知に基づき、当該命令が前記リソース監視レジスタに指定されている前記アドレスに対応する前記保護対象リソースに対するアクセスか否かを監視するマルウェア検出装置。
  5. 請求項2〜4のいずれか一項に記載のマルウェア検出装置であって、
    前記監視制御部と前記プロセッサとの間には、前記監視対象プログラムの命令であることを示す命令監視対象信号が出力される第1の監視ビット線が配線され、
    前記監視制御部は、前記第1の監視ビット線を介して、前記命令監視対象信号を前記プロセッサに対して出力し、
    前記プロセッサは、前記命令監視対象信号に対応する前記命令を前記監視対象プログラムの命令として認識するマルウェア検出装置。
  6. 請求項5に記載のマルウェア検出装置であって、
    前記プロセッサと前記監視実行部との間には、前記命令監視対象信号が出力される第2の監視ビット線が配設され、
    前記プロセッサは、前記第2の監視ビット線を介して、前記命令監視対象信号を前記監視実行部に対して出力し、
    前記監視実行部は、前記命令監視対象信号に対応する前記命令を前記監視対象プログラムの命令として認識するマルウェア検出装置。
  7. 請求項2〜4のいずれか一項に記載のマルウェア検出装置であって、
    前記監視制御部は、前記命令監視レジスタに指定される前記所定アドレスに格納されている前記命令に前記命令監視ビットを付与する命令を優先的に実行するように前記プロセッサに通知し、
    前記プロセッサは、前記監視制御部の通知に基づき、前記命令監視レジスタに保持される前記所定アドレスに格納されている前記命令に前記命令監視ビットを付与するマルウェア検出装置。
  8. 請求項7に記載のマルウェア検出装置であって、
    前記プロセッサは、実行対象のプログラムの命令が前記命令監視ビットの付与された前記命令であることを前記監視実行部に通知し、
    前記監視実行部は、前記プロセッサの通知に基づき、前記実行対象のプログラムの命令は前記命令監視ビットが付与された命令であることを認識するマルウェア検出装置。
  9. メモリの所定アドレスに格納されているプログラムの命令に、当該命令が監視対象プログラムの命令である旨、及び所定のデータが保護対象データである旨を通知する監視制御部と、
    前記プログラムの命令を実行すると共に、前記監視制御部の通知に基づいて、前記監視対象プログラムの命令であることを示す命令監視ビットが付与された命令、及び前記保護対象データであることを示すデータ監視ビットが付与されたデータを格納するキャッシュを含むプロセッサと、
    前記プロセッサによる前記命令の実行を監視すると共に、前記命令監視ビットが付与された前記命令が前記データ監視ビットの付与された前記データを所定の保護対象リソースに書込む命令である場合にマルウェアの可能性を示す挙動として検出する監視実行部と、
    を備えるマルウェア検出装置。
  10. 請求項9に記載のマルウェア検出装置であって、
    前記監視対象プログラムの命令が格納されている前記メモリの前記所定アドレスを保持する命令監視レジスタと、を更に備え、
    前記監視制御部は、前記命令監視レジスタに指定されている前記所定アドレスに格納されているプログラムの命令が前記プロセッサにより読み出された際、当該プログラムの命令は前記監視対象プログラムの命令である旨を通知するマルウェア検出装置。
  11. 請求項10に記載のマルウェア検出装置であって、
    前記保護対象データが格納されているアドレスを保持するデータ監視レジスタと、を更に備え、
    前記監視制御部は、前記データ監視レジスタに指定されている前記アドレスに格納されているデータは前記保護対象データである旨を通知するマルウェア検出装置。
  12. 請求項11に記載のマルウェア検出装置であって、
    前記プロセッサは、前記監視制御部の通知に基づき、前記命令に前記命令監視ビットを、前記データに前記データ監視ビットをそれぞれ付与すると共に、前記データ監視ビットが付与された前記データを用いて前記命令監視ビットが付与された前記命令を実行する旨を前記監視実行部に通知するマルウェア検出装置。
  13. 請求項12に記載のマルウェア検出装置であって、
    前記保護対象リソースのアドレスを保持するリソース監視レジスタと、を更に備え、
    前記監視実行部は、前記プロセッサからの通知に基づき、当該命令が前記リソース監視レジスタに指定されている前記アドレスに対応する前記保護対象リソースに対して前記データ監視ビットが付与された前記データを書込むか否かを監視するマルウェア検出装置。
  14. 請求項10〜13のいずれか一項に記載のマルウェア検出装置であって、
    前記監視制御部と前記プロセッサとの間には、前記監視対象プログラムの命令であることを示す命令監視対象信号、及び前記保護対象データであることを示すデータ監視対象信号がそれぞれ出力される第1及び第2の監視ビット線が配線され、
    前記監視制御部は、前記第1及び第2の監視ビット線を介して、前記命令監視対象信号及び前記データ監視対象信号を前記プロセッサに対してそれぞれ出力し、
    前記プロセッサは、前記命令監視対象信号及び前記データ監視対象信号にそれぞれ対応する前記命令及び前記データを前記監視対象プログラムの命令及び前記保護対象データとしてそれぞれ認識するマルウェア検出装置。
  15. 請求項14に記載のマルウェア検出装置であって、
    前記プロセッサと前記監視実行部との間には、前記命令監視対象信号及び前記データ監視対象信号がそれぞれ出力される第3及び第4の監視ビット線が配設され、
    前記プロセッサは、前記第3及び第4の監視ビット線を介して、前記命令監視対象信号及び前記データ監視対象信号を前記監視実行部に対して出力し、
    前記監視実行部は、前記命令監視対象信号及び前記データ監視対象信号にそれぞれ対応する前記命令及び前記データを前記監視対象プログラムの命令及び前記保護対象データとしてそれぞれ認識するマルウェア検出装置。
  16. 請求項11に記載のマルウェア検出装置であって、
    前記監視制御部は、前記命令監視レジスタに指定される前記所定アドレスに格納されている前記命令に前記命令監視ビットを付与する命令、及び前記データ監視レジスタに指定される前記所定アドレスに格納されている前記データに前記データ監視ビットを付与する命令を優先的に実行するように前記プロセッサに通知し、
    前記プロセッサは、前記監視制御部の通知に基づき、前記命令監視レジスタに保持される前記所定アドレスに格納されている前記命令に前記命令監視ビットを付与すると共に、前記データ監視レジスタに保持される前記所定アドレスに格納されている前記データに前記データ監視ビットを付与するマルウェア検出装置。
  17. 請求項16に記載のマルウェア検出装置であって、
    前記プロセッサは、実行対象のプログラムの命令が前記命令監視ビットの付与された前記命令であること、及び、当該命令は前記データ監視ビットの付与された前記データを使用することを前記監視実行部に通知し、
    前記監視実行部は、前記プロセッサの通知に基づき、前記実行対象のプログラムの命令は前記命令監視ビットが付与された命令であること、及び、当該命令は前記データ監視ビットの付与された前記データを使用することを認識するマルウェア検出装置。
  18. 請求項2〜8のいずれか一項に記載のマルウェア検出装置であって、
    前記監視対象のプログラムの実行時において前記プログラムから当該監視対象ではない他のプログラムが呼び出された場合、前記監視制御部は、前記他のプログラムの格納された前記メモリのアドレスを前記命令監視レジスタに追加指定し、前記監視実行部は、前記命令監視レジスタに追加指定された前記アドレスに格納された前記他のプログラムの命令の実行を監視するマルウェア検出装置。
  19. 請求項11〜17のいずれか一項に記載のマルウェア検出装置であって、
    前記保護対象データがコピーされた場合、前記監視制御部は、当該コピーされた前記データが格納されているアドレスを前記データ監視レジスタに追加指定し、
    前記監視実行部は、前記命令監視ビットが付与された前記命令が、前記データ監視ビットが付与された前記データを前記保護対象データとして、前記所定の保護対象リソースに書き込む命令である場合に、当該プログラムの命令の実行を監視するマルウェア検出装置。
  20. メモリの所定アドレスに格納されているプログラムの命令に対し、当該命令が監視対象である旨を通知するステップと、
    前記プログラムの命令を実行するステップと、
    前記通知に基づいて、前記監視対象である前記命令に命令監視ビットを付与するステップと、
    前記命令監視ビットが付与された前記命令を格納するステップと、
    前記命令の実行を監視するステップと、
    前記命令監視ビットが付与された前記命令が所定の保護対象リソースにアクセスする命令である場合に、マルウェアの可能性を示唆する挙動が実行されると検出するステップと、
    を備えるマルウェア検出方法。
JP2010007177A 2010-01-15 2010-01-15 マルウェア検出装置及びマルウェア検出方法 Withdrawn JP2011145945A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010007177A JP2011145945A (ja) 2010-01-15 2010-01-15 マルウェア検出装置及びマルウェア検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010007177A JP2011145945A (ja) 2010-01-15 2010-01-15 マルウェア検出装置及びマルウェア検出方法

Publications (1)

Publication Number Publication Date
JP2011145945A true JP2011145945A (ja) 2011-07-28

Family

ID=44460734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010007177A Withdrawn JP2011145945A (ja) 2010-01-15 2010-01-15 マルウェア検出装置及びマルウェア検出方法

Country Status (1)

Country Link
JP (1) JP2011145945A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2428479A1 (en) 2010-09-09 2012-03-14 Ricoh Company, Limited Sheet Post-Processing Apparatus and Image Forming Apparatus
JP2013168141A (ja) * 2012-01-31 2013-08-29 Trusteer Ltd マルウェアの検出方法
JP2013232113A (ja) * 2012-04-27 2013-11-14 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、監視方法および監視プログラム
CN111324882A (zh) * 2020-01-21 2020-06-23 天津芯海创科技有限公司 一种处理器输出数据监测方法及装置
JP2021064358A (ja) * 2019-10-01 2021-04-22 アクロニス・インターナショナル・ゲーエムベーハー 悪意あるソフトウェアによるデジタルフォレンジック情報の破棄を阻止するシステムおよび方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2428479A1 (en) 2010-09-09 2012-03-14 Ricoh Company, Limited Sheet Post-Processing Apparatus and Image Forming Apparatus
JP2013168141A (ja) * 2012-01-31 2013-08-29 Trusteer Ltd マルウェアの検出方法
JP2013232113A (ja) * 2012-04-27 2013-11-14 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、監視方法および監視プログラム
JP2021064358A (ja) * 2019-10-01 2021-04-22 アクロニス・インターナショナル・ゲーエムベーハー 悪意あるソフトウェアによるデジタルフォレンジック情報の破棄を阻止するシステムおよび方法
JP7353251B2 (ja) 2019-10-01 2023-09-29 アクロニス・インターナショナル・ゲーエムベーハー 悪意あるソフトウェアによるデジタルフォレンジック情報の破棄を阻止するシステムおよび方法
CN111324882A (zh) * 2020-01-21 2020-06-23 天津芯海创科技有限公司 一种处理器输出数据监测方法及装置

Similar Documents

Publication Publication Date Title
KR101700552B1 (ko) 보안 운영 체제 환경으로의 콘텍스트 기반 전환
US9332021B2 (en) Methods and systems for preventing security breaches
Wang et al. Unauthorized origin crossing on mobile platforms: Threats and mitigation
JP6326497B2 (ja) 動的アプリケーションセキュリティ検証
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
Zhang et al. Efficient, context-aware privacy leakage confinement for android applications without firmware modding
US20140020096A1 (en) System to profile application software
WO2019072008A1 (zh) 小程序的安全扫描方法、装置以及电子设备
US20180046798A1 (en) Mining Sandboxes
JPWO2012046406A1 (ja) 情報処理装置およびアプリケーション不正連携防止方法
Egners et al. Messing with Android's permission model
CN111782416A (zh) 数据上报方法、装置、系统、终端及计算机可读存储介质
JP2010182196A (ja) 情報処理装置およびファイル検証システム
US8677506B2 (en) System and method for loading application classes
JP2011145945A (ja) マルウェア検出装置及びマルウェア検出方法
JP2013065114A (ja) 情報処理システムの制御方法、中継装置の制御プログラム及びクライアント装置の制御プログラム
JP5765185B2 (ja) 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法
US9680853B2 (en) Apparatus and method for preventing malicious code in electronic device
US20190163905A1 (en) System, Method, and Apparatus for Preventing Execution of Malicious Scripts
KR102156340B1 (ko) 웹 페이지 공격 차단 방법 및 장치
JP6018344B2 (ja) 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム
Zhu et al. AdCapsule: Practical confinement of advertisements in android applications
Zhang et al. React: A resource-centric access control system for web-app interactions on android
Hsiao et al. PasDroid: real-time security enhancement for Android
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130402