JP2001514411A - 信頼できない実行可能コードに関するセキュリティ向上 - Google Patents
信頼できない実行可能コードに関するセキュリティ向上Info
- Publication number
- JP2001514411A JP2001514411A JP2000508048A JP2000508048A JP2001514411A JP 2001514411 A JP2001514411 A JP 2001514411A JP 2000508048 A JP2000508048 A JP 2000508048A JP 2000508048 A JP2000508048 A JP 2000508048A JP 2001514411 A JP2001514411 A JP 2001514411A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- code
- applet
- untrusted
- area
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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
Abstract
Description
行可能プログラムからのシステム損傷を回避することに関する。
de Web)の動的及びインタラクティブなページを作り出す。しかしながら、進歩
はまた、ウェブページを単に見ることから発生する多くのコンピュータシステム
セキュリティリスクを作り出す。インターネットブラウザは、プログラム又は、
ウェブページに埋め込まれた他の実行可能なコードを自動的にダウンロードし、
実行する。リモートコンピュータからプログラムをダウンロードし、実行する能
力は、ホストコンピュータを種々のセキュリティリスクに曝す。例えばコンピュ
ータシステム又は、コンピュータシステムのデータを修正する敵意のあるプログ
ラムは、パスワード、銀行預金口座情報のようなユーザデータを盗み、ユーザに
システムリソースを利用できなくさせる。その結果、セキュリティの問題は、イ
ンターネットアプリケーションの開発において重要である。
能なコードの特定のフォームにセキュリティを設けた。実行可能なコードソース
プログラムは、書き込まれ、プラットフォーム独立バイトコードに変換されダウ
ンロードされる。プラットフォーム独立トークン化されたバイトコードは、実行
可能コードがすることができる厳格な制限を配置する仮想マシーンで走る。従来
技術のアプローチにおける実行可能なコードは、オペレーティングシステムへの
アクセスが非常に制限されていた。従って、Java言語はより強力になるので
、オペレーティングシステムがすでに実行できる多くの関数を複製しなければな
らない。
産物である。ActiveXは、それがインターネットを利用することができるという 特徴をサポートする。例えば、ActiveXコントロールは、Webブラウザによって自
動的にダウンロードされ、実行される。
理することができる。このアクセスは、コントロールが、スタンドアロンアプリ
ケーションに対する拡張のようなきつく制御された環境で稼働するときに、強力
である。しかしながら、ActiveXコントロールが、インターネットエクスプロー ラのようなウェブブラウザのようなアプリケーションによってインターネット上
の知らない又は信用できないソースからダウンロードされるとき、オペレーティ
ングシステムへの十分なアクセスは、深刻なセキュリティの問題を生ずる。Acti
veXコントロールは、いかなるオペレーティングシステムのサービスにもアクセ スするように設計される。敵意のあるActiveXコントロールは、ホストシステム のハードドライブのお情報を検索することができ、ウィルスを注入することがで
き、又は、ホストシステムを損傷させることができた。オペレーティングシステ
ムに対するActiveXの無制限のアクセスによる問題は、無制限のアクセスが、セ キュリティ違反に対するリスクにホストシステムを置くことである。
ーティングシステムのパワーにアクセスする能力を備えた実行可能なコードのフ
ォームの必要性がある。
行可能なコードに関するセキュリティポリシーを実行する。実行可能なコードは
、メモリの外側へのリファレンスが制限される予め割り当てられたメモリ範囲、
即ちサンドボックス内にロードされる。実行中、実行可能なコードに追加された
チェック(「スニフコード(sniff code)」)は、これらの制限を強制する。信
頼されないコードにおける在来のアプリケーションプログラムインターフェース
(API)コールは、ホストシステムのセキュリティの侵害を防止しながら、実
行コードがホストオペレーティングシステムにアクセスすることができる変換コ
ードモジュール(「サンク(thunks)」)で置換される。コントロール又はアプ
レットにおける静的リンクは、コールによってサンクモジュールに置換される。
実行中にAPIコールが作られるとき、コントロールはサンクに移送し、API
コールがオペレーティングシステムで実行されることが許容されるべきか否か判
断する。
、本発明を実施するための特定の実施形態の例示として示したものである。これ
らの実施形態は、当業者が本発明を実施するのに十分に詳細に記載されており、
他の実施形態が利用可能であり、本発明の精神及び範囲を逸脱することなく論理
的及び電気的な変更をすることができることを理解すべきである。それゆえ、以
下の詳細な説明を限定的な意味にとってはならず、本発明の範囲は特許請求の範
囲のみによって定義される。複数の図で表される同一のコンポーネントは同じ参
照番号によって識別される。
的な説明を短く提供するものである。望まないけれども、本発明は、パーソナル
コンピュータによって実行されるプログラムモジュールのようなコンピュータ実
行可能な命令の一般的なコンテキストで記載される。一般的に、プログラムモジ
ュールは、特定のタスクを実行し、又は、特定の抽象データ型を実行する、ルー
チン、プログラム、オブジェクト、コンポーネント、データ構造などを包含する
。更に、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイク
ロプロセッサベース又はプログラム可能なカスタマエレクトロニック、ネットワ
ークPC、ミニコンピュータ、メインフレームコンピュータ、などを包含する他
のコンピュータシステムで実行されうることは、当業者には明らかであろう。本
発明はまた、通信ネットワークを介してリンクされたリモート処理デバイスによ
ってタスクが実行される分散計算環境でも実行される。分散計算環境では、プロ
グラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置される
。
。本発明は、以下において、他の環境でも可能であるが、パーソナルコンピュー
タ(PC)によって実行されるプログラムモジュールのようなコンピュータ実行
可能な命令の一般的なコンテキストとして記載する。プログラムモジュールは、
特定のタスクを実行し、特定の抽象データ型を実行するルーチン、プログラム、
オブジェクト、コンポーネント、データ構造などを包含する。本発明が、ハンド
ヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプ
ログラム可能なカスタマエレクトロニック、ネットワークPC、ミニコンピュー
タ、メインフレームコンピュータ、などを包含する他のコンピュータシステムで
実行されうることは、当業者には明らかであろう。本発明はまた、通信ネットワ
ークを介してリンクされたリモート処理デバイスによってタスクが実行される分
散計算環境でも実行される。分散計算環境では、プログラムモジュールは、ロー
カルとリモートの両方のメモリ記憶装置に配置される。
ルコンピュータ20のフォームにおいて、汎用のコンピュータデバイスを採用し
、該コンピュータは、演算ユニット21と、システムメモリ22と、システムメ
モリ及び他のシステムコンポーネントを演算ユニット21に接続するシステムバ
ス23とを含む。システムバス23は、メモリバス又はメモリコントローラ、周
辺バス、及び、ローカルバスを包含する種々のタイプのものであってよく、多数
のバス構造を使用するものであってよい。システムメモリ22は、ROM24と
RAM25を包含する。ROM24にストアされた基本入力/出力システム(B
IOS)は、パーソナルコンピュータ20のコンポーネントの間に情報を転送す
る基本ルーチンを包含する。BIOS24はまた、システムのスタートアップル
ーチンを包含する。パーソナルコンピュータは更に、ハードディスク(図示せず
)から読み出し、該ディスクに書き込むハードディスクドライブ27と、リムー
バブル磁気ディスク29から読み出し、該ディスク29に書き込む磁気ディスク
ドライブ28と、CD−ROM又は他の光学媒体のようなリムーバブル光ディス
ク31から読み出し、該ディスク31に書き込む光ディスクドライブ30とを包
含する。ハードディスクドライブ27、磁気ディスクドライブ28、及び、光デ
ィスクドライブ30は、ハードディスクドライブインターフェース32と磁気デ
ィスクドライブインターフェース33と、光ディスクドライブインターフェース
34のそれぞれによってシステムバス23に接続される。ドライブ及びそれらの
関係するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能命令、デ
ータ構造、プログラムモジュール、及び、パーソナルコンピュータ20に関する
他のデータの不揮発的なストレージを提供する。ここで記載した例示的な環境は
、ハードディスク、リムーバブル磁気ディスク29及びリムーバブル光ディスク
31を採用するけれども、コンピュータによってアクセス可能なデータをストア
することができる他のタイプのコンピュータ読み取り可能媒体をまた具体的な操
作環境に使用することもできることは当業者にとって明らかであろう。かかる媒
体は、磁気カセット、フラッシュメモリカード、ディジタル汎用ディスク、ベル
ヌーイカートリッジ、RAM、ROM及び同様なものを包含する。
1、ROM24、及びRAM25にストアされうる。プログラムモジュールは、
オペレーティングシステム35と、1又はそれ以上のアプリケーションプログラ
ム36と、他のプログラムモジュール37と、プログラムデータ38とを包含し
うる。ユーザは、ユーザは、キーボード40及びポインティングデバイス42の
ような入力デバイスを介してコマンド及び情報をパーソナルコンピュータに入力
する。他の入力デバイス(図示せず)は、マイクロホン、ジョイスティック、ゲ
ームパッド、衛生アンテナ(サテライト・ディッシュ)、スキャナ等を包含する
。これら及び他の入力デバイスはしばしば、システムバス23に接続されたシリ
アルポートインターフェース46を介して演算ユニット21に接続されるが、そ
れらは、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(US
B)のような図1に示されていない他のインターフェースを介して接続されうる
。モニタ47又は他の表示デバイスまたは、ビデオアダプタ48のようなインタ
ーフェースを介してシステムバス23に接続されうる。モニタに加え、パーソナ
ルコンピュータは典型的には、スピーカ及びプリンタのような楽しゅう偏出力デ
バイス(図示せず)を含む。
れ以上のリモートコンピュータに対して論理的な接続を使用してネットワークさ
れた環境で使用されうる。リモートコンピュータ49は、他のパーソナルコンピ
ュータ、サーバ、ルータ、ネットワークコンピュータ、ピア・デバイス、又は他
の一般的なネットワークノードであってよい。それは典型的には、パーソナルコ
ンピュータ20と接続する上述の多くの又は全てのコンポーネントを包含するが
、記憶装置50だけを図1に例示した。図1に示した論理的な接続は、ローカル
エリアネットワーク(LAN)51及びワイドエリアネットワーク(WAN)5
2を含む。かかるネットワーク環境は、オフィス、企業の広汎なネットワーク、
イントラネット及びインターネットでありふれている。
ーフェイス又はアダプタ53を介してローカルネットワーク51に接続する。イ
ンターネットのようなWANネットワーク環境で使用されるとき、PC20は典
型的にはネットワーク52にわたって通信を確立するためのモデム54又は他の
手段を包含する。モデム54は、PC20の内部又は外部にあってよく、シリア
ルポートインターフェース46を介してシステムバス23に接続する。ネットワ
ーク化された環境では、20内に存在するように示されたプログラムモジュール
又はその一部は、リモート記憶装置50にストアされうる。もちろん、ネットワ
ーク接続は例示的に示されたものであり、コンピュータ間の通信リンクを確立す
る他の手段で置換することができる。
20で稼働する在来のウェブブラウザが、リモートコンピュータ49からアプレ
ットを自動的にダウンロードする。「アプレット」は短いプログラムであり、通
常は単一の関数で実行され、他のアプリケーション内で実行されるように設計さ
れている。アプレットは、それらが必要なときにリモートコンピュータからしば
しばダウンロードされ、それらがプライマリアプリケーションによって実行され
た後、ローカルコンピュータからときどき消去されうる。
どが在来の実行環境を示す。用語「アプレット」は、従来技術において正確に定
義されていない。この用語は一般的には、単一の関数又は制限された範囲の関数
を実行するための小さなプログラムと呼ばれるが、用語は本来は、プログラムの
サイズ又はその関数の範囲を制限されない。アプレットは、特定の目的でWWW
ページのようなオンラインソースからしばしばダウンロードされ、実際には、ア
プレットはダウンロードされるとすぐに実行され、ついで実行後削除される。以
下に記載する好ましい実施形態では、用語「コントロール」又は「ActiveXコン トロール」は、アプレットと同意語と考えて良い。ある場合では、発明それ自身
が小さなプログラム、ダウンロードされたプログラム、又は、他のいかなるプロ
グラムの特定のフォームで使用することを制限しない。本発明は、「信頼される
」ことがないいかなるプログラムについても有用である、即ち、該プログラムと
は、システムリソースに十分にアクセスしたならば、システムを損傷させるかも
知れない、不確実な出所又は効果のプログラムである。
する。プログラム36は、ライン361によって表されるような演算ユニット2
1に命令を直接送信することによって、オペレーティングシステム35の制御下
で実行する。プログラム36は、アプリケーションプログラムインターフェース
(API)コード352−354のブロックを呼び出すことによって標準のAP
Iファンクションを実行する。各APIは、図1のディスプレィ47にダイアロ
グボックスを表示するように、特定のレベルのファンクションを実行するための
プロセッサ21によって直接実行可能な命令を包含する。OS35は、一般的に
、数千の独立したAPIを含んでおり、数ダースのダイナミックリンクライブラ
リ(DLL)として通常パッケージングされており、Microsoft WindowsNTオペ レーティングシステムでは、これらのDLLは、集合名詞的に「Win32」として知ら
れている。
ケーションプログラムが、異なる命令セットを有する別の演算ユニットで実行さ
れる。ここで採用する特定のWx86VMエミュレータ39は、インテル「x86」プ
ロセッサ(80386,80486,ペンティアムなど)用に書かれたプログラ
ムをDigital Equipment Corp.のAlpha及びIBMのPowerPCのようなプロセッサで実
行するためにオリジナルに開発されたものである。それについては、出願中であ
るシリアル番号08/912,454及び08/904,057により詳細に記載してある。本目的に
関して、Wx86VMと呼ばれるいくぶん修正されたバージョンは、殆どの修正されて
いない命令をx88プロセッサ21に通すが、記載するようなその他をブロックし 、変換する。Wx86VMは、「サンクコード」(又は単に「サンク」)391−39
3と呼ばれる変換モジュールによってAPIを実行する際にWx86をまねるが、こ
こでのサンクコードの目的は、セキュリティを提供することであり、異なるプラ
ットフォーム用に書かれたAPIコードを実行するために、あるプラットフォー
ムからAPIコールをすることができるというそれらの本来の目的ではない。
のようなホストプログラム36は、エミュレータ39を呼び出す。エミュレータ
は、アプレットコードを所定のメモリ領域にロードするため、及びそれの使用の
ために別の所定のメモリ領域を割り当てるために、それ自身のローダモジュール
396を採用する。これらの領域は、そのアプレットに関する「サンドボックス
(sandbox)」と呼ばれる。アプレットの実行中、エミュレータ39は、アプレ ットのコードを、サンドボックスの外側に存在するコンパイルされたキャッシュ
にコンパイルする。コンパイルプロセス中、エミュレータはまた、メモリスニフ
(sniff)コード394をキャッシュ内に挿入する。
実行するので、エミュレータ39は、ActiveXコントロールを実行するために( ライン363で表された)個々の命令を変換する必要がない。しかしながら、そ
れは、セキュリティを提供する目的のためにそれらをフィルタリングし、変換す
る。例えば、APIはオペレーティングシステム35のカーネルを呼び出すため
に、x86割り込み(INT)命令を使用する。それ故、コントロールにおける
INT命令は、APIサンク391−393及びスニフコード394をバイバスす ることができ、カーネルを直接呼び出すことができる。それ故、エミュレータ3
9は、この命令を無条件にブロックし、それは、ライン364に全く出力コード
を生成しない。ライン363でのサブルーチンコール(CALL)及びリターン(RE
T)、無条件/条件付のジャンプ(JMP/Jxx)のような他の問題のある命令は、サ
ブルーチンコールによってライン364に置換され、これらの命令のひとつがシ
ミュレーションされたとき、既にコンパイルされたコードのキャッシュは、コー
ル又はジャンプのキャッシュ内の宛先アドレスを判断するために検索される必要
がある。
、それらで何をするか決定する。391でのようないくつかのコールは、サンク
391によって対応するAPI352に直接通され、これらのコールは、システム に大混乱をもたらすことはなく、従って、セキュリティリスクが存在しない。3
92のような他のサンクは、その特定のコールの所定の特徴に依存して、それに
対応するAPI353にコールを通すかどうか決定し、それをAPIに出す前にコールを 修正することができる。393のようなあるサンクは、コールをそれらのAPI354
に完全に認めず、これらのコールは、システムのセキュリティを犯し、信頼でき
ないアプレット362によって許容されない。
ンピュータのセキュリティを有しない全てのオペレーティングシステムサービス
にアクセスすることができる発明のある実施形態の大まかなステップ400を図
示する。
レットを割り当てられたメモリ範囲にロードする。割り当てられたメモリ範囲を
、このアプリケーションではサンドボックスと呼ぶ。サンドボックスは、アプレ
ットをストアするための最初のメモリセグメントと、アプレットを実行する間、
ストレジをアドレス可能にするためのランタイムメモリセグメントとの両方を含
み、これらは在来のいかなる手段でも割り当てられ得る。この実施形態では、OS
35は、ステップ411でエミュレータ39を呼び出す。ステップ412は、アプ
レット362のコードをストアするために、図1のRAM22におけるアドレス
の領域及び範囲を割り当て、ランタイムワーキングストレージを使用するための
アプレットに関する他の領域を割り当て、これらの2つの領域は、他のいかなる
アプレット、アプリケーションプログラム、又は他のシステムのファシリティに
影響を与えることなく、安全に実行することができるサンドボックスを一緒に構
成する。それらは、各セキュリティドメインのためのひとつのXW86サンドボック
スとなる、即ち同じセキュリティ設定を有する全てのコントロールが同じサンド
ボックスでプレイする。セキュリティ設定がウェブページのURL(uniform re
source locator)を含むので、各オープンウェブページは、少なくとも1つのサ
ンドボックスを有する。通常、同じウェブページの全てのコントローラは、同じ
サンドボックスにある。それらのカスタムインターフェースが安全でないけれど
も、サンドボックス内でインターアプレットを実行することは許容される。
ルと置換する。即ち、エミュレータ39は、アプレット362のコード内でAPI3
52-354に対する全てのコールを見つけ、それらを対応するサンク391−393
に対するコールに変更する。静的リンクは、アプレットの実行中、一定を維持す
るリンクである。DLL即ちダイナミックリンクライブラリは、実行可能な関数の ライブラリ、又は、Windowsアプリケーションによって使用することができるデ ータである。典型的には、DLLは、1又はそれ以上の特定の関数を提供し、DLLは
、DLLに対する静的又は動的なリンクのいずれかを生成することによってアクセ スされる。DLLは、最後に拡張子.dllを備える記述でファイルされる。サンクDLL
は、サンドボックス内の安全なAPIである。サンクDLLは、安全であると考えられ
ない多くのAPIをブロックし、制限する。例えば、CreateFileが知られたロケー ションにだけ許容されうる。同様に、アプレットは、パスワードを記録するため
の他の処理を生成することができない。上述のように、いくつかのサンクは、対
応するAPIにコントロールを単に通す。例えば、「CreateWindow」、「CreateDia
log」、「CreateIcon」、「CreateCursor」と名付けられたWin32API及び同様な 関数は、他のプロセスに影響せず、信頼できないコードを許容しうる。一方、所
定の他のAPIは、信頼できないコードを完全に利用できなくさせなければならな い。例えば、「CreateProcess」を許容することにより、信頼できないアプレッ トをサンドボックスの外側で別のプログラムを実行することができ、「ExitWind
owsEx()」のようなオペレーションを完全にブロックすることができ、それによ り、信頼できないコードは現在のユーザをログオフすることができず、コンピュ
ータをオフにすることができない。393のようなサンクが、ライン395によ
って表示されたコントロールにエラーコードバックを戻すことによってAPIをブ ロックする。
endMessageサンクにより、ActiveXコントロールがメッセージをそのコントロー ルによって生成されたウィンドウに送信することができる。しかしながら、サン
クは、ウェブブラウザによって、又は他のアプリケーションプログラムによるそ
れ自身の全てのメッセージをブロックする。このことにより、コントロールが、
他のプログラムに属するウィンドウによって実行されるべきであるキーストロー
クをまねるためにVM_CHARメッセージを送信することによってセキュリティを侵 害することを防止する。
pCreate」のようなWin32APIを含む。これらのAPIに関するサンクは、対応するAP
Iの全体のコードを組み込み、サンドボックスメモリ内で完全に実行するように リコンパイルし、サンドボックスの境界内のみでメモリを割り当てることができ
る。
よって実行されうるオブジェクトコードにコンパイルする。コードが要求された
ものになったとき、コンパイルは直ちに又はパート毎に全て進行し、コンパイル
されたコードは、サンドボックスの外側に配置された図4のコンパイルされたキ
ャッシュ357に配置される。これらの方法におけるコンパイルは、在来のもの
であり、発明の本質には関係しない。
ためにアプレット自身のコードにチェックコードを挿入する。「スニフ(sniff )コード」と呼ばれるこのチェックコードは、アプレットのコードによって全て
のメモリの読み書きを調べ、その結果からそれらを許可し、又は許可しない。ア
プレットがサンドボックスの外側のメモリにアクセスするのを防止することによ
り、アプレットのセキュリティは向上する。予め割り当てられた範囲からだけの
アプレットに対して全てのメモリを提供することにより、スニフコードオーバー
ヘッドを低減させ、その結果、メモリ範囲の効率的なチェックを生じる。更なる
最適化技術が、基本のブロックレベルでコードをコンパイルすることによって追
加される。例えば、種々のメモリリファレンスが同じレジスタを使用するアプレ
ットによってなされるならば、コンパイラは、各アクセスに関するスニフコード
に対する別々のコールを生成するのではなく、一回だけそのレジスタによってア
ドレス可能な全体の範囲をチェックすることができる。詳細な例を図4と一緒に
示す。基本的には、スニフコードによって、割り当てられたサンドボックス内と
、システムを損傷しない所定の他のメモリ内とだけで、アプレットがRAMアド
レスを参照することができる。(エミュレータ39がサンドボックスの外側でメ
モリを参照することができないが、それはサンドボックスにメモリ領域を割り当
てるための能力を有する。デバイス独立ビットマップイメージのような目的に関
して、余分のスニフコードオーバーヘッドは労力より小さく、さもなければ最初
のサンドボックス領域内にイメージをコピーするように要求される。) ステップ430は、アプレットを実行する。ステップ431は、命令シーケン
スに続く。
3で実行され、ステップ434で更に処理され、次いで、ブロックされ又は許可
されうるかどうか判断する。
ならば、ステップ436がその命令を実行することができる。もしそうでなけれ
ば、ステップ437は、リファレンスがさもなければ許容されるかどうか判断す
る。もしそうならば、ステップ435はそれを実行し、さもなければ、ステップ
438はアクセスをブロックし、エラーを返す。スニフコードはこれらのステッ
プを実行する。他のX86命令は、ステップ436によって直接実行される。各命 令の後、コントロールはステップ431に戻る。プロセス400は、ホストアプ
リケーションがそれを終了するまで、続く。
33−1は、APIの引数の「ディープコピー(deep copy)」を実行し、ブロック
433−2は、APIからの戻り値をディープコピーする。更に特別に、ステップ 433がAPIを実行するとき、ステップ433−1は、APIが実際にコールされる
前に、サンドボックス内のそれらの位置から、サンドボックスの外の別の位置に
、APIに通された全ての引数を最初にコピーする。アプレット自身がこのコピー にアクセスすることができないので、APIは、既に保存されているデータだけを 有効にする。ステップ433は、次いで、サンドボックスの外に、戻り値を置き
、APIコンポーネントを実行した後、ステップ433−2は、アプレットの使用 のためにサンドボックスの内側に戻り値をコピーする。所望ならば、ディープコ
ピーが、選択的に使用されうる。
マップである。予め割り当てられた範囲251は、サンドボックスを形成する。
それは、アプレット362と、アプレットの実行中に、アドレス可能なワーキン
グストレージに関するランタイムメモリセグメント252と、変換コードサンク
391−393(ここではサンク391としてだけ示す)をストアするためのセ
グメントと、をストアするための最初のメモリセグメントを包含する。サンドボ
ックス251の外側のメモリ22は、ここでは352によって表されるAPI
DLLと、カーネル32355とを包含する。他のワーキングメモリ領域は、356 として表される。コンパイルされたキャッシュ357はまた、サンドボックス2
15の外側に配置される。セキュリティポリシーが実際に実行されることがここ
であるので、サンドボックス215の外側のWHKRNL32325の位置は、特に重要
であり、それがサンドボックスの内側にあるならば、ルージュアプレットが、そ
れを修正することによってセキュリティを妥協することができうる。
86Win32アプレットを実行するための前述のWx86VMエミュレータを利用し、Win
dows95又はWindowsNTオペレーティングシステム下でx86プラットフォームで 修正されずにコントロールする。
ンターネットからハードドライブのc:\temp\foo.ocxに、foo.ocxと呼ばれるActi
veXコントロール(アプレット)をダウンロードする。拡張子.ocxはActiveXコン
トロールを示す。
探す。Wx86VMコンポーネントが利用可能であるならば、インターネットエクスプ
ローラは、それを呼び出し、コントロールに関する全てのセキュリティに関する
情報を提供し、ロードされるべきコントロールを要求する。Wx86VMコンポーネン
トは、インターネットエクスプローラがそれを提供し、Wx86VMにそれを送り出す
か、オブジェクトリンカをOLE32に行かせるかどうか判断するセキュリティ情報 を調べ、それを取り扱う。
はメモリの割り当てられた領域、又は、ActiveXコントロールに関するサンドボ ックスを生成する。Wx86VMは、ActiveXコントロール(図4では362と示す)f
oo.ocxをサンドボックス内にロードする。
たようなオペレーティングシステムローダ内でDLLの名前を修正することができ る。このことにより、Wx86VMは、規定を呼び出す際に違いを取り扱うために、x8
6イメージと本来のAPIとの間にサンクコードを挿入することができる。再配置す
るための名前のリストは、レジストリにストアされる。例えば、カーネル32(
図4では355)は、(図4ではサンク391と示す)wikrnl32に再配置され、
user32.dllはwiuser32.dllに再配置される。APIサンクは次の2つのDLLから構成
される:1つは、Wx86VM内で稼働する「wi」という接頭辞が付いたDLLであり、 今後は信頼性がなく、他のひとつはWx86VMの外側で稼働し、「wh」という接頭辞
が付いたDLLであり、安全ポリシーを実行するために信頼される。
する。これらのエクスポートは、サンドボックスの外でスイッチングをするため
にWx86VMに対して応答可能であり、次いで、安全モードにおいて適当なサンクを
呼び出し、これは更に、そのAPIに関してセキュリティポリシーを実行する。特 定のAPIに関するセキュリティがないならば、サンクは単に本来のAPIを呼び出す
。「BOP」と呼ばれるこのコールは、典型的には、モードスイッチが起こるのを 必要とするWx86.dllを合図する無効なx86 opcodeである。BOPコマンドは、フォ ーム「BOP(DLL#,API#)」を有する。Wx86VMが、DLLがサンドボックスのレジスタ セット及びスタックにアクセスする、(図4ではwhkrnl32352のような)「wh
」という接頭辞であるホストサイドサンクDLLにBOPをディスパッチするとき、DL
Lは、パラメータをサンドボックスのスタックから本来のスタックにコピーし、A
PIの引数を検査し、コールを作り、サンドボックスのEAXレジスタに戻り値を戻 すように移動させることができる。
chBop()をWx86VMI.dllに呼び出す。Wx86DispatchBop()は、コールをwhkrnl32!wh
CreateFile()にディスパッチする。その関数は、ネイティブkernel32!CreateFil
e()を呼び出し、戻り値をシミュレーションされたEAXレジスタにコピーし、戻る
。
ルされたキャッシュに置くことにより始まる。コンパイルされたコードは、メモ
リ読み書きオペレーションが安全なオペレーションであることを確認するために
それにおいてスニフチェックを有する。アクセスされるメモリが、所定のサンド
ボックス領域の外側であるならば、メモリにアクセスする試みのオペレーション
は失敗する。例えば、アプレットfoo.ocxが命令MOV EAX,[ESI+4]を包含するなら
ば、コンパイラは、命令が安全であることを確認するためのMOV命令の前にスニ フコードを挿入する。以下の命令: MOV EAX,[ESI+4] は、スニフコードが挿入された後に、 LEA ECX,[ESI+4] CALL SNIFFREAD4.ECX MOV EAX,[ECX] となる。
ドをコンパイルするとき、追加の最適化技術は適用されうる。例えば、アプレッ
トが同じレジスタを使用する種々のメモリリファレンスを作るならば、コンパイ
ラは、一回だけ全体の範囲をチェックし、個々のスニフコールを生成しない。ア
プレットfoo.ocxが以下の命令を包含するならば、 MOV EAX,[ESI+4] MOV EDX,[ESI+8] スニフコードは、以下のように挿入される: LEA EAX,[ESI+4] CALL SNIFFREAD8.ECX MOV EAX,[ECX] MOV EDX,[ESI+4] むしろ、より小さな効率的な仕方でスニフコードを挿入する: LEA EAX,[ESI+4] CALL SNIFFREAD4.ECX MOV EAX,[ECX] LEA EAX,[ESI+4] CALL SNIFFREAD4.ECX MOV EDX,[ECX] 上の記述は例示的なものであり、制限的なものではない。上の記述をみれば、
当業者にとって多くの他の実施形態が明らかである。それ故、本発明の範囲は、
特許請求の範囲と均等な範囲とあわせて、特許請求の範囲を参照して決定される
べきである。
Claims (20)
- 【請求項1】 メモリ及びインターフェースモジュールを有するパーソナルコンピュータプラ
ットフォームで直接実行するために書かれた信頼されないプログラムを実行する
ための方法であって、 信頼されないプログラムに関してメモリの所定の境界領域を割り当て、 信頼されないプログラムを境界メモリ領域内にロードし、 境界領域の外側のメモリに対してリファレンスをブロックするための信頼され
たプログラム内にチェックコードを配置し、 インターフェースモジュールの所定のひとつの実行をパスし、ブロックするた
めの変換コードモジュールに対するリンクを備えるインターフェースモジュール
に対するコードにリンクを置換し、 信頼されないプログラムを実行する、 ステップからなる方法。 - 【請求項2】 境界メモリ領域が更に、信頼されなプログラムに関するワーキングストレージ
の領域を包含することを特徴とする、請求項1に記載の方法。 - 【請求項3】 チェックコードが、全体としてメモリアドレスのブロックで作動することを特
徴とする、請求項2に記載の方法。 - 【請求項4】 変換コードモジュールの第1のセットが、インターフェースモジュールの対応
するセットに直接アクセスすることを特徴とする、請求項1に記載の方法。 - 【請求項5】 変換コードモジュールの第2のセットが、インターフェースモジュールの第2
の対応するセットにアクセスすることを特徴とする、請求項4に記載の方法。 - 【請求項6】 信頼されないプログラムをストアするためのメモリの所定の境界領域を割り当
て、 信頼されないプログラムを境界メモリ領域内にロードし、 境界領域の外側のメモリに対してリファレンスをブロックするための信頼され
たプログラム内にチェックコードを配置し、 インターフェースモジュールの所定のひとつの実行をパスし、ブロックするた
めの変換コードモジュールに対するリンクを備えるインターフェースモジュール
に対するコードにリンクを置換する、 コンピュータ実行可能命令コードを包含するコンピュータ読み取り可能記憶媒
体。 - 【請求項7】 ネイティブプロセッサと、 メモリと、 該ネイティブプロセッサと、 該ネイティブプロセッサによって直接実行可能であるネイティブコード で書かれた信頼されないプログラムを実行するためのエミュレータと、 オペレーティングシステムのインターフェースモジュールを使用すること
によって実行可能であるオペレーティングシステムと、 を有するコンピュータシステムであって、 エミュレータが、 信頼されないプログラムをメモリの境界領域内にロードするためのロードモジ
ュールと、 メモリの境界領域の外で、信頼されないプログラムによるアクセスを制限する
ための信頼されないプログラム内に挿入可能なチェックコードと、 オペレーティングシステムのインターフェースモジュールの対応するセットに
アクセスするための信頼されないプログラムにリンク可能な変換コードモジュー
ルのセットと、 を備える、コンピュータシステム。 - 【請求項8】 メモリ及びオペレーティングシステムを備えるネイティブコンピュータプラッ
トフォームで直接実行するように書かれた信頼されないプログラムを実行するた
めの方法であって、 信頼されないプログラムに関してメモリの所定の境界領域を割り当て、 信頼されないプログラムを境界メモリ領域内にロードし、 境界領域の外側のメモリに対するリファレンスをブロックするために、信頼さ
れないプログラム内にチェックコードを配置する、 ステップを有する方法。 - 【請求項9】 信頼されないプログラムに関するランタイムワーキングストレージとして境界
メモリ領域の一部を割り当てることを更に有する、請求項8に記載の方法。 - 【請求項10】 複数の更なるコードモジュールを境界メモリ領域内にロードすることを更に有
し、該コードモジュールが信頼されないプログラムにアクセス可能である、 ことを特徴とする請求項8に記載の方法。 - 【請求項11】 メモリ及びオペレーティングシステムを備えるネイティブコンピュータプラッ
トフォームで直接実行するように書かれた信頼されないプログラムを実行するた
めの方法であって、該オペレーティングシステムが、信頼されないプログラムに
よってリンク可能なインターフェースモジュールのセットを包含し、 インターフェースモジュールの所定のサブセットに対応する変換コードモジュ
ールのセットを構築し、該変換コードモジュールが、サブセットにおけるインタ
ーフェースモジュールのそれぞれにコントロールをパスすることができ、 変換コードモジュールの対応するものに対するリンクを備えるインターフェー
スモジュールに信頼されないプログラムコードのリンクを置換し、信頼されない
プログラムによってインターフェースモジュールのあるひとつだけの実行をする
ことができる、 ステップを有する方法。 - 【請求項12】 信頼されないコードにアクセス可能なメモリの境界領域内に変換コードモジュ
ールのセットをストアする、 ことを更に有する請求項11に記載の方法。 - 【請求項13】 アプレットに関するセキュリティを提供する方法であって、 アプレットを予め割り当てられたメモリ範囲内にロードし、予め割り当てられ
たメモリ範囲が、アプレットをストアするための最初のメモリセグメントと、ア
プレットによってメモリアクセスが予め割り当てられたメモリ範囲に制限される
ようにアプレットの実行中にアクセス可能なストレージに関するランタイムメモ
リセグメントとの両方を包含し、 危険なAPIに対する各静的なコントロールリンクをサンクDLLと置換し、
アプレットによって作られた危険なAPIコールが制限される、 ステップを有する方法。 - 【請求項14】 アプレットに関するセキュリティを提供する方法であって、 アプレットを予め割り当てられたメモリ範囲にロードし、 アプレットにおける各静的コントロールリンクをサンクDLLと置換し、 アプレットを実行し、 APIコールがアプレットによって作られるとき、コントロールをDLLに転
送し、 APIコールがオペレーティングシステムで実行することができ、それによっ
てアプレットに関するセキュリティが提供され得るかどうか判断するために、定
のセキュリティルールを適用する、 ステップを有する方法。 - 【請求項15】 ロードステップの予め割り当てられたメモリ範囲が、コントロールランタイム
に関するメモリを包含する、請求項14に記載のアプレットに関するセキュリテ
ィを提供する方法。 - 【請求項16】 実行ステップが、予め割り当てられたメモリ範囲に対するコントロールによる
メモリアクセスを制限するようにスニフコードを利用する、請求項14に記載の
アプレットに関するセキュリティを提供する方法。 - 【請求項17】 スニフコードが、パフォーマンスを向上するようにメモリブロックで稼働する
、請求項16に記載のアプレットに関するセキュリティを提供する方法。 - 【請求項18】 安全なAPIを利用する予め割り当てられたメモリ範囲の外側で、コールを移
送するステップを更に包含する、請求項14に記載のアプレットに関するセキュ
リティを提供する方法。 - 【請求項19】 ウェブベースのアプリケーションを実行するコンピュータシステムに関するセ
キュリティを提供する方法であって、 ウェブベースのアプリケーションを介して実行可能なコードをダウンロードし
、 メモリの所定の領域内に実行可能なコードをロードするためにWx86VMを 使用し、 コンピュータシステムのセキュリティが破壊されないように、メモリの 所定の領域に対する実行可能なコードの直接のアクセスを晴天するため にWx86VMを使用して、 実行可能なコードのソースが信頼されないソースであるかどうか、 生成された実行可能なコードからソースを判断する、 ステップを有する方法。 - 【請求項20】 アプレットを予め割り当てられたメモリ領域内にロードし、該予め割り当てら
れた領域が、最初のメモリセグメント割り当てと、アプレットによるメモリアク
セスが予め割り当てられたメモリ領域に制限されるようなランタイムメモリセグ
メント割り当てと、の両方を包含し、 アプレットにおける各静的コントロールリンクをサンクDLLで置換し、危険
なAPIコールが制限される、 ことを有するステップを実行するためにWx86VMを利用するコンピュータ実行可能
な命令を有するコンピュータ読み取り可能媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/919,844 US6275938B1 (en) | 1997-08-28 | 1997-08-28 | Security enhancement for untrusted executable code |
US08/919,844 | 1997-08-28 | ||
PCT/US1998/017553 WO1999010795A1 (en) | 1997-08-28 | 1998-08-25 | Security enhancement for untrusted executable code |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003394633A Division JP4528517B2 (ja) | 1997-08-28 | 2003-11-25 | 信頼されないプログラムを実行するための方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001514411A true JP2001514411A (ja) | 2001-09-11 |
JP3572016B2 JP3572016B2 (ja) | 2004-09-29 |
Family
ID=25442736
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000508048A Expired - Fee Related JP3572016B2 (ja) | 1997-08-28 | 1998-08-25 | 信頼されないプログラムを実行するための方法 |
JP2003394633A Expired - Fee Related JP4528517B2 (ja) | 1997-08-28 | 2003-11-25 | 信頼されないプログラムを実行するための方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003394633A Expired - Fee Related JP4528517B2 (ja) | 1997-08-28 | 2003-11-25 | 信頼されないプログラムを実行するための方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6275938B1 (ja) |
EP (1) | EP1021753B1 (ja) |
JP (2) | JP3572016B2 (ja) |
DE (1) | DE69802834T2 (ja) |
WO (1) | WO1999010795A1 (ja) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302516A (ja) * | 2003-03-28 | 2004-10-28 | Ntt Docomo Inc | 端末装置およびプログラム |
JP2006092495A (ja) * | 2004-09-27 | 2006-04-06 | Toshiba Kyaria Kk | マイクロコンピュータのデータ記憶方法 |
JP2007512560A (ja) * | 2003-11-25 | 2007-05-17 | サジエム・コミユニカシオン | ビデオ投射方法および装置 |
JP2008027306A (ja) * | 2006-07-24 | 2008-02-07 | Aplix Corp | ユーザ空間仮想化システム |
JP2008523471A (ja) * | 2004-12-06 | 2008-07-03 | マイクロソフト コーポレーション | ダイナミックトランスレーションによる先取りコンピュータマルウェアの保護 |
US7421713B2 (en) | 2002-06-12 | 2008-09-02 | Matsushita Electric Industrial Co., Ltd. | Safe service extension platform |
JP2009505275A (ja) * | 2005-08-15 | 2009-02-05 | ソニー エリクソン モバイル コミュニケーションズ, エービー | モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム |
JP2009506439A (ja) * | 2005-08-25 | 2009-02-12 | フォーティファイ ソフトウェア, インコーポレイテッド | セキュリティを提供するためのプログラムの解析および補完のための装置および方法 |
WO2010016332A1 (ja) * | 2008-08-07 | 2010-02-11 | ソニー株式会社 | 通信装置、通信方法、及びプログラム |
JP2010511227A (ja) * | 2006-11-28 | 2010-04-08 | マイクロソフト コーポレーション | 信頼性の低いアドレス空間への実行コードのコンパイル |
JP5061908B2 (ja) * | 2005-12-27 | 2012-10-31 | 日本電気株式会社 | プログラム実行制御方法および装置ならびに実行制御プログラム |
US8347392B2 (en) | 2005-08-25 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Apparatus and method for analyzing and supplementing a program to provide security |
US8838950B2 (en) | 2003-06-23 | 2014-09-16 | International Business Machines Corporation | Security architecture for system on chip |
JP2017016669A (ja) * | 2011-07-20 | 2017-01-19 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 信頼レベルのアクティブ化 |
CN107408053A (zh) * | 2015-04-10 | 2017-11-28 | 谷歌公司 | 到本原客户端的二进制翻译 |
Families Citing this family (224)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9219755B2 (en) | 1996-11-08 | 2015-12-22 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
US8079086B1 (en) | 1997-11-06 | 2011-12-13 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
US7058822B2 (en) | 2000-03-30 | 2006-06-06 | Finjan Software, Ltd. | Malicious mobile code runtime monitoring system and methods |
US6536520B1 (en) | 2000-04-17 | 2003-03-25 | Weatherford/Lamb, Inc. | Top drive casing system |
IL121815A (en) * | 1997-09-22 | 2000-09-28 | Security 7 Software Ltd | Method and system for the identification and the suppression of executable objects |
US7047369B1 (en) * | 1997-09-25 | 2006-05-16 | Aladdin Knowledge Systems Ltd. | Software application environment |
US6584495B1 (en) * | 1998-01-30 | 2003-06-24 | Microsoft Corporation | Unshared scratch space |
US6480952B2 (en) | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US6691230B1 (en) * | 1998-10-15 | 2004-02-10 | International Business Machines Corporation | Method and system for extending Java applets sand box with public client storage |
JP2000122814A (ja) * | 1998-10-15 | 2000-04-28 | Hitachi Ltd | 拡張型ネットワーク接続二次記憶方法及び装置 |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
IL143592A0 (en) | 1998-12-07 | 2002-04-21 | Network Ice Corp | A method and apparatus for remote installation of network drivers and software |
WO2000034867A1 (en) | 1998-12-09 | 2000-06-15 | Network Ice Corporation | A method and apparatus for providing network and computer system security |
FR2790844B1 (fr) * | 1999-03-09 | 2001-05-25 | Gemplus Card Int | Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme |
US7451484B1 (en) * | 1999-05-27 | 2008-11-11 | International Business Machines Corporation | Method for enabling a program written in untrusted code to interact with a security subsystem of a hosting operating system |
US6779117B1 (en) * | 1999-07-23 | 2004-08-17 | Cybersoft, Inc. | Authentication program for a computer operating system |
US7346929B1 (en) | 1999-07-29 | 2008-03-18 | International Business Machines Corporation | Method and apparatus for auditing network security |
US7089591B1 (en) | 1999-07-30 | 2006-08-08 | Symantec Corporation | Generic detection and elimination of marco viruses |
US6968539B1 (en) * | 1999-09-30 | 2005-11-22 | International Business Machines Corporation | Methods and apparatus for a web application processing system |
US7281268B2 (en) * | 1999-11-14 | 2007-10-09 | Mcafee, Inc. | System, method and computer program product for detection of unwanted processes |
US8006243B2 (en) | 1999-12-07 | 2011-08-23 | International Business Machines Corporation | Method and apparatus for remote installation of network drivers and software |
US7765581B1 (en) | 1999-12-10 | 2010-07-27 | Oracle America, Inc. | System and method for enabling scalable security in a virtual private network |
US7336790B1 (en) | 1999-12-10 | 2008-02-26 | Sun Microsystems Inc. | Decoupling access control from key management in a network |
GB2359908B (en) * | 2000-03-04 | 2004-09-15 | Motorola Inc | Communication system architecture and method of controlling data download to subscriber equipment |
US6836888B1 (en) * | 2000-03-17 | 2004-12-28 | Lucent Technologies Inc. | System for reverse sandboxing |
EP1277326A2 (en) | 2000-04-28 | 2003-01-22 | Internet Security Systems, Inc. | Method and system for managing computer security information |
AU2001257400A1 (en) | 2000-04-28 | 2001-11-12 | Internet Security Systems, Inc. | System and method for managing security events on a network |
US6907396B1 (en) * | 2000-06-01 | 2005-06-14 | Networks Associates Technology, Inc. | Detecting computer viruses or malicious software by patching instructions into an emulator |
US7184982B1 (en) | 2000-06-23 | 2007-02-27 | Ebs Group Limited | Architecture for anonymous trading system |
US7024386B1 (en) | 2000-06-23 | 2006-04-04 | Ebs Group Limited | Credit handling in an anonymous trading system |
US7827085B1 (en) | 2000-06-23 | 2010-11-02 | Ebs Group Limited | Conversational dealing in an anonymous trading system |
US6983259B1 (en) | 2000-06-23 | 2006-01-03 | Ebs Group Limited | Anonymous trading system |
US7366690B1 (en) | 2000-06-23 | 2008-04-29 | Ebs Group Limited | Architecture for anonymous trading system |
GB2364586B (en) | 2000-06-23 | 2004-06-16 | Ebs Nominees Ltd | Deal matching in an anonymous trading system |
US7333952B1 (en) | 2000-06-23 | 2008-02-19 | Ebs Group Limited | Compound order handling in an anonymous trading system |
US6907531B1 (en) | 2000-06-30 | 2005-06-14 | Internet Security Systems, Inc. | Method and system for identifying, fixing, and updating security vulnerabilities |
US7093239B1 (en) | 2000-07-14 | 2006-08-15 | Internet Security Systems, Inc. | Computer immune system and method for detecting unwanted code in a computer system |
US7178166B1 (en) * | 2000-09-19 | 2007-02-13 | Internet Security Systems, Inc. | Vulnerability assessment and authentication of a computer by a local scanner |
US9027121B2 (en) | 2000-10-10 | 2015-05-05 | International Business Machines Corporation | Method and system for creating a record for one or more computer security incidents |
US7086090B1 (en) * | 2000-10-20 | 2006-08-01 | International Business Machines Corporation | Method and system for protecting pervasive devices and servers from exchanging viruses |
US20020066022A1 (en) * | 2000-11-29 | 2002-05-30 | Brad Calder | System and method for securing an application for execution on a computer |
US7779117B2 (en) | 2002-05-31 | 2010-08-17 | Aol Inc. | Monitoring digital images |
US7260845B2 (en) * | 2001-01-09 | 2007-08-21 | Gabriel Kedma | Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems |
US7613930B2 (en) * | 2001-01-19 | 2009-11-03 | Trustware International Limited | Method for protecting computer programs and data from hostile code |
US20020178375A1 (en) * | 2001-01-31 | 2002-11-28 | Harris Corporation | Method and system for protecting against malicious mobile code |
AU2002244083A1 (en) | 2001-01-31 | 2002-08-12 | Timothy David Dodd | Method and system for calculating risk in association with a security audit of a computer network |
WO2002093334A2 (en) * | 2001-04-06 | 2002-11-21 | Symantec Corporation | Temporal access control for computer virus outbreaks |
US20020154635A1 (en) * | 2001-04-23 | 2002-10-24 | Sun Microsystems, Inc. | System and method for extending private networks onto public infrastructure using supernets |
AU2002344308A1 (en) * | 2001-05-31 | 2002-12-09 | Internet Security Systems, Inc. | Method and system for implementing security devices in a network |
US20030167350A1 (en) * | 2001-06-07 | 2003-09-04 | Curl Corporation | Safe I/O through use of opaque I/O objects |
US7657419B2 (en) | 2001-06-19 | 2010-02-02 | International Business Machines Corporation | Analytical virtual machine |
US6920550B2 (en) * | 2001-11-15 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | System and method for decoding and executing program binaries |
US20030101439A1 (en) * | 2001-11-29 | 2003-05-29 | Giuseppe Desoli | System and method for supporting emulation of a computer system through dynamic code caching and transformation |
US6928536B2 (en) * | 2001-11-29 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Dynamic execution layer interface for replacing instructions requiring unavailable hardware functionality with patch code and caching |
US7051340B2 (en) * | 2001-11-29 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | System and method for isolating applications from each other |
US6915513B2 (en) * | 2001-11-29 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for dynamically replacing code |
US6907519B2 (en) | 2001-11-29 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for integrating emulated and native code |
US20030101381A1 (en) * | 2001-11-29 | 2003-05-29 | Nikolay Mateev | System and method for virus checking software |
US7673137B2 (en) | 2002-01-04 | 2010-03-02 | International Business Machines Corporation | System and method for the managed security control of processes on a computer system |
US7607171B1 (en) | 2002-01-17 | 2009-10-20 | Avinti, Inc. | Virus detection by executing e-mail code in a virtual machine |
US9652613B1 (en) | 2002-01-17 | 2017-05-16 | Trustwave Holdings, Inc. | Virus detection by executing electronic message code in a virtual machine |
US7340777B1 (en) * | 2003-03-31 | 2008-03-04 | Symantec Corporation | In memory heuristic system and method for detecting viruses |
US7162715B1 (en) | 2002-03-16 | 2007-01-09 | I-Squared, Inc. | Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation |
US20030182653A1 (en) * | 2002-03-22 | 2003-09-25 | Giuseppe Desoli | Systems and methods for verifying correct execution of emulated code via dynamic state verification |
WO2003084176A1 (en) * | 2002-03-28 | 2003-10-09 | Oleksiy Yuryevich Shevchenko | Method and device for computer memory protection against unauthorized access |
US20030192035A1 (en) * | 2002-04-09 | 2003-10-09 | Duesterwald Ald Evelyn | Systems and methods for implementing efficient execution transfers between successive translations of stack-based program code in a virtual machine environment |
US7155742B1 (en) | 2002-05-16 | 2006-12-26 | Symantec Corporation | Countering infections to communications modules |
US7367056B1 (en) | 2002-06-04 | 2008-04-29 | Symantec Corporation | Countering malicious code infections to computer files that have been infected more than once |
AU2003238908A1 (en) | 2002-06-06 | 2003-12-22 | Green Border Technologies | Method and system for implementing a secure application execution environment using derived user accounts for internet content |
US7418729B2 (en) * | 2002-07-19 | 2008-08-26 | Symantec Corporation | Heuristic detection of malicious computer code by page tracking |
US7380277B2 (en) | 2002-07-22 | 2008-05-27 | Symantec Corporation | Preventing e-mail propagation of malicious computer code |
US7478431B1 (en) | 2002-08-02 | 2009-01-13 | Symantec Corporation | Heuristic detection of computer viruses |
US20040025165A1 (en) * | 2002-08-05 | 2004-02-05 | Giuseppe Desoli | Systems and methods for extending operating system functionality for an application |
US7730965B2 (en) | 2002-12-13 | 2010-06-08 | Weatherford/Lamb, Inc. | Retractable joint and cementing shoe for use in completing a wellbore |
US20040133441A1 (en) * | 2002-09-04 | 2004-07-08 | Jeffrey Brady | Method and program for transferring information from an application |
US7469419B2 (en) * | 2002-10-07 | 2008-12-23 | Symantec Corporation | Detection of malicious computer code |
US7159149B2 (en) * | 2002-10-24 | 2007-01-02 | Symantec Corporation | Heuristic detection and termination of fast spreading network worm attacks |
US7249187B2 (en) * | 2002-11-27 | 2007-07-24 | Symantec Corporation | Enforcement of compliance with network security policies |
US7938201B2 (en) | 2002-12-13 | 2011-05-10 | Weatherford/Lamb, Inc. | Deep water drilling with casing |
US7631353B2 (en) * | 2002-12-17 | 2009-12-08 | Symantec Corporation | Blocking replication of e-mail worms |
FR2849314B1 (fr) * | 2002-12-18 | 2005-03-04 | France Telecom | Procede de communication entre deux unites, et composant logiciel de confiance pour sa mise en oeuvre |
US7594111B2 (en) * | 2002-12-19 | 2009-09-22 | Massachusetts Institute Of Technology | Secure execution of a computer program |
US7603704B2 (en) * | 2002-12-19 | 2009-10-13 | Massachusetts Institute Of Technology | Secure execution of a computer program using a code cache |
US7296293B2 (en) * | 2002-12-31 | 2007-11-13 | Symantec Corporation | Using a benevolent worm to assess and correct computer security vulnerabilities |
US7913303B1 (en) | 2003-01-21 | 2011-03-22 | International Business Machines Corporation | Method and system for dynamically protecting a computer system from attack |
USRE42877E1 (en) | 2003-02-07 | 2011-11-01 | Weatherford/Lamb, Inc. | Methods and apparatus for wellbore construction and completion |
US7203959B2 (en) | 2003-03-14 | 2007-04-10 | Symantec Corporation | Stream scanning through network proxy servers |
KR100509650B1 (ko) * | 2003-03-14 | 2005-08-23 | 주식회사 안철수연구소 | 코드 삽입 기법을 이용한 악성 스크립트 감지 방법 |
US20060130016A1 (en) * | 2003-03-17 | 2006-06-15 | Wagner John R | Method of kernal-mode instruction interception and apparatus therefor |
US7194732B2 (en) * | 2003-06-26 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | System and method for facilitating profiling an application |
US7650944B1 (en) | 2003-07-11 | 2010-01-26 | Weatherford/Lamb, Inc. | Vessel for well intervention |
US8271774B1 (en) | 2003-08-11 | 2012-09-18 | Symantec Corporation | Circumstantial blocking of incoming network traffic containing code |
US8539063B1 (en) | 2003-08-29 | 2013-09-17 | Mcafee, Inc. | Method and system for containment of networked application client software by explicit human input |
US7464408B1 (en) * | 2003-08-29 | 2008-12-09 | Solidcore Systems, Inc. | Damage containment by translation |
FR2859548B1 (fr) * | 2003-09-09 | 2005-11-25 | France Telecom | Procede de surveillance de l'execution de programmes sur un ordinateur |
US7421680B2 (en) * | 2003-09-22 | 2008-09-02 | Microsoft Corporation | Persisted specifications of method pre-and post-conditions for static checking |
US7444678B2 (en) * | 2003-10-28 | 2008-10-28 | Aol Llc | Securing resources from untrusted scripts behind firewalls |
US7657938B2 (en) | 2003-10-28 | 2010-02-02 | International Business Machines Corporation | Method and system for protecting computer networks by altering unwanted network data traffic |
US7840968B1 (en) | 2003-12-17 | 2010-11-23 | Mcafee, Inc. | Method and system for containment of usage of language interfaces |
US7984304B1 (en) * | 2004-03-02 | 2011-07-19 | Vmware, Inc. | Dynamic verification of validity of executable code |
US7783735B1 (en) | 2004-03-22 | 2010-08-24 | Mcafee, Inc. | Containment of network communication |
US7337327B1 (en) | 2004-03-30 | 2008-02-26 | Symantec Corporation | Using mobility tokens to observe malicious mobile code |
US20050246773A1 (en) * | 2004-04-29 | 2005-11-03 | Microsoft Corporation | System and methods for processing partial trust applications |
US8108902B2 (en) * | 2004-04-30 | 2012-01-31 | Microsoft Corporation | System and method for local machine zone lockdown with relation to a network browser |
US7373667B1 (en) | 2004-05-14 | 2008-05-13 | Symantec Corporation | Protecting a computer coupled to a network from malicious code infections |
US7484094B1 (en) | 2004-05-14 | 2009-01-27 | Symantec Corporation | Opening computer files quickly and safely over a network |
US7370233B1 (en) | 2004-05-21 | 2008-05-06 | Symantec Corporation | Verification of desired end-state using a virtual machine environment |
US8707251B2 (en) * | 2004-06-07 | 2014-04-22 | International Business Machines Corporation | Buffered viewing of electronic documents |
US7908653B2 (en) * | 2004-06-29 | 2011-03-15 | Intel Corporation | Method of improving computer security through sandboxing |
US7484247B2 (en) | 2004-08-07 | 2009-01-27 | Allen F Rozman | System and method for protecting a computer system from malicious software |
US7441042B1 (en) | 2004-08-25 | 2008-10-21 | Symanetc Corporation | System and method for correlating network traffic and corresponding file input/output traffic |
US7873955B1 (en) | 2004-09-07 | 2011-01-18 | Mcafee, Inc. | Solidifying the executable software set of a computer |
US7690034B1 (en) | 2004-09-10 | 2010-03-30 | Symantec Corporation | Using behavior blocking mobility tokens to facilitate distributed worm detection |
US8819639B2 (en) * | 2004-09-15 | 2014-08-26 | Lakeside Software, Inc. | System for selectively blocking execution of applications on a computer system |
JP4845467B2 (ja) | 2004-11-08 | 2011-12-28 | 株式会社エヌ・ティ・ティ・ドコモ | デバイス管理装置、デバイス及びデバイス管理方法 |
US7565686B1 (en) | 2004-11-08 | 2009-07-21 | Symantec Corporation | Preventing unauthorized loading of late binding code into a process |
WO2006101549A2 (en) | 2004-12-03 | 2006-09-28 | Whitecell Software, Inc. | Secure system for allowing the execution of authorized computer program code |
US20060123398A1 (en) * | 2004-12-08 | 2006-06-08 | Mcguire James B | Apparatus and method for optimization of virtual machine operation |
US20060156400A1 (en) * | 2005-01-06 | 2006-07-13 | Gbs Laboratories Llc | System and method for preventing unauthorized access to computer devices |
US7456837B2 (en) * | 2005-01-10 | 2008-11-25 | International Business Machines Corporation | Optimized specular highlight generation |
US8104086B1 (en) | 2005-03-03 | 2012-01-24 | Symantec Corporation | Heuristically detecting spyware/adware registry activity |
US7603552B1 (en) * | 2005-05-04 | 2009-10-13 | Mcafee, Inc. | Piracy prevention using unique module translation |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US7856661B1 (en) | 2005-07-14 | 2010-12-21 | Mcafee, Inc. | Classification of software on networked systems |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8245270B2 (en) | 2005-09-01 | 2012-08-14 | Microsoft Corporation | Resource based dynamic security authorization |
US8484232B2 (en) * | 2005-11-22 | 2013-07-09 | International Business Machines Corporation | Method, computer arrangement, computer program and computer program product for checking for the presence of control statements in a data value |
US8166295B2 (en) * | 2005-11-30 | 2012-04-24 | Microsoft Corporation | Message security framework |
US8572729B1 (en) * | 2006-01-30 | 2013-10-29 | Mcafee, Inc. | System, method and computer program product for interception of user mode code execution and redirection to kernel mode |
US7757269B1 (en) | 2006-02-02 | 2010-07-13 | Mcafee, Inc. | Enforcing alignment of approved changes and deployed changes in the software change life-cycle |
US7926105B2 (en) * | 2006-02-28 | 2011-04-12 | Microsoft Corporation | Using security-related attributes |
US7895573B1 (en) | 2006-03-27 | 2011-02-22 | Mcafee, Inc. | Execution environment file inventory |
US7870387B1 (en) | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
US8352930B1 (en) | 2006-04-24 | 2013-01-08 | Mcafee, Inc. | Software modification by group to minimize breakage |
US7814556B2 (en) * | 2006-05-09 | 2010-10-12 | Bea Systems, Inc. | System and method for protecting APIs from untrusted or less trusted applications |
US7979891B2 (en) * | 2006-05-09 | 2011-07-12 | Oracle International Corporation | Method and system for securing execution of untrusted applications |
GB2451784B (en) | 2006-05-12 | 2011-06-01 | Weatherford Lamb | Stage cementing methods used in casing while drilling |
US8555404B1 (en) | 2006-05-18 | 2013-10-08 | Mcafee, Inc. | Connectivity-based authorization |
US8276689B2 (en) | 2006-05-22 | 2012-10-02 | Weatherford/Lamb, Inc. | Methods and apparatus for drilling with casing |
EP2033145B1 (en) * | 2006-06-15 | 2011-04-06 | Kabushiki Kaisha Toshiba | Portable electronic device and control method thereof |
US20080022378A1 (en) * | 2006-06-21 | 2008-01-24 | Rolf Repasi | Restricting malicious libraries |
US8185737B2 (en) | 2006-06-23 | 2012-05-22 | Microsoft Corporation | Communication across domains |
US8250082B2 (en) | 2006-06-23 | 2012-08-21 | Microsoft Corporation | Cross domain communication |
US8239915B1 (en) | 2006-06-30 | 2012-08-07 | Symantec Corporation | Endpoint management using trust rating data |
US8020206B2 (en) | 2006-07-10 | 2011-09-13 | Websense, Inc. | System and method of analyzing web content |
US8151352B1 (en) * | 2006-07-14 | 2012-04-03 | Bitdefender IPR Managament Ltd. | Anti-malware emulation systems and methods |
US20080046724A1 (en) * | 2006-07-25 | 2008-02-21 | General Dynamics C4 System, Inc. | Method for governing interaction between code within a code base |
US9424154B2 (en) | 2007-01-10 | 2016-08-23 | Mcafee, Inc. | Method of and system for computer system state checks |
US8332929B1 (en) | 2007-01-10 | 2012-12-11 | Mcafee, Inc. | Method and apparatus for process enforced configuration management |
US20080263679A1 (en) * | 2007-04-23 | 2008-10-23 | Microsoft Corporation | Storing information in closed computing devices |
US8402529B1 (en) | 2007-05-30 | 2013-03-19 | M86 Security, Inc. | Preventing propagation of malicious software during execution in a virtual machine |
US10019570B2 (en) * | 2007-06-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Protection and communication abstractions for web browsers |
US7671567B2 (en) * | 2007-06-15 | 2010-03-02 | Tesla Motors, Inc. | Multi-mode charging system for an electric vehicle |
US8195931B1 (en) | 2007-10-31 | 2012-06-05 | Mcafee, Inc. | Application change control |
US8245289B2 (en) | 2007-11-09 | 2012-08-14 | International Business Machines Corporation | Methods and systems for preventing security breaches |
US20090158302A1 (en) * | 2007-12-13 | 2009-06-18 | Fiberlink Communications Corporation | Api translation for network access control (nac) agent |
US20090158407A1 (en) * | 2007-12-13 | 2009-06-18 | Fiberlink Communications Corporation | Api translation for network access control (nac) agent |
US8607324B2 (en) * | 2008-01-15 | 2013-12-10 | Microsoft Corporation | Untrusted gaming system access to online gaming service |
US8621495B2 (en) | 2008-01-18 | 2013-12-31 | Microsoft Corporation | Methods and apparatus for securing frames from other frames |
US8515075B1 (en) | 2008-01-31 | 2013-08-20 | Mcafee, Inc. | Method of and system for malicious software detection using critical address space protection |
WO2009103742A2 (en) | 2008-02-18 | 2009-08-27 | Martin Boesgaard | Authenticating a web page with embedded javascript |
US8316101B2 (en) * | 2008-03-15 | 2012-11-20 | Microsoft Corporation | Resource management system for hosting of user solutions |
US8615502B2 (en) | 2008-04-18 | 2013-12-24 | Mcafee, Inc. | Method of and system for reverse mapping vnode pointers |
US9058483B2 (en) * | 2008-05-08 | 2015-06-16 | Google Inc. | Method for validating an untrusted native code module |
US8424082B2 (en) * | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
US8230499B1 (en) | 2008-05-29 | 2012-07-24 | Symantec Corporation | Detecting and blocking unauthorized downloads |
US8510753B2 (en) * | 2008-06-27 | 2013-08-13 | Microsoft Corporation | Untrusted component hosting |
US8621424B2 (en) * | 2008-06-30 | 2013-12-31 | Yahoo! Inc. | Compiler based code modification for use in document ranking |
US8353033B1 (en) * | 2008-07-02 | 2013-01-08 | Symantec Corporation | Collecting malware samples via unauthorized download protection |
US9176754B2 (en) * | 2008-07-16 | 2015-11-03 | Google Inc. | Method and system for executing applications using native code modules |
US8484721B2 (en) * | 2008-08-04 | 2013-07-09 | Moka5, Inc. | Locked-down computing environment |
US8522200B2 (en) * | 2008-08-28 | 2013-08-27 | Microsoft Corporation | Detouring in scripting systems |
US8510713B1 (en) | 2008-10-31 | 2013-08-13 | Google Inc. | Method and system for validating a disassembler |
US8294723B2 (en) | 2008-11-07 | 2012-10-23 | Google Inc. | Hardware-accelerated graphics for web applications using native code modules |
US8675000B2 (en) * | 2008-11-07 | 2014-03-18 | Google, Inc. | Command buffers for web-based graphics rendering |
US10419541B2 (en) * | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US8745361B2 (en) | 2008-12-02 | 2014-06-03 | Microsoft Corporation | Sandboxed execution of plug-ins |
US8544003B1 (en) | 2008-12-11 | 2013-09-24 | Mcafee, Inc. | System and method for managing virtual machine configurations |
US20100199357A1 (en) * | 2009-02-02 | 2010-08-05 | Microsoft Corporation | Secure hosting for untrusted code |
US9117071B2 (en) | 2009-06-03 | 2015-08-25 | Apple Inc. | Methods and apparatuses for secure compilation |
US8677329B2 (en) | 2009-06-03 | 2014-03-18 | Apple Inc. | Methods and apparatuses for a compiler server |
US8797337B1 (en) | 2009-07-02 | 2014-08-05 | Google Inc. | Graphics scenegraph rendering for web applications using native code modules |
US8561183B2 (en) | 2009-07-31 | 2013-10-15 | Google Inc. | Native code module security for arm instruction set architectures |
US8341627B2 (en) | 2009-08-21 | 2012-12-25 | Mcafee, Inc. | Method and system for providing user space address protection from writable memory area in a virtual environment |
US8381284B2 (en) | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
US9552497B2 (en) | 2009-11-10 | 2017-01-24 | Mcafee, Inc. | System and method for preventing data loss using virtual machine wrapped applications |
US8850428B2 (en) | 2009-11-12 | 2014-09-30 | Trustware International Limited | User transparent virtualization method for protecting computer programs and data from hostile code |
US8621619B2 (en) * | 2009-12-03 | 2013-12-31 | Google Inc. | Dynamic code insertion for static analysis based sandboxes |
US8495607B2 (en) | 2010-03-01 | 2013-07-23 | International Business Machines Corporation | Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations |
US8850573B1 (en) * | 2010-04-14 | 2014-09-30 | Google Inc. | Computing device with untrusted user execution mode |
US8925101B2 (en) | 2010-07-28 | 2014-12-30 | Mcafee, Inc. | System and method for local protection against malicious software |
US8938800B2 (en) | 2010-07-28 | 2015-01-20 | Mcafee, Inc. | System and method for network level protection against malicious software |
US8549003B1 (en) | 2010-09-12 | 2013-10-01 | Mcafee, Inc. | System and method for clustering host inventories |
US9075993B2 (en) | 2011-01-24 | 2015-07-07 | Mcafee, Inc. | System and method for selectively grouping and managing program files |
JP5739182B2 (ja) | 2011-02-04 | 2015-06-24 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 制御システム、方法およびプログラム |
JP5731223B2 (ja) | 2011-02-14 | 2015-06-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 異常検知装置、監視制御システム、異常検知方法、プログラムおよび記録媒体 |
JP5689333B2 (ja) | 2011-02-15 | 2015-03-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 異常検知システム、異常検知装置、異常検知方法、プログラムおよび記録媒体 |
US9112830B2 (en) | 2011-02-23 | 2015-08-18 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
WO2012117465A1 (ja) * | 2011-03-02 | 2012-09-07 | パナソニック株式会社 | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 |
US20130179287A1 (en) * | 2011-08-08 | 2013-07-11 | Gennady SLOBODSKIY | System and method for electronic distribution of software and data |
US9594881B2 (en) | 2011-09-09 | 2017-03-14 | Mcafee, Inc. | System and method for passive threat detection using virtual memory inspection |
US8694738B2 (en) | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
US9069586B2 (en) | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US8973144B2 (en) | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US8800024B2 (en) | 2011-10-17 | 2014-08-05 | Mcafee, Inc. | System and method for host-initiated firewall discovery in a network environment |
US8713668B2 (en) | 2011-10-17 | 2014-04-29 | Mcafee, Inc. | System and method for redirected firewall discovery in a network environment |
US8739272B1 (en) | 2012-04-02 | 2014-05-27 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
RU2514141C1 (ru) | 2012-09-28 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции |
US8973146B2 (en) | 2012-12-27 | 2015-03-03 | Mcafee, Inc. | Herd based scan avoidance system in a network environment |
US9262597B2 (en) | 2013-03-15 | 2016-02-16 | Microsoft Technology Licensing, Llc | Validating normalized code representations |
WO2015060857A1 (en) | 2013-10-24 | 2015-04-30 | Mcafee, Inc. | Agent assisted malicious application blocking in a network environment |
EP3158489A4 (en) * | 2014-06-20 | 2018-03-14 | Waratek Limited | Enhanced security for java virtual machines |
US9413774B1 (en) | 2014-10-27 | 2016-08-09 | Palo Alto Networks, Inc. | Dynamic malware analysis of a URL using a browser executed in an instrumented virtual machine environment |
US20170039390A1 (en) * | 2015-08-08 | 2017-02-09 | James Alexander KING | Methods and systems for privacy preserving third party extension |
RU2618946C1 (ru) * | 2015-12-18 | 2017-05-11 | Акционерное общество "Лаборатория Касперского" | Способ блокировки доступа к данным на мобильных устройствах с использованием API для пользователей с ограниченными возможностями |
CN106682498B (zh) * | 2016-08-16 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 样本的执行方法和装置 |
US10628138B2 (en) | 2018-02-09 | 2020-04-21 | International Business Machines Corporation | Automated management of undesired code use based on predicted valuation and risk analysis |
TWI669624B (zh) * | 2018-09-19 | 2019-08-21 | 宏碁股份有限公司 | 網頁內容自我保護方法以及伺服器 |
US11573910B2 (en) | 2019-08-22 | 2023-02-07 | Intel Corporation | Apparatus, system and method to define memory information leak zones in a computing system |
EP3786826A1 (en) * | 2019-08-30 | 2021-03-03 | Barclays Execution Services Limited | Secure validation pipeline in a third party cloud environment |
CN111787088B (zh) | 2020-06-28 | 2023-04-28 | 百度在线网络技术(北京)有限公司 | 小程序数据处理的方法和装置 |
US11902453B2 (en) * | 2021-06-25 | 2024-02-13 | Intel Corporation | Method, system and apparatus for delayed production code signing for heterogeneous artifacts |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0378031A (ja) * | 1989-08-22 | 1991-04-03 | Nec Corp | 例外検査/代入文オブジェクトの削除方式 |
US5398196A (en) * | 1993-07-29 | 1995-03-14 | Chambers; David A. | Method and apparatus for detection of computer viruses |
JPH07230380A (ja) * | 1994-02-15 | 1995-08-29 | Internatl Business Mach Corp <Ibm> | 適用業務プログラムの利用管理方法およびシステム |
JPH08194504A (ja) * | 1995-01-13 | 1996-07-30 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
JPH1083310A (ja) * | 1996-06-11 | 1998-03-31 | Internatl Business Mach Corp <Ibm> | プログラム・コードの配布方法及びシステム |
JPH10124324A (ja) * | 1996-10-01 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | アプレットを非ipネットワーク上で実行する方法及びコンピュータ・ワークステーション |
JP2000516740A (ja) * | 1996-08-09 | 2000-12-12 | サイトリクス システムズ(ケンブリッジ)リミテッド | 切り離された実行位置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60245097A (ja) * | 1984-05-18 | 1985-12-04 | ブラザー工業株式会社 | ソフトウエア販売装置 |
US4982430A (en) * | 1985-04-24 | 1991-01-01 | General Instrument Corporation | Bootstrap channel security arrangement for communication network |
US4688169A (en) * | 1985-05-30 | 1987-08-18 | Joshi Bhagirath S | Computer software security system |
US4796220A (en) * | 1986-12-15 | 1989-01-03 | Pride Software Development Corp. | Method of controlling the copying of software |
JPS63310043A (ja) * | 1987-06-12 | 1988-12-19 | Nec Corp | プログラムの不正アドレスアクセス検出方式 |
US5222134A (en) * | 1990-11-07 | 1993-06-22 | Tau Systems Corporation | Secure system for activating personal computer software at remote locations |
JP3485940B2 (ja) * | 1992-03-31 | 2004-01-13 | 株式会社東芝 | 仮想記憶制御装置及び方法 |
CA2145068A1 (en) | 1992-09-21 | 1994-03-31 | Ric Bailier Richardson | System for software registration |
US5390314A (en) | 1992-10-09 | 1995-02-14 | American Airlines, Inc. | Method and apparatus for developing scripts that access mainframe resources that can be executed on various computer systems having different interface languages without modification |
US5983012A (en) | 1993-09-28 | 1999-11-09 | Bull Hn Information Systems Inc. | Executing programs of a first system on a second system |
US5644709A (en) | 1994-04-21 | 1997-07-01 | Wisconsin Alumni Research Foundation | Method for detecting computer memory access errors |
US5842017A (en) * | 1996-01-29 | 1998-11-24 | Digital Equipment Corporation | Method and apparatus for forming a translation unit |
US5850446A (en) * | 1996-06-17 | 1998-12-15 | Verifone, Inc. | System, method and article of manufacture for virtual point of sale processing utilizing an extensible, flexible architecture |
US5812668A (en) * | 1996-06-17 | 1998-09-22 | Verifone, Inc. | System, method and article of manufacture for verifying the operation of a remote transaction clearance system utilizing a multichannel, extensible, flexible architecture |
US6167522A (en) * | 1997-04-01 | 2000-12-26 | Sun Microsystems, Inc. | Method and apparatus for providing security for servers executing application programs received via a network |
-
1997
- 1997-08-28 US US08/919,844 patent/US6275938B1/en not_active Expired - Lifetime
-
1998
- 1998-08-25 EP EP98941045A patent/EP1021753B1/en not_active Expired - Lifetime
- 1998-08-25 WO PCT/US1998/017553 patent/WO1999010795A1/en active IP Right Grant
- 1998-08-25 JP JP2000508048A patent/JP3572016B2/ja not_active Expired - Fee Related
- 1998-08-25 DE DE69802834T patent/DE69802834T2/de not_active Expired - Lifetime
-
2003
- 2003-11-25 JP JP2003394633A patent/JP4528517B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0378031A (ja) * | 1989-08-22 | 1991-04-03 | Nec Corp | 例外検査/代入文オブジェクトの削除方式 |
US5398196A (en) * | 1993-07-29 | 1995-03-14 | Chambers; David A. | Method and apparatus for detection of computer viruses |
JPH07230380A (ja) * | 1994-02-15 | 1995-08-29 | Internatl Business Mach Corp <Ibm> | 適用業務プログラムの利用管理方法およびシステム |
JPH08194504A (ja) * | 1995-01-13 | 1996-07-30 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
JPH1083310A (ja) * | 1996-06-11 | 1998-03-31 | Internatl Business Mach Corp <Ibm> | プログラム・コードの配布方法及びシステム |
JP2000516740A (ja) * | 1996-08-09 | 2000-12-12 | サイトリクス システムズ(ケンブリッジ)リミテッド | 切り離された実行位置 |
JPH10124324A (ja) * | 1996-10-01 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | アプレットを非ipネットワーク上で実行する方法及びコンピュータ・ワークステーション |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421713B2 (en) | 2002-06-12 | 2008-09-02 | Matsushita Electric Industrial Co., Ltd. | Safe service extension platform |
JP2004302516A (ja) * | 2003-03-28 | 2004-10-28 | Ntt Docomo Inc | 端末装置およびプログラム |
US8838950B2 (en) | 2003-06-23 | 2014-09-16 | International Business Machines Corporation | Security architecture for system on chip |
JP2007512560A (ja) * | 2003-11-25 | 2007-05-17 | サジエム・コミユニカシオン | ビデオ投射方法および装置 |
JP2006092495A (ja) * | 2004-09-27 | 2006-04-06 | Toshiba Kyaria Kk | マイクロコンピュータのデータ記憶方法 |
JP4669687B2 (ja) * | 2004-09-27 | 2011-04-13 | 東芝キヤリア株式会社 | マイクロコンピュータのデータ記憶方法 |
JP2008523471A (ja) * | 2004-12-06 | 2008-07-03 | マイクロソフト コーポレーション | ダイナミックトランスレーションによる先取りコンピュータマルウェアの保護 |
JP2009505275A (ja) * | 2005-08-15 | 2009-02-05 | ソニー エリクソン モバイル コミュニケーションズ, エービー | モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム |
JP2009506439A (ja) * | 2005-08-25 | 2009-02-12 | フォーティファイ ソフトウェア, インコーポレイテッド | セキュリティを提供するためのプログラムの解析および補完のための装置および方法 |
US8347392B2 (en) | 2005-08-25 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Apparatus and method for analyzing and supplementing a program to provide security |
JP5061908B2 (ja) * | 2005-12-27 | 2012-10-31 | 日本電気株式会社 | プログラム実行制御方法および装置ならびに実行制御プログラム |
JP2008027306A (ja) * | 2006-07-24 | 2008-02-07 | Aplix Corp | ユーザ空間仮想化システム |
JP2010511227A (ja) * | 2006-11-28 | 2010-04-08 | マイクロソフト コーポレーション | 信頼性の低いアドレス空間への実行コードのコンパイル |
WO2010016332A1 (ja) * | 2008-08-07 | 2010-02-11 | ソニー株式会社 | 通信装置、通信方法、及びプログラム |
JP2010039913A (ja) * | 2008-08-07 | 2010-02-18 | Sony Corp | 通信装置、通信方法、及びプログラム |
CN102112992A (zh) * | 2008-08-07 | 2011-06-29 | 索尼公司 | 通信装置、通信方法及程序 |
JP2017016669A (ja) * | 2011-07-20 | 2017-01-19 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 信頼レベルのアクティブ化 |
CN107408053A (zh) * | 2015-04-10 | 2017-11-28 | 谷歌公司 | 到本原客户端的二进制翻译 |
JP2018510433A (ja) * | 2015-04-10 | 2018-04-12 | グーグル エルエルシー | ネイティブ・クライアントへのバイナリ変換 |
US10162617B2 (en) | 2015-04-10 | 2018-12-25 | Google Llc | Binary translation into native client |
Also Published As
Publication number | Publication date |
---|---|
EP1021753A1 (en) | 2000-07-26 |
EP1021753B1 (en) | 2001-12-05 |
JP4528517B2 (ja) | 2010-08-18 |
DE69802834D1 (de) | 2002-01-17 |
DE69802834T2 (de) | 2002-09-12 |
US6275938B1 (en) | 2001-08-14 |
JP2004118866A (ja) | 2004-04-15 |
WO1999010795A1 (en) | 1999-03-04 |
JP3572016B2 (ja) | 2004-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3572016B2 (ja) | 信頼されないプログラムを実行するための方法 | |
US20200257804A1 (en) | Method for Validating an Untrusted Native Code Module | |
US9536079B2 (en) | Safely executing an untrusted native code module on a computing device | |
US9116717B2 (en) | Run-time interception of software methods | |
US8595832B1 (en) | Masking mechanism that facilitates safely executing untrusted native code | |
US8336095B2 (en) | User space virtualization system | |
US9223964B2 (en) | Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking | |
US6834391B2 (en) | Method and apparatus for automated native code isolation | |
JP3377087B2 (ja) | ソフトウェア・コンポーネントを処理および配布するための方法および装置 | |
Li et al. | Iso-UniK: lightweight multi-process unikernel through memory protection keys | |
Abrath et al. | Resilient self-debugging software protection | |
US20220147376A1 (en) | Selective substitution of legacy load module programs with classes for execution in a java virtual machine | |
Goonasekera et al. | LibVM: an architecture for shared library sandboxing | |
van t Noordende et al. | A secure jailing system for confining untrusted applications | |
Govindarajan | Applications and Enhancements of Featherweight Virtual Machine (FVM) | |
KR20090093930A (ko) | 유저 공간 가상화 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040427 |
|
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: 20040528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040625 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070702 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 9 |
|
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: R313113 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |