JP6370098B2 - 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 - Google Patents

情報処理装置、情報処理監視方法、プログラム、及び記録媒体 Download PDF

Info

Publication number
JP6370098B2
JP6370098B2 JP2014102114A JP2014102114A JP6370098B2 JP 6370098 B2 JP6370098 B2 JP 6370098B2 JP 2014102114 A JP2014102114 A JP 2014102114A JP 2014102114 A JP2014102114 A JP 2014102114A JP 6370098 B2 JP6370098 B2 JP 6370098B2
Authority
JP
Japan
Prior art keywords
monitoring
hook condition
system call
kernel
call instruction
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.)
Active
Application number
JP2014102114A
Other languages
English (en)
Other versions
JP2015219682A (ja
Inventor
杉中順子
Original Assignee
杉中 順子
杉中 順子
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 杉中 順子, 杉中 順子 filed Critical 杉中 順子
Priority to JP2014102114A priority Critical patent/JP6370098B2/ja
Priority to PCT/JP2015/063975 priority patent/WO2015174512A1/ja
Priority to EP15792925.8A priority patent/EP3144813A4/en
Priority to SG11201609072QA priority patent/SG11201609072QA/en
Priority to US15/306,823 priority patent/US10380336B2/en
Publication of JP2015219682A publication Critical patent/JP2015219682A/ja
Application granted granted Critical
Publication of JP6370098B2 publication Critical patent/JP6370098B2/ja
Active 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

本発明は、プロセッサが実行する情報処理動作を監視する技術に関する。
昨今、不正かつ有害な動作を行う意図で作成された悪意のあるプログラム(以下、不正プログラム)によるファイルの書き換えやシステムの設定変更等によってコンピュータのセキュリティーが大きく損なわれている。不正プログラムの挙動は、外部からコンピュータ内のメモリに侵入した後、アプリケーションプログラム(AP)の実行に伴うユーザモードからカーネル空間のリソースへのアクセスに便乗して特権レベル(リング0)を取得し、以後、リソースの制御を支配することで、意図した不正行為を実行可能にする。今日、不正プログラムの実行を監視し、不正動作を規制する各種の対応ソフトウェアが提案されている。
特許文献1には、APIの利用制限を図るべく、アプリケーションの起動を検出するステップと、起動されたアプリケーションから発行されたリソースに対する処理要求を一時保留するステップと、起動されたアプリケーションが正規のアプリケーションであるか否かを認証するステップと、起動されたアプリケーションの認証結果が成功の場合にのみ、前記一時保留した処理要求による処理を許可するステップとを備えて、リソースの情報漏洩防止を図るアプリケーションの監視方法が記載されている。
特許文献2には、コンピュータ上で実行されるアプリケーションがハードディスクHDD等の記憶装置に記憶された情報にアクセスする時点で、オペレーティングシステム(OS)のフック機能を利用してこのアプリケーションをフックし、予め設定されたアクセス許容条件を満たすかどうかを判定部によって判定し、ウイルス等の不正なアクセスと判定された場合には前記記憶装置に記憶された情報のアプリケーションへの受け渡しを禁止するコンピュータの情報漏洩防止システムが記載されている。
特許文献3には、予め専用ローダ及び管理ファイルを格納した外部デバイスを装着してコンピュータの電源を投入することで、外部デバイスから主メモリ(RAM)ロードされる専用ローダを用いて管理ファイルが、更にHDDからOSがロードされる領域をそれぞれ制御し、かつ領域間で特権レベルに差を設けることでRAMの所定領域に管理ファイルによるセキュア領域を確保し得る外部ブート技術が記載されている。
特開2003−108253号公報 特開2007−140798号公報 特開2013−101550号公報
特許文献1に記載された、リソースの情報漏洩防止を図るためのアプリケーション監視方法では、フックを行うフィルタモジュール及び認証モジュールがアプリケーションと同一プロセス空間に設けられた構成であるため、これらモジュールによるフック動作及び認証動作の両信頼性に大きな問題がある。また、フックされたアプリケーションと予め登録されているアプリケーションとのハッシュ値同士を照合によって認証し、この認証が不成功の場合、当該アプリケーションを強制終了又は管理者に通知するようにしているため、コンピュータの動作が停止してしまう場合があるという問題がある。
特許文献2に記載された情報漏洩防止システムは、ファイルシステムの入出力に関する機能を対象とするもので、アクセス許容条件として、コンピュータのユーザインタフェースを介して入力される、ファイルデータの書き込みなどの操作を表すIOタイプ、アプリケーション名、データ・ファイル名、実行プログラムの実行制約条件(日時、範囲等)などの所定のチェック項目を活用し、これによってユーザの設定によりファイルシステム自身にウイルスに対する監視機能と判断機能を保持させるものである。従って、ファイルデータの読み出しと関連せず、ユーザ空間からカーネル空間のリソースへアクセスするプロセス全般に対して適切な監視を行うには限界がある。
また、特許文献3に記載された発明は、外部デバイスを必須とし、OSからの不当なアクセスを無効化して、起動時に構築した主メモリ内のセキュア領域を立ち上げ後も維持するようにした技術であり、リソースに対する処理要求のためのカーネルへのアクセス命令に対する監視を行うものではない。
本発明は、上記に鑑みてなされたもので、リソースに対する処理要求のためのOSのカーネルへの命令を監視することのできる情報処理装置、情報処理監視方法、プログラム、及び記録媒体を提供することにある。
本発明に係る情報処理装置は、プロセッサに対して発行される命令のうち、少なくとも処理をOSのカーネルに引き渡すための命令に対する監視を行う監視手段と、前記監視手段として機能する監視ソフトウェアを、前記OSのカーネルに設定される特権レベルより高い特権レベルで主メモリの所定領域にロードするロード手段とを含むものである。また、本発明は、情報処理監視方法、プログラム、及び記録媒体に適用される。
本発明によれば、監視ソフトウェアがOSのカーネルに設定される特権レベル(リング)よりも高い特権レベルに設定されるため、プロセッサに対して発行される命令のうち、少なくとも処理をOSのカーネルに引き渡すための命令の発行を常にフック可能な監視状況が確保し得る。従って、かかる命令に不当なプログラムが含まれ、その不正なプログラムの実行によってリソースがアクセスされる場合であっても、当該アクセスを検知して不正プログラムのカーネルへの侵入が阻止される。
また、前記監視手段は、前記プロセッサに対して発行される命令のうち、少なくとも処理を前記OSのカーネルに引き渡すための命令の発行を検出する検出手段と、検出された前記命令の正否を評価する評価手段と、評価結果に応じて前記命令を代理して実行する代理処理手段とを備えたことを特徴とする。この構成によれば、検出手段によって検知された命令は、評価手段によって正否が評価される。評価は、不正プログラムの可能性に関連する方法で行われる。そして、代理処理手段によって、評価結果に応じた命令が発行される。評価結果とは、評価が正当な場合と不当な場合とを想定しており、いずれの場合にも、代理処理手段によって新たに命令を発行するようにし、発行元からの元の命令は直接使用されない。従って、不正プログラムのカーネルを介してのリソースへの侵入、さらに潜伏が阻止される。
また、前記検出手段は、前記命令を無効オペコード違反として検出することを特徴とする。この構成によれば、問題となるアクセス命令が確実に検知可能となる。
また、前記命令は、シスコール命令であり、前記評価手段は、前記シスコール命令を構成するAPIに関する情報との照合に基づいて正否を評価することを特徴とする。この構成によれば、アプリケーションプログラムからリソースへのアクセスを可能にするシスコール(Syscall)命令に注目して検知し、シスコールを構成するAPI(Application Programming Interface)に関する情報、例えば属性、格納場所、出典等を参照情報等と照合することで正否評価するので、不正なプログラムか否かが適正に評価される。
また、前記代理処理手段は、前記評価手段が前記命令を正当と判断した場合、前記命令と同一の内容を前記カーネルへ移行し、前記評価手段が前記命令を不当と判断した場合、前記命令を終了する命令を前記カーネルへ戻すことを特徴とする。この構成によれば、アクセス命令が正当、不当いずれの場合であっても、代理処理手段によって新たに命令が発行されるので、不正プログラムの感染の危険が抑止される。
また、前記代理処理手段は、前記評価手段が前記命令を正当と判断した場合、前記命令と同一の内容を前記カーネルへ移行し、前記評価手段が前記命令を不当と判断した場合、前記命令をスキップする命令を前記カーネルに戻すことを特徴とする。この構成によれば、アクセス命令が正当、不当いずれの場合であっても、代理処理手段によって新たに命令が発行されるので、不正プログラムの感染の危険が抑止される。
また、前記監視手段に監視のためのフック条件を設定するフック条件設定手段を備え、前記監視手段は、前記フック条件設定手段で設定された前記フック条件に基づいて前記プロセッサに対して発行される命令のうち、少なくとも処理を前記OSのカーネルに引き渡すための命令の発行を検出することを特徴とする。この構成によれば、監視手段は、フック条件設定手段によって設定されたフック条件に従って前記前記OSのカーネルに引き渡すための命令の発行を検出する。
また、前記フック条件設定手段は、前記フック条件に対する書き換えアクセスを監視するフック条件監視手段と、前記フック条件に対する書き換えアクセスの発行の検出毎に、前記フック条件を書き直すフック条件更正手段とを備えたことを特徴とする。この構成によれば、フック条件監視手段によって前記フック条件に対する書き換えアクセスが監視され、前記フック条件に対する書き換えアクセスの発行の検出毎に、フック条件更正手段によって前記フック条件が正しく書き直される。
また、前記ロード手段は、前記監視手段として機能する監視ソフトウェアのロードを行う第1のロード手段と、前記第1のロード手段によってロードされた前記監視ソフトウェアに含まれ、前記OSのカーネルのロードを行う第2のロード手段とを含むものである。この構成によれば、監視ソフトウェアのロードを行う第1のロード手段によってロードされた前記監視ソフトウェアに含まれる第2のロード手段によって、前記OSのカーネルのロードが行われるので、前記OSのカーネルにより低い特権レベルが設定される。
また、前記第1のロード手段は、前記監視手段として機能する監視ソフトウェアを特権レベル0でロードし、前記第2のロード手段は、前記OSのカーネルを特権レベル1及び2のいずれか一方でロードするものである。この構成によれば、監視ソフトウェアは最高権限の特権レベルを有することで、特権レベル1か2の、カーネルモードで動作可能な前記OSのカーネル側の挙動を監視することが可能となる。
本発明によれば、不正なプログラムの実行によってリソースがアクセスされる場合であっても当該アクセスを検知して不正プログラムのカーネルへの侵入を阻止することができる。
本発明に係る情報処理装置の一実施形態を示す構成図である。 起動後における情報処理装置の主メモリのプログラムマップの一例を示す図である。 起動処理の一例を示すフローチャートである。 監視ソフトウェアの一例を示す機能構成図である。 MSR監視処理の一例を示すフローチャートである。 監視処理の手順を示す説明図である。 Syscall監視処理の一例を示すフローチャートである。 ログ処理の一例を示すフローチャートである。
図1は、本発明に係る情報処理装置の一実施形態を示す構成図である。本発明が適用される情報処理装置1としては、コンピュータを内蔵するサーバ装置、汎用パーソナルコンピュータ、携行用の情報処理端末等、更にはネットワークを介して通信する機能を備えた各種の情報処理装置を含む。
情報処理装置1は、マイクロコンピュタで構成され、プロセッサとしてのCPU(Central Processing Unit)11を含むチップセット10を備える。CPU10は、バスBAを介してフラッシュROM(Read Only Memory)21とハードディスクドライブ(HDD)22とを含む補助記憶装置20、主メモリとしてのRAM(Random Access Memory)30、入力部40、出力部50、及び必要に応じて設けられるログ記憶部60と接続されている。
フラッシュROM21は、BIOS(Basic Input/ Output System)を格納する。HDD22は、OS(Operation System)の他、各種アプリケーションプログラム及び必要なデータ類の情報を格納する。HDD22に格納されている情報は、図2に示すように、主に起動時にRAM30に読み出(ロード)される。詳細は図2において説明する。
RAM30は、主メモリとして機能し、情報処理装置1が起動する際に補助記憶装置20に格納されているプログラム等がロードされると共に、処理途中の情報が一時的に格納される。情報処理装置1は、補助記憶装置20に格納されているプログラム等がRAM30にロードされ、CPU11によって実行されることで、公知の各種の情報処理に加えて、本発明に係る図4に示すような処理実行部として機能する。
入力部40は、テンキー等を備えたキーボードやマウス、タッチパネル等を含み、所要の情報の入力や処理の指示を行うものである。出力部50は、画像を表示する表示部を想定している。なお、出力部50としては、プリンタ部やインターネット等のネットワークに接続して情報の授受を行う通信部等でもよく、更にこれらが併設されたものでもよい。ログ記憶部60は、後述するように、情報処理装置1の動作中において発生する、リソースに対する処理要求である特権命令によるアクセス(Syscall、Sysenter、コールゲート等)の履歴(プログラム)及び、かかる命令に関する処理内容のログを経時的に記録する。
図2は、起動後における情報処理装置1のRAM30のプログラムマップの一例を示す図で、CPU11を含むチップセット10と共に示している。
チップセット10は、プロセッサとしてのCPU11の他、現在のCPU11の状態を表すフラグレジスタやMSR(Model Specific Register)12、データ格納用の汎用レジスタ13の他、メモリのアドレス指定等に関係するインデックスレジスタや特殊レジスタ、メモリ管理方式に関係するセグメントレジスタ等を備えたレジスタ群を有する。MSR12中のレジスタ121は、Syscall命令の発行に対して無効オペコード例外を発生(フック)させる所定のレジスタである。このレジスタ121がDisable(=0)のフック条件に設定されている場合、Syscall命令の発行は無効オペコード違反としてフックされる。
図3は、起動処理の一例を示すフローチャートである。まず、図2に示すRAM30のプログラムマップを説明し、次いで、図3に示す起動処理のフローチャートについて説明する。
RAM30は、領域A,B,Cに区分け領域を有する。領域Aには特権レベルであるDPL(Description Privilege Level)に値0(いわゆるリング0)が設定されている。また、領域Bにはリング2が、領域Cにはリング3が設定されている。領域Aに対して、リング0を設定することによって、例えば監視ソフトウェア31を最も高い特権レベルでロード可能にしている他、この領域A内に設定される情報に対して全てリング0でのロードを実現している。DPL(リング)とは、公知のように、メモリ空間の特権レベルを記述するもので、DPL“0”からDPL“3”(リング0〜リング3)までの4ランクがある。DPL値が相対的に小さい程、特権のレベルが上位となる。例えば、DPL値の相対的に大きい値として記述された空間で動作するプログラムはDPL値がそれより小さい値で記述された空間側にアクセスすることはできない。すなわち、この場合は特権レベル違反として、後述する一般保護例外(#GP)が発行され、当該アクセスは無効とされる。一方、DPL値の相対的に小さい値として記述された空間で動作するプログラムはDPL値がそれより大きい値で記述された空間側にアクセスしたり閲覧したりすることができる。これによって、不適当なアクセスか否かの判断が事前に可能となる。
領域Aには、HDD22からロードされる監視ソフトウェア31と、監視ソフトウェア31によって形成されるシステムテーブル34及び割込ハンドラ32と、HDD22からロードされる後述の参照情報部33とが含まれる。なお、参照情報部33は、後述するように監視ソフトウェア31の実行に際して使用されることから、監視ソフトウェア31と一体的に機能する。
システムテーブル34は、監視ソフトウェア31を動作させるためのGDT(Global Descriptor Table)341、IDT(InterruptDescriptor Table)342、TSS(Task State Segment)343、及びGDT341からのリニアアドレスを物理アドレスに変換するPTE(Page Table Entry)344等を含む。
GDT341は、公知のように情報の格納箇所を示すテーブルである。より詳細には、GDT341は、例えば8バイト単位で各情報の格納箇所を管理するセグメントディスクリプタのリストである。各セグメントディスクリプタは、4つの属性を有している。属性は、情報の「種別」(プログラムコード、データ、スタック)と、「ベースアドレス」と、「リミット」と、「DPL」とである。「ベースアドレス」は、情報のRAM30内における格納基準(スタート)アドレスを示している。「リミット」は、情報のアクセス範囲を示す。DPLは、前述した特権レベルを示す。アドレッシングにおいて採用されるセグメントディスクリプタは、リニアアドレスからの変換に際して使用されるセグメントセレクタの情報を介して選択される。また、タスクのアクセスが許可されるものか否かは、アクセス要求時に、チップセット10内のレジスタ群内のレジスタCS,DS,SSのいずれかに書き込まれたCPL(Current Privilege Level)及びRPL(Requested Privilege Level)と、GDT341の対応するセグメントディスクリプタとを照合することで決定される。
IDT342は、例外割込としての一般保護例外(#GP)に対応して実行される、監視ソフトウェア31内の割込ハンドラ32の格納箇所を示すテーブルである。
TSS343は、監視ソフトウェア31内の各プログラム(タスク)の各々に対応付けて作成されている。すなわち、TSS343は、動作状態に応じたプログラムを稼働させるべく、タスクスイッチによって必要なプログラムに実行状態を移し、かつ直前のプログラムの処理内容を対応する個々のTSSにコンテキストすることで、現状復帰を可能にしている。
PTE344は、GDT341で作成されたリニアアドレスを物理アドレスに変換するためのもので、各情報(各プログラムコード、各データ、各スタック)について対応して設けられている。より詳細には、PTE344はページを有し、各ページは所定のデータ量、例えば4KB毎に分割されている。各ページデータには、物理アドレスとアクセス属性とが設定されている。各ページデータには、プログラムコード、データ、スタックの種類が含まれる。物理アドレスは、リニアアドレスをRAM30内の所定の位置に移動させるためのものである。アクセス属性は、特権レベルに相当するもので、「スーパーバイザー」と「ユーザ」とを有する。なお、「スーパーバイザー」はカーネル空間での処理(カーネルモード)をいい、リング0〜リング2に該当し、「ユーザ」はリング3に該当する。なお、波線で示す専用ローダ201は、監視ソフトウェア31をロードするためのプログラムである。
領域Bには、OSであるカーネル(kernel)35と、カーネル35が自己の挙動を記述するために作成するシステムテーブル36とが含まれる。
領域Cには、カーネル35の環境下で動作する各種のアプリケーションプログラムであるAP(1)371〜AP(n)37nを含む。領域Cには、AP(1)371〜AP(n)37nからOS(カーネル)35へのアクセスを実行するための関数であるAPI(Application Programming Interface)の動的なリストであるダイナミックリンクライブラリdll(dynamic link library)(API)38が含まれる。dll(API)38で作成された、リソースへの処理要求の際の特権レベル0でのカーネル35に対して発行されるAPI構造をSyscall命令という。なお、APIとは、複数のプログラムが共通に利用できる種々の機能(ソフトウェア)の呼び出し時の手順やデータ形式などを定めた仕様をいう。dll(API)とは、モジュール化して実装されたAPIを、動的なリンクによって実行時にプログラムの結合を行うようにした共有ライブラリをいう。
図3において、まず装置の電源が投入されると、フラッシュROM21からBIOS(プログラム)がRAM30にロードされ(ステップS1)、続いてBIOSが起動されて利用可能な周辺機器の初期化を行うPOST(Power On Self Test)処理が実行される(ステップS3)。
次いで、監視ソフトウェア31のロード処理が実行される(ステップS5)。監視ソフトウェア31のロード処理は、例えば以下の手順で行うことができる。すなわち、BIOSによってHDD22の先頭セクタからMBR(Master Boot Record)がRAM30にロードされ、次いでCPU11の制御がMBRに渡されて、HDD22のアクティブなパーティションテーブルに予め格納されている専用ローダ201(図2参照)がRAM30にロードされる。次いで、専用ローダ201によって一時的なGDTが作成され、このGDTによって領域Aに対して特権レベルがリング0に設定され、この状態で監視ソフトウェア31が領域Aにロードされることで行われる。
監視ソフトウェア31のロード処理が終了すると(ステップS7でYes)、
CPU11の制御が監視ソフトウェア31に渡される(ステップS9)。続いて、監視ソフトウェア31により、監視環境の設定処理、すなわちシステムテーブル34の作成、割込ハンドラ32の作成が行われる。次いで、OSローダ310(図2参照)が起動されて、領域Bの指定、特権レベルとしてリング2の設定を行って、カーネル35を領域Bにロードする(ステップS11)。なお、その後、公知のように、カーネル35内のAPローダによって、AP371〜AP(n)37n、dll(API)38が、領域Cに特権レベルとしてリング3でロードされる。
図4は、監視ソフトウェアの一例を示す機能構成図である。CPU11は、RAM30にロードされた監視ソフトウェア31を実行する。監視ソフトウェア31は、割込ハンドラ32を作成する割込ハンドラ作成部311、フック条件監視部312、Syscall命令に関する監視を行うSyscall命令監視部313、及び必要に応じて採用されるログ処理部314、環境監視部315を備え、それぞれCPU11の処理実行部として機能する。なお、Syscall命令監視部313は、フック条件監視部312とは個別に実行される態様でもよい。また、ログ処理部314、環境監視部315は、フック条件監視部312及びSyscall命令監視部313とは個別に実行される態様でもよい。
割込ハンドラ作成部311は、フック条件監視部312、Syscall命令監視部313でそれぞれ検出されたアクセスに対して発行される各例外に対する一連の監視処理をそれぞれ実行させる割込ハンドラ32を作成する。
フック条件監視部312は、割込ハンドラ32の内、アクセス検出部3121、及びフック条件を監視するプログラムであるフック条件更正部3122を含む。
MSR12の内容を読み書きするための命令は特権モード(リング0)で許可される。一方、本実施形態では、カーネル35をリング2として動作させるため、特権命令であるMSR12へのアクセス命令(rdmsr、wrmsr)は、CPU11の一般保護例外となる。この時のCPU11による例外割込みは、予め設定しているIDT342を介して割込ハンドラ32に移行する。
そこで、割込ハンドラ32のアクセス検出部3121は、この一般保護例外をの発行を受けて、CPU11がスタック(stack)にプッシュ(push)した命令ポインタEIP(例外が発生した命令の実行アドレス)を参照してwrmsr命令か否かを判断する。アクセス検出部3121は、アクセス命令がwrmsr命令であると判断した場合、その書込み先がMSR12内の、Syscall命令に関するレジスタ121か否かを判断する。
フック条件更正部3122は、アクセス検出部3121によって書き込み先がSyscallに関するレジスタ121であると判断された場合、レジスタ121内のDisable bitを値0にする書き込みを行う。フック条件更正部3122は、その後、カーネル35に制御を戻すため、スタックのEIPにwrmsr命令のバイト数分を足し算してiret命令(割り込みでの呼び出しには、スタック上にフラグ(eflags)も積み上げられるために、専用の復帰命令iretを使用)を発行することにより、カーネル35のwrmsr命令に続く次の命令に制御を戻す。かかるフック条件監視処理を行うことで、レジスタ121の不当な書き換え要求(アクセス)に対して、常にそのDisable bitに対して、当該ビットが書き換えられているか否かに関わらず、一律に値0に更正するようにすることで、後述する例外に対する監視可能状態を維持している。なお、値1に書き換えられている場合にのみ、値0に更正するようにしてもよい。
図5は、MSR監視処理の一例を示すフローチャートである。なお、図5において、ステップS21,S23は一般保護例外のステップであるが、理解を助ける意味で本フローチャートに含めて説明している。まず、MSR12へのアクセス命令による一般保護例外が発生したか否かが判断される(ステップS21)。MSRレジスタ12へのアクセス命令による一般保護例外でなければ、本フローをスルーし、MSR12へのアクセス命令による一般保護例外であれば、処理が割込ハンドラ32に移行される(ステップS23)。
そして、割込ハンドラ32で、一般保護例外の内容が検査され、書き込み(wrmsr)命令か否かが判断される(ステップS25)。一般保護例外の内容が書き込み(wrmsr)命令でなければ、本フローを抜け、一方、一般保護例外の内容が書き込み(wrmsr)命令であれば、続いて、書き込み先がMSRレジスタ12内の、Syscall命令に関するレジスタ121か否かが判断される(ステップS27)。Syscall命令に関するレジスタ121でなければ、発生した一般保護例外の内容に対応した処理が実行される(ステップS29)。一方、Syscall命令に関するレジスタ121であれば、当該レジスタ121内のDisable bitに値0が書き込まれる(ステップS31)。次いで、カーネル35に制御を戻すためのiret命令が発行され、カーネル35の(wrmsr)命令に続く次の命令に制御が戻される(ステップS33)。
図4に戻って、Syscall命令監視部313は、割込ハンドラ32の内、Syscall命令に対する監視を行うプログラムで、検出部3131、正否評価部3132、及び代理処理部3133を含む。
MSRレジスタ12内のSyscall命令に関するレジスタ121がDisable(=0)の場合、Syscall命令の発行に対し、CPU11は無効オペコード例外を発生する。すなわち、本実施形態では、リソースへの処理要求を発行するリング0でのアクセス、ここではSyscall命令は、無効オペコード違反(Invalid Opcode Fault)として設定している。無効オペコード違反とは、例えば正当なコンピュータ命令が存在しない場合とかプロセッサが無効なオペランドを含む命令を実行しようとした場合をいい、無効オペコード違反の種類によっては、この違反から回復できず、すなわちシステムの再起動又はシャットダウンを強いられる。リソースへの処理要求のためのアクセス手段がSyscall命令であることから、Syscall命令中に不正プログラムが関与(潜伏など)する可能性を考慮して、本実施形態では、Syscall命令を一律に無効オペコード違反とするフック対象としている。
割込ハンドラ32としての検出部3131は、CPU11による例外割込の発生によって、処理が割込ハンドラ32に移行すると、スタックに保存(プッシュ)した命令ポインタEIP(例外が発生した命令の実行アドレス)を参照して、アクセスがSyscall命令であるか否かを判断する。
割込ハンドラ32としての正否評価部3132は、アクセスがSyscall命令であった場合、その時点での汎用レジスタ13内のeax,ebx,ecx,edxの各レジスタ等や直前の処理内容を退避保存しているスタックの内容(Syscall命令のコード等)から、カーネル35への呼び出し機能とそのパラメータの正否を、下記のように評価する。
正否評価部3132による、カーネル35の呼び出し機能とそのパラメータの正否の評価は、予め設定された、領域A内の参照情報部33を利用して、例えば照合によって行われる。参照情報部33には、Syscall命令を構成するAPIのコードの内、不当性が高い候補が設定されている。不当性が高いAPI候補としては、例えば、(a)現状では未使用乃至は非公開のAPI、(b)C:¥ WINDOWS(登録商標)やC:¥ ProgramFiles 配下のファイルへの読み書き(改竄や新たな作成など)、(c)カーネル35から付与される権限(Token)の制御(例えば、ユーザ権限から管理者権限への昇格要求など)がある。また、参照情報部33に、AP(1)371〜AP(n)37nについて、スレッドやプロセスの関連を記述するPCR(Processor Control Region)を参照して、(a)動作を許可されているAPかどうか(例えば、APのパス(フォルダ)がインストールの許可がなされているフォルダであるかどうか)、(b)データの書込先のフォルダが書込許可されているフォルダであるかどうかを含めてもよい。さらに、(c)APIがどのプロセス(アプリケーションプログラム)から発行されたかを含めて区別する、例えば通信する筈のないプロセスが通信のAPIを発行したかどうか、(d)通信のAPIを発行したプロセスが人が操作するプロセスによって生成されたプロセスであったかどうかを区別する内容を含めることで、入力部40を経由しての人為的な操作に依拠するものか、プログラムに依拠する(一般的には不正プログラム)ものかの区別を可能にすることが好ましい。
また、割込ハンドラ32としての代理処理部3133は、正当と評価された場合、カーネル35に制御を移行し、一方、不当と評価された場合、不当と評価されたSyscall命令を無効とした上で、次の命令を、当該Syscall命令を発行したAPに戻すか、あるいはカーネル35にプログラムの終了機能を処理させる。
なお、カーネル35に制御を移行する場合、スタックのEIPをカーネル35のエントリポイントに書き換えることで、スタックの内容を、リング2に設定されているカーネル35に戻すことが可能となる。なお、リング2に設定されているカーネル35はスーパーバイザ(カーネルモード)で、代理処理部3133で作成された内容を実行する。また、アプリケーションに制御を戻す場合、Syscall命令のバイト数分を足し算して、iret命令を発行することにより制御が移行される。
情報処理装置1の動作中に、図6に示すように、例えばAP(1)371が、所定のリソースへの処理要求を発する場合、dll(API)38に対してアクセスし(図6、工程(1)参照)、APIを構築してSyscall命令を作成する(図6、工程(2)参照)。次いで、Syscall命令はリング0でカーネル35にアクセスされる(図6、工程(3)参照)。このとき、Syscall命令に対して無効オペコード違反が発行され、この無効オペコード違反が監視ソフトウェア31でフックされる(図6、工程(4)参照)。
ところで、無効オペコード違反となる対象は、Syscall命令以外にもあることから、無効オペコード違反を発行した命令の内容の分析が行われる。すなわち、Syscall命令に関しては無効処理とする一方、その正否(正当性)の評価結果に応じて代理処理部3133が処置を行うようにしている(図6、工程(51),(52)参照)。
より詳細には、代理処理部3133は、評価結果が正当であると判断された場合、カーネル35へ制御を移行する代行処理を行う(図6、工程(51)参照)。代理処理部3133は、カーネル35への制御のための命令として、無効オペコード違反として無効にしたSyscall命令と同一内容を発行する。
一方、代理処理部3133は、不当であると判断した場合、カーネル35へ制御を移行するか(図6、工程(52)参照)、あるいはSyscall命令に続く次の命令を発行元のAPに戻す(図6、工程(52−2)参照)処置を行う。カーネル35へ制御を移行する処置は、正当の場合と同様な手順で行う。なお、代理処理部3133によって作成されるSyscall命令は、プログラムの強制終了を指示するもの、すなわち何らの処理を行うことなく(スルーさせて)、リターンさせるものである。また、Syscall命令に続く次の命令を発行元のAPに戻す処理は、Syscall命令のバイト数分だけ加算することでSyscall命令をスキップしたと同様に、続きの命令に制御を戻すようにしたものである。
図7は、Syscall監視処理の一例を示すフローチャートである。なお、図7において、ステップS41,S43は無効オペコード例外の発生ステップであるが、理解を助ける意味で本フローチャートに含めて説明している。まず、図7において、無効オペコード例外の発生か否かが判断される(ステップS41)。無効オペコード例外の発生であると、制御が割込ハンドラ32に移行される(ステップS43)。
そして、割込ハンドラ32では、無効オペコード例外を発行した命令がSyscall命令であったか否かの分析が行われる(ステップS45)。Syscall命令でなければ、当該命令に応じた他の無効オペコードに対応する処理が実行される(ステップS47)。一方、Syscall命令であれば、正否評価の処理が実行され(ステップS49)、評価の結果が正当であれば(ステップS51でYes)、カーネル35に制御が移行される。(ステップS53)。一方、評価の結果が不当であれば(ステップS51でNo)、Syscall命令に続く次の命令を発行元のAPに戻す処理(iret)、又はカーネル35に対するプログラムの終了機能の処理が施される(ステップS53)。従って、監視ソフトウェア31によれば、リソース(ハードウェア資源)の保護の他、カーネル35及びAPの動作をリアルタイムで監視可能となることから、外部からの不正プログラムの侵入、逆に外部への情報の漏洩が効果的に防止できる。
また、ログ処理部314は、参照情報部33と一致した、あるいは不当と評価されたアクセスのプログラム内容を全てログ記憶部60に経時方向に格納する。好ましくは発生時刻情報を含めて格納する。ログ記憶部60がインターネット等のネットワークを介してデータサーバ装置としての位置づけである場合、送信元IPアドレスを付して送信し格納させる。外部のデータサーバ装置の場合には、IPアドレス毎にソートすることで、情報処理装置毎のログ管理が可能となる。なお、ログ情報としては無効オペコード違反のSyscall命令が少なくとも含まれていればよい。本実施形態によれば、後に、ログ記憶部60のセーブ内容を分析することで、異常動作や処理があった場合に対する確実かつ適正な事後解析に供することが可能となる。また、解析を通して、以後の教訓材料とすることができ、不正の抑止効果にもつながる。
なお、本実施形態におけるログ対象情報としては、プロセス一覧、ファイルI/Oログ、ネットワーク送受信ログ、環境設定値アクセスログ、及び監視及びロギング内容の少なくとも1つ乃至は全てが含まれる。プロセス一覧は、実行されたプログラムはプロセスとしてOSに管理され、PCRに格納される。実行されたプロセスは、必ずSyscallを経てカーネル35とのやり取りが発生するため、実行されたプロセスの一覧が取得できる。取得情報としては、例えば、プログラムファイル名とそのパス、プロセスID、起動時間を含む。これらを取得することで、不知もしくは不要なプログラムの実行の有無が把握できる。また、取得情報から異常なプログラムか否かが判断できる。
ファイルI/Oログは、Syscall時点でのAPI機能番号(レジスタeax)より、ファイルI/Oの要求を取得し、そのパラメータ値(汎用レジスタ13の内容やスタック内のデータ)からファイルパス及びその操作(読み書き)として取得される。取得情報としては、例えば、ファイルパス、操作方法(書き込みもしくは読み込み)、プロセスIDを含む。これらを取得することで、プログラムファイルの書込みやシステムフォルダもしくはユーザ指定の特定フォルダに対する操作から不正の有無が判断できる。
ネットワーク送受信ログは、Syscall及びSysret時点でのAPI機能番号(レジスタeax)より送受信要求を取得し、そのパラメータ値(汎用レジスタ13の内容やスタック内のデータ)から送受信データ及びその操作(connect、send、receive、accept)として取得される。取得情報としては、例えば、操作方法(connect、send、receive、accept)、送受信テータ、送受信ポート、送受信IPアドレス(IPV4及びIPV6)を含む。これらを取得することで、情報漏洩の基本となる送受信操作が監視できる。また、送信先IPアドレス及び受信元IPアドレスを元に不正アクセスが追跡できる。さらに送受信データの解析に基づく保護を可能とする。
環境設定値アクセスログは、カーネルモードからの不正操作がSyscall命令を介さないため、環境設定値へのアクセスが監視されており、その監視内容として取得される。取得情報としては、例えば、MSR12へのアクセスとその内容、コントロールレジスタ(CR0, CR2,CR4)へのアクセスとその内容、デバッグレジスタへのアクセスとその内容、キャッシュ制御命令の実行、CPUID命令の実行、ページテーブルPML4へのアクセス、ソフトウェア割込み命令の実行、CPUシステムテーブル(GDT、IDT、LDT、TSS)へのアクセスとロード命令、実行EIPとそのモジュール名(カーネルプログラムやカーネルドライバ)、及び未使用割込みベクタへの割込みと割込み先実行コードを含む。
監視及びロギング内容には、物理アドレス1Mbyte以下へのアクセスを含む。これは、OS起動後、使用されない領域であるため、不正利用と見なすことができる。物理アドレスACPI管理テーブルへのアクセスは、端末情報の不正取得と見なすことができる。全ページテーブルに対するデバイスアクセス(MMIO)物理アドレスの設定は、カーネル以外からの直接デバイスアクセスは不正と判断できる。カーネルプログラム領域の比較は、カーネルプログラムの改ざんをチェックできる。
図8は、ログ処理の一例を示すフローチャートである。まず、Syscall命令がフックされたかどうかが判断され(ステップS61)、フックされていなければ、本フローを抜ける。一方、フックされた場合、ログ記憶部60に記録される(ステップS63)。かかる処理が、シャットダウン(ステップS65でYes)まで継続して行われる。なお、ここでは、Syscall命令をログ対象としたが、特定のフック理由、例えば無効オペコード違反に該当する命令をログ対象とする場合も同様となる。
ところで、CPU11の稼働中は、MSR12や他のレジスタ内の特定のレジスタ等の内容が悪意のプログラムによって書き替えられる可能性がある。環境監視部315は、かかる特定のレジスタ等への書き込みのアクセスが発行されると、このアクセスをフックする機能を備える。ここに、特定のレジスタ等とは、CPU11の動作に必要とされる根本的な環境設定値が設定されるレジスタである。なお、根本的な環境設定値は、下記のものを含む。環境監視部315は、これらの環境設定値が設定される特定のレジスタ等へのアクセス、特に書込アクセスを、一般保護例外あるいは無効オペコード違反等としてフックし、このアクセスを阻止(無効、禁止、元に戻すなど)した後、次の命令に戻すようにしている。あるいは、書き換えられたか否かを問わず、元の内容に書き直す処理を施して、戻すようにしてもよい。
根本的な環境設定値は、以下のように複数種類存在する。まず、プロセス管理情報(Windows(登録商標) OSのPCR,PRCB,ETHREAD,EPROCESS等)を指すOS(カーネル)の環境設定値がある。この設定値へのアクセスはAPIを通じてカーネルに依頼して行わなければならない。そこで、その際、プロセスはOSが管理する管理者権限(CPU11の権限である、前述のリングとは異なる)が必要となるため、個々のプロセスの権限を監視する。また、他の根本的な環境設定値として、コントロールレジスタ(CR0,CR4,CR3)、デバッグレジスタ(DR0〜DR7)、MSR(IA32E_EFERなど)、及びGDTR、IDTR、LDTRに格納されるCPUの環境設定値、MSRの環境設定値があり、これらへのアクセスをリング2にして、監視する。また、他の根本的な環境設定値として、カーネルに依頼する直前とカーネルからの戻り直後のパラメータ値やデータを監視するAPIの環境設定値がある。監視に際しては、「OSの環境設定値」との組み合わせも加味して、正否を判断する。なお、パラメータの監視に関する例としては、指定されたファイルパス(c:\windows\system32\ntoskrnl.exe)に書込みを依頼しようとしたかどうかがあり、また、データの監視に関する例としては、送受信バッファの内容にバイナリが含まれるかどうかがある。また、他の根本的な環境設定値として、コンピュータの電源制御とハードウェア構成要素を規格化したACPIの環境設定値(Advanced Configuration and Power Interface)がある。監視ソフトウェア31が構成する物理メモリマップがOSのカーネル35から分からなくするため、カーネル35が物理メモリに関する情報にアクセスした際、その情報を変更する。また、他の根本的な環境設定値として、OSがリアルモードの時、ソフトウェア割込みを使用してBIOS Functionを使用するBIOSジャンプ命令の環境設定値がある。このBIOS Functionの改ざんや不正使用の防止のため、リアルモードの割込みベクタをフックする。また、他の根本的な環境設定値として、KernelDriverの環境設定値がある。ドライバにより「CPU11の環境設定値」を変更しようとした場合、その命令を無視してアンロードする。また、アプリケーションからドライバのロードを禁止する。
なお、本実施形態では、Syscall命令を無効オペコード違反としてフックするようにしたが、無効オペコード違反に限定されず、他の例外を適用してフックするようにしてもよい。
1 情報処理装置
11 CPU(プロセッサ)
121 Syscall命令に関するレジスタ
201 専用ローダ(ロード手段)
30 RAM(主メモリ)
31 監視ソフトウェア(監視手段)
32 割込ハンドラ
33 参照情報部
35 カーネル
38 dll(API)
312 フック条件監視部(フック条件設定手段)
3121 アクセス検出部(フック条件監視手段)
3122 フック条件更正部(フック条件更正手段)
313 Syscall命令監視部(監視手段)
3131 検出部(検出手段)
3132 正否評価部(評価手段)
3133 代理処理部(代理処理手段)

Claims (9)

  1. OSのカーネルに設定される特権レベルより高い特権レベルで主メモリの所定領域にロードされる監視ソフトウェアを実行する情報処理装置であって
    プロセッサに対して発行される命令のうち、少なくとも処理を前記OSのカーネルに引き渡すためのシステムコール命令に対する監視を行う監視手段と、
    記システムコール命令の監視のためのフック条件を前記監視手段に設定するフック条件設定手段とを備え、
    前記フック条件設定手段は
    SRのうちの、前記システムコール命令に関するレジスタへの前記フック条件に対する書き換えアクセスの発行を監視するフック条件監視手段と
    記書き換えアクセスの発行の検出時に、前記レジスタに対して前記フック条件を更正するフック条件更正手段
    備えたことを特徴とする、
    報処理装置。
  2. 前記フック条件更正手段は、前記フック条件を更正した後、前記OSのカーネルに制御を戻すための命令を発行することを特徴とする請求項1に記載の情報処理装置。
  3. 前記監視手段は、
    前記システムコール命令の発行を検出する検出手段と、
    検出された前記システムコール命令の正否を評価する評価手段と、
    評価結果に応じて前記システムコール命令を代理して実行する代理処理手段とを備えたことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記監視手段は、前記システムコール命令を構成するAPIに関する情報との照合に基づいて正否を評価することを特徴とする請求項1〜3のいずれかに記載の情報処理装置。
  5. 前記監視手段は、前記システムコール命令を正当と判断した場合、前記システムコール命令と同一の内容を前記カーネルへ移行し、前記システムコール命令を不当と判断した場合、前記システムコール命令を終了する命令を前記カーネルへ戻すことを特徴とする請求項1〜4のいずれかに記載の情報処理装置。
  6. 前記監視手段は、前記システムコール命令を正当と判断した場合、前記システムコール命令と同一の内容を前記カーネルへ移行し、前記システムコール命令を不当と判断した場合、前記システムコール命令をスキップする命令を前記カーネルに戻すことを特徴とする請求項1〜4のいずれかに記載の情報処理装置。
  7. OSのカーネルに設定される特権レベルより高い特権レベルで主メモリの所定領域にロードされた監視ソフトウェアをプロセッサが実行する情報処理監視方法であって
    前記プロセッサに対して発行される命令のうち、少なくとも処理を前記OSのカーネルに引き渡すためのシステムコール命令に対する監視を行う監視ステップと
    前記システムコール命令の監視のためのフック条件を前記監視ステップに対して設定するフック条件設定ステップ
    備え、
    前記フック条件設定ステップは
    SRのうちの、前記システムコール命令に関するレジスタへの前記フック条件に対する書き換えアクセスの発行を監視するフック条件監視ステップと
    記書き換えアクセスの発行の検出時に、前記レジスタに対して前記フック条件を更正するフック条件更正ステップ
    備えたことを特徴とする、
    報処理監視方法。
  8. OSのカーネルに設定される特権レベルより高い特権レベルで主メモリの所定領域にロードされる監視ソフトウェアとしてのプログラムであって
    プロセッサに対して発行される命令のうち、少なくとも処理を前記OSのカーネルに引き渡すためのシステムコール命令に対する監視を行う監視手段と、
    記システムコール命令の監視のためのフック条件を前記監視手段に設定するフック条件設定手
    して前記プロセッサを機能させ、
    前記フック条件設定手段は
    SRのうちの、前記システムコール命令に関するレジスタへの前記フック条件に対する書き換えアクセスの発行を監視するフック条件監視手段と
    記書き換えアクセスの発行の検出時に、前記レジスタに対して前記フック条件を更正するフック条件更正手段
    備えたことを特徴とする、
    ログラム。
  9. OSのカーネルに設定される特権レベルより高い特権レベルで主メモリの所定領域にロードされる監視ソフトウェアとしてのプログラムを記録したコンピュータ読み取り可能な記録媒体であって
    前記プログラムは、
    ロセッサに対して発行される命令のうち、少なくとも処理を前記OSのカーネルに引き渡すためのシステムコール命令に対する監視を行う監視手段と、
    記システムコール命令の監視のためのフック条件を前記監視手段に設定するフック条件設定手
    して前記プロセッサを機能させ、
    前記フック条件設定手段は
    SRのうちの、前記システムコール命令に関するレジスタへの前記フック条件に対する書き換えアクセスの発行を監視するフック条件監視手段と
    記書き換えアクセスの発行の検出時に、前記レジスタに対して前記フック条件を更正するフック条件更正手段
    備えたことを特徴とする、
    録媒体。
JP2014102114A 2014-05-16 2014-05-16 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 Active JP6370098B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014102114A JP6370098B2 (ja) 2014-05-16 2014-05-16 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
PCT/JP2015/063975 WO2015174512A1 (ja) 2014-05-16 2015-05-15 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
EP15792925.8A EP3144813A4 (en) 2014-05-16 2015-05-15 Information-processing device, information-processing monitoring method, program, and recording medium
SG11201609072QA SG11201609072QA (en) 2014-05-16 2015-05-15 Information-processing device, information-processing monitoring method, and recording medium
US15/306,823 US10380336B2 (en) 2014-05-16 2015-05-15 Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014102114A JP6370098B2 (ja) 2014-05-16 2014-05-16 情報処理装置、情報処理監視方法、プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
JP2015219682A JP2015219682A (ja) 2015-12-07
JP6370098B2 true JP6370098B2 (ja) 2018-08-08

Family

ID=54480048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014102114A Active JP6370098B2 (ja) 2014-05-16 2014-05-16 情報処理装置、情報処理監視方法、プログラム、及び記録媒体

Country Status (5)

Country Link
US (1) US10380336B2 (ja)
EP (1) EP3144813A4 (ja)
JP (1) JP6370098B2 (ja)
SG (1) SG11201609072QA (ja)
WO (1) WO2015174512A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10055572B1 (en) * 2017-06-12 2018-08-21 Mucteba Celik Systems and methods for preventing windows kernel code or drivers from being executed
JP2019008503A (ja) * 2017-06-23 2019-01-17 杉中 順子 情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
US10996990B2 (en) * 2018-11-15 2021-05-04 International Business Machines Corporation Interrupt context switching using dedicated processors
US11106800B1 (en) * 2018-11-30 2021-08-31 Capsule8, Inc. Detecting kernel exploits
US11556346B2 (en) 2020-06-10 2023-01-17 Qualcomm Incorporated Security enhancement in hierarchical protection domains
FR3116356B1 (fr) * 2020-11-13 2024-01-05 Stmicroelectronics Grand Ouest Sas Procédé de compilation d’un code source
CN113779570B (zh) * 2021-09-18 2024-02-23 深信服科技股份有限公司 一种基于核心进程的安全防护方法、装置及电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4023654B2 (ja) 2001-09-28 2007-12-19 日立ソフトウエアエンジニアリング株式会社 アプリケーションの監視方法およびプログラム
US20030226014A1 (en) * 2002-05-31 2003-12-04 Schmidt Rodney W. Trusted client utilizing security kernel under secure execution mode
US7617534B1 (en) * 2005-08-26 2009-11-10 Symantec Corporation Detection of SYSENTER/SYSCALL hijacking
JP2007140798A (ja) 2005-11-16 2007-06-07 Eugrid Kk コンピュータの情報漏洩防止システム
US7996836B1 (en) * 2006-12-29 2011-08-09 Symantec Corporation Using a hypervisor to provide computer security
JP5382450B2 (ja) * 2008-02-14 2014-01-08 日本電気株式会社 アクセス制御装置、その方法及び情報記録媒体
US8578483B2 (en) 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US9195487B2 (en) * 2009-05-19 2015-11-24 Vmware, Inc. Interposition method suitable for hardware-assisted virtual machine
US8893300B2 (en) * 2010-09-20 2014-11-18 Georgia Tech Research Corporation Security systems and methods to reduce data leaks in enterprise networks
US8650642B2 (en) 2011-03-31 2014-02-11 Mcafee, Inc. System and method for below-operating system protection of an operating system kernel
US8863283B2 (en) * 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
JP2013101550A (ja) 2011-11-09 2013-05-23 Junko Suginaka 情報処理空間管理方法、外部デバイス及び情報処理装置
US9207940B2 (en) * 2013-03-15 2015-12-08 Intel Corporation Robust and high performance instructions for system call
US9117080B2 (en) * 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines
US9323931B2 (en) * 2013-10-04 2016-04-26 Bitdefender IPR Management Ltd. Complex scoring for malware detection
US9619346B2 (en) * 2013-10-31 2017-04-11 Assured Information Security, Inc. Virtual machine introspection facilities

Also Published As

Publication number Publication date
EP3144813A1 (en) 2017-03-22
US10380336B2 (en) 2019-08-13
JP2015219682A (ja) 2015-12-07
SG11201609072QA (en) 2016-12-29
US20170220795A1 (en) 2017-08-03
EP3144813A4 (en) 2017-11-01
WO2015174512A1 (ja) 2015-11-19

Similar Documents

Publication Publication Date Title
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US10810309B2 (en) Method and system for detecting kernel corruption exploits
US20180211046A1 (en) Analysis and control of code flow and data flow
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
Payne et al. Lares: An architecture for secure active monitoring using virtualization
JP5512610B2 (ja) 非ファームウェアエージェントからメモリへのアクセスを許可または阻止する方法、システム、および機械可読記憶媒体
US6986006B2 (en) Page granular curtained memory via mapping control
US9424430B2 (en) Method and system for defending security application in a user's computer
Duflot et al. Using CPU system management mode to circumvent operating system security functions
JP6984710B2 (ja) コンピュータ装置およびメモリ管理方法
KR20150038574A (ko) 타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체
US9996448B2 (en) Breakpoint insertion into kernel pages
CN105512550A (zh) 用于活跃的操作系统内核保护的系统和方法
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
KR20170060815A (ko) 메모리의 커널영역을 보호하기 위한 전자장치 및 방법
Rauchberger et al. Longkit-A Universal Framework for BIOS/UEFI Rootkits in System Management Mode.
WO2018235858A1 (ja) 情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置
Yao Smm protection in edk ii
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
JP2018036695A (ja) 情報処理監視装置、情報処理監視方法、監視プログラム、記録媒体及び情報処理装置
US10747873B2 (en) System management mode privilege architecture
JP2018174001A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
Wen et al. Towards thwarting data leakage with memory page access interception
WO2015052829A1 (ja) 情報処理装置、方法およびプログラム
WO2015052831A1 (ja) 情報処理装置、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180525

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180710

R150 Certificate of patent or registration of utility model

Ref document number: 6370098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S633 Written request for registration of reclamation of name

Free format text: JAPANESE INTERMEDIATE CODE: R313633

S634 Written request for registration of reclamation of nationality

Free format text: JAPANESE INTERMEDIATE CODE: R313634

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250