[go: up one dir, main page]

JP2005202523A - コンピュータ装置及びプロセス制御方法 - Google Patents

コンピュータ装置及びプロセス制御方法 Download PDF

Info

Publication number
JP2005202523A
JP2005202523A JP2004006130A JP2004006130A JP2005202523A JP 2005202523 A JP2005202523 A JP 2005202523A JP 2004006130 A JP2004006130 A JP 2004006130A JP 2004006130 A JP2004006130 A JP 2004006130A JP 2005202523 A JP2005202523 A JP 2005202523A
Authority
JP
Japan
Prior art keywords
state
consistency
execution
trusted
program
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.)
Abandoned
Application number
JP2004006130A
Other languages
English (en)
Inventor
Satoyuki Ito
智行 伊藤
Shinichi Takemura
真一 竹村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2004006130A priority Critical patent/JP2005202523A/ja
Priority to US11/034,193 priority patent/US7461288B2/en
Publication of JP2005202523A publication Critical patent/JP2005202523A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 OSのプロセス状態において、処理だけでなく整合性をチェックしている状態や保護しなければならないデータを扱っている状態などの状態を追加・管理することで、プロセスの信頼性の状態によって、処理を変化させて、不正なプロセスや改竄されたプロセスの実行を防ぎ、信頼性を向上させる。
【解決手段】 プロセス状態判定部7は、プロセスの状態が少なくとも整合性が保たれている状態であるか否かを判定する。処理実行部8は、プロセス状態判定部7による判定結果に基づいて処理を実行する。信頼性判定部9は、プロセス状態判定部7によって判定されたプロセス状態に応じて、主記憶装置4上に読み込まれたプログラムやデータの信頼性を判定する。
【選択図】 図2

Description

本発明はコンピュータ装置及びプロセス制御方法に関し、例えばリナックス等のオペレーティングシステムがプログラムの実行をプロセスによって管理し実行しているコンピュータ装置及びプロセス制御方法に関する。
例えば、リナックスLinux、フリービーエスディーFreeBSDに代表されるパーソナルコンピュータ用ユニックスPC-Unix(登録商標)等の基本ソフトウェア(オペレーティングシステム:Operating system:OS)は、コンピュータ装置にあってプログラムの実行をプロセスによって管理し実行している。また、携帯情報処理装置(PDA)、或いはデジタルカメラ装置、デジタルビデオ装置等のCPU搭載の電子機器においても、OSは同様にプログラムの実行をプロセスによって管理し実行している。
従来、上記OSは、プロセスの状態管理を実行状態、実行可能状態、一時休止状態などの処理に関してのみ行っていた。また、実行ファイルやライブラリの整合性のチェックは、トリップワイヤTripwireのような定期的に整合性を行うツールや実行直前に実行ファイル全体の整合性のチェック行うものがある。また、ファイルの暗号化は、ファイル単位で行われる。
また、本願出願人は、WO00/34871により、オペレーティングシステムにおいて不正なアドレス領域へのアクセスが生じたときのメモリ保護を、実行処理速度を低下することなく行うための技術を開示している。
WO00/34871
ところで、従来のOSは、プロセスの処理に関しての状態管理を、上述したように実行状態、実行可能状態、一時休止状態などの処理に関してのみ行っており、プロセスの整合性が保たれているかどうか、或いは第3者による解析を防ぐために暗号化された重要な実行ファイルを復号した重要なデータを保持しているかどうかなどの状態に関してはまったく把握できなかった。
したがって、重要なデータにアクセスするプロセスが改竄されたプロセスであっても、OSは通常のプロセスと見分けがつかないためデータへのアクセスを許してしまうことになる。実行するプロセスが改竄されたプロセスであっても、処理さえ正しければ実行できてしまうことになる。
プロセスは、実行ファイルと様々なライブラリによって成り立っている。したがって、リンクしているライブラリがすべて署名などによってチェックされていて、ライブラリの整合性が保たれていても、実行ファイルに署名がなく整合性が保たれていることが保障されていなければ、プロセスが改竄されていない正しいプロセスであるとは保障できない。また、一つの実行ファイルの整合性がとれていても、他のライブラリの整合性が保たれていなかったら、プロセス全体としては、整合性が保たれていないことになる。また、実行ファイルだけに署名が付いているかどうかをチェックし整合性を確認するツールを用いることが考えられるが、全体として1個のプロセスとして動くので、実行ファイル、ライブラリのそれぞれが一つでも整合性が保たれていないとプロセスとしての整合性を保障することができない。
しかしながら、すべての実行ファイルやライブラリに署名するのもオーバーヘッドや管理の点から実用的でなく、必要なファイルだけに署名を付加するべきである。
このように、処理のみのプロセス制御・管理の形態だと、どのプロセスがどのような信頼性で実行されているかを把握できず、OS側で重要なデータなどへのアクセス制御ができない。
また、実行ファイルやライブラリの整合性のチェックにおいて、1週間とか、1ヶ月というように定期的に整合性をチェックする場合は、チェック終了直後ならば整合性を保障できるが、次にチェックされるまでの整合性は、次の整合性チェックが終了するまで、整合性が保たれていたかどうかは確認ができない。
実行直前に整合性をチェックする場合は、サイズが大きな実行ファイルやライブラリをチェックするときに、そのファイルをすべてメモリ上に読み込むため、メモリを大量に消費し、起動が遅くなる。したがって、よく使われるライブラリは比較的サイズが大きく、起動時ごとにファイル全体をチェックするのは実用的ではない。また起動時にチェックするだけなので、実行中のチェックは行われない。したがって、プロセスが実行中に改ざんされた場合の整合性は保たれない。
実行ファイル、データファイルに無関係にファイル単位で行われているファイルの暗号化において、実行前に暗号化された実行ファイルを復号化して実行を行う必要があるが、暗号化もファイル単位であるため、いったんファイル全体をメモリ上に読み込んでから復号化しなければならない。したがって、上記整合性のチェックと同様にサイズの大きいファイルの場合は、メモリを大量に消費し、起動が遅くなってしまう。
また、上記特許文献1は、不正なアドレス領域へのアクセスが生じたときについてメモリを保護する技術を開示しており、本願発明で目的とするプロセスの処理状態を管理したり、実行ファイルで実行しようとするプログラムのファイルの整合性をチェックしたり、暗号化データを復号するようなデータを保護するためのプロセス制御については示唆されていない。
本発明は、上記実情に鑑みてなされたものであり、OSのプロセス状態において、処理だけでなく整合性をチェックしている状態や保護しなければならないデータを扱っている状態などの状態を追加・管理することで、プロセスの信頼性の状態によって、処理を変化させて、不正なプロセスや改竄されたプロセスの実行を防ぎ、信頼性を向上させることができるコンピュータ装置及びプロセス制御方法の提供を目的とする。
本発明に係るコンピュータ装置は、上記課題を解決するために、オペレーティングシステムによってプログラムの実行をプロセス単位で管理し実行しているコンピュータ装置において、プロセスの状態が少なくとも整合性が保たれている状態(整合性が保障されている状態)であるか否かを判定するプロセス状態判定手段と、上記プロセス状態判定手段による判定結果に基づいて処理を実行する処理実行手段とを備える。
プロセス状態判定手段はプロセスの状態が少なくとも整合性が保障されている状態であるか否かを判定し、処理実行手段はプロセス状態判定手段による判定結果に基づいて処理を実行する。
本発明に係るプロセス制御方法は、上記課題を解決するために、プログラムの実行をプロセス単位で管理し実行しているプロセス制御方法において、プロセスの状態が少なくとも整合性が保たれている状態(保障されている状態)であるか否かを判定するプロセス状態判定工程と、上記プロセス状態判定工程による判定結果に基づいて処理を実行する処理実行工程とを備える。
プロセス状態判定工程はプロセスの状態が少なくとも整合性が保障されている状態であるか否かを判定し、処理実行工程はプロセス状態判定工程による判定結果に基づいて処理を実行する。
本発明に係るコンピュータ装置は、プロセス状態判定手段がプロセスの状態が少なくとも整合性が保たれている状態(保障されている状態)であるか否かを判定し、処理実行手段がプロセス状態判定手段による判定結果に基づいて処理を実行するので、プロセスの状態管理を行うことにより、OS側で正しいプロセスかどうかなどを判断できるようになり、重要なデータへのアクセス制御や不正なプログラムや改ざんされたプログラムの実行を防ぐことができ、信頼性を向上させることができる。
また、データの整合性のチェックや復号化を処理単位で行うことにより、プログラムの起動時間がファイル全体をチェックする場合に比べ起動時間が短くなり、メモリも節約ができる。また、処理の直前に整合性をチェックするので安全性が従来のより高くなる。さらに、必要最小限の部分のみ復号化を行える。
本発明に係るプロセス制御方法は、プロセス状態判定工程がプロセスの状態が少なくとも整合性が保たれている状態(保障されている状態)であるか否かを判定し、処理実行工程がプロセス状態判定工程による判定結果に基づいて処理を実行するので、プロセスの状態管理を行うことにより、OS側で正しいプロセスかどうかなどを判断できるようになり、重要なデータへのアクセス制御や不正なプログラムや改ざんされたプログラムの実行を防ぐことができ、信頼性を向上させることができる。
また、データの整合性のチェックや復号化を処理単位で行うことにより、プログラムの起動時間がファイル全体をチェックする場合に比べ起動時間が短くなり、メモリも節約ができる。また、処理の直前に整合性をチェックするので安全性が従来のより高くなる。さらに、必要最小限の部分のみ復号化を行える。
以下、本発明を実施するための最良の形態を説明する。この実施の形態は、図1にハードウェア構成を示すコンピュータ装置1である。このコンピュータ装置1は、中央演算処理装置(Central Processing Unit:CPU)2を中心に構成され、バス3を介して主記憶装置4、外部記憶装置5及び入出力装置6をCPU2に接続している。CPU2は、リナックスLinuxを基本ソフトウェア(オペレーティングシステム:Operating system:OS)として動作させる。CPU2は、上記OSに必要なデータを例えばHDDのような外部記憶装置5からRAMなどの主記憶装置4に読み込み、プログラムを実行する。
外部記憶装置5は、CPU2が実行すべきOSのプログラムを格納している。主記憶装置4には、CPU2が外部記憶装置5から取り出したプログラムが読み込まれる。CPU2は、主記憶装置4に読み込まれたプログラムをプロセス単位で管理し実行する。
入出力装置6の入力装置としては、入力機器インターフェースに接続されたキーボードやマウスがある。キーボードやマウスからの入力信号は、入力機器インターフェースからバス3を介してCPU2に転送される。また、入出力装置6の出力装置としては、ディスプレイコントローラに接続された表示装置がある。ディスプレイコントローラは、CPU2から送られてくる描画命令にしたがって表示画像を生成し、表示装置に送る。表示装置は、ディスプレイコントローラから送られた表示画像情報に従い、その画像を画面に表示する。
このコンピュータ装置1は、本発明のプロセス制御方法を適用したOSをCPU2により実行することにより、図2に示すように機能する。つまり、このコンピュータ装置1は、プロセスの状態が少なくとも整合性が保たれている状態であるか否かを判定するプロセス状態判定部7と、プロセス状態判定部7による判定結果に基づいて処理を実行する処理実行部8とを備える。また、このコンピュータ装置1は、プロセス状態判定部7によって判定されたプロセス状態に応じて、主記憶装置4上に読み込まれたプログラムやデータの信頼性を判定する信頼性判定部9を備える。
プロセス状態判定部7は、プロセスの状態が整合性のみ保たれている状態か、整合性が保たれ、かつ保護を必要とする重要データを扱っている状態か、或いは整合性が保障されていない通常状態であるかという三つの状態を判定する。もちろん、プロセスの状態が整合性が保たれている状態か、或いは整合性が保障されていない通常状態であるかという二つの状態を判定するだけのこともある。また、プロセスの状態が整合性のみ保たれている状態か、或いは整合性が保たれ、かつ保護を必要とする重要データを扱っている状態であるかという二つの状態を判定するだけのこともある。
処理実行部8は、主記憶装置上に読み込まれたプログラムやデータに対して、プロセス状態判定部7による判定結果に基づいて、後述するエグゼックExec( )処理、ダイナミック・リンクDynamic_link( )処理、デクリプトDecrypt( )処理、トラステッド・トウ・ノーマルTrusted_To_Normal( )処理、クリティカル・トウ・トラステッドCritical_To_Trusted( )処理、トラステッド・トウ・クリティカルTrusted_To_Critical( )処理、ページ・フォルトPage_Fault( )処理、イグジットExit( )処理等を施す。
信頼性判定部9は、プロセス状態判定部7によって判定されたプロセス状態に応じて、主記憶装置4上に読み込まれたプログラムやデータの信頼性を判定する。この判定結果は、処理実行部8に送られる。処理実行部8は信頼性判定部9による判定結果に基づいて処理を実行する。信頼性判定部9は、後述するダイナミックリンク、デマンドページングなどのように実行中に後から動的に主記憶装置4に読み込まれるプログラムやデータの整合性をチェックする。もちろん、主記憶装置4に読み込まれるプロセスの実行ファイルやライブラリの整合性をチェックしてもいる。
コンピュータ装置1は、本発明のプロセス制御方法を適用したOSをCPU2にて実行することにより、機能的にプロセス状態判定部7で上記状態の判定を行い、プロセス状態判定部7の判定結果に基づいて機能的に処理実行部8で処理を実行することによって、改竄されたプロセスや不正なプロセスの実行を防ぎ、信頼性を向上させることができる。
また、処理実行部8において処理を実行するときには、ファイルのすべてが主記憶装置4のようなメモリ上に読み込まれているわけではなく、処理に必要になった部分のみをメモリ上に読み込む。読み込む単位は、あるサイズの固定長である。したがって、読み込む単位ごとに信頼性判定部9にて整合性をチェックすることにより、起動時にファイルすべてをチェックしないで、プロセスの処理の整合性を保つことができ、なおかつ処理中にファイルが改ざんされても処理中に検知することができる。
また、従来、実行ファイル、データファイルに無関係にファイル単位で行われているファイルの暗号化において、実行前に暗号化された実行ファイルを復号化して実行を行う必要があったが、処理実行部8は、整合性のチェックと同様に主記憶装置4上に単位ごとに読み込まれた暗号化データに、復号化を行うことで、必要な部分のみの復号化が行える。
以下、コンピュータ装置1の動作について詳細に説明するが、先ず、リナックスLinuxにおける通常のプログラムの実行について述べておく。
リナックスLinuxにおけるプログラムの実行は、プロセス単位で図3に示す処理手順にしたがって動作する。図3中のS1〜S5は、対応するステップを示す記号である。また分岐に関しては、ステップS1の処理でYESならば、(S1:YES)と表現する。
リナックスLinuxには、フォーク(fork)システムコールがあり、これを呼び出すことによって現在のプロセスを複製する。また、エグゼック(exec)システムコールと呼ばれるものがあり、現在のプロセスの資源を解放して、プログラムの実行開始に必要な資源を獲得してプログラムの実行を行う。プログラムの実行開始の流れは、forkシステムコールでプロセスを複製して、その後、複製したプロセスでexecシステムコールを発行して、プログラムの実行に必要な資源を獲得してプログラムの実行に移る。起動時に関しては、プロセスがないので別の方法でイニット(init)プロセスと呼ばれるプロセスが生成される。
プログラムの実行開始にあたっては、まずexecシステムコールが呼ばれる(ステップS1)。そして現在のプロセスのアドレス空間などの資源を解放する(ステップS2)。次に実行する実行ファイルをアドレス空間に割り当てる(ステップS3)。プログラム実行開始前に、実行に必要な共有ライブラリがあるならば(ステップS4:YES)、共有ライブラリをアドレス空間に割り当て(ステップS5)、プログラムを実行する。共有ライブラリの割り当ての処理は動的に行われるので、開始時だけでなくプログラム実行中にも必要になった時点で処理される。もしも、必要な共有ライブラリがないとき(ステップS4:NO)は、そのままプログラムの実行に移る。
プログラムの実行は、基本的に命令の読み込み、命令の実行の繰り返しである。以下、図4に示す処理手順にしたがって動作を説明する。まず命令の読み込みを行う(ステップS11)。そして、命令が主記憶上に存在するか否かをチェックし(ステップS12)、存在しなければ(ステップS12:NO)、ページフォルト例外が発生して、ページフォルト例外ハンドラに処理が移る(ステップS13)。
ページフォルトについて説明しておく。ステップS12にてNOであり、アクセス先が主記憶装置4上に存在しない場合は、ページフォルト例外を発生し、ページフォルト例外ハンドラを呼び出して、外部記憶装置から主記憶装置上にページ単位でデータをロードする。このように必要になったページをロードする処理をデマンドページングと呼ぶ。主記憶装置上にロードされるサイズは、ページと呼ばれる固定長のデータ単位でロードされる。例えば、リナックスの多くの場合は、4kbyte(4096byte)単位である。ページフォルトにより主記憶装置上に必要なデータが読み込まれ、命令の読み込みが終わると、命令の実行を行う(ステップS14)。
ステップS15では、命令がexitシステムコールであるか否かをチェックし、もしも、命令がexitシステムコールならば(ステップS15:YES)、プロセスを終了するためにexitシステムコールを呼び出す。exitシステムコールでなければ(ステップS15:NO)、命令を実行するが命令によっては、データなどにアクセスするため、アドレス空間にアクセスする場合がある(ステップS16)。もしアクセスする場合(ステップS16:YES)、アクセス先が主記憶装置上にあれば(ステップS17:YES)、命令を実行する。もしアクセス先が主記憶装置上になければ、ページフォルト例外が発生して(ステップS18)、必要なデータが主記憶装置上に読み込まれる。命令の実行が終わると次の命令の読み込みに戻る(ステップS11)。以上、リナックスにおける通常のプログラムの実行について述べた。
これに対して、実施の形態のコンピュータ装置1では、プロセスに、通常の状態(整合性が保障されていない状態)、整合性が保たれている状態(整合性が保障されている状態)、整合性が保たれていて、なおかつ保護を必要とする重要データを扱っている状態、という3つの状態を加えた。保護を必要とする重要データとは、暗号化されている実行ファイルを復号化している場合などの外部に漏れてはいけない重要データをいう。
図2のプロセス状態判定部7にて各状態を判定し、その判定結果に応じてプロセス処理実行部8が、プロセス状態を変更して処理を実行する。ここで、判定されるプロセス状態には、整合性が保障されていない通常状態を示すノーマルnormal、整合性が保たれている状態を示すトラステッドtrusted、整合性が保たれかつ保護を必要とする復号データのような重要なデータを扱う状態を示すクリティカルcriticalという3つの状態を追加した。
まとめると、以下のようになる。ノーマルnormalは、通常の状態を表す。リナックスで実行される普通のプロセスと同じ状態である。
トラステッドtrustedとクリティカルcritical状態のプロセスには、リナックスLinuxのケイパビリティcapabilityの機構を利用して、特別な操作の特権を与える。ケイパビリティcapabilityの機構は、プロセスに対して特定の特権付きの操作を実行する権限を与える機構のことを言う。つまり、ここでは、トラステッドtrusted、クリティカルcritical状態のプロセスに与える特権をトラステッド・ケイパビリティtrusted capabilityと呼ぶ。以下、フローチャートにおいてトラステッドtrusted、クリティカルcriticalのプロセス状態のみ通れるルートの処理に関しては、すべてトラステッド・ケイパビリティtrusted capabilityの特権が必要であるとする。もし、特権がない場合に処理しようとすると、特権がないことを表すエラーを返して終了するものとする。
トラステッドtrustedは、トラステッド・ケイパビリティtrusted capabilityの特権が与えられている状態である。また実行ファイルとライブラリの署名やハッシュがチェックされていて、整合性が保たれている状態を表す。
クリティカルcriticalは、トラステッドtrusted状態と同様に実行ファイルとライブラリの署名やハッシュがチェックされていて、整合性が保たれている状態に加え、暗号化された実行ファイルを復号化して実行している状態を表す。もちろん、トラステッド・ケイパビリティtrusted capabilityの特権が与えられている状態でもある。
次に、信頼性判定部9にて行われる整合性(Integrity)のチェック、および処理実行部8にて行われる暗号化データの復号化について説明する。
信頼性判定部9は、データの整合性をダイジェスト(digest)によりチェックする。ダイジェストは、ハッシュ値である。ダイジェストの整合性は、署名(signature)でチェックする。
ダイジェストによりチェックする単位を図5のようにページ(page)単位として、ページフォルト例外が発生して、ページが主記憶装置(メモリ)上に読み込まれたときにそのページに対して整合性のチェックを行う。ページフォルトは、上述したように、命令が主記憶上に存在するか否かのチェックの結果、存在しないときに移行する、ページフォルト例外によって発生し、ページフォルト例外ハンドラによって処理される。
また、図6のように一部のページに対してのみ、ダイジェストにより整合性をチェックするようにしてもよい。ダイジェストの整合性は、署名(signature)によりチェックされる。また、ダイジェストにより整合性をチェックしたうえで、暗号化(Encrypted)する単位を図7のようにページ(page)単位として、ページフォルト例外が発生して、ページがメモリ上に読み込まれたときにそのページに対して、整合性のチェックと、処理実行部8による復号化ができるようにする。また、図8のように一部のページに対してのみ、暗号化やダイジェストにより整合性をチェックするなど、自由に組み合わせることができる。
次に、図2の機能ブロック図に戻り、各機能ブロックによる総合的な動作の連携を図9の状態遷移図に基づいて説明する。処理実行部8では、以下の処理を行う。エグゼックExec( )は、エグゼックexecシステムコールに署名チェックなどの処理を追加した処理である。ダイナミック・リンクDynamic_link( )は、共有ライブラリをリンクするときの処理に署名チェックの処理などを追加した処理である。デクリプトDecrypt( )は、暗号化されたページを復号化する処理である。トラステッド・トウ・ノーマルTrusted_To_Normal( )は、プロセス状態をトラステッドtrustedからノーマルnormalにする処理である。クリティカル・トウ・トラステッドCritical_To_Trusted( )は、プロセス状態をクリティカルcriticalからトラステッドtrustedにする処理である。トラステッド・トウ・クリティカルTrusted_To_Critical( )は、プロセス状態をトラステッドtrustedからクリティカルcriticalにする処理である。ページ・フォルトPage_Fault( )は、ページフォルト時の処理に、ページのハッシュ値の比較の処理などを追加した処理である。イグジットExit( )は、イグジットexitシステムコールを呼ぶ前に処理を追加している。
また、図9の状態遷移図において、normal、trusted、criticalは、それぞれノーマルnormal、トランステッドtrusted、クリティカルcriticalのプロセス状態を表している。initはイニットinitプロセス、exitは、プロセスの終了を表している。Exec( )、Dynamic_link( )などは、上述したように遷移を行う処理について表している。プロセス・エラーProcess ErrorとチェックエラーCheck Errorについては、それぞれプロセス状態によって引き起こされるエラーと署名などのチェックが間違っていたときのエラーを表す。また、M1〜M11は、状態遷移を表している。
図9の状態遷移図において、プロセス状態がノーマルnormalからは、トラステッドtrustedとイグジットexitのみに遷移できる。ノーマルnormalからexec( )の呼び出しでtrustedに遷移する(M1)。Dynamic_Link( )の呼び出しでは、プロセス状態は変わらない(M2)。Exit( )の呼び出しで、exitに遷移する(M4)。プロセス状態のエラーが発生した場合も、exitに遷移する。この場合のエラーは、Critical_To_Trustedなどのように、normal状態では呼び出せない処理を行おうとしたときなどのエラーである。
また、上記状態遷移図において、プロセス状態がtrustedからの状態遷移は、normal、critical、exitである。normal状態への遷移は、Trusted_To_Normal( )が呼び出されて遷移する場合と署名の検査でエラー(Check Error)が出た場合も整合性が保たれた状態ではなくなるので、normalに遷移する(M3)。trusted状態でExec( )かDynamic_link( )が呼び出された場合は遷移しない(M5)。trustedからcriticalへの遷移は、Decrypt( )かTrusted_to_Critical( )が呼び出されたときに遷移する(M8)。
また、上記状態遷移図において、プロセス状態がcriticalからの遷移は、trustedかexitである。trustedへの遷移は、Critical_to_Trusted( )を呼び出されたときである(M9)。exec( )、Dynamic_link( )もしくはDecrypt( )を呼んだときには、遷移しない(M10)。Exit( )が呼び出されるとexitに遷移する(M11)。また、criticalの状態は重要なデータなどを保持した場合であり、何かのエラーの発生や整合性が保たれない場合は、すぐに終了しなければならないので、Process ErrorもしくはCheck Errorなどのエラーが発生した場合もexitに遷移する。
上述した処理が呼び出されたときの状態遷移について詳細に説明する。先ず、エグゼックExec( )について説明する。これは、上記図3に示したプログラムの実行を開始する処理に署名チェックなどの処理を加えたものである。以下、図10のフローチャートにより動作を説明する。
始めに、forkシステムコールなどでプロセスを複製するが、そのときプロセスの状態も複製元のプロセス状態を引き継ぐものとする。したがって、プロセス状態がcriticalのものからは、criticalのプロセスが複製される。initプロセスについては、trusted状態からプロセスが生成されるものとする。
ステップS21では、execシステムコールが呼ばれ、現在のプロセスのアドレス空間を開放する。実行ファイルをアドレス空間に割り当てる前に、ステップS22にてプロセス状態判定部7は現在のプロセス状態を確認する。プロセス状態がnormalならば(ステップS22:normal)、ステップS23にてプロセス状態をtrustedに設定し、ステップS23にてプロセスにtrusted capabilityの特権を与える。プロセス状態の確認後、信頼性判定部9は実行ファイルの署名をチェックする(ステップS25)。署名をチェックした結果をステップS26で判定し、署名が正しければ(ステップS26:OK)、ステップS27に移行する。ステップS27では、信頼性判定部9は、実行ファイルのダイジェストを主記憶装置4上に記憶する。ステップS26の判定にて、信頼性判定部9が、もし署名が正しくない、つまりチェックエラーCheck errorと判定すれば(ステップS26:NG)、ステップS28に移行し、Trusted_To_Normal( )を呼び出す。署名がないファイルも署名が正しくないと判定される。
署名のチェック終了後、ステップS29にて処理実行部8は実行ファイルをアドレス空間に割り当てる。ステップS30にて共有ライブラリが必要であるか否かを判定し、必要である(ステップS30:YES)となれば、ステップS31にてDynamic_Link( )を呼び出して共有ライブラリをアドレス空間に割り当てる。そして、処理実行部8は、プログラムを実行する。ステップS30にて共有ライブラリが必要ないと判定すれば(ステップS30:NO)、そのままプログラムを実行する。
次に、ダイナミック・リンクDynamic_link( )について説明する。これは、共有ライブラリをアドレス空間に割り当てる場合にも共有ライブラリの署名などをチェックする必要があるので、署名チェックの処理を追加したものである。以下、図11のフローチャートにより動作を説明する。
ステップS41にて、プロセス状態判定部7は現在のプロセス状態を確認する。もし、プロセス状態がnormalであると判定すれば(ステップS41:normal)、ステップS46に移行して処理実行部8は共有ライブラリをアドレス空間に割り当てる。ステップS41にてプロセス状態判定部7はプロセス状態がnormal以外であると判定すれば(ステップS46:other)、ステップS42に移行して信頼性判定部9はロードする共有ライブラリの署名をチェックする。信頼性判定部9はステップS43にて署名のチェック結果を判定し、署名が正しくなくチェックエラーであると判定すれば(ステップS43:NG)、処理実行部8はステップS45にてTrusted_To_Normal( )を呼び出してノーマルに移行してから、ステップS46にて共有ライブラリをプロセスのアドレス空間に割り当てる。署名がない場合も署名が正しくないと判定される。信頼性判定部9がステップS43にて署名が正しいと判定すれば(ステップS43:OK)、ステップS44に移行して処理実行部8は共有ライブラリのダイジェストを主記憶装置4上に記憶する。そして、ステップS46にて共有ライブラリをプロセスのアドレス空間に割り当てる。
次に、デクリプトDecrypt( )処理について説明する。これは、暗号化されているページを復号化する処理を追加したものである。以下、図12のフローチャートにより動作を説明する。
プロセス状態判定部7はステップS51にて現在のプロセス状態を確認する。もしcriticalならば(ステップS51:critical)、ステップS54に移行して処理実行部8にページを復号化させリターンする。プロセス状態判定部7がステップS51にてプロセス状態がtrustedと判定すれば(ステップS51:trusted)、ステップS52に移行して処理実行部8はプロセス状態をcriticalに設定してから、ステップS54にてページを復号化しリターンする。プロセス状態判定部7がステップS51にてプロセス状態がnormalと判定すれば(ステップS51:normal)、ステップS53に移行して処理実行部8は実行できないことを表すエラー値を戻り値に設定してリターンする。
次に、トラステッド・トウ・ノーマルTrusted_To_Normal( )処理について説明する。プロセス状態をtrustedからnormalに設定するための追加処理である。以下、図13のフローチャートにより動作を説明する。
始めに、プロセス状態判定部7はステップS55にて現在のプロセス状態を確認する。もしプロセスがtrustedではなくその他の状態であると判定したのならば(ステップS55:other)、信頼性判定部9はプロセスエラーとし、ステップS56のExit( )を呼び出す。プロセス状態判定部7がステップS55にてプロセス状態がtrustedと判定すると(ステップS55:trusted)、ステップS57に移行し、処理実行部8はtrusted capabilityの特権を破棄してから、ステップS58に移行してプロセス状態をnormalに設定しリターンする。
次に、クリティカル・トウ・トラステッドCritical_To_Trusted( )処理について説明する。プロセス状態をcriticalからtrustedに設定するために追加した処理である。以下、図14のフローチャートにより動作を説明する。
始めに、プロセス状態判定部7はステップS61にて現在のプロセス状態を確認する。もしプロセスがcriticalではなくその他の状態であると判定したのならば(ステップS61:other)、信頼性判定部9はプロセスエラーとし、処理実行部8はステップS62のExit( )を呼び出す。プロセス状態判定部7のステップS61にてプロセス状態がcriticalならば(ステップS61:critical)、ステップS63に移行して処理実行部8はプロセス状態をtrustedに設定してリターンする。
Critical_To_Trusted( )は、明示的にプロセス状態をcriticalからtrustedに変更する命令である。critical状態で保持している復号化したデータなどのデータは、プログラム自身が責任を持って消去することが前提である。
次に、トラステッド・トウ・クリティカルTrusted_To_Critical( )処理について説明する。プロセス状態をcriticalからtrustedに設定するために追加した処理である。以下、図15のフローチャートにより動作を説明する。
始めに、プロセス状態判定部7はステップS71にて現在のプロセス状態を確認する。もしプロセスがtrustedではなく他の状態であると判定したのならば(ステップS71:other)、信頼性判定部9はプロセスエラーとし、処理実行部8はステップS72のExit( )を呼び出す。ステップS71にてプロセス状態がtrustedならば(ステップS71:trusted)、ステップS73に移行してプロセス状態をcriticalに設定してリターンする。
次に、ページフォルトPage_Fault( )処理について説明する。ページフォルト例外が発生するとページフォルト例外ハンドラが呼ばれて、外部記憶装置5から主記憶装置4上に必要なページが読み込まれる。読み込まれたページに対して整合性のチェックや復号化を行うので、その処理を追加する。
以下、図16のフローチャートにより動作を説明する。まずプロセス状態判定部7はページフォルト例外発生後、例外を発生させたプロセスの状態を確認する(ステップS81)。もしプロセス状態がnormalならば(ステップS81:normal)、チェックする必要がないページなので、ステップS82のダイジェストの比較は行わない。ステップS81にて現在のプロセス状態がnormalではなく、その他の場合ならば(ステップS81:other)、ステップS82にて信頼性判定部9はページのダイジェストを計算して、そのダイジェストをチェックする。信頼性判定部9が、ダイジェストをチェックした結果、ステップS83にてダイジェストが正しくないと判定すれば(ステップS83:NO)、チェックエラーCheck Errorとし、処理実行部8はステップS84のTrusted_To_Normalを呼び出す。信頼性判定部9は、ステップS83にてダイジェストの結果が正しいと判定すれば(ステップS83:YES)、ステップS85に移行してページが暗号化されているかどうかをチェックする。処理実行部8は、ステップS85にて信頼性判定部9がページが暗号化されていないと判定すると(ステップS85:NO)、リターンする。ステップS85にてページが暗号化されていると判定すれば、ステップS86に移行してDecrypt( )を呼び出す。信頼性判定部9は、ステップS86の復号Decrypt( )に対して、ステップS87では戻り値がエラーであるか否かを判定する。ステップS87にてもしエラーの値が返ってきた(ステップS87:YES)ならば、暗号化されたデータにアクセスできなかったことなので、ステップS88に移行し、処理実行部8はページが獲得できなかったことを表すエラーをセットして、リターンする。ステップS87にて信頼性判定部9がエラーではないと判定すれば(ステップS87:NO)、処理実行部8はリターンする。
次に、イグジットExit( )処理について説明する。プロセスを終了するときに、exitシステムコールが呼ばれるが、exitシステムコールを呼ぶ直前で、クリティカル状態のときにプロセスのデータを主記憶装置上から消去する処理を追加する。
以下、図17のフローチャートにより動作を説明する。先ず、プロセス状態判定部7は、ステップS91にて現在のプロセス状態を確認する。もし、プロセスがcriticalではなく他の状態であると判定すると(ステップS91:other)、処理実行部8はexitシステムコールを呼び出してプロセスを終了する。ステップS91にてプロセス状態がcriticalであると判定すると(ステップS91:critical)、主記憶装置上には復号化したページなどの重要なデータが残っているので、ステップS92にて処理実行部8は主記憶上からプロセスのすべての情報を消去してから、exitシステムコールを呼び出してプロセスを終了する。
次に、一連の流れとしてのプログラムの実行処理について図18及び図19のフローチャートを参照して説明する。Exec( )が呼ばれて、プログラムの実行の準備が整うとプログラムの実行が始まる(ステップS101)。まずはステップS102にて命令を読み込んで、プログラムの実行を開始する。コンピュータ装置1は、ステップS103にて命令が主記憶装置上に存在するか否かを判定し、もしなければ(ステップS103:NO)、ステップS104に移行してPage_Fault( )により、ページのチェックを行ってから、ステップS105にて命令の実行に移る。ステップS103にて命令が主記憶上に存在すると判定すれば(ステップS103:YES)、ステップS105以下にて命令を実行するがステップS106、S108、S110、S112、S114及びS116にて命令を確認してから実行する。
処理実行部8は、ステップS106では、実行する命令がExit( )であるか否かを判定する。Exit( )ならば(ステップS106:YES)、ステップS107に移行しExit( )を呼び出して、プロセスを終了させる。ステップS106にて実行する命令がExit( )でないと判定し(ステップS106:NO)、さらにステップS108にてExec( )であるか否かを判定した結果、Exec( )であると判定したならば(ステップS108:YES)、ステップS109に移行してExec( )を呼び出し、プロセスに適切な状態をセットしてプログラムの実行を開始する。
ステップS108にて命令がExec( )ではないと判定し(ステップS108:NO)、さらにステップS110にてDynamic_link( )であるか否かを判定した結果、Dynamic_link( )であると判定したならば(ステップS110:YES)、ステップS111に移行してDynamic_link( )を呼び出して、プロセスを適切な状態にセットして、共有ライブラリをアドレス空間に割り当てる。呼び出し後、ステップS102に移行して次の命令を読み込む。
ステップS110にて命令がDynamic_link( )ではないと判定し(ステップS110:NO)、さらにステップS112にてTrusted_To_Normal( )であるか否かを判定した結果、Trusted_To_Normal( )であると判定したならば(ステップS112:YES)、ステップS113に移行してTrusted_To_Normal( )を呼び出して、プロセス状態をtrustedからnormalにセットする。処理後、ステップS102に移行して次の命令の読み込みを行う。
ステップS112にて命令がTrusted_To_Normal( )でないと判定し(ステップS112:NO)、さらにステップS114にてTrusted_To_Critical( )であるか否かを判定した結果、Trusted_To_Critical( )であると判定したならば(ステップS114:YES)、ステップS115に移行してTrusted_To_Critical( )を呼び出し、プロセス状態をTrustedからCriticalに設定する。呼び出し後、ステップS102に移行し次の命令を読み込む。
ステップS114にて命令がTrusted_To_Critical( )ではなく(ステップS114:NO)、さらにステップS116にてCritical_To_Trusted( )であるか否かを判定した結果、Critical_To_Trusted( )であると判定したならば(ステップS116:YES)、ステップS117にてCritical_To_Trusted( )を呼び出して、プロセス状態をCriticalからTrustedに設定する。呼び出し後、ステップS102に移行して次の命令を読み込む。
ステップS116にてCritical_To_Trusted( )でないと判定したとき、つまり命令がExec( )、Dynamic_link( )、Trusted_To_Normal( )、Trusted_To_Critical( )、Critical_To_Trusted( )のいずれでもないの場合(ステップS116:NO)には、図19のステップS118に移行してその読み込んだ命令を実行する。ステップS119では、その命令が主記憶装置4上にアクセスする命令であるか否かを判定し、主記憶装置4上にアクセスしない命令ならば(ステップS119:NO)、実行して、ステップS102にて次の命令の読み込みを行い次の命令に移る。
ステップS119にて主記憶上にアクセスする命令であると判定したならば(ステップS119:YES)、ステップS120にてそのアクセス先が主記憶装置上にあるかどうかをチェックする。ステップS120にてアクセス先が主記憶装置上にあると判定すれば(ステップS120:YES)、命令を実行して次の命令に移る(ステップS102)。もしステップS120にて主記憶装置上にアクセス先がないと判定すれば(ステップS120:NO)、ステップS121移行しページフォルト例外が発生してPage_Fault( )を呼び出される。呼出し後、次の命令に移る(ステップS102)。
なお、これまで、Linuxについて例にとって説明を行ってきたが、その他のプロセス単位で管理するシステム全般に応用できることは明らかである。
そのほか、normal状態を禁止する場合や上記の3つ以外にも状態を追加して、管理を行って信頼性を向上させることについても応用は明らかである。
また署名のチェック方法についても、デマンドページングだけでなく実行前にファイル全体をチェックする方法と組み合わせて、プロセスの整合性をチェックできることも明らかである。
コンピュータ装置のハードウェア構成図である。 コンピュータ装置の機能ブロック図である。 リナックスLinuxにおける実行開始プログラムの処理手順を示すフローチャートである。 リナックスLinuxにおける実行プログラムの処理手順を示すフローチャートである。 ダイジェストによりページをチェックする処理を説明するための図である。 ダイジェストにより一部のページに対してのみチェックする処理を説明するための図である。 ダイジェストにより暗号化ページをチェックする処理を説明するための図である。 ダイジェストにより一部の暗号化ページ、ページに対してのみチェックする処理を説明するための図である。 状態遷移図である。 エグゼックExec( )処理の手順を示すフローチャートである。 ダイナミック・リンクDynamic_link( )処理の手順を示すフローチャートである。 デクリプトDecrypt( )処理の手順を示すフローチャートである。 トラステッド・トウ・ノーマルTrusted_To_Normal( )処理の手順を示すフローチャートである。 クリティカル・トウ・トラステッドCritical_To_Trusted( )処理の手順を示すフローチャートである。 トラステッド・トウ・クリティカルTrusted_To_Critical( )処理の手順を示すフローチャートである。 ページフォルトPage_Fault( )処理の手順を示すフローチャートである。 イグジットExit( )処理の手順を示すフローチャートである。 プログラムの実行処理の手順を示すフローチャートである。 プログラムの実行処理の手順を示すフローチャートである。
符号の説明
1 コンピュータ装置、2 CPU、4 主記憶装置、5 外部記憶装置、7 プロセス状態判定部、8 処理実行部、9 信頼性判定部

Claims (16)

  1. オペレーティングシステムによってプログラムの実行をプロセス単位で管理し実行しているコンピュータ装置において、
    プロセスの状態が少なくとも整合性が保たれている状態であるか否かを判定するプロセス状態判定手段と、
    上記プロセス状態判定手段による判定結果に基づいて処理を実行する処理実行手段と
    を備えることを特徴とするコンピュータ装置。
  2. 上記プロセス状態判定手段は、プロセスの状態が整合性が保たれている状態か、或いは整合性が保障されていない通常状態であるかを判定することを特徴とする請求項1記載のコンピュータ装置。
  3. 上記プロセス状態判定手段は、プロセスの状態が整合性が保たれ、かつ保護を必要とする重要データを扱っている状態か、或いは整合性が保障されていない通常状態であるかを判定することを特徴とする請求項1記載のコンピュータ装置。
  4. 上記プロセス状態判定手段は、プロセスの状態が整合性のみ保たれている状態か、或いは整合性が保たれ、かつ保護を必要とする重要データを扱っている状態であるかを判定することを特徴とする請求項1記載のコンピュータ装置。
  5. 上記プロセス状態判定手段は、プロセスの状態が整合性のみ保たれている状態か、整合性が保たれ、かつ保護を必要とする重要データを扱っている状態か、或いは整合性が保障されていない通常状態であるかを判定することを特徴とする請求項1記載のコンピュータ装置。
  6. 上記処理実行手段は、主記憶装置上に読み込まれたプログラムやデータに対して、上記プロセス状態判定手段による判定結果に基づいて処理を実行することを特徴とする請求項1記載のコンピュータ装置。
  7. 上記処理実行手段は、主記憶装置上に読み込まれたプログラムやデータに対して、上記プロセス状態判定手段による判定結果に基づいて復号処理を実行することを特徴とする請求項6記載のコンピュータ装置。
  8. 上記プロセス状態判定手段によって判定されたプロセス状態に応じて、主記憶装置上に読み込まれたプログラムやデータの信頼性を判定する信頼性判定手段をさらに備え、上記処理実行手段は上記信頼性判定手段による判定結果に基づいて処理を実行することを特徴とする請求項1記載のコンピュータ装置。
  9. プログラムの実行をプロセス単位で管理し実行しているプロセス制御方法において、
    プロセスの状態が少なくとも整合性が保たれている状態であるか否かを判定するプロセス状態判定工程と、
    上記プロセス状態判定工程による判定結果に基づいて処理を実行する処理実行工程と
    を備えることを特徴とするプロセス制御方法。
  10. 上記プロセス状態判定工程は、プロセスの状態が整合性が保たれている状態か、或いは整合性が保障されていない通常状態であるかを判定することを特徴とする請求項9記載のプロセス制御方法。
  11. 上記プロセス状態判定工程は、プロセスの状態が整合性が保たれ、かつ保護を必要とする重要データを扱っている状態か、或いは整合性が保障されていない通常状態であるかを判定することを特徴とする請求項9記載のプロセス制御方法。
  12. 上記プロセス状態判定工程は、プロセスの状態が整合性のみ保たれている状態か、或いは整合性が保たれ、かつ保護を必要とする重要データを扱っている状態であるかを判定することを特徴とする請求項9記載のプロセス制御方法。
  13. 上記プロセス状態判定工程は、プロセスの状態が整合性のみ保たれている状態か、整合性が保たれ、かつ保護を必要とする重要データを扱っている状態か、或いは整合性が保障されていない通常状態であるかを判定することを特徴とする請求項9記載のプロセス制御方法。
  14. 上記処理実行工程は、主記憶装置上に読み込まれたプログラムやデータに対して、上記プロセス状態判定工程による判定結果に基づいて処理を実行することを特徴とする請求項9記載のプロセス制御方法。
  15. 上記処理実行工程は、主記憶装置上に読み込まれたプログラムやデータに対して、上記プロセス状態判定工程による判定結果に基づいて復号処理を実行することを特徴とする請求項14記載のプロセス制御方法。
  16. 上記プロセス状態判定工程によって判定されたプロセス状態に応じて、主記憶装置上に読み込まれたプログラムやデータの信頼性を判定する信頼性判定工程をさらに備え、上記処理実行工程は上記信頼性判定工程による判定結果に基づいて処理を実行することを特徴とする請求項9記載のプロセス制御方法。
JP2004006130A 2004-01-13 2004-01-13 コンピュータ装置及びプロセス制御方法 Abandoned JP2005202523A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004006130A JP2005202523A (ja) 2004-01-13 2004-01-13 コンピュータ装置及びプロセス制御方法
US11/034,193 US7461288B2 (en) 2004-01-13 2005-01-12 Computer apparatus and process controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004006130A JP2005202523A (ja) 2004-01-13 2004-01-13 コンピュータ装置及びプロセス制御方法

Publications (1)

Publication Number Publication Date
JP2005202523A true JP2005202523A (ja) 2005-07-28

Family

ID=34820184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004006130A Abandoned JP2005202523A (ja) 2004-01-13 2004-01-13 コンピュータ装置及びプロセス制御方法

Country Status (2)

Country Link
US (1) US7461288B2 (ja)
JP (1) JP2005202523A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532869A (ja) * 2010-07-28 2013-08-19 マカフィー, インコーポレイテッド 悪意のあるソフトウェアに対するローカル保護をするシステム及び方法
US9356909B2 (en) 2011-10-17 2016-05-31 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US9413785B2 (en) 2012-04-02 2016-08-09 Mcafee, Inc. System and method for interlocking a host and a gateway
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US9578052B2 (en) 2013-10-24 2017-02-21 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US9576142B2 (en) 2006-03-27 2017-02-21 Mcafee, Inc. Execution environment file inventory
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US9832227B2 (en) 2010-07-28 2017-11-28 Mcafee, Llc System and method for network level protection against malicious software
US9864868B2 (en) 2007-01-10 2018-01-09 Mcafee, Llc Method and apparatus for process enforced configuration management
US9866528B2 (en) 2011-02-23 2018-01-09 Mcafee, Llc System and method for interlocking a host and a gateway
US10171611B2 (en) 2012-12-27 2019-01-01 Mcafee, Llc Herd based scan avoidance system in a network environment

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751830B2 (en) * 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
US8954755B2 (en) 2012-01-23 2015-02-10 International Business Machines Corporation Memory address translation-based data encryption with integrated encryption engine
US9244840B2 (en) 2012-12-12 2016-01-26 International Business Machines Corporation Cache swizzle with inline transposition
CN103778007B (zh) * 2014-02-14 2018-06-08 北京猎豹移动科技有限公司 一种应用管理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04238536A (ja) 1991-01-22 1992-08-26 Nec Software Ltd 実行形式ファイルの不正改変防止装置
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6640313B1 (en) * 1999-12-21 2003-10-28 Intel Corporation Microprocessor with high-reliability operating mode
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576142B2 (en) 2006-03-27 2017-02-21 Mcafee, Inc. Execution environment file inventory
US10360382B2 (en) 2006-03-27 2019-07-23 Mcafee, Llc Execution environment file inventory
US9864868B2 (en) 2007-01-10 2018-01-09 Mcafee, Llc Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US9832227B2 (en) 2010-07-28 2017-11-28 Mcafee, Llc System and method for network level protection against malicious software
US9467470B2 (en) 2010-07-28 2016-10-11 Mcafee, Inc. System and method for local protection against malicious software
JP2013532869A (ja) * 2010-07-28 2013-08-19 マカフィー, インコーポレイテッド 悪意のあるソフトウェアに対するローカル保護をするシステム及び方法
US9866528B2 (en) 2011-02-23 2018-01-09 Mcafee, Llc System and method for interlocking a host and a gateway
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US9882876B2 (en) 2011-10-17 2018-01-30 Mcafee, Llc System and method for redirected firewall discovery in a network environment
US9356909B2 (en) 2011-10-17 2016-05-31 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US10652210B2 (en) 2011-10-17 2020-05-12 Mcafee, Llc System and method for redirected firewall discovery in a network environment
US9413785B2 (en) 2012-04-02 2016-08-09 Mcafee, Inc. System and method for interlocking a host and a gateway
US10171611B2 (en) 2012-12-27 2019-01-01 Mcafee, Llc Herd based scan avoidance system in a network environment
US9578052B2 (en) 2013-10-24 2017-02-21 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US10205743B2 (en) 2013-10-24 2019-02-12 Mcafee, Llc Agent assisted malicious application blocking in a network environment
US10645115B2 (en) 2013-10-24 2020-05-05 Mcafee, Llc Agent assisted malicious application blocking in a network environment
US11171984B2 (en) 2013-10-24 2021-11-09 Mcafee, Llc Agent assisted malicious application blocking in a network environment

Also Published As

Publication number Publication date
US20060036650A1 (en) 2006-02-16
US7461288B2 (en) 2008-12-02

Similar Documents

Publication Publication Date Title
US7761706B2 (en) Method for controlling access to protected content
EP2420949B1 (en) Information processing system, information processing method, information processing program, computer readable medium and computer data signal
US7721114B2 (en) Method for using shared library in tamper resistant microprocessor
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US6983374B2 (en) Tamper resistant microprocessor
KR101503785B1 (ko) 동적 라이브러리를 보호하는 방법 및 장치
US9594915B2 (en) Information processing apparatus
EP1591904B1 (en) Special-use heaps
JP2005202523A (ja) コンピュータ装置及びプロセス制御方法
WO2005096121A1 (ja) 実行装置
WO2011114655A1 (ja) 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US20100132053A1 (en) Information processing device, information processing method and program
US20070234330A1 (en) Prevention of executable code modification
JP4844102B2 (ja) サブプログラム及びそのサブプログラムを実行する情報処理装置
US20050010752A1 (en) Method and system for operating system anti-tampering
JP5392494B2 (ja) ファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法
KR102871354B1 (ko) 컨테이너 실행 바이너리 검증 시스템 및 방법
CN119862551B (zh) 一种防破解方法、电子设备、存储介质和程序产品
WO2008047830A1 (en) Application information falsification monitoring device and method
JP2009223629A (ja) アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置
WO2011114621A1 (ja) プログラム実行装置、情報処理方法、情報処理プログラム、記録媒体及び集積回路
JP2018005732A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070910

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080509

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080516

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080822

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20090824