JP5054768B2 - 侵入検出のための方法と装置 - Google Patents

侵入検出のための方法と装置 Download PDF

Info

Publication number
JP5054768B2
JP5054768B2 JP2009515734A JP2009515734A JP5054768B2 JP 5054768 B2 JP5054768 B2 JP 5054768B2 JP 2009515734 A JP2009515734 A JP 2009515734A JP 2009515734 A JP2009515734 A JP 2009515734A JP 5054768 B2 JP5054768 B2 JP 5054768B2
Authority
JP
Japan
Prior art keywords
protected
software
intrusion
program
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009515734A
Other languages
English (en)
Other versions
JP2009541825A (ja
Inventor
リュディガー キューグラー、
ピア ヴィヒマン、
オリヴァー ヴィンツェンリート、
マルセラス ブーフハイト、
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WIBU Systems AG
Original Assignee
WIBU Systems AG
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 WIBU Systems AG filed Critical WIBU Systems AG
Publication of JP2009541825A publication Critical patent/JP2009541825A/ja
Application granted granted Critical
Publication of JP5054768B2 publication Critical patent/JP5054768B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Description

本発明は、プロセッサと少なくともプロセッサメモリとを備えているコンピュータ装置上の保護されているコンピュータソフトウェアの実行を妨害する侵入プログラムの攻撃を検出することによって、コンピュータソフトウェアを保護する方法と装置とに関する。
サーバ装置を外部クライアントからのアクセスから保護するために、サーバ−クライアントネットワーク環境を保護する多くの攻撃防止装置が、記述されている。一般に、サーバ側には、外部クライアントからサーバに向けられているトラフィックによって起動されたアクセスプロシージャと動作とを分析する監視プロセスが、存在している。通常の動作パターンとの比較によって、アクセスが、許可されたり拒否される。Alcatelからの米国特許出願第2005273855号は、例えば、出願には詳細には記述されていない(またその出願の特許の一部ではない)専用の攻撃防止装置が、サーバ装置へのアクセスを許可したり拒否したりするためにアクセス制御機能によって使用されるブラックリストを保持している、装置を記述している。攻撃防止装置は、装置へのアクセスのしやすさを管理するために、複数のコマンドを、サーバのアクセス制限機能に送信するのに必要である。
他の従来技術(Choo、米国特許明細書第4,932,054号)は、コンピュータの通信ポートに差し込まれるソフトウェア保護ハードウェア装置に一体化されているフィルタコンポーネントを記述している。この装置は、アプリケーションプログラムの保護に使用される制御ソフトウェアの複数のコマンドに起因して通信ポートから出力される複数のビットまたは複数のビットの組み合わせを選択するものである。複数のフィルタコンポーネントが、参照コードに一致する「偽装所定制御コード」の複数のビットを選択し、それによって、保護装置内の機能を起動するために使用されるフィルタコンポーネントから、出力が行われる。
米国特許出願公開第2005/273855号明細書 米国特許第4932054号明細書
本発明の目的は、コンピュータ装置上のアプリケーションソフトウェアへの侵入を検出する方法を提供することである。本方法は、そのような侵入の試みを、高い信頼性で監視し、非常に効果的になる。
この目的は、請求項1の特徴を備えている方法と、請求項30の特徴を備えている装置と、によって達成される。請求項1に応じた発明の方法のさらなる展開と特別な実施態様とが、複数の従属項に定められている。
本発明に応じたコンピュータソフトウェアを保護する方法は、プロセッサと少なくともプロセッサメモリとを備えているコンピュータ装置上の保護されているソフトウェアの実行を妨害する侵入プログラムの攻撃を検出するものである。保護されているソフトウェアは、保護されているプログラム、特には、追加コードの埋め込みによって変更されているアプリケーションプログラムを含む。例えば、保護されているソフトウェアは、保護されているソフトウェアに組み込まれている、制御プログラムおよび/またはセキュリティエンジンおよび/または監視プログラムを有することができる。
本発明によれば、保護されるコンピュータソフトウェア(保護されているソフトウェア)は、保護されているコンピュータソフトウェアの使用のためのライセンスと少なくとも1つの暗号鍵とを収容しているライセンスコンテナと、通信する。ライセンスコンテナは、保護されているソフトウェアの使用と完全性とを保護するために、複数のライセンスと複数の暗号鍵とを、保護されているソフトウェアに提供する。
保護されているコンピュータソフトウェアは、少なくとも部分的に暗号化されており、対応している複数の暗号鍵を使用して、保護されているソフトウェアの実行のために復号する。対応している複数のまたは1つの暗号鍵は、ライセンスコンテナに収容されており、そして、ソフトウェアの使用を制限し制御し、かつ、保護されているコンピュータソフトウェアの少なくとも部分的に暗号化されている複数の部分を復号するように、保護されているソフトウェアと共におよび/または保護されているソフトウェアのために生成された鍵である。
本発明に応じた方法は、以下のステップを有する。
保護されているソフトウェアの実行中に、そのソフトウェアの動作および/またはコンピュータ装置上で保護されているソフトウェアの実行環境が、分析される。さらに、この実行中に、侵入プログラムまたは侵入の複数のパターンが、検索される。さらなるステップでは、保護されているソフトウェアの動作の分析に基づいて、または、コンピュータ装置上の実行環境の分析に基づいて、保護されているソフトウェアへの侵入が、検出される。侵入するプログラムは、保護されているソフトウェアへ不正なアクセスをするために、監視コンポーネントまたは監視プログラムを使用する。侵入または侵入の試みを検出したときに、信号が生成される。信号は、保護されているソフトウェア、制御プログラム、監視プログラム、セキュリティセクション、および/または、さらなる処理をするコンピュータ装置によって取り扱われるフラグなどとすることができる。
本発明の範囲において、保護されているソフトウェアの動作は、保護されているソフトウェアの実行中および/または実行後の、保護されているソフトウェアの反応を含む。侵入プログラムが、保護されているソフトウェアに侵入しようとした場合、アプリケーションの反応、コンピュータ装置のコンピュータソフトウェアによるプロセッサ能力の使用、保護されているソフトウェアのプログラム全般または特別なプログラムまたは複数のコード部分の実行の全般のタイミングが、異常になる。さらに、用語「動作」は、プロセッサまたはプロセッサメモリ内の特別な論理アドレスへのリンクも含まれる。
前述のように、コンピュータ装置またはホストコンピュータは、他のセキュリティ機能のうち、同じホストコンピュータ上で実行されているローカル侵入プログラムからの攻撃を検出し特定するための攻撃検出機能を提供する、セキュリティ装置、一般的には、ソフトウェア保護用のドングル、または、ソフトウェア実装ライセンスコンテナを有している。
侵入ソフトウェアは、ローカル手段によって、および/または、ローカルホストコンピュータと通信している遠くにあるネットワークコンピュータまたはサーバからのリモートアクセスによって、導入されることがある。侵入ソフトウェアは、WIBI−P6の特許であるEPO118477B1号に記載のようなソフトウェア保護装置によって保護されているコンピュータソフトウェアの攻撃と分析とに使用することができる。
保護ハードウェアコンポーネント、取り外し可能なセキュリティドングル、または、ソフトウェアライセンスコンテナ(以降では一般的な用語である「ライセンスコンテナ」と呼ぶ)とすることも可能なライセンスコンテナは、ホストアプリケーションソフトウェアをロック解除するために、シングルステーションコンピュータまたはネットワーク化されている複数のコンピュータに、複数のライセンスアクセスパラメータを提供するが、これには限定されない。ソフトウェアに加えて、メディアコンテンツまたは任意の種類のデータが、そのようなライセンスコンテナによって保護されてもよい。ソフトウェアという用語は、ここでは例に過ぎない。より正確な定義は、以下の「保護の対象」の箇所で説明する。
クライアントプログラムを通して、保護されているアプリケーションプログラムに与えられる、インストールされた保護機構を、迂回する多くの方法が使用され、また知られている。本発明で提案し説明している概念は、一般に、コンピュータホスト装置上で実行されているプロセスを分解し、対象とするアプリケーションプログラムのための保護機構を迂回する、様々な攻撃方法を、検出し防止する対策である。
攻撃の方法が様々なように、検出と防止の機構として、様々な対策が考えられる。本発明の概念は、侵入イベントを検出し分析し、防御手段を組織化するためにそれらを保護装置に報告するための、新しい複数の方法とその組み合わせを提案する。
本発明は、ソフトウェア、マルチメディアコンテンツ、または任意の種類のデータファイルを保護するために、EPO118477B1号で提案されているようなライセンス装置を強化するために使用される。ライセンスコンテナとして動作する保護装置は、対象とするアプリケーションソフトウェアの使用と完全性を保護するために、ホストコンピュータインターフェイスと一式のメッセージとを通して、制御ソフトウェアと通信する。アプリケーションソフトウェアは、標準で暗号化され、プログラムの実行のためにアプリケーションソフトウェアを復号するためには、ライセンスと、対応している復号鍵と、を必要とする。侵入ソフトウェアは、そのような過程を攻撃し、例えば、アプリケーションプログラムを実行するための保護ハードウェアと制御ソフトウェアとの間の通信リンクに、侵入することがある。不正な使用(偽の目的のためのデバッガツールの使用など)のための監視ソフトウェアコンポーネントが原因のいかなる侵入イベントも、できるだけ早く見つけられることになる。また、保護されているアプリケーションプログラムの実行時における、侵入アプリケーションによるあらゆる実行の妨害時にも、データや命令を改ざんする侵入アプリケーションが検出され、保護されているプログラムコードの完全性または単一プロセスの実行を表すことができる一連の所定のコードセグメントの実行の侵害を防止するために使用されることになる。
複数のアクセス制限コンポーネントの完全性は、ライセンスコンテナと、制御プログラム(または制御プログラムモジュール)とさらに呼ばれる、侵入を監視している制御ソフトウェアコンポーネントと、の間の通信リンクを遮断することによって、保護されることになる。公知の耐侵入スキームの中の1つの方法が、ユーザモードデバッガ、カーネルデバッガ、「IDE」デバッガとも呼ばれる統合開発環境デバッガなどの、様々な種類のデバッグプログラムが存在するかについて装置をスキャンする制御プログラム(CodeMeter.exe)の性能を示している「CodeMeter Developers Guide(CodeMeter開発者ガイド)(P89)」のマニュアルに記述されている。保護されているアプリケーションプログラムの起動前に、例えば、制御プログラムの制御モジュールが、制御装置(CodeMeter)に対してメッセージを生成して、ソフトウェア保護制御ソフトウェアとの通信リンクを遮断する。使用カウンタは、ライセンスの使用数を減少させるために使用されると説明されている。単位カウンタを侵入検出に使用すれば、使用制御装置の確立解除前に、2つ以上の侵入検出イベントが発生されてもよい。これは、検出された侵入を無効にするための処置を規定する制御装置のポリシーの設定による。
本発明の目的は、攻撃または侵入時に攻撃防止手段が起動する場所と時間とを隠すために、より複雑な複数の方法を使用することである。これは、攻撃防止プロセスの動作中に、侵入者または侵入ソフトウェアに対して、痕跡や手がかりを何も残さないことである。
ライセンスコンテナと通信をしている制御プログラムモジュールまたは機能は、侵入防止とライセンスアクセス管理とには限定されない多くの機能を備えている保護制御プログラム全体の一部とすることができる。制御プログラムは、オペレーティングシステム(OS)のいずれかのカーネルドライバの外側部分としたり、アプリケーションプログラムまたは保護されているソフトウェア自体に埋め込むこともできる。
本発明によって記述されている方法は、侵入ソフトウェアを検出する様々な機構を有し、また、ハードウェア装置を制御プログラムとのさらなる通信から保護し、また、アプリケーションプログラムの保護されているソフトウェア内での復号に使用されるステータス情報、暗号鍵または秘密鍵などのあらゆる通信プロトコルパラメータをそれぞれ明らかにする様々な手段とを有している
本発明の方法の好ましい実施態様では、保護されているソフトウェアの動作の分析は、例えば、保護されているソフトウェアに埋め込まれている複数の特別な動作コードの分析と実行、または、複数の特別なプログラム部分または保護されているソフトウェアコード内の複数の部分の分析と実行を有している。さらに、保護されているソフトウェアの動作の分析は、保護されているソフトウェアの実行に使用されるタイミングの計測と、計測された複数の結果の評価と、も含む。例えば、デバッガのような侵入ソフトウェアが、保護されているソフトウェアを実行すると、ソフトウェア全体またはソフトウェアの複数の部分の実行のための時間は、侵入の一切無い非介入の場合の実行よりも長くかかる。
そのような複数の特別な動作コードまたは複数の特別なプログラム部分の実行の分析の例は、餌コードの実行としてもよい。これを以下でより詳細に説明する。
侵入検出を示しているメッセージを受信したときにハードウェア装置内部で取られる対抗策も、通信プロトコルの再構築または再生を防止するために様々な方法を使用することによって様々である。
基礎をなす技術の基本的な記述
保護の対象
本発明は、ライセンス情報をコンピュータ装置上で執行するために使用される。そのようなライセンスは、一方で特定のプログラムの実行の許可であり、他方で特定のコンテンツの表示または使用の許可である。コンテンツの保護自体は、コンテンツを復号できる特別に修正されたビューワ(またはコンテンツを使用する他の手段)によって実施される。他方、保護されているプログラムは、一般的な実行可能文(例えばネーティブウィンドウバイナリ)だけでなく、様々な種類のスクリプトに拡張することもできる。最も明確な例は、現在、プログラムとして承認されているJava(登録商標)と「.NET」プログラムであるが、全ての他の種類のスクリプトも含まれる。コンピュータが次第に強力になるにつれて、「ネイティブプログラム」と「ポータブルスクリプト」ととの間の違いが、日に日にわずかになっている。これらの種類の知的財産を保護する場合に採用される機構は、全く同じである。そのため、我々は、保護の対象が狭義のプログラム、スクリプト、またはデジタルコンテンツであるかどうかにかかわらず、保護の対象を「保護されるアプリケーション」または「保護されるソフトウェア」と名付けることになる。
保護の発想
保護は、特別なコードを、保護されるプログラム(または純粋なコンテンツの場合は「ビューワ」)に挿入することによって、実施される。この挿入されたコードは、「セキュリティエンジン(SE)」と呼ばれ、プログラムに挿入されている所謂「セキュリティセクション」に埋め込まれる(ここでは添付の図面を参照して説明する)。あるセキュリティサービスは、これらのセキュリティサービスの中でもより一般的な部分であるため、(図3a、3b、3cに示しているように)保護されているアプリケーションから分離され、外部の「制御プログラム」内に存在させることができる。機能性は、異なる部分(セキュリティエンジン−制御プログラム)間で移動できるため、保護されているアプリケーション、セキュリティエンジン、および、制御プログラムは、1つの単位として扱われ、「保護されているソフトウェア」と呼ばれることになる(図3b、3cを参照)。
保護技術
一般的なプログラムは、様々な部分からなる。ここでの術語は、公知のWindows(登録商標)システムから得たものであるが、ほとんどの部分は他のシステム(スクリプティングプラットフォームや他のプラットフォーム)でも使用されている。
図2からわかるように、プログラムは、プログラムのロードに使用され様々な部分を特定する何らかのメタ情報を収容しているヘッダからなる。コードセクションは、ほとんどが実行可能コードを収容している。このコードは、必要に応じて、変更したり修正することができる。プラットフォームによって、コードの変更と修正は、多かれ少なかれ困難である。データセクションには、アプリケーションによって使用されるバイナリデータが収容されている。リソースセクションは、GUIアプリケーションで主に見られる。アクセスは、アプリケーション自体とオペレーティングシステムとから行われる。セキュリティセクションが、保護プロセス内に追加されている。セキュリティセクションは、実行可能コードを復号化し、ライセンスコンテナまたは制御プログラムと通信する複数の重要な部分からなる。実行可能コードとオペレーティングシステムとの間の接続は、インポートアドレステーブル(IAT)を通して行われる。保護されているソフトウェアを起動するときに、オペレーティングシステムは、オペレーティングシステムの複数の関数(複数のAPI)への複数のポインタを、ここに置く(図1a、1bを参照)。保護機構は、このテーブルを使用して、これらの関数呼び出しを横取りすることができる。呼び出しを横取りするときには、通常、まずヘッダが実行され、それからAPIと少なくともトレーラとが実行される(図2を参照)。
A)侵入(または攻撃)の検出には以下の複数の方法を使用することになる。
本発明の方法の有利な実施態様は、「餌コード」を、保護されるソフトウェアまたは本来のアプリケーションプログラムコードにそれぞれ挿入することである。
「餌コード」は、本発明の用語においては、アプリケーションプログラムコード(または保護デバイスへのアクセスを制御する制御プログラムの一部)である通常のプログラムコードに見えるが、アプリケーションプログラム自体に対しては何ら意味や目的を有しておらず、アプリケーションプログラムの通常の実行中には、実際には実行されない特定のプログラムコードとして理解される。侵入プログラムは、アプリケーション全体の深い知識を有していないので、餌コードと通常のアプリケーションコードとを見分け、餌コードによって示されているそのような「プログラム実行トラップ」を回避するための好ましい戦略を実現するために、十分に分析することはできない。例えば、餌コードのデバッグまたはトレースのイベントが発生したときに限り、餌コードが、例えば、デバッグプロセスによって実行されていることを示すマーカまたはポインタが設定される。そのようなイベントは、侵入検出イベントの発生として解釈して、信号を発生させることができる。餌コードは、様々なプログラムロケーションに分散していてもよく、また、全ての餌コードが、侵入検出イベントを信号で知らせるために使用されなくてもよい。他の場合には、餌コードは復号された実行可能なコードの複数の部分の中で暗号化されたままであってもよい。そのような、暗号化されているコードは、(アプリケーションプログラムの)複数のコア部分で使用されるのが有利であって、そのような部分では餌コードの復号が非常に発生しやすく、イベントの早期発見となる。(餌コードの)復号化プロセスが始まると、図1(a)のように、侵入検出が信号で知らせられることになる。
餌コードを使用する他の場合は、ポインタエントリを、インポートアドレステーブル(IAT)の複数の未使用領域で生成することである。そのような複数の「死んでいるエントリ」の実行も、図1(b)に示しているように、侵入イベントのきっかけとなる
本発明の方法の他の好ましい実施態様は、複数のAPIについての複数のラッパーを使った部分的なコード実行の検出を有している。
プログラムの実行中に、ラップされたAPIが関数へのアクセスに使用され、プロセスをステップ実行しているときに以下のコードシーケンスが実行される。:1つの可能性は、ヘッダ−API−トレーラの挿入である。
コードのシーケンスによってAPI関数呼び出しが実施されている間、プロセスの完全な実行に限って、侵入検出が防止される。
しかし、保護されているアプリケーションプログラムの攻撃時には、ほとんどの場合、ヘッダ部分だけが実行されることになる。トレーラを使用しない場合、プログラムの実行中の異常な動作の検出につながることになり、侵入イベントが信号で知らされる(図2の複数のステップを参照)。
本方法のさらなる好ましい態様は、プロセス監視による異常の検出を有している。
アプリケーションプログラム(または制御プログラム)とは別個であって、別個のプロセスとして実行されている監視プログラム(監視プログラム)は、アプリケーションプログラム実行の通常の過程を追跡するために使用されると仮定する。適用される方法の1つの場合では、アプリケーションプログラムの複数の専用プログラムセグメントの定義されたシーケンスを通した実行のための複数のタイミング条件が、監視プログラムによって記録され、それから、アプリケーションプログラムの「非介入」実行を表しているテンプレートデータとの比較によって、分析される。この方法は、プログラム実行の複数のタイミング条件が、非常に安定した状態を維持しており、プロセス実行のために余裕のないタイミング条件において複数のタイミング条件が再現可能な、リアルタイムオペレーティングシステムでないこともある、標準的なオペレーティングシステム環境に適用可能である。侵入の場合、例えば、餌コードの実行中に、プログラム実行のための複数のタイミング条件が変化し始め、したがって、複数の所定のタイミング条件の複数の拘束の下で異常なプログラムの実行を示すことがある。監視モジュールの一部としての確率論的解析機能が、コードシーケンスの複数の部分用に与えられた複数の最悪のタイミング条件などの検出基準に従って侵入が検出されたことを決定してもよい。そのような複数のタイミングパターンを設けるために、監視モジュールは、プログラムコードの複数の所定の部分の実行によって発生する複数のプロセッサ実行サイクルの複数の計測結果を使用することができる。
監視機能の確立と実行の他の場合では、デバッガ自体のデバッガインターフェイスが、監視モジュールに組み込まれていてもよい。統合デバッガインターフェイスの監視モジュールへの実装によっては、保護装置内の他の場所に実装されている任意の対デバッグ手段を考慮しなければならない(デバッガ検出のための該当する侵入機構に対して)。
本発明の方法のさらに他の好ましい実施態様は、先進的なデバッガ検出を有している。
複数のタイミング条件は、アプリケーションプログラムを監視するためにデバッガが使用される時にも変化する可能性がある。この類似の場合においては、制御プログラムの監視機能は、プログラムシーケンスに対して予期していないタイミングパターンを見つけることができる。監視機能は、OSの特定のカーネルドライバの一部であったり、アプリケーションプログラム自体の一部であっても良い。
本発明のさらなる同じく好ましい実施態様は、以下のように説明することができる、複数のタイミングパターンの認識による複数の先進的なデバッガ検出方法を有している。
例としては、不正な操作やアクセス違反などのプロセッサ例外によるプログラム実行におけるタイミング異常の検出である。他の例は、前述したものと同様に、監視モジュールを使用して、通常のコード実行における複数のタイミング異常を監視することと検出することである。
複数のブレークポイントの設定(つまり、プログラムの実行が割り込まれるプログラムアドレスの複数のロケーション)も、監視プログラムによって検出可能なタイミングに影響する。
決定された重要な複数のコードセクション、つまり保護されているデータとアプリケーションプログラムの完全性の維持に必須のコードセクションにおいて設定されたブレークポイントは、デバッガの存在を通して侵入を検出可能な実行タイミングパターンにつながる。様々なデバッガは、監視モジュールによってそれらのデバッガを特定可能な、典型的な複数のタイミングパターンを有することができる。
他のプログラム機能は、予測されるブレークポイントの設定、例えば、制御プログラムとライセンスコンテナまたは保護装置との間の通信リンクを基にすることができる。デバッガによるブレークポイントの設定は、複数の所定のアドレスロケーションでの定義済みの値の設定によって検出することができる。プログラムコードが、重要なプログラムセグメント内のブレークポイント設定のための予測されているロケーションにおいて実行されるときに、監視機能は、定義済みの値が入力されたことを先んじて探し、従って、さらなるデバッグステップを防止するために重要なプログラムコードのさらなる実行を停止させることになる。
他の方法は、専用デバッガが実行されているときに通常占有するアドレス空間を監視プログラムがスキャンしている時に適用される。そのような監視される複数のメモリパターンは、通常のメモリテンプレートと比較することが可能で、比較時に、監視プロセスは、特定の種類のデバッガの存在を通して、遭遇する脅威のレベルを分析する。これによって、監視プログラムは、ライセンスコンテナまたは保護装置のそれぞれに対して侵入メッセージを生成させたり、生成させなかったりすることができる。複数のデバッガ機能が、例えば制御モジュール内に埋め込まれている場合、このため、遭遇するメモリパターンは、侵入のためではなく、監視を目的としている。そのような場合、監視プログラムは、複数のデバッグ機能を無視する。
本発明の他の好ましい実施態様は、要求していない複数のスレッドの検出を有している
複数のスレッドが、同じ複数のリソースを共有している複数のサブプロセスとして発生している。保護されているプログラムの実行中に定期的に、複数のスレッドは、1つのメインプロセッサ同じ状態情報を使用し、複数のアドレス空間と、ファイルI/Oなどの他の複数のリソースを共有している。侵入は、要求していない複数のスレッドの検出時に信号で知らされることになる。
これは、様々な手段によって達成することができる。
a)有効なスレッドの一覧を得るための複数のスレッドを発生させる複数のAPIの監視
監視モジュールは、通常のAPI関数呼び出しの下で実行され複数のスレッドを監視する機能を提供し、許可された複数のスレッドの一覧を保持している。要求していない脅威を外部のプロセスが発生させた場合、監視モジュールは、このスレッドを検出し、要求していないスレッドの侵入を信号で知らせることになる。
b)「TLS」コードを使用した複数のスレッドの生成の監視
スレッドローカルストレージ(TLS)は、複数のスレッドが相互動作とデータ共有のために共通のストレージを使用する、予約されているOS割り当てストレージ領域である。そのため、全てのスレッドが、それらのローカルデータを初期化するために、定義されている「TLSコード」を実行する。このコードは、全てのスレッドと、本来のプロセスルーム内で生成されておらず、監視によって識別され信号で知らされることになる、要求していないスレッドと、の生成を監視するために使用することができる。
c)「不正な複数のスレッド」によるAPI呼び出しの検出
プロセスルームの外側からヘッダ、API、およびトレーラからなるラップされたAPIを使用して作られた不正な複数のスレッドも、監視モジュールによって検出され、監視モジュールに、侵入検出の信号で知らせることを行わせる。
B)攻撃または侵入の検出時に講じられる手段
侵入検出に関する情報を収容しているメッセージであることができる、侵入検出に関する情報を受信するために(制御プログラムを通して)制御モジュールと共に動作し制御モジュールと通信している保護装置は、実施ポリシーと検出された侵入の種類に依存して、制御プログラムを通したさらなるアクセスから遮断されるか、異なる状態(待ち状態)に置かれることになる。侵入検出機構は、制御プログラム内に埋め込んだり(1)、保護されているソフトウェアまたは保護されているアプリケーションプログラム自体の一部としたり(2)、別個の監視プログラムの一部としたり(3)、OSカーネルドライバの埋め込み関数またはプログラムコードとする(4)ことができる。
さらなるアクセスを拒否することによって、ライセンスコンテナ内に保持されている保護されているライセンス単位カウンタ、機密プログラムまたは暗号鍵またはコンテンツ暗号鍵、および制御プログラムと共有される他の種類の保護されているデータなどの保護されているデータへのアクセスに、影響を与えることができる
例えば、ドングルまたはUSBスティックの形態のハードウェア保護装置の場合、保護装置、例えばライセンスコンテナを有している保護装置のロックは、検出された攻撃の信号の受信に続くフラグの設定によって、実施することができる。保護装置の無効化は、使用カウンタの減算、あるいは反転可能または反転不可能な侵入検出フラグの設定によって実施可能な、また内部に保存されている複数の秘密鍵または暗号鍵の破棄によっても実施可能な、保護装置の通信の無効によっても、さらに実施することができる。
判断された侵入検出メッセージを制御プログラムから受信すると、鍵を削除する機構を起動することができる。保護装置との通信は、依然として継続することができるが、特定の攻撃が検出されているホスト側において復号プロセスを実施するための複数の重要な鍵へのアクセスの要求は、拒否されることになる。
保護装置の無効化は、一般的な複数のAPIを特定のしかし判別不能な複数のパラメータと共に使用する、隠されている複数のロック機構を使用して、実施することができる。
この場合、保護の経路は、普通に使用されているAPIが関数呼び出しに使用されており、呼び出されたパラメータが、暗号化動作の複数の戻り値、特定のテキスト、またはストレージのための動作などのように、通常とは異なることが認識できない場合には、選択可能である。侵入検出パラメータであると示されているような区別できないパラメータの受信時に、保護装置のロックまたは「警報機構」が、起動されることになる。
保護装置の無効化またはロックのさらなる可能性は、復号動作の結果に依存したロックである。
アプリケーションプログラムの様々な箇所と、制御プログラムの複数の箇所とで、複数の鍵またはパラメータの復号のための複数の暗号関数が(つまりラップされたAPI関数の呼び出しによって)起動されることが可能で、そのような復号化動作の複数の戻り値が、複数の所定の値との比較動作の結果に応じて、侵入検出を信号で知らせることを導くことができる。そのような比較は、そのような暗号値が保護装置に送信された後、保護装置の制御によってのみ実施可能である。
例として:
本来のコードの修正によって、標準の分析方法を無効にすることができる。例えば、API呼び出しの修正によって、プログラムにセキュリティエンジンを起動させ、暗号化されている入力パラメータの復号時に、暗号化の前に制御プログラムから受信した複数の戻り値を得ることができる。制御プログラムよって保護装置に送信された複数の戻り値は、保護装置内の所定の複数の値との簡単なマッチングと比較など複数の戻り値のさらなる処理を開始させることができる。例として、本来のコードの修正は、「死んでいる」餌コードの実行によって引き起こされることができる。
C)法的な証拠の収集
攻撃の検出時に、保護装置は、攻撃者に対する以降の法的な処置を可能にする法的な証拠を収集することができる。法的なデータは、以降で攻撃者または少なくとも攻撃者のコンピュータを特定するように構成されている。そのため、法的なデータは、以下のデータを有することができるが、このデータには限定されない。
以下のようなコンピュータのハードウェア識別
○ネットワークカードのハードウェアアドレス
○プロセッサ、マザーボード、ハードディスク、グラフィックカードなどの様々なコンピュータ構成要素のシリアル番号
○様々なコンピュータ構成要素の出荷データと製造データ
以下のようなコンピュータのソフトウェア識別
○ボリュームシリアル番号
○OSライセンス番号
以下のようなユーザ識別
○メールアドレス
○ユーザ名
侵入のさらなる証拠を収集するために、以下の手段や処置を適用することができる。
a)さらなる攻撃を脅かし、使用許諾を回復するために使用許諾者に連絡するように本来の被使用許諾者を促すために、ハードウェアを無効化すること
保護装置が無効であることが検出されると、被使用許諾者は、ライセンスとコンテンツとへの失われたアクセス権の回復を申請することになる。これによって、使用許諾者は記録を追跡し、無効化されている保護装置へのライセンスを回復するためのポリシーを確立するために、データを収集することになる。
使用許諾者が決定すると、1つまたは2つ以上のライセンスアクセス機能の回復によって、装置の機能または装置の機能の一部分が再確立可能になる。使用許諾者は、収集されたデータを自身で集計したり、その代わりに、現在の脅威のシナリオの大局的概要を得るために、中央インスタンス(侵入防止サービス)に、データを転送することができる。これらの集計されたデータの評価時に、保護装置をロックするための複数の新しい対応ポリシーを作ることができる。これらのポリシーは、例えば、主に中央時刻サーバまたは使用許諾者によって、ライセンスとソフトウェアとの更新手続き時に配信される。本発明に範囲において、被使用許諾者と使用許諾者とは、法的な実体を指すだけでなく、使用されているコンピュータ、コンピュータ装置、またはサーバが含まれていてもよい。この場合、使用許諾者は、使用許諾を得た、ライセンス鍵または暗号鍵によって保護されているソフトウェアが保存され、実行されるコンピュータから、通常遠方にいる。使用許諾者は、使用許諾されているソフトウェアつまりアプリケーションプログラムに関する情報、ライセンス情報、ライセンス鍵、および/または暗号鍵が保存されているサーバを有している。
b)上書きに対して保護されている「1回のみ書込み」メモリ内の証拠の収集
1回書き込みメモリへ検出された侵入を書き込む、つまり記録することによって、記録されている各侵入に対するタイムスタンプが押されている日時を使用して、そのようなイベントを追跡することができる。
定期的に、使用許諾者は、保護装置を訪れて、法的な証拠のためのデータを収集することができる。使用許諾者は、自身の侵入検出ポリシーに従って、保護装置無効化コマンドを、そのようなコマンドを保護装置自体に渡す制御プログラムに、送信することによって、ライセンスを無効にすることができる。ライセンスコンテナまたは保護装置は、複数のライセンス許諾者用の保護装置として、ライセンス許諾者のそれぞれの保護されているコンピュータソフトウェアまたはアプリケーションプログラムの使用許諾を保護装置の使用者に対して行うように、動作できると仮定している。そのため、2つ以上のアプリケーションプログラムが、同じ保護装置によって保護されることもある。保護装置の下で実行されているアプリケーションプログラムの種類によって、2種類以上の侵入が発生し検出される可能性がある。これは、特定の侵入検出機構を、ある種類のアプリケーションにおいては使用できるが、他の種類のアプリケーションには使用できない場合もあることを意味している。そのため、保護装置を無効化する前の期間の間、使用され、その結果様々な種類の侵入のための攻撃に曝される、様々な種類の保護されているアプリケーションプログラムに従って、保護装置内で法的な追跡のために、複数の侵入イベントを記録し、監査することが求められることがある。
鍵アクセスの取り消し、保存されている機密へのアクセスの拒否、保護装置との通信の遮断などの複数のライセンスの取り消し処理は、使用許諾者が所有しており、被使用許諾者に対して認められた、特定の複数のライセンスの集合だけを対象とし、それらに限定することができる。複数の使用許諾者の複数のライセンスをスティックが保持している場合、特定の(低い)レベルのセキュリティ違反の複数の侵入イベントが、他の複数の使用許諾者に保持されており1人の使用許諾者の管理と責任の下にある複数のライセンスに影響しないように、1人の使用許諾者のポリシーの取り消しが、設定されることになる。侵入が、例えば制御モジュール自体によって制御されている一般的なセキュリティ防止を対象としておらず、全ての保護されているアプリケーションに対して重要ではない限り、他の保護されているアプリケーションは、保護装置と共に動作可能なままであると考えることができる。取り消し機構は、拡張可能とすることができ、1つのアプリケーション取り消しイベントとして分類したり、保護装置全体の取り消しに拡張したりできることが理解できる。
本発明のさらに他の態様は、複数のコンピュータプラットフォーム上での法的な追跡にも対応しており、これは、保護装置が持ち運び可能であって、様々な侵入の脅威と遭遇する複数のコンピュータ上で使用される可能性があるためである。さらに他のシナリオは、様々なオペレーティングシステムを基にしている様々なコンピュータが同じ保護されているアプリケーションに対して使用されることを示していることもある。そのため、遭遇する複数の環境の局面での法的な追跡には、前述の複数の局面において保護装置の内部での侵入の監査が必要になることがある。
複数の侵入イベントの情報の収集は、保護装置に埋め込まれている侵入防止ポリシーの実施を通して保護装置を無効にする前の特定の数のイベントに対して、より適切な場合がある。収集した監査データを保護装置の安全なストレージ箇所に保存する他の利点は、監査データを、使用許諾者のサービス、つまりインターネット内のリモート侵入防止サービスに安全な送信によって提供することである。ライセンスパラメータのバックアップ用の復元ファイルの一部として、送信された監査データを、様々な目的のために、ポリシーサーバ内での以降の評価に使用することができる。一態様においては、データを、例えば、無効にされている保護装置を、侵入防止サービスのポリシーに従って、積極的に再び有効にするために使用することができる。他の態様では、サービスとしては、複数の保護装置から監査されている複数の侵入イベントのコンテンツ内の法的なデータを分析することが有利なことがある。
さらなる態様では、開始時間と終了時間とを設定する複数の時間パラメータが存在して、複数の侵入イベントが、保護装置内で、定められた期間の間、監視されてもよい。少なくとも1つの侵入イベントを報告できる監査データの記録時に、保護装置は、イベントに関連付けるためのタイムスタンプを要求することができる。保護装置は、制御プログラムの支援の下で、法的なデータをリモート侵入防止サービスに送信することができる。
さらに、本発明を図示の典型的な実施形態に基づいてより詳細に以降で説明する。本発明のさらなる複数の特徴、形態、態様、および利点が説明と図面とから明らかになろう。説明と図面とにおいて示している複数の特徴は、本発明の好ましい複数の実施形態を作るために、個別にまたは組み合わせて使用することができる。
埋め込まれている餌コードに基づいている侵入検出の模式図である。 埋め込まれている餌コードに基づいている侵入検出の模式図である。 埋め込まれているセキュリティセクションを備えている保護されているコンピュータソフトウェアの図である。 コンピュータ装置のオペレーティングシステムに関して異なる、保護されているソフトウェアの構成の図である。 コンピュータ装置のオペレーティングシステムに関して異なる、保護されているソフトウェアの構成の図である。 コンピュータ装置のオペレーティングシステムに関して異なる、保護されているソフトウェアの構成の図である。
図1(a)の例に従うと、餌コードは、(制御プログラム内の)セキュリティセクションとして定められている領域を含む実行可能な様々なコードセクションに展開することができる。IAT(ポインタ)アドレス指定スキームは、餌コードのセキュリティセクションにおける使用とオペレーティングシステムに対するAPI呼び出しの例を実現している。「ポインタ」コード(餌コードへのリンク)によって、プログラムのセキュリティセクションへのジャンプが発生する。餌コードのセキュリティセクション内の専用の位置での実行を監視して分析することによって、制御プログラムは保護装置への侵入の場合を信号で知らせることができる。
ここでは「0」として示しており、「Kernel32」、「User32」などのOSの呼び出しのセパレータとして発生する未使用のIATエントリを、コードセクション内の「死んでいる」餌コードの実行のために指すように使用することができる。制御プログラムまたは監視プログラムは、それから、未使用のIATエントリロケーションから起動された餌コードの実行を、発生した侵入イベントの証拠として報告することができる。
図2は、保護されていないアプリケーションと保護されているアプリケーションとの間の違いを示すために、保護されているアプリケーション内でのプログラムフローの一般的なスキームを示している。
1.プログラムヘッダ内には、アプリケーションのオリジナルエントリポイント(OEP)へのリンクが存在して、これはオペレーティングシステムが実行を開始するポイントである。プログラムを保護する場合、この値が、セキュリティセクション内へのポインタに修正される。
2.OEPから先へ、コードが実行される。
3.多くのポイントにおいて、オペレーティングシステム関数の「呼び出し」が存在することになる。
4.呼び出された関数へのポインタが、オペレーティングシステムによって所謂インポートアドレステーブル(IAT)内に配置される。アプリケーションを保護する場合、これらのポインタの多くが、セキュリティセクションへ、リダイレクトされる。
5.セキュリティセクションにおいては、意図した関数が実行されるのに先立ってヘッダが実行される。このヘッダは、何らかの対デバッガチェックを実施することができる。
6.ヘッダの後で、本来の関数(API)が起動される。
7.関数の後に、セキュリティセクション内でトレーラが実行され、割り当てられたプログラムスタックをクリーンアップし、場合によっては、さらなる対デバッガチェックを行う。トレーラは、プログラムの実行を、保護されているアプリケーションに直接戻す。
8.保護されていないアプリケーションでは、IATは、オペレーティングシステム内を直接指す。各リダイレクトは、全体のパフォーマンスに対して重大な影響があるため、保護されているアプリケーションでは、セキュリティセクションにリダイレクトされないいくつかのポインタがIAT内に存在することがある。
ラップされたAPIのヘッダのみを実行することによって、さらなるプログラムの実行の過程で、侵入イベントが制御プログラムによって検出される。
本発明のさらなる好ましい実施形態によれば、侵入検出は、複数のハッシュ値を発生させ、それらの値を、侵入検出のための予測されている複数の値と比較することによって実行される。
制御プログラムによって作られ、保護装置に送信される複数のメッセージは、メッセージデータの完全性のために、CRC(巡回冗長検査)や他のハッシュアルゴリズムを使用することができる。また、メッセージは、制御プログラムを保護装置によって認証するために、公開/秘密鍵アルゴリズムによって署名されていてもよい。監視プログラムは、制御プログラムと通信するプロセスを自己に含むものとして実装されている場合、制御プログラムとの通信が発生している間、データの完全性とメッセージの正当性とを保証するために、同じ方法を使用することができる。その目的のために、監視プログラムは、セキュリティアルゴリズムを実行するために、セキュリティエンジンへの直接リンクを有していてもよい。
好ましい実施形態においては、セキュリティエンジンは、セキュリティ関連関数呼び出しの実行のためのより高いレベルの耐不正改変を与えるために、TPM(トラステッドプラットフォームモジュール)によって制御されている密封されているメモリ領域内の複数のプラットフォーム内で実行されると仮定している。密封されているメモリは、制限されたプログラム実行のために確保されている専用RAM領域であり、そのプログラム実行は、その定められた領域で実行される1つのプログラムに対して認められている排他的な権限を伴っている。保護されているプラットフォームに対して埋め込まれているTPMは、密封されているメモリをプログラムに割り当てる標準化されている複数の方法を実現する。
前述の方法で説明しているように、保護装置は、侵入プログラムコードからの攻撃の状態を合図しているメッセージを制御プログラムから受信してもよく、保護装置は、受信時にメッセージを認証して、データの完全性を確認する。さらなるステップにおいて、保護装置は、保護装置内に埋め込まれている侵入実施ポリシーに従って、制御プログラムとの通信を遮断してもよい。
図3a、b、cに示している模式図においては、好ましい実施形態のいくつかと、侵入防止装置の主な装置構成要素の構成とを、それらのそれぞれの機能によって示すことになる。
アーキテクチャの概要の説明
図3aは、制御プログラム、保護装置、保護されているアプリケーション、セキュリティエンジン、および監視プログラムを有している侵入検出装置の複数の基本装置機能を示している。
コンピュータ装置のプラットフォームは、電気インターフェイス(つまりUSBインターフェイス)を通して保護装置と通信する。制御プログラムは、制御メッセージによって、コンピュータ装置のオペレーティングシステム(OS)を通して保護装置と通信する。侵入のメッセージが保護装置によって受信されると、メッセージは、保護装置無効化制御機能内で評価されことになり、侵入が検出されたという一致状態を示している基準に遭遇すると、保護装置は、復号化された、または、アクセス可能なデータの制御プログラムへの提供などの、さらなる通信を、できなくする。
制御プログラム内に埋め込まれている監視プログラムは、保護されているコンピュータソフトウェアの制御外で実行されている外部アプリケーションプログラム用の複数の監視機能を実行していてもよい。監視プログラムは、第1のタスクとして、プログラムの実行の追跡と記録とによる、保護されているアプリケーション用の複数の監視機能を実行するが、侵入防止の見地から他の複数のプログラムのプログラム監視が必要な場合、これらには限定されない。それから、収集されたデータは、監視プログラムに転送され、制御プログラムを介して保護装置に通信される。
保護されているアプリケーションは、保護下にあるアプリケーションのセキュリティセクションと同等のセキュリティエンジンSEの複数のAPIを使用する。関数呼び出しは、フィルタを通過し、さらにアプリケーションが必要とする関連しているカーネル関数を有しているOSまで進む。他の全ての呼び出しは、保護されているアプリケーションに対するプログラムシールドとしての役割を有している保護層のラップアラウンド解除などのセキュリティエンジン内の特定の複数の関数に関連している。
図3bは、セキュリティエンジン環境に埋め込まれている制御プログラムと監視プログラムとを示している。
さらなる実施形態として、制御プログラムと監視プログラムは、セキュリティエンジン環境に埋め込まれることになる。制御プログラムは、ただ1つのプロセスルーム内で実行されている内部の監視プログラムとセキュリティセクションと通信する。本発明の一態様においては、これは保護されているアプリケーションの可搬性と、前述のようにTPMを使用した信頼されている計算環境内でのプログラムの高いレベルの完全性の達成に対して有利である。また、保護されているアプリケーションに対するAPIを、アプリケーションを監視する機能とセキュリティ関数呼び出しとをサポートすると同時に、簡略化することができる
本明細書で説明していない他のシナリオでは、監視プログラムと制御プログラムとは、オペレーティングシステム(OS)のカーネル関数となり、セキュリティエンジンによって起動することができる。OSが異なれば、サポートされているプラットフォーム内へのシステム関数の好ましい埋め込みの要求も異なることがある。
図3cは、複数の機能ブロックと、含まれているリモート侵入防止サービスと、の間の複数の論理リンクを示している。
複数の機能ユニットとリモートサービス機能との間の複数の論理リンクを示している図において、例えば、インターネット通信によって保護装置との接続を設けることを示している。この機能は、保護装置の複数のライセンスコンテナの1つに保存されるライセンスを提供し、保護されているアプリケーションに対する使用の権利を認める、使用許諾者の確立されているサービスの補完的なサービス機能とすることができる。ソフトウェアとコンテンツとのライセンス管理を完全に制御しながら、使用許諾者は、配備されているライセンス装置(本明細書に参照によって援用されるEP118477B1号に記載されているODRM装置など)であるか、侵入のための攻撃を受けない状態に維持されている特定の保護されているアプリケーションであるかに関わらず、保護されている装置に対して発生した攻撃を監視し制御したいと考えることがある。
本発明によれば、ホストコンピュータ装置とマスター−スレーブ機能で動作している保護装置は、追加の機能として、移動状況で発生する可能性のある、複数のプラットフォームにわたる集合的なデータとして収集された複数の侵入イベントを自動的に保存し分析することができる。侵入防止実施モジュールは、さらに、脅威のレベルを調べる能力によって、制御プログラムとのさらなる通信を無効にすることが可能で、データのさらなる使用を無効にしたり、セキュリティの侵害を暴露したりできる。記録されているデバッグプロセスの複数の動作パターン(例えば攻撃の方法と頻度とを有する)を、実施モジュールによって分析して、保護装置を無効にするきっかけにすることができる。
例として、さらに、保護装置は、TPMの存在を認識し、したがって、侵入コードがはるかに実行されやすいオープンな保護されていない装置に比べてより高い基本レベルで、セキュリティを確立し実施することができるので、異なる脅威モデルに、性能がより低くいものを適用することができる。保護装置にダウンロードされた保護ポリシーデータは、侵入防止サービスによって指示されている実施ためのポリシーに従った分析を行うために、侵入防止実施モジュールを管理することができる。法的なデータの分析によってもたらされる侵入イベントの特性を確認にすることによって、証拠によって侵入の種類を特定し、脅威のレベルを分類することができる。したがって、保護装置は、リモート装置による支援とは独立に、1つのアプリケーションを(埋め込まれている実施防止モジュールの侵入防止ポリシーに従って)シャットダウンすることができる。
この機能は、前述のように、中央取り消しサービスによる外部の介入なしに、専用のアプリケーションを終了させる、部分的な保護装置無効化と考えることができる。保護装置は、侵入防止装置の一部として、コンテンツ保護のための公知の複数のDRM装置で使用されている方法を変更し、それを、該当する複数の鍵の無効化による保護装置やコンテンツの無効化によってシステムの完全性を維持するための中央サービスの要件とすることができる。しかし、複数の保護装置の多くが市販されている場合、法的なデータを中央サービスに集めて、1つまたは2つ以上の保護装置を無効にするにあたって、顧客データと脅威の分析とに基づいて中央ポリシーを決定することが適切なことがある。各保護装置の認証された再起動と無効化には、複数の適切なメッセージが生成され、リモート侵入防止サービスから送信されることになる。
一式のポリシー規則に従って複数の侵入イベントに柔軟な応答が可能な装置。ポリシー規則は、リモート侵入防止サービス(インターネットベース)(図3c参照)によって提供され、ライセンスと時間更新のための定期的接触時に更新可能である。複数のポリシー規則の一部は、ライセンスコンテナの一般的なランタイム装置(監視プログラム、制御プログラム、カーネルドライバ)の一部とすることができる。このランタイム装置の更新によって、ポリシーも更新できる。更新は、新しく発見された脅威のシナリオに対応する。
複数のポリシー規則に従って、(現状のまたは特許請求の範囲で指定されているような)使用可能な侵入検出方法が使用され分類される。ポリシーに従って、攻撃の程度が決定され、対応が決定される。対応は、様々な期間のロックとすることができる:
無し(ロックしない、攻撃を無視)
一時的(例えば5分、自動化されている攻撃を減速させる)
永久
また、装置の様々な部分に影響を与えることができる:
ライセンス
ライセンスコンテナ
保護装置
装置部分への影響は、最終的には保護されているソフトウェアの(実行の)ロックにつながる。法的なデータのローカルな記録と、その後の送信も、ポリシーによって構成されている。
本発明の範囲において、「保護されているソフトウェア」という語は、ライセンスコンテナ(保護装置の一部とすることができる)に保存されているライセンス、または、そのようなアプリケーションソフトウェアのライセンスの条件に従った使用、を提供する、ライセンスコンテナまたは保護装置によって保護されている、保護されているアプリケーションまたはコンピュータソフトウェアアプリケーションプログラムと同義語である。これは、正常に使用許諾されている保護されているソフトウェアの正当な使用とも呼ばれる。保護されているソフトウェアは、保護されていない環境下でのプログラム実行を防止し、侵入プログラムまたはプログラム実行時のデバッガなどの侵入性ソフトウェアによる侵入を防止するために、少なくとも重要な複数の部分が暗号化されている保護されているプログラムコードでもある。
本発明の範囲のおける保護されているソフトウェアは、セキュリティエンジンおよび/または制御プログラムおよび/または監視プログラムを有していてもよい。
セキュリティエンジンは、装置に関わる侵入防止の他の関連するコンポーネントと通信するために、独立した複数のコンポーネントとしてホスト側で動作する暗号化機能を提供するソフトウェアコンポーネントである。これらの他の関連するコンポーネントには、少なくともライセンスコンテナがある。
一方で、セキュリティエンジンは、保護されているアプリケーションを実行できるようにするために、ライセンス条件、鍵、または他の複数のライセンスパラメータにアクセスするために、保護装置またはライセンスコンテナと、コンピュータ装置の所与のハードウェアプラットフォームのOS/カーネルを通して通信する。例えば、これは、アプリケーションプログラムの保護されている複数の部分を復号することによって、または、プログラムの実行のために所謂プログラム保護シールドからカプセル化されているアプリケーションをラップ解除することによって実現することができる。さらなる通信リンクにおいて、セキュリティエンジンは、制御プログラムを通して監視プログラムに提供されている複数のパラメータを交換するために、制御プログラムと通信することができる。他の実施形態では、セキュリティエンジンは、監視プログラム、制御プログラム、およびセキュリティセクションも有することができる。
制御プログラム自体は、ライセンスコンテナまたは保護装置のアクセスを制御するプログラムモジュールである。制御プログラム機能は、汎用保護制御プログラムの一部とすることができる。汎用保護制御プログラムは、ライセンスコンテナと制御ソフトウェアとの間の通信リンクを確立することができる。汎用保護制御プログラムは、侵入防止用の監視機能も提供することができる。
保護機構という語は、保護されているアプリケーションプログラムまたは保護されているソフトウェアを保護しようとする、侵入プログラムを検出する特定の方法または複数の方法の組み合わせである。保護機構は、侵入イベントを監視プログラム、セキュリティエンジン、またはライセンスコンテナあるいは保護装置にそれぞれ信号で知らせる。
本発明に範囲において、監視プログラムは、侵入プログラムによって引き起こされる脅威(例えば攻撃)の監視と登録のために監視機能を提供する。複数の監視機能は、監視モジュールなどの他のプログラムに埋め込むことができる。監視プログラムは、侵入イベントの記述のために所謂侵入検出基準などの対象の特徴を生成できる侵入検出機構を使用する。言い換えると、監視プログラムは、他の複数のプログラムイベントやコンピュータイベントを監視する複数の監視コンポーネントを使用する。
さらに、言い換えると、侵入防止装置は、保護ハードウェア装置やライセンスコンテナなどの保護コンポーネントと、制御プログラム、監視プログラムおよび/またはセキュリティエンジンなどの一連の複数のソフトウェアコンポーネント、および、互いにまた保護装置またはライセンスコンテナと通信するバックエンド装置およびソフトウェア装置とからなる装置である。これらは、アプリケーションプログラムを、侵入プログラムの侵入から、通常保護している。バックエンド装置は、1つの保護装置またはライセンスコンテナの動作に影響する、または動作を制御するリモート侵入防止サービスを提供するリモートポリシーサーバも有することができる。この場合、動作という語には、実行、アクセス、ロック、つまりライセンスコンテナまたは保護装置へのアクセスの制限、および/または、そこに保存されている情報の消去が含まれる。
本発明のさらなる態様は、複数のシステムコンポーネントを使用し、コンピュータ装置に取り付けられるように構成され、配置されている保護装置によって、コンピュータ装置上の保護されているコンピュータソフトウェア用の侵入検出を提供する装置に関する。コンピュータ装置は、少なくとも監視プログラムと、制御プログラムと、保護ソフトウェアとを有している。
監視プログラムは、コンピュータ装置上でのプログラムの実行のために、保護されているソフトウェア(保護されているアプリケーションプログラム)からの監査情報を収容している複数のメッセージを介して制御プログラムと通信する。制御プログラムは、コンピュータ装置に取り付けられている保護装置と通信するための機能を有しており、保護装置は、侵入防止仕様を、インターネット内のリモート侵入防止サービスプロバイダサーバから受信する。侵入防止仕様は、監視プログラムによる監視プロセス中に生成された考え得る対象属性の集合から、記録される少なくとも1つの対象属性を指定する。
侵入防止仕様は、監視プロセス中に少なくとも1つの対象属性の記録のきっかけとなる少なくとも1つの監視基準も指定する。監視プログラムは、少なくとも1つの監視基準の検出に応答して少なくとも1つの対象属性を記録するように構成されており、監視プログラムは、少なくとも1つの監視基準の検出に応答して少なくとも1つの対象属性を記録することによって、侵入ログを作るために実行される(実行されている)。さらに、侵入ログは、保護されているコンピュータソフトウェアまたは保護装置のロックなどの侵入検出目的のために複数のパターンを検出するために調べられる。

Claims (28)

  1. プロセッサと少なくともプロセッサメモリとを備えているコンピュータ装置上の保護されているソフトウェアの実行を妨害する侵入プログラムの攻撃を検出することによって、コンピュータソフトウェアを保護する方法であって、
    前記保護されているコンピュータソフトウェアは、前記保護されているコンピュータソフトウェアの使用と実行のためのライセンスと、少なくとも1つの暗号鍵と、を収容しているライセンスコンテナと通信するものであり、
    前記ライセンスコンテナは、前記保護されているソフトウェアの使用と完全性とを保護するための複数のライセンスおよび複数の暗号鍵を、前記保護されているコンピュータソフトウェアに提供するものであり、
    前記保護されているコンピュータソフトウェアは、少なくとも部分的に暗号化されており、対応している複数の暗号鍵を使用して、前記保護されているソフトウェアを実行のために復号するものであり、
    前記保護されているソフトウェアの実行中に、前記保護されているソフトウェアの動作、および/または、前記コンピュータ装置上での前記保護されているソフトウェアの実行環境を分析して、攻撃の複数のパターンまたは侵入プログラムを検索し、
    前記保護されているソフトウェアの実行中に、前記保護されているソフトウェアへの攻撃を検出し、侵入プログラムは、不正なアクセスをするために監視コンポーネントを使用するものであり、
    攻撃の検出時に信号を発生し、
    前記保護されているソフトウェアは、アプリケーションプログラムの本来のソフトウェアコードとセキュリティエンジンを有することを特徴とする方法。
  2. 前記保護されているソフトウェアの前記動作を分析することは、前記保護されているソフトウェア内の特別な動作コードの実行を分析すること、および/または、特別なプログラムの複数の部分または前記保護されているソフトウェアのコードの複数の部分の実行を分析すること、および/または、前記保護されているソフトウェアの実行に使用されるタイミングを計測し、複数の計測結果を評価すること、を有することを特徴とする、請求項に記載の方法。
  3. プロセッサと少なくともプロセッサメモリとを備えているコンピュータ装置上の保護されているソフトウェアの実行を妨害する侵入プログラムの攻撃を検出することによって、コンピュータソフトウェアを保護する方法であって、
    前記保護されているコンピュータソフトウェアは、前記保護されているコンピュータソフトウェアの使用と実行のためのライセンスと、少なくとも1つの暗号鍵と、を収容しているライセンスコンテナと通信するものであり、
    前記ライセンスコンテナは、前記保護されているソフトウェアの使用と完全性とを保護するための複数のライセンスおよび複数の暗号鍵を、前記保護されているコンピュータソフトウェアに提供するものであり、
    前記保護されているコンピュータソフトウェアは、少なくとも部分的に暗号化されており、対応している複数の暗号鍵を使用して、前記保護されているソフトウェアを実行のために復号するものであり、
    前記保護されているソフトウェアの実行中に、前記保護されているソフトウェアの動作、および/または、前記コンピュータ装置上での前記保護されているソフトウェアの実行環境を分析して、攻撃の複数のパターンまたは侵入プログラムを検索し、
    前記保護されているソフトウェアの実行中に、前記保護されているソフトウェアへの攻撃を検出し、侵入プログラムは、不正なアクセスをするために監視コンポーネントを使用するものであり、
    攻撃の検出時に信号を発生し、
    前記保護されているソフトウェア内のあらかじめ定められている特別な値を有するノーマルなコマンドを、前記あらかじめ定められている特別な値を使用して実行することによって、前記ライセンスコンテナをロックする、方法。
  4. 前記あらかじめ定められている特別な値を有するノーマルなコマンドは、前記ライセンスコンテナを無効化または遮断する特別な暗号化動作であることを特徴とする、請求項に記載の方法。
  5. 前記ライセンスコンテナの前記ロックは、カウンタを所定の値に設定することによって、または、前記ライセンスコンテナ内の必要な複数の暗号鍵を削除することによって、実行されることを特徴とする、請求項に記載の方法。
  6. 前記保護されているソフトウェアの前記動作を分析することは、複数のアプリケーションプログラムインターフェイス(API)の実行を分析することと、ヘッダ実行の数をトレーラ実行の数と比較することと、を有することを特徴とする、先行する請求項のいずれか1項に記載の方法。
  7. 前記保護されているソフトウェア内の前記追加のコードは、侵入監視プログラムによって引き起こされる介入モードの場合にだけ実行される餌コードであって、前記餌コードの実行を検出することを特徴とする、請求項からのいずれか1項に記載の方法。
  8. 前記餌コードは、前記保護されているソフトウェアのインポートアドレステーブル(IAT)の使用されていない複数の部分で参照される、請求項に記載の方法。
  9. 前記餌コードは、非介入動作条件下では決して実行されることのない前記保護されているソフトウェアの一部であることを特徴とする、請求項に記載の方法。
  10. 前記ライセンスコンテナを有する保護装置が、前記コンピュータ装置のインターフェイスに取り付けられていることを特徴とする、先行する請求項のいずれか1項に記載の方法。
  11. 前記餌コードは、特別に構成されているAPI呼び出しを使用して、前記保護装置をロックすることを特徴とする、請求項10とに記載の方法。
  12. 侵入ソフトウェアの攻撃の検出後、攻撃イベントを記憶するための法的データが作られ保存されることを特徴とする、請求項10に記載の方法。
  13. 前記法的データは、前記保護装置内の保護されているメモリ内に保存されることを特徴とする、請求項12に記載の方法。
  14. 前記法的データは、暗号化された形式で保存されることを特徴とする、請求項12または13に記載の方法。
  15. 前記法的データは、1度だけ書き込みが可能な前記保護装置のメモリ領域に保存されることを特徴とする、請求項12から14のいずれか1項に記載の方法。
  16. 前記法的データは、複数のグローバルパターンの検出のために集計され評価されることを特徴とする、請求項12から15のいずれか1項に記載の方法。
  17. 前記法的データは、前記複数のライセンスと前記ライセンスコンテナに収容されている前記複数の暗号鍵とを管理している使用許諾者または中央インスタンスに送信され、前記法的データは、後に前記保護装置を最終的にロック解除する目的で、前記使用許諾者または中央インスタンスによって収集されるために送信されることを特徴とする、請求項12から16のいずれか1項に記載の方法。
  18. 前記保護されているソフトウェアの実行に使用される前記タイミングを計測することは、複数のプロセッサ例外のタイミングを評価することを有することを特徴とする、請求項に記載の方法。
  19. 前記保護されているソフトウェアの実行に使用される前記タイミングを計測することは、全体のクロックの一貫性を確認することを有することを特徴とする、請求項に記載の方法。
  20. 前記保護されているソフトウェアの前記動作を分析することは、複数の実行スレッドを、正常なプログラムの実行によって作られた複数の認証されているスレッド、または、侵入プログラムによって作られた複数の不正なスレッドとして、分類することを有することを特徴とする、請求項またはに記載の方法。
  21. TLSプロシージャ(スレッドローカルストレージプロシージャ)を使用して、複数の不正なスレッドを発見することを有することを特徴とする、請求項20に記載の方法。
  22. APIシステムコールの実行を監視することによって、複数の不正なスレッドを発見することを有することを特徴とする、請求項20に記載の方法。
  23. 侵入プログラムを特定するために、前記コンピュータ装置上の前記保護されているコンピュータソフトウェアの前記実行環境を分析することは、複数の所定のパターンを検出するために前記コンピュータ装置上の他の複数のプロセスを調べることを有する、請求項1に記載の方法。
  24. 複数のウィンドウパラメータとクラスパラメータまたはプロセスおよび複数のファイル名が、複数の侵入プログラムの所定の複数のパターンの検出のために検査されることを特徴とする、請求項23に記載の方法。
  25. 前記コンピュータ装置上の前記複数の他のプロセスのプロセスメモリが、部分的にまたは完全に検査されることを特徴とする、請求項23に記載の方法。
  26. 前記ライセンスコンテナを有する前記コンピュータ装置のインターフェイスに取り付けられている保護装置は、少なくとも1つの前記ライセンスコンテナを有し、前記保護装置全体がロックされるのではなく、侵入が検出された前記保護されているソフトウェアに割り当てられている前記ライセンスコンテナだけがロックされることを特徴とする、請求項からのいずれか1項に記載の方法。
  27. 前記コンピュータシステムのインターフェイスに取り付けられている保護装置は、少なくとも1つのライセンスコンテナを有し、前記コンピュータ装置は、リモートタイムスタンプサーバと通信するように構成され配置されており、前記保護装置のロックは、前記保護装置の動作の継続に必要な前記コンピュータ装置と前記タイムスタンプサーバとの間の通信時に、実施されることを特徴とする、請求項からのいずれか1項または請求項26に記載の方法。
  28. 前記法的なデータを、侵入防止サービスのリモートサーバに送信し、前記侵入防止サービスの前記リモートサーバから送信された特別なコマンドまたはコードを使用して、ロックされている前記ライセンスコンテナのロックを解除することを特徴とする、請求項12に記載の方法。
JP2009515734A 2006-06-21 2007-06-09 侵入検出のための方法と装置 Active JP5054768B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06012776.8 2006-06-21
EP06012776 2006-06-21
PCT/EP2007/005115 WO2007147495A2 (en) 2006-06-21 2007-06-09 Method and system for intrusion detection

Publications (2)

Publication Number Publication Date
JP2009541825A JP2009541825A (ja) 2009-11-26
JP5054768B2 true JP5054768B2 (ja) 2012-10-24

Family

ID=38819412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009515734A Active JP5054768B2 (ja) 2006-06-21 2007-06-09 侵入検出のための方法と装置

Country Status (5)

Country Link
US (1) US8490191B2 (ja)
EP (1) EP2038806B1 (ja)
JP (1) JP5054768B2 (ja)
CN (1) CN101473333B (ja)
WO (1) WO2007147495A2 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
WO2008097780A2 (en) 2007-02-02 2008-08-14 Websense, Inc. System and method for adding context to prevent data leakage over a computer network
KR20090011481A (ko) 2007-07-26 2009-02-02 삼성전자주식회사 단말 장치에서의 침입 탐지 방법 및 그 장치
US9130986B2 (en) 2008-03-19 2015-09-08 Websense, Inc. Method and system for protection against information stealing software
US9015842B2 (en) * 2008-03-19 2015-04-21 Websense, Inc. Method and system for protection against information stealing software
US8621551B2 (en) * 2008-04-18 2013-12-31 Samsung Electronics Company, Ltd. Safety and management of computing environments that may support unsafe components
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
WO2010057312A1 (en) * 2008-11-24 2010-05-27 Certicom Corp. System and method for hardware based security
US8146158B2 (en) 2008-12-30 2012-03-27 Microsoft Corporation Extensible activation exploit scanner
KR101571880B1 (ko) * 2009-02-02 2015-11-25 삼성전자 주식회사 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법
JP5332845B2 (ja) * 2009-04-10 2013-11-06 大日本印刷株式会社 Icチップ及びデータ保護方法等
US8424071B2 (en) * 2009-04-15 2013-04-16 International Business Machines Corporation Method and apparatus for secure and reliable computing
US20130132733A1 (en) * 2009-05-26 2013-05-23 Sunil C. Agrawal System And Method For Digital Rights Management With System Individualization
US8024462B1 (en) * 2009-10-05 2011-09-20 Mcafee, Inc. System, method, and computer program product for preventing communication of unwanted network traffic by holding only a last portion of the network traffic
IN2012DN02458A (ja) 2009-11-13 2015-08-21 Irdeto Canada Corp
CN101771702B (zh) * 2010-01-05 2015-06-10 中兴通讯股份有限公司 点对点网络中防御分布式拒绝服务攻击的方法及系统
JP5196601B2 (ja) * 2010-09-28 2013-05-15 Necインフロンティア株式会社 環境条件判別型ライセンス消費システム及びその方法、並びに、機能提供サーバ及びそのプログラム
US8955142B2 (en) 2011-03-21 2015-02-10 Mocana Corporation Secure execution of unsecured apps on a device
US8812868B2 (en) 2011-03-21 2014-08-19 Mocana Corporation Secure execution of unsecured apps on a device
US8769305B2 (en) * 2011-03-21 2014-07-01 Moncana Corporation Secure execution of unsecured apps on a device
US9473485B2 (en) 2011-03-21 2016-10-18 Blue Cedar Networks, Inc. Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US9396325B2 (en) 2011-03-21 2016-07-19 Mocana Corporation Provisioning an app on a device and implementing a keystore
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US8813227B2 (en) * 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US8863283B2 (en) 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8966629B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US9027124B2 (en) * 2011-09-06 2015-05-05 Broadcom Corporation System for monitoring an operation of a device
CN103164643B (zh) * 2011-12-08 2017-10-24 北京深思数盾科技股份有限公司 一种通过硬件进行反调试的方法和装置
US9609020B2 (en) 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US9787681B2 (en) 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
US20130312058A1 (en) * 2012-01-06 2013-11-21 Optio Labs, Inc. Systems and methods for enhancing mobile security via aspect oriented programming
US9712530B2 (en) 2012-01-06 2017-07-18 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9047922B2 (en) * 2012-01-27 2015-06-02 Seagate Technology Llc Autonomous event logging for drive failure analysis
US10185822B2 (en) 2012-03-14 2019-01-22 Carbon Black, Inc. Systems and methods for tracking and recording events in a network of computing systems
CN104335220B (zh) * 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
CN102831338B (zh) * 2012-06-28 2015-09-30 北京奇虎科技有限公司 一种Android应用程序的安全检测方法及系统
US8819836B2 (en) * 2012-08-18 2014-08-26 Luminal, Inc. System and method for limiting exploitable of potentially exploitable sub-components in software components
US8984331B2 (en) 2012-09-06 2015-03-17 Triumfant, Inc. Systems and methods for automated memory and thread execution anomaly detection in a computer network
US8856757B2 (en) * 2012-11-08 2014-10-07 International Business Machines Corporation Automatic license entitlement calculation
US9241259B2 (en) 2012-11-30 2016-01-19 Websense, Inc. Method and apparatus for managing the transfer of sensitive information to mobile devices
US9773107B2 (en) 2013-01-07 2017-09-26 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US20140282992A1 (en) 2013-03-13 2014-09-18 Optio Labs, Inc. Systems and methods for securing the boot process of a device using credentials stored on an authentication token
DE102013216699A1 (de) * 2013-08-22 2015-02-26 Siemens Ag Österreich Verfahren und Schaltungsanordnung zur Absicherung gegen Scannen eines Adressraums
US9916442B2 (en) * 2014-02-26 2018-03-13 Ca, Inc. Real-time recording and monitoring of mobile applications
EP2913772A1 (de) * 2014-02-28 2015-09-02 Wibu-Systems AG Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung
AU2015235840A1 (en) * 2014-03-27 2016-08-18 Alert Logic, Inc. Malicious software identification integrating behavioral analytics and hardware events
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US10091287B2 (en) * 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
DK3410335T3 (da) * 2014-06-24 2021-11-01 Virsec Systems Inc Automatiseret kodelåsning til reduktion af angrebsoverfladen for software
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
US9813242B2 (en) * 2015-06-25 2017-11-07 Nxp Usa, Inc. Method and apparatus for secure recordation of time of attempted breach of IC package
US10019572B1 (en) 2015-08-27 2018-07-10 Amazon Technologies, Inc. Detecting malicious activities by imported software packages
US10032031B1 (en) 2015-08-27 2018-07-24 Amazon Technologies, Inc. Detecting unknown software vulnerabilities and system compromises
CN105468980B (zh) * 2015-11-16 2018-07-03 华为技术有限公司 一种安全管控的方法、装置及系统
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
CN108292342B (zh) * 2016-01-25 2022-09-06 惠普发展公司,有限责任合伙企业 向固件中的侵入的通知
CA3017918A1 (en) 2016-03-15 2017-09-21 Carbon Black, Inc. Using private threat intelligence in public cloud
AU2017234265A1 (en) 2016-03-15 2018-10-04 Carbon Black, Inc. System and method for process hollowing detection
EP3430783B1 (en) 2016-03-15 2022-03-30 Carbon Black, Inc. Multi-host threat tracking
WO2017160760A1 (en) 2016-03-15 2017-09-21 Carbon Black, Inc. System and method for reverse command shell detection
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
CN107784203A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 利用代码自判断芯片加密信息防止在线调试的方法及系统
US20180075233A1 (en) * 2016-09-13 2018-03-15 Veracode, Inc. Systems and methods for agent-based detection of hacking attempts
US10395033B2 (en) * 2016-09-30 2019-08-27 Intel Corporation System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks
US10726163B2 (en) * 2016-11-17 2020-07-28 International Business Machines Corporation Protecting cryptographic systems from cold boot and other side channel attacks
CN106845170B (zh) * 2017-01-20 2019-11-15 武汉斗鱼网络科技有限公司 一种反调试方法和系统
US20180254898A1 (en) * 2017-03-06 2018-09-06 Rivetz Corp. Device enrollment protocol
US10572666B2 (en) 2017-04-20 2020-02-25 Microsoft Technology Licensing, Llc Return-oriented programming mitigation
US20180322305A1 (en) * 2017-05-05 2018-11-08 Mastercard International Incorporated System and method for data theft prevention
US10885189B2 (en) * 2017-05-22 2021-01-05 Microsoft Technology Licensing, Llc Isolated container event monitoring
US10862904B2 (en) 2017-07-21 2020-12-08 Red Hat, Inc. Container intrusion detection and prevention system
DE102017118164A1 (de) * 2017-08-09 2019-02-14 Infineon Technologies Ag Kryptographische schaltung und datenverarbeitung
US10578647B2 (en) * 2017-09-29 2020-03-03 Intel Corporation Probes for wafer sorting
US10735457B2 (en) * 2017-10-03 2020-08-04 Microsoft Technology Licensing, Llc Intrusion investigation
US11899812B2 (en) * 2018-01-03 2024-02-13 JJD Software LLC Compound platform for maintaining secure data
US11038691B2 (en) * 2018-01-03 2021-06-15 JJD Software LLC Database platform for maintaining secure data
CN110502311B (zh) * 2018-05-18 2022-11-25 杭州海康威视数字技术股份有限公司 容器调度方法、装置、电子设备及可读存储介质
US11263332B2 (en) * 2018-07-31 2022-03-01 International Business Machines Corporation Methods to discourage unauthorized register access
US10542036B1 (en) * 2018-10-02 2020-01-21 Capital One Services, Llc Systems and methods for signaling an attack on contactless cards
JP7052755B2 (ja) * 2019-02-27 2022-04-12 オムロン株式会社 制御装置、管理プログラムおよび制御システム
RU2716871C1 (ru) * 2019-03-19 2020-03-17 Дмитрий Михайлович Михайлов Система и способ защиты электронных систем управления транспортных средств от несанкционированного вторжения
US11423183B2 (en) * 2020-02-28 2022-08-23 International Business Machines Corporation Thermal imaging protection
US11439911B2 (en) * 2020-04-07 2022-09-13 Riot Games, Inc. Systems and methods for anti-cheat detection
CN113742657A (zh) * 2020-05-29 2021-12-03 台达电子工业股份有限公司 软件保护方法及其系统

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4932054A (en) 1988-09-16 1990-06-05 Chou Wayne W Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device
JPH07146788A (ja) * 1993-11-22 1995-06-06 Fujitsu Ltd ウイルス診断機構の作成システムと作成方法並びにウイルス診断機構と診断方法
WO1997004394A1 (en) 1995-07-14 1997-02-06 Christopher Nathan Drake Computer software authentication, protection, and security system
JP3624971B2 (ja) * 1995-10-02 2005-03-02 松下電器産業株式会社 ソフトウエア利用制御方法
US6237137B1 (en) * 1997-10-15 2001-05-22 Dell Usa, L.P. Method and system for preventing unauthorized access to a computer program
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7058928B2 (en) * 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
DE50007300D1 (de) 2000-08-24 2004-09-09 Wibu Systems Ag Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
JP2002082732A (ja) * 2000-09-06 2002-03-22 Nec Corp プログラムコードの不正改竄防止システム及びその方法並びにその制御プログラムを記録した記録媒体
US7415607B2 (en) * 2000-12-22 2008-08-19 Oracle International Corporation Obtaining and maintaining real time certificate status
JP4652565B2 (ja) * 2000-12-22 2011-03-16 コグニティブリサーチラボ株式会社 抗体接種型動的アンチウィルスシステム
US7281267B2 (en) * 2001-02-20 2007-10-09 Mcafee, Inc. Software audit system
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
JP2002328897A (ja) * 2001-04-27 2002-11-15 Matsushita Electric Ind Co Ltd コンピュータネットワークセキュリティシステム
JP2003233521A (ja) * 2002-02-13 2003-08-22 Hitachi Ltd ファイル保護システム
US7734684B2 (en) * 2002-09-26 2010-06-08 Haivision Network Video Inc. Digital content delivery and viewing system and method
US8065717B2 (en) * 2002-11-27 2011-11-22 Activcard Automated security token administrative services
EP1609042A2 (en) * 2003-03-24 2005-12-28 Matsushita Electric Industrial Co., Ltd. Data protection management apparatus and data protection management method
US20040268120A1 (en) * 2003-06-26 2004-12-30 Nokia, Inc. System and method for public key infrastructure based software licensing
US7676846B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Binding content to an entity
JP2005277796A (ja) * 2004-03-25 2005-10-06 Technoimagia Co Ltd コンピュータ・ネットワーク・システムでのデータアクセス・ログ情報収集管理装置
EP1605661B1 (en) 2004-06-07 2006-08-30 Alcatel Method and device for preventing attacks on a call server
JP5069406B2 (ja) * 2004-07-23 2012-11-07 テキサス インスツルメンツ インコーポレイテッド 計算機システム内のセキュリティ侵害を識別して防ぐためのシステムと方法
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
JP4433401B2 (ja) * 2004-12-20 2010-03-17 レノボ シンガポール プライヴェート リミテッド 情報処理システム、プログラム、及び情報処理方法
US20060137016A1 (en) * 2004-12-20 2006-06-22 Dany Margalit Method for blocking unauthorized use of a software application
US7818585B2 (en) * 2004-12-22 2010-10-19 Sap Aktiengesellschaft Secure license management
US20060185020A1 (en) * 2005-02-16 2006-08-17 Ide Technologies, Inc. Software piracy protection device
WO2006109723A1 (ja) * 2005-04-11 2006-10-19 Seiko Instruments Inc. 時刻証明サーバ、基準時刻配信サーバ、時刻証明方法、基準時刻配信方法、時刻証明プログラム、及び通信プロトコルプログラム
US8874082B2 (en) * 2005-05-25 2014-10-28 Qualcomm Incorporated Apparatus and methods for protecting data on a wireless device
US7752139B2 (en) * 2005-12-27 2010-07-06 Michael Noel Hu Method and system for managing software licenses and reducing unauthorized use of software

Also Published As

Publication number Publication date
JP2009541825A (ja) 2009-11-26
WO2007147495A2 (en) 2007-12-27
US20100017879A1 (en) 2010-01-21
EP2038806A2 (en) 2009-03-25
CN101473333A (zh) 2009-07-01
WO2007147495A3 (en) 2008-08-28
EP2038806B1 (en) 2013-09-25
US8490191B2 (en) 2013-07-16
CN101473333B (zh) 2011-09-07

Similar Documents

Publication Publication Date Title
JP5054768B2 (ja) 侵入検出のための方法と装置
US10002239B2 (en) Data protection systems and methods
CA3054903C (en) Secured system operation
KR101626424B1 (ko) 가상 머신 모니터 기반 안티 악성 소프트웨어 보안 시스템 및 방법
US8769296B2 (en) Software signature tracking
EP3259697B1 (en) Mining sandboxes
CN105408911A (zh) 硬件和软件执行概况分析
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
Ma et al. Active warden attack: On the (in) effectiveness of Android app repackage-proofing
Liu et al. Binary exploitation in industrial control systems: Past, present and future
Viljanen A survey on application level intrusion detection
WO2022185031A1 (en) Methods and systems for detecting and blocking malicious actions in an operating system
Zimmermann et al. Introducing reference flow control for detecting intrusion symptoms at the os level
DeMara et al. Mitigation of network tampering using dynamic dispatch of mobile agents
KR20100067383A (ko) 서버 보안 시스템 및 서버 보안 방법
Haruyama et al. Intrusion detection by monitoring system calls with POSIX capabilities
Moraes et al. Emerging Trends in ICT Security: Chapter 10. Advances in Self-Security of Agent-Based Intrusion Detection Systems
Thummala Mitigating effects of false alarms with effective responses
CA2431681A1 (en) System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
CA2446144A1 (en) System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120727

R150 Certificate of patent or registration of utility model

Ref document number: 5054768

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250