JP5511506B2 - 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム - Google Patents

所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム Download PDF

Info

Publication number
JP5511506B2
JP5511506B2 JP2010118879A JP2010118879A JP5511506B2 JP 5511506 B2 JP5511506 B2 JP 5511506B2 JP 2010118879 A JP2010118879 A JP 2010118879A JP 2010118879 A JP2010118879 A JP 2010118879A JP 5511506 B2 JP5511506 B2 JP 5511506B2
Authority
JP
Japan
Prior art keywords
monitoring program
monitoring
thread
program
computer
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
Application number
JP2010118879A
Other languages
English (en)
Other versions
JP2011248486A (ja
Inventor
実裕 古市
政美 多田
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010118879A priority Critical patent/JP5511506B2/ja
Priority to US13/115,498 priority patent/US8776070B2/en
Publication of JP2011248486A publication Critical patent/JP2011248486A/ja
Priority to US13/412,795 priority patent/US9003415B2/en
Application granted granted Critical
Publication of JP5511506B2 publication Critical patent/JP5511506B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

本発明は、所定のリソースを監視する監視プログラムを強制的に終了させることによりコンピュータに対して外部から何らかの攻撃が仕掛けられることを未然に回避することができる、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラムに関する。
インターネット技術の急速な発展に伴い、ネットワークを介して接続されているコンピュータに対する外部からの攻撃の種類も多種多様になってきている。最近では、ネットワークを介した外部からの攻撃に対抗するべく、監視プログラムを常時稼働させておき、外部からの許可されていないアクセスを検知した場合には、検知したアクセスを遮断する等の対応策を施すことで外部からの攻撃を防いでいる。
監視プログラムによるUSBメモリへのファイル複製の監視、印刷ジョブの監視等は、常駐型のプロセスにより行われることが多い。したがって、常駐型のプロセス自体を外部から強制終了された場合、監視機能自体が無効になるという問題点があった。
例えば特許文献1では、監視対象プロセスを専用プロセスが監視し、異常終了時に再起動する方法が開示されている。特許文献2では、複数のホスト間でプログラムを相互監視することで、強制終了されたプロセスが保持するリソースを解放する方法が開示されている。特許文献3では、プロセスを強制終了させた場合に、例外処理を確実に実行させる方法が開示されている。しかし、いずれの方法であっても、プロセスを監視するプロセス自体に対する外部からの強制終了攻撃を防ぐことはできない。
そこで、常駐型のプロセス自体が外部から強制終了されないよう、例えば監視プロセスをシステム権限で稼働するサービスプロセスとして、一般ユーザによる強制終了ができないようにすることで、外部からの強制終了攻撃を回避している。
特開平10−214208号公報 特開2004−246439号公報 特開2006−092057号公報 特開2000−215065号公報
しかし、監視プロセスをシステム権限で稼働するサービスプロセスとした場合であっても、いわゆる「なりすまし」によりシステム権限を有するユーザとして強制終了攻撃が仕掛けられた場合には、容易に監視プロセスが強制終了され、記憶内容の書き換え等がなされるおそれがある。
また、例えば特許文献4に開示してあるように、オペレーションシステムから隠されているハイバネーション用パーティションを利用して監視プロセスを保護することも考えられる。しかし、ハイバネーション用パーティションの存在が必須であり、あらゆるオペレーションシステムに適用することができる汎用性が欠如する。
本発明は斯かる事情に鑑みてなされたものであり、所定のリソースを監視する監視プログラムを強制的に終了させることによりコンピュータに対して外部から何らかの攻撃が仕掛けられることを未然に回避することができる、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係る装置は、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置であって、前記監視プログラムを含む所定のプロセスを実行することが可能としてあり、該所定のプロセスは、終了した場合に前記監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスであり、前記所定のプロセスの実行に応じて、前記監視プログラムを起動する監視プログラム起動手段を備え、該監視プログラム起動手段は、前記所定のプロセスの実行に応じて、新たなスレッドを生成し、生成したスレッド内で監視プログラムを実行するとともに、生成した新たなスレッドを識別する情報を、稼働しているスレッドを識別する情報を抽出するスレッド抽出プログラムの戻り値から削除するスレッド削除手段をさらに有し、前記監視プログラムが外部から強制終了させられた場合、前記所定のプロセスを終了するようにしてある。
また、第2発明に係る装置は、第1発明において、前記監視プログラムは、ダイナミックリンクライブラリとして実装され、該ダイナミックリンクライブラリを前記所定のプロセスに注入するようにしてある。
また、第発明に係る装置は、第1又は第2発明において、前記所定のリソースは、前記監視プログラムを実行するコンピュータ本体であり、前記所定のプロセスは、前記コンピュータ本体へのログオン及びログオフを制御するプロセスである。
また、第発明に係る装置は、第1乃至第発明のいずれか1つにおいて、前記所定のリソースは、他のリソースを監視する他の監視プログラムであり、前記監視プログラムは、前記他の監視プログラムの強制終了を検知する及び/又は前記他の監視プログラムを再起動する。
次に、上記目的を達成するために第発明に係る方法は、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法であって、前記監視プログラムを含む所定のプロセスを、前記所定のプロセスが終了した場合に前記監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスとし、前記所定のプロセスの実行に応じて、新たなスレッドを生成し、生成したスレッド内で監視プログラムを実行し、生成した新たなスレッドを識別する情報を、稼働しているスレッドを識別する情報を抽出するスレッド抽出プログラムの戻り値から削除し、前記監視プログラムが外部から強制終了させられた場合、前記所定のプロセスを終了する。
また、第発明に係る方法は、第発明において、前記監視プログラムは、ダイナミックリンクライブラリとして実装され、該ダイナミックリンクライブラリを前記所定のプロセスに注入する。
また、第発明に係る方法は、第5又は第6発明において、前記所定のリソースは、前記監視プログラムを実行するコンピュータ本体であり、前記所定のプロセスは、前記コンピュータ本体へのログオン及びログオフを制御するプロセスである。
また、第発明に係る方法は、第5乃至第7発明のいずれか1つにおいて、前記所定のリソースは、他のリソースを監視する他の監視プログラムであり、前記監視プログラムは、前記他の監視プログラムの強制終了を検知する及び/又は前記他の監視プログラムを再起動する。
次に、上記目的を達成するために第発明に係るコンピュータプログラムは、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法をコンピュータで実行することが可能なコンピュータプログラムであって、前記コンピュータは、前記監視プログラムを含む所定のプロセスを実行することが可能としてあり、前記所定のプロセスは、終了した場合に前記監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスであり、前記コンピュータを、前記所定のプロセスの実行に応じて、前記監視プログラムを起動する監視プログラム起動手段、及び前記監視プログラムが外部から強制終了させられた場合、前記所定のプロセスを終了する手段として機能させ、前記監視プログラム起動手段を、前記所定のプロセスの実行に応じて、新たなスレッドを生成する手段、及び生成したスレッド内で監視プログラムを実行する手段として機能させ、前記コンピュータを、生成した新たなスレッドを識別する情報を、稼働しているスレッドを識別する情報を抽出するスレッド抽出プログラムの戻り値から削除するスレッド削除手段として機能させる。
本発明によれば、所定のリソースを監視する監視プログラムが強制終了させられた場合であっても、コンピュータ自体が動作することができなくなるので外部からコンピュータに対して改ざん、なりすまし等の攻撃を仕掛けることができない。また、監視プログラムが稼働中であってもプロセスリストに表示されることがないので、外部の第三者からの強制終了攻撃を受ける可能性を低減することもできる。
本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータを、CPUを用いて構成した例を示すブロック図である。 本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータの機能ブロック図である。 本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータの監視プログラムのプロセス注入を説明するための模式図である。 本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータのCPUの処理手順を示すフローチャートである。 本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータの派生スレッド隠蔽の手順を説明するためのモジュール構成図である。 本発明の実施の形態2に係る強制終了抑制装置を内蔵するコンピュータで稼働するプログラムの関係を示す模式図である。 本発明の実施の形態3に係る強制終了抑制装置を内蔵するコンピュータの機能ブロック図である。 本発明の実施の形態3に係る強制終了抑制装置を内蔵するコンピュータのCPUの注入プロセス特定処理の手順を示すフローチャートである。
以下、本発明の実施の形態に係る、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した、強制終了抑制装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、DVD、CD、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
本発明の実施の形態によれば、所定のリソースを監視する監視プログラムが強制的に終了させられた場合であっても、コンピュータ自体が動作することができなくなるので外部からコンピュータに対して改ざん、なりすまし等の攻撃を仕掛けることができない。また、監視プログラムが稼働中であってもプロセスリストに表示されることがないので、第三者による強制終了攻撃を受ける可能性を低減することも可能となる。
(実施の形態1)
図1は、本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータを、CPUを用いて構成した例を示すブロック図である。本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1は、複数の外部コンピュータ3、3、・・・と、ネットワーク2を介してデータ通信することが可能に接続されている。
コンピュータ1は、少なくともCPU(中央演算装置)11、メモリ12、記憶装置13、I/Oインタフェース14、ビデオインタフェース15、可搬型ディスクドライブ16、通信インタフェース17及び上述したハードウェアを接続する内部バス18で構成されている。
CPU11は、内部バス18を介してコンピュータ1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶しているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶しているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ16によりダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、通信インタフェース17を介してネットワーク2に接続されている外部コンピュータ3、3、・・・からダウンロードされたコンピュータプログラムであっても良い。
通信インタフェース17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワーク2に接続されることにより、外部コンピュータ3、3、・・・等とデータ送受信を行うことが可能となっている。
I/Oインタフェース14は、キーボード21、マウス22等のデータ入力媒体と接続され、データの入力を受け付ける。また、ビデオインタフェース15は、CRTモニタ、LCD等の表示装置23と接続され、所定の画像を表示する。
以下、上述した構成のコンピュータ1にて外部コンピュータ3からの監視プログラムの強制終了攻撃に対する動作について説明する。図2は、本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1の機能ブロック図である。
なお、コンピュータ1は、オペレーティングシステムとしてマイクロソフト社製のウインドウズ(登録商標)を使用しており、監視プログラムをDLL(ダイナミック・リンク・ライブラリ)として実装することを前提に説明する。もちろん、オペレーティングシステムとしてマイクロソフト社製のウインドウズ(登録商標)に限定されるものではなく、リナックス等の他のオペレーティングシステムを用いても良いことは言うまでもない。
図2において、所定のプロセスの実行に応じて、監視プログラムを起動する監視プログラム起動部(監視プログラム起動手段)201は、監視プログラム注入部202、注入プロセス起動部203、スレッド生成部204、及びスレッド隠蔽部205を備えている。
監視プログラム注入部202は、DLLとして実装されている監視プログラムを、終了した場合に監視プログラムの監視対象となるリソースを使用することができなくなるプロセスへ注入する。終了した場合に監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスとは、例えばコンピュータ本体を監視している監視プログラムに対するログオン及びログオフを制御するログオンプロセス、ネットワークを監視している監視プログラムに対するネットワークプロセス、ウエブを監視している監視プログラムに対するブラウザプロセス等を意味する。
本実施の形態1では、オペレーティングシステムが有しているレジストリ(AppInit_DLLs)を使用する。これにより、オペレーティングシステムが起動され、DLLとして実装されている監視プログラムがロードされる。
監視プログラムを所定のプロセスに「注入する」手段は、特にレジストリに限定されるものではなく、ウインドウズ(登録商標)に固有の機能であるログイン画面の表示と同時に監視プログラムをロードするDLL「GINA(msgina.dll)」を用いても良いし、メッセージフックを用いても良い。
注入プロセス起動部203は、監視プログラムが注入されたプロセスを起動し、注入された監視プログラムをロードする。監視プログラムをロードする方法は特に限定されるものではないが、本実施の形態1では、新たなスレッドを生成して、生成した新たなスレッド(以下、派生スレッド)内で監視プログラムを稼働させる。もちろん、オペレーションシステムから自動的に監視プログラムをロードしても良い。
スレッド生成部204は、新たな派生スレッドを生成して、生成した新たな派生スレッド内で監視プログラムを稼働させる。すなわち、派生スレッドと派生スレッドを生成したプロセスとは一体であり、派生スレッドに対して外部から強制終了攻撃が仕掛けられ、派生スレッドが終了させられた場合には、基礎となるプロセス自体も終了する。したがって、監視プログラムを含む新たな派生スレッドを生成したプロセスが、監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスである限り、派生スレッドの終了により所定のリソースを使用することができなくなる。
例えば新たな派生スレッドを生成したプロセス、すなわち監視プログラムを注入したプロセスがログオンプロセス(winlogon.exe)である場合、派生スレッドを強制終了させるよう外部から攻撃を受け、派生スレッドが強制終了させられた場合、ログオンプロセスも終了することから、コンピュータ1を再起動しない限りだれもコンピュータ1を使用することができなくなる。したがって、外部から監視プログラムに対して強制終了攻撃が仕掛けられた場合であっても、コンピュータ1内のリソースが改ざん、なりすまし等の攻撃が仕掛けられることを未然に回避することが可能となる。
なお、派生スレッドの優先度は、監視プログラムを注入した所定のプロセスが生成している主スレッドよりも低いことが望ましい。例えば監視プログラムを注入したプロセスがログオンプロセス(winlogon.exe)である場合、新たに生成した派生スレッドの優先度をログオン制御する主スレッドの優先度よりも低くしておく。これにより、監視プログラムによって、ログオンプロセスの動作が妨げられる可能性を低減することができる。
図3は、本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1の監視プログラムのプロセス注入を説明するための模式図である。コンピュータ1は、監視プログラム301を、終了した場合に監視プログラム301の監視対象となる所定のリソースを使用することができなくなるプロセス302へ注入する。プロセス302は、起動時に主スレッド304、複数の副スレッド305、305、・・・に加えて、注入された監視プログラム301を含む新たな派生スレッド303を生成する。
図4は、本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1のCPU11の処理手順を示すフローチャートである。コンピュータ1のCPU11は、DLLとして実装されている監視プログラムを、終了した場合に監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスへ注入する(ステップS401)。監視プログラムを注入するタイミングは特に限定されるものではない。しかし、オペレーションシステムの起動時に注入することが好ましい。外部からの強制終了攻撃に対して無力になるタイミングを生み出さないからである。
CPU11は、監視プログラムが注入されたプロセスを起動する(ステップS402)。該プロセスが起動され、注入された監視プログラムがメモリ12の実行領域へロードされる。
CPU11は、新たな派生スレッドを生成して(ステップS403)、生成した新たな派生スレッド内にてロードした監視プログラムを起動する。派生スレッドの優先度は、監視プログラムを注入した所定のプロセスが生成している主スレッドよりも低いことが望ましい。所定のプロセスの動作が妨げられる可能性を低減するためである。
また、派生スレッドの存在を、外部へ見せないようにすることが望ましい。図2のスレッド隠蔽部(スレッド削除手段)205は、生成した新たな派生スレッドを識別する情報、例えばスレッドIDを、オペレーティングシステム上で稼働しているスレッドを識別する情報を抽出するスレッド抽出関数の戻り値から削除する。具体的には、ウインドウズ(登録商標)が有しているスレッド列挙APIであるEnumThreads、ToolHelp32等をAPIフックすることにより、プロセス内に存在するスレッドを列挙する場合に、戻り値から削除する。
図5は、本発明の実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1の派生スレッド隠蔽の手順を説明するためのモジュール構成図である。図5に示すように、まずアプリケーション501がAPIである“ToolHelp32 API”502を呼び出す。“ToolHelp32 API”502内のフックポイント503が、アプリケーション501からの呼び出しを検出し、オペレーティングシステム504内の対応するAPIを呼び出す。
オペレーティングシステム504内の対応するAPIはアプリケーション501へ、戻り値として存在するスレッドを識別する情報であるスレッドIDを返そうとするので、まず“ToolHelp32 API”502にてアプリケーション501への戻り値を受け取り、受け取った戻り値から新たな派生スレッドを識別する情報であるスレッドIDを削除し、削除した戻り値をアプリケーション501へ受け渡す。このようにすることで、アプリケーション501では、実際には派生スレッドがオペレーティングシステム504上で稼働しているにもかかわらず、“ToolHelp32 API”502の戻り値から削除されているので、列挙されるスレッドIDには新たな派生スレッドに対応するスレッドIDは含まれない。したがって、派生スレッドの存在を隠蔽することが可能となる。
以上のように本実施の形態1によれば、監視プログラムをログオンプロセスのような正常に稼働していなければコンピュータ1自体を使用することができないプロセスに含まれるようにすることで、監視プログラムに対する外部からの強制終了攻撃を抑制することができる。すなわち、たとえ強制終了させられた場合であっても、外部の第三者は、コンピュータ1内のリソースの改ざん、なりすまし等の攻撃を仕掛けることができない。
また、監視プログラムを含む派生スレッドを含むプロセスが稼働中であっても、派生スレッドを含むプロセスを、稼働中のプロセスを列挙したプロセスリストに表示されないようにすることができる。したがって、外部の第三者から派生スレッドを含むプロセスに対して直接的な強制終了攻撃が仕掛けられることを未然に回避することも可能となる。
(実施の形態2)
実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1では、監視プログラムをログオンプロセスへ注入しているが、本実施の形態2では所定のリソースを監視する監視プログラムが監視対象である点で実施の形態1と相違する。なお、実施の形態2に係る強制終了抑制装置を内蔵するコンピュータ1の構成例及び機能ブロックは、実施の形態1に係る強制終了抑制装置を内蔵するコンピュータ1の構成例及び機能ブロックと同じであるため、同一の符号を付することにより詳細な説明は省略する。
図6は、本発明の実施の形態2に係る強制終了抑制装置を内蔵するコンピュータ1で稼働するプログラムの関係を示す模式図である。図6に示すように、終了した場合に監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスへ注入された監視プログラム601は、該プロセスが起動された場合に生成される派生スレッド602とともに稼働する。
監視プログラム601の監視対象は、他のプロセス603a、603b、・・・で稼働している他の監視プログラム604a、604b、・・・であり、監視プログラム601は、他の監視プログラム604a、604b、・・・が強制終了したか否かを検知するとともに、強制終了した旨を検知した場合には再起動する。
監視プログラム601の監視対象である他の監視プログラム604a、604b、・・・は、それぞれリソース605a、605b、・・・を監視しており、外部から強制終了攻撃を受けた場合にはリソースを監視することができず、外部から改ざん、なりすまし等の攻撃が仕掛けられた場合であっても検知することができない。しかし、監視プログラム601が、他の監視プログラム604a、604b、・・・が外部からの強制終了攻撃を受けて強制終了した旨を検知することができるので、即座に強制終了した他の監視プログラム604a、604b、・・・を再起動することができ、外部からの改ざん、なりすまし等の攻撃から保護することができる。
以上のように本実施の形態2によれば、複数の監視プログラム、例えばファイルアクセスの監視プログラム、印刷状況の監視プログラム等を一の監視プログラムで監視することができ、いずれかの監視プログラムが外部からの強制終了攻撃を受けて強制終了した場合であっても、即座に再起動することができる。
(実施の形態3)
実施の形態1及び2に係る強制終了抑制装置を内蔵するコンピュータ1では、監視プログラムを注入するプロセスをユーザが選択しているが、本実施の形態3では注入するプロセスをコンピュータ1が自動的に選択する点で実施の形態1及び2と相違する。なお、実施の形態3に係る強制終了抑制装置を内蔵するコンピュータ1の構成例は、実施の形態1及び2に係る強制終了抑制装置を内蔵するコンピュータ1の構成例と同じであるため、同一の符号を付することにより詳細な説明は省略する。
図7は、本発明の実施の形態3に係る強制終了抑制装置を内蔵するコンピュータ1の機能ブロック図である。所有プロセス特定部701は、監視対象となる所定のリソースを所有するプロセスを特定する。例えばセッションを所有するプロセス、デスクトップを所有するプロセス等を意味する。
より具体的には、オペレーティングシステムがウインドウズ(登録商標)である場合に、監視プログラムがドライブの監視、クリップボードの監視等を行うときには、セッションを所有するプロセスであるwinlogin.exeが監視プログラムを注入するプロセスとなる。また、監視プログラムがシェルの操作の監視を行うときには、デスクトップを所有するExplorer.exeが監視プログラムを注入するプロセスとなる。
一方、監視対象となる所定のリソースを所有するプロセスを特定することができない場合、プロセス絞込部702は、監視プログラムを注入するプロセスを絞り込む。監視プログラムを注入するプロセスとしては、同一セッション内の複数のプロセスのうち、最も早期に起動しており、しかも最後まで稼働しているプロセスであることが好ましい。監視プログラムが稼働する時間が最も長くなり、最もセキュリティが高くなるからである。
また、一のプロセスに絞り込むことができない場合、監視プログラムを注入する候補となる、複数の注入候補プロセスにまで絞り込み、絞り込まれた複数の注入候補プロセスの共通の親プロセス又は上位プロセスに注入しても良い。さらに、一のプロセスにのみ監視プログラムを注入するのではなく、複数又は全てのプロセスに対して監視プログラムを注入し、少なくともいずれか一のプロセスが稼働する、すなわち必ず少なくとも一の監視プログラムが稼働するようにしても良い。
監視プログラム注入部202は、所有プロセス特定部701で特定されたプロセス、又はプロセス絞込部702で絞り込まれて特定されたプロセスに、それぞれ監視プログラムを注入する。
図8は、本発明の実施の形態3に係る強制終了抑制装置を内蔵するコンピュータ1のCPU11の注入プロセス特定処理の手順を示すフローチャートである。図8において、コンピュータ1のCPU11は、監視対象となる所定のリソースを所有する所有プロセスを特定することができるか否かを判断する(ステップS801)。
CPU11が、所有プロセスを特定することができると判断した場合(ステップS801:YES)、CPU11は、所有プロセスを特定し、特定した所有プロセスに監視プログラムを注入する(ステップS802)。CPU11が、所有プロセスを特定することができないと判断した場合(ステップS801:NO)、CPU11は、同一セッション内で最も早期に起動するプロセスを特定する(ステップS803)。
CPU11は、特定したプロセスに監視プログラムを注入し(ステップS804)、注入したプロセスを起動する(ステップS805)。CPU11は、ログオフ処理中であるか否かを判断し(ステップS806)、CPU11が、ログオフ処理中でないと判断した場合(ステップS806:NO)、CPU11は、次に起動するプロセスが存在するか否かを判断する(ステップS807)。CPU11が、次に起動するプロセスが存在しない、すなわち全てのプロセスが起動されていると判断した場合(ステップS807:NO)、CPU11は、処理をステップS806へ戻して、ログオフ処理の待ち状態となる。
CPU11が、次に起動するプロセスが存在すると判断した場合(ステップS807:YES)、CPU11は、次に早く起動するプロセスを特定し(ステップS808)、処理をステップS804へ戻し、上述した処理を繰り返す。これにより、複数のプロセスにて監視プログラムを稼働させることができ、それぞれのプロセスの稼働時間を取得することができる。
CPU11が、ログオフ処理中であると判断した場合(ステップS806:YES)、CPU11は、同一セッション内で最も稼働時間の長いプロセスを、次回、監視プログラムを注入する注入先のプロセスとして特定する(ステップS809)。これにより、同一セッション内の複数のプロセスのうち、最も早期に起動しており、しかも最後まで稼働しているプロセスを、次回、監視プログラムを注入する注入先のプロセスとして特定することができる。
以上のように本実施の形態3によれば、監視プログラムを注入するプロセスを自動的に特定することができ、監視プログラムをログオンプロセスのような正常に稼働していなければコンピュータ1自体を使用することができない、最も効果的なプロセスに含まれるようにすることで、監視プログラムに対する外部からの強制終了攻撃を抑制することができる。
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば、監視プログラムのプロセスへの注入方法は、コンピュータ1に導入されているオペレーティングシステムに応じて最も効果的な方法へ変更することができる。
1 コンピュータ
2 ネットワーク
3 外部コンピュータ
11 CPU
12 メモリ
13 記憶装置
14 I/Oインタフェース
15 ビデオインタフェース
16 可搬型ディスクドライブ
17 通信インタフェース
18 内部バス
23 表示装置
90 可搬型記録媒体
100 コンピュータプログラム

Claims (9)

  1. 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置であって、
    前記監視プログラムを含む所定のプロセスを実行することが可能としてあり、
    該所定のプロセスは、終了した場合に前記監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスであり、
    前記所定のプロセスの実行に応じて、前記監視プログラムを起動する監視プログラム起動手段を備え、
    該監視プログラム起動手段は、前記所定のプロセスの実行に応じて、新たなスレッドを生成し、
    生成したスレッド内で監視プログラムを実行するとともに、
    生成した新たなスレッドを識別する情報を、稼働しているスレッドを識別する情報を抽出するスレッド抽出プログラムの戻り値から削除するスレッド削除手段をさらに有し、
    前記監視プログラムが外部から強制終了させられた場合、前記所定のプロセスを終了するようにしてある装置。
  2. 前記監視プログラムは、ダイナミックリンクライブラリとして実装され、
    該ダイナミックリンクライブラリを前記所定のプロセスに注入するようにしてある請求項1記載の装置。
  3. 前記所定のリソースは、前記監視プログラムを実行するコンピュータ本体であり、
    前記所定のプロセスは、前記コンピュータ本体へのログオン及びログオフを制御するプロセスである請求項1又は2記載の装置。
  4. 前記所定のリソースは、他のリソースを監視する他の監視プログラムであり、
    前記監視プログラムは、前記他の監視プログラムの強制終了を検知する及び/又は前記他の監視プログラムを再起動する請求項1乃至3のいずれか一項に記載の装置。
  5. 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法であって、
    前記監視プログラムを含む所定のプロセスを、該所定のプロセスが終了した場合に前記監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスとし、
    前記所定のプロセスの実行に応じて、新たなスレッドを生成し、
    生成したスレッド内で監視プログラムを実行し、
    生成した新たなスレッドを識別する情報を、稼働しているスレッドを識別する情報を抽出するスレッド抽出プログラムの戻り値から削除し、
    前記監視プログラムが外部から強制終了させられた場合、前記所定のプロセスを終了する方法
  6. 前記監視プログラムは、ダイナミックリンクライブラリとして実装され、
    該ダイナミックリンクライブラリを前記所定のプロセスに注入する請求項記載の方法
  7. 前記所定のリソースは、前記監視プログラムを実行するコンピュータ本体であり、
    前記所定のプロセスは、前記コンピュータ本体へのログオン及びログオフを制御するプロセスである請求項5又は6に記載の方法。
  8. 前記所定のリソースは、他のリソースを監視する他の監視プログラムであり、
    前記監視プログラムは、前記他の監視プログラムの強制終了を検知する及び/又は前記他の監視プログラムを再起動する請求項5乃至7のいずれか一項に記載の方法。
  9. 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法をコンピュータで実行することが可能なコンピュータプログラムであって、
    前記コンピュータは、前記監視プログラムを含む所定のプロセスを実行することが可能としてあり、
    前記所定のプロセスは、終了した場合に前記監視プログラムの監視対象となる所定のリソースを使用することができなくなるプロセスであり、
    前記コンピュータを、
    前記所定のプロセスの実行に応じて、前記監視プログラムを起動する監視プログラム起動手段、及び
    前記監視プログラムが外部から強制終了させられた場合、前記所定のプロセスを終了する手段として機能させ、
    前記監視プログラム起動手段を、
    前記所定のプロセスの実行に応じて、新たなスレッドを生成する手段、及び
    生成したスレッド内で監視プログラムを実行する手段として機能させ、
    前記コンピュータを、生成した新たなスレッドを識別する情報を、稼働しているスレッドを識別する情報を抽出するスレッド抽出プログラムの戻り値から削除するスレッド削除手段として機能させるコンピュータプログラム
JP2010118879A 2010-05-25 2010-05-25 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム Expired - Fee Related JP5511506B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010118879A JP5511506B2 (ja) 2010-05-25 2010-05-25 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム
US13/115,498 US8776070B2 (en) 2010-05-25 2011-05-25 Method and apparatus having resistance to forced termination attack on monitoring program for monitoring a predetermined resource
US13/412,795 US9003415B2 (en) 2010-05-25 2012-03-06 Method and apparatus having resistance to forced termination attack on monitoring program for monitoring a predetermined resource

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010118879A JP5511506B2 (ja) 2010-05-25 2010-05-25 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2011248486A JP2011248486A (ja) 2011-12-08
JP5511506B2 true JP5511506B2 (ja) 2014-06-04

Family

ID=45413692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010118879A Expired - Fee Related JP5511506B2 (ja) 2010-05-25 2010-05-25 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム

Country Status (2)

Country Link
US (1) US8776070B2 (ja)
JP (1) JP5511506B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003415B2 (en) * 2010-05-25 2015-04-07 International Business Machines Corporation Method and apparatus having resistance to forced termination attack on monitoring program for monitoring a predetermined resource
US8984331B2 (en) * 2012-09-06 2015-03-17 Triumfant, Inc. Systems and methods for automated memory and thread execution anomaly detection in a computer network
JP5986974B2 (ja) * 2013-10-18 2016-09-06 日本電信電話株式会社 プロセス監視システム、プロセス監視方法
CN104809400A (zh) * 2015-04-28 2015-07-29 联动优势科技有限公司 一种进程保护的方法及装置
CN105117239A (zh) * 2015-07-24 2015-12-02 上海修源网络科技有限公司 一种操作系统重启方法及装置
CN106874077B (zh) * 2015-12-11 2020-04-21 腾讯科技(深圳)有限公司 进程运行方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0259937A (ja) * 1988-08-26 1990-02-28 Hitachi Maxell Ltd Icカード
JPH10214208A (ja) 1997-01-31 1998-08-11 Meidensha Corp ソフトウェアの異常監視方式
US6178529B1 (en) * 1997-11-03 2001-01-23 Microsoft Corporation Method and system for resource monitoring of disparate resources in a server cluster
US6385721B1 (en) 1999-01-22 2002-05-07 Hewlett-Packard Company Computer with bootable hibernation partition
US7243267B2 (en) * 2002-03-01 2007-07-10 Avaya Technology Llc Automatic failure detection and recovery of applications
US7484207B2 (en) * 2002-12-11 2009-01-27 O'z Co., Ltd. Software execution control system and software execution control program
JP2004246439A (ja) 2003-02-12 2004-09-02 Nec Corp クラスタシステムにおけるストール防止方式,方法およびプログラム
KR100483700B1 (ko) * 2003-12-03 2005-04-19 주식회사 잉카인터넷 온라인 게임 클라이언트 보안을 위한 실시간 프로세스 불법 접근 및 조작 차단 방법
JP2006092057A (ja) 2004-09-22 2006-04-06 Hitachi Ltd プロセスの強制終了処理方法
JP2007265121A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd 強制終了条件監視装置、強制終了条件監視方法および強制終了条件監視プログラム
JP4048382B1 (ja) * 2006-09-01 2008-02-20 富士ゼロックス株式会社 情報処理システムおよびプログラム

Also Published As

Publication number Publication date
US8776070B2 (en) 2014-07-08
JP2011248486A (ja) 2011-12-08
US20110296426A1 (en) 2011-12-01

Similar Documents

Publication Publication Date Title
JP5511506B2 (ja) 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム
US8677491B2 (en) Malware detection
US10032024B2 (en) System and method for virtual partition monitoring
US8621628B2 (en) Protecting user mode processes from improper tampering or termination
US8650578B1 (en) System and method for intercepting process creation events
US8239947B1 (en) Method using kernel mode assistance for the detection and removal of threats which are actively preventing detection and removal from a running system
JP6706273B2 (ja) インタープリタ仮想マシンを用いた挙動マルウェア検出
US9990490B2 (en) Generic privilege escalation prevention
EP2902937B1 (en) Method, apparatus, and system for triggering virtual machine introspection
US8495741B1 (en) Remediating malware infections through obfuscation
JP2009543186A (ja) ブート環境におけるマルウェアの識別
JP5026494B2 (ja) 高速で起動するコンピュータ
US20100186093A1 (en) Portable mass storage device with hooking process
US7562391B1 (en) Reducing false positive indications of buffer overflow attacks
US20120096550A1 (en) Providing security for a virtual machine by selectively triggering a host security scan
EP3079057B1 (en) Method and device for realizing virtual machine introspection
KR101011145B1 (ko) 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체
US20070261117A1 (en) Method and system for detecting a compressed pestware executable object
US20200394297A1 (en) Securely and efficiently providing user notifications about security actions
US11461465B1 (en) Protection of kernel extension in a computer
US9003415B2 (en) Method and apparatus having resistance to forced termination attack on monitoring program for monitoring a predetermined resource
JP2008176352A (ja) コンピュータプログラム、コンピュータ装置、及び動作制御方法
US8572742B1 (en) Detecting and repairing master boot record infections
JP5955475B1 (ja) プログラム、情報処理装置、及び情報処理方法
KR20110057297A (ko) 악성 봇 동적 분석 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140217

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140325

R150 Certificate of patent or registration of utility model

Ref document number: 5511506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees