JP5689472B2 - 悪意ある実行環境内での静的および動的攻撃からJavaバイトコードを保護するシステムおよび方法 - Google Patents
悪意ある実行環境内での静的および動的攻撃からJavaバイトコードを保護するシステムおよび方法 Download PDFInfo
- Publication number
- JP5689472B2 JP5689472B2 JP2012538154A JP2012538154A JP5689472B2 JP 5689472 B2 JP5689472 B2 JP 5689472B2 JP 2012538154 A JP2012538154 A JP 2012538154A JP 2012538154 A JP2012538154 A JP 2012538154A JP 5689472 B2 JP5689472 B2 JP 5689472B2
- Authority
- JP
- Japan
- Prior art keywords
- bytecode
- java
- protection
- security module
- protected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 163
- 230000003068 static effect Effects 0.000 title claims description 92
- 230000004224 protection Effects 0.000 claims description 173
- 230000007246 mechanism Effects 0.000 claims description 46
- 238000010276 construction Methods 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 229910052724 xenon Inorganic materials 0.000 claims 5
- FHNFHKCVQCLJFQ-UHFFFAOYSA-N xenon atom Chemical compound [Xe] FHNFHKCVQCLJFQ-UHFFFAOYSA-N 0.000 claims 5
- 230000008859 change Effects 0.000 claims 1
- 230000009979 protective mechanism Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 9
- 230000002441 reversible effect Effects 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000000116 mitigating effect Effects 0.000 description 5
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 4
- 241000283014 Dama Species 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000007123 defense Effects 0.000 description 4
- JNSGIVNNHKGGRU-JYRVWZFOSA-N diethoxyphosphinothioyl (2z)-2-(2-amino-1,3-thiazol-4-yl)-2-methoxyiminoacetate Chemical compound CCOP(=S)(OCC)OC(=O)C(=N/OC)\C1=CSC(N)=N1 JNSGIVNNHKGGRU-JYRVWZFOSA-N 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- PTOVOAJZRWYLQM-SFHVURJKSA-N 6-[2-[3-fluoro-5-[2-[(2R)-pyrrolidin-2-yl]ethyl]phenyl]ethyl]-4-methylpyridin-2-amine Chemical compound Cc1cc(N)nc(CCc2cc(F)cc(CC[C@@H]3CCCN3)c2)c1 PTOVOAJZRWYLQM-SFHVURJKSA-N 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 241000953555 Theama Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- PSGAAPLEWMOORI-PEINSRQWSA-N medroxyprogesterone acetate Chemical compound C([C@@]12C)CC(=O)C=C1[C@@H](C)C[C@@H]1[C@@H]2CC[C@]2(C)[C@@](OC(C)=O)(C(C)=O)CC[C@H]21 PSGAAPLEWMOORI-PEINSRQWSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Description
Claims (49)
- Javaバイトコードのタンパリング耐性を向上させるためのシステムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサの少なくとも1つに操作可能に結合され、前記1つまたは複数のプロセッサの少なくとも1つに実行された際に、前記1つまたは複数のプロセッサの少なくとも1つに、以下の処理を実行させる命令を格納した、1つまたは複数のメモリと、
前記処理は、
安全なJavaバイトコードと対応するセキュリティ情報を生成するために、構築時、Javaバイトコードに対して保護を適用することと、
前記安全なJavaバイトコードの少なくとも一部をJavaヴァーチャルマシン(JVM)にロードすることと、
前記安全なJavaバイトコードのロード時と実行時にJavaネイティブインタフェース(JNI)ブリッジを介して前記JVMと通信するために、デプロイ時に実行するよう構成されたソフトウエアモジュールを含むセキュリティモジュールに、前記対応するセキュリティ情報をロードすることと、
1つまたは複数の保護機構を介して、前記Javaバイトコードのローディングと実行の間、前記Javaバイトコードへの静的および動的攻撃に対抗すること、とを含み、
前記1つまたは複数の保護機構の少なくとも1つは、前記セキュリティモジュールに組み込まれ、前記静的および動的攻撃は、前記セキュリティモジュールにロードされた前記対応するセキュリティ情報の少なくとも一部に基づいて対抗され、前記セキュリティモジュールは、前記JVMと共に前記JNIブリッジを介して前記安全なJavaバイトコードと共に実行されるよう構成されている、システム。 - 前記Javaバイトコードが、構築時、複数の部分に分けられ、実行時、前記複数の部分が前記JVMの異なる部分におよび前記セキュリティモジュールに対して実行される、請求項1に記載のシステム。
- 前記安全なJavaバイトコードが、被保護Javaアプリケーションバイトコードスタブ、被保護アプリケーションペイロード、および暗号化されたクラスバイトコードフレームを含む、請求項1に記載のシステム。
- 前記被保護Javaアプリケーションバイトコードスタブを介して、前記被保護アプリケーションペイロードが起動される、請求項3に記載のシステム。
- 前記セキュリティモジュールが、被保護バイトコードクラスローダを含み、
前記被保護バイトコードクラスローダを使用して前記暗号化クラスバイトコードフレームにより前記被保護アプリケーションペイロードが起動される、請求項3または4に記載のシステム。 - 前記セキュリティモジュールが、JVM環境への機能的延長部であり、被保護Javaアプリケーションの信頼の基礎を提供するよう構成され、かつ、複数の異なる安全なJavaバイトコードに整合するよう構成されている、請求項1に記載のシステム。
- 前記セキュリティモジュールがローカルハードウェアごとの保護技術およびシステムを適用するネィティブプログラミング言語で書かれる、請求項1から6のいずれかに記載のシステム。
- 前記セキュリティモジュールが、ローカルネィティブソフトウェアごとの保護技術およびシステムを適用するネィティブプログラミング言語で書かれる請求項1から6のいずれかに記載のシステム。
- 前記セキュリティモジュールが、ホワイトボックスセキュリティ技術を用いて保護される、請求項1から6のいずれかに記載のシステム。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構のパラメータが、ユーザの好みにより構成可能で、かつ、前記ユーザの好みに従って前記安全なJavaバイトコードが生成される、請求項1から9のいずれかに記載のシステム。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が前記Javaバイトコードの実行の一部を前記セキュリティモジュールへ移動させ、それにより前記JVMが実行時に前記Javaバイトコードのすべてを実行するわけではなくなり、元のJavaバイトコードが、JVM上で完全に観察可能にはならない、請求項10に記載のシステム。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、前記Javaバイトコードの選択されたメソッドを、JVMには直接可視的でなく、セキュリティモジュールによってのみ起動可能であるネィティブ形式の機能に変換する、請求項10に記載のシステム。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が前記Javaバイトコードに対してデータフロー変換を行い、機能性を変更することなしに、前記Javaバイトコードのコード構造を変換する、請求項10に記載のシステム。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、前記Javaバイトコードに対する制御フロー変換を行い、機能性を変更することなく前記Javaバイトコードのコード構造を変換する、請求項10に記載のシステム。
- 前記セキュリティモジュールが、実行されるべきJavaバイトコードを、JVMの作業空間内にジャストインタイムでロードしかつ復元し、かつその後実行後の復元したJavaバイトコードを除去する、請求項10に記載のシステム。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、アンチデバッギングモニタリングを行う、請求項1から10のいずれかに記載のシステム。
- 前記少なくとも1つの保護機構が、
カーネルからのそれ自らのプロセスマップを周期的にチェックし、
防御アクションをトリガすることによりそのメモリ空間内へロードされるJavaのデバッギングに関連するライブラリに応答する、請求項16に記載のシステム。 - 前記応答が、
防御アクションをトリガすることにより、そのメモリ空間内へロードされるJDPA(Java Platform Debug Architecture)に関連するライブラリに応答するステップを含む、請求項17に記載のシステム。 - 前記応答が、
防御アクションをトリガすることにより、そのメモリ空間内へロードされるJVMTI(Java Virtual Machine Tool Interface)に関連するライブラリに応答するステップを含む、請求項17に記載のシステム。 - 前記少なくとも1つの保護機構が、デバッギングスレッドの起動を監視し、かつ
防御アクションをトリガすることにより起動されるデバッギングスレッドに応答する、請求項16に記載のシステム。 - 前記少なくとも1つの保護機構が、デバッギングツールにより実行されるラインブレークメッセージを監視し、かつ
防御アクションをトリガすることによりラインブレークメッセージの検出に応答する、請求項16に記載のシステム。 - 前記1つまたは複数の保護機構は、ホウイトボックス(WB)静的セキュリティハンドラを含み、
前記WB静的セキュリティハンドラは、
ユーザからの暗号キーを含む暗号情報を受けて、
構築時に使用されるWB暗号化キーデータと、
実行時、前記セキュリティモジュールにより使用されるWB復号化キーデータおよびWBセキュリティモジュールユーティリティとを生成するものである、請求項1から10のいずれかに記載のシステム。 - 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、バイトコード完全性検証(BIV)システムを含み、
構築時に前記安全なJavaバイトコードのハッシュ値が計算され、かつ、
前記タンパリング耐性セキュリティモジュールが、前記構築時ハッシュ値が実行時に計算される前記ハッシュ値に等しいかどうか決定し、前記セキュリティモジュールが、検証失敗に応答してタンパリング対抗策を起動する、請求項1から10のいずれかに記載のシステム。 - 前記セキュリティモジュールが、
前記JVMで、インタフェースを介してJavaバイトコードを入手し、
前記バイトコードの動的ハッシュ値を計算し、
前記構築時ハッシュ値が実行時に計算した前記ハッシュ値に等しいかどうか決定し、等しくない場合にはタンパリング抵抗策を起動するよう動作することができる、請求項23に記載のシステム。 - 前記ハッシュ値検証が、タンパリング耐性ゲートキーパーにより行われる、請求項24に記載のシステム。
- 前記ハッシュ値検証が、構築時と実行時のハッシュ値を明示的に比較することなしに行われる、請求項24に記載のシステム。
- 前記ハッシュ値検証が、前記Javaバイトコードの選択されたクラスおよびメソッドに対してのみ行われる、請求項25に記載のシステム。
- 前記ハッシュ値検証ならびに選択されたクラスおよびメソッドに関連するデータが暗号化される、請求項27に記載のシステム。
- 静的ハッシュ値が、異なるキーデータを使用したWBサイファーにより暗号化される、請求項27に記載のシステム。
- BIVシステムが閉じる際に、前記セキュリティモジュールが、BIVシステムにより使用された関連のメモリ空間および他の情報をクリーンにする、請求項27に記載のシステム。
- 前記1つまたは複数の保護機構が、構築時、被保護Javaアプリケーションバイトコードスタブ、被保護アプリケーションペイロード、および暗号化クラスバイトコードフレームを生成するためのセキュアローディングバイトコード(SLB)ツールを含み、
前記セキュリティモジュールが、SLB動的セキュリティハンドラを含み、このSLB動的セキュリティハンドラが、
前記安全なJavaアプリケーションバイトコードに対応する前記暗号クラスバイトコードフレームをメモリバッファへロードし、
前記暗号化クラスに対応するホワイトボックス被保護復号化キーデータを介して前記暗号化クラスバイトコードフレーム内に含まれる各暗号化クラスを復号化し、かつ
各復号化したクラスバイトコードを、セキュリティモジュールクラスローダーによりアプリケーション作業空間へロードして、前記アプリケーション作業空間内の前記Javaアプリケーションバイトコードを実行するためのものである、請求項1から10のいずれかに記載のシステム。 - 前記安全なJavaバイトコードの実行時のどの時点においても、当該安全なJavaバイトコードの一部のみが、復号された形式で格納される、
請求項1から10のいずれかに記載のシステム。 - Javaバイトコードのタンパリング耐性を向上させるために、1つまたは複数のコンピュータデバイスで実行される方法であって、
前記1つまたは複数のコンピュータデバイスの少なくとも1つにより、構築時に、Javaバイトコードに保護を適用して安全なJavaバイトコードと対応するセキュリティ情報とを生成するステップと、
前記1つまたは複数のコンピュータデバイスの少なくとも1つにより、前記安全なJavaバイトコードの少なくとも一部をJavaヴァーチャルマシン(JVM)にロードするステップと、
前記安全なJavaバイトコードのロード時と実行時にJavaネイティブインタフェース(JNI)ブリッジを介して前記JVMと通信するために、前記1つまたは複数のコンピュータデバイスの少なくとも1つにより、デプロイ時に実行するよう構成されたソフトウエアモジュールを含むセキュリティモジュールに、前記対応するセキュリティ情報をロードするステップと、
前記1つまたは複数のコンピュータデバイスの少なくとも1つにより、1つまたは複数の保護機構を介して、前記Javaバイトコードのローディングと実行の間、前記Javaバイトコードへの静的および動的攻撃に対抗するステップ、とを含み、
前記1つまたは複数の保護機構の少なくとも1つは、前記セキュリティモジュールに組み込まれ、前記静的および動的攻撃は、前記セキュリティモジュールにロードされた前記対応するセキュリティ情報の少なくとも一部に基づいて対抗され、前記セキュリティモジュールは、前記JVMと共に前記JNIブリッジを介して前記安全なJavaバイトコードと共に実行されるよう構成されている、方法。 - 前記Javaバイトコードが、構築時、複数の部分に分けられ、実行時、前記複数の部分が前記JVMの異なる部分におよび前記セキュリティモジュールに対して実行される、請求項33に記載の方法。
- 前記安全なJavaバイトコードが、被保護Javaアプリケーションバイトコードスタブ、被保護アプリケーションペイロード、および暗号化されたクラスバイトコードフレームを含む、請求項33に記載の方法。
- 前記被保護Javaアプリケーションバイトコードスタブを介して、前記被保護アプリケーションペイロードが起動される、請求項35に記載の方法。
- 前記セキュリティモジュールが、被保護バイトコードクラスローダを含み、
前記被保護バイトコードクラスローダを使用して前記暗号化クラスバイトコードフレームにより前記被保護アプリケーションペイロードが起動される、請求項35または36に記載の方法。 - 前記セキュリティモジュールが、JVM環境への機能的延長部であり、被保護Javaアプリケーションの信頼の基礎を提供するよう構成され、かつ、複数の異なる安全なJavaバイトコードに整合するよう構成されている、請求項33に記載の方法。
- 前記セキュリティモジュールがローカルハードウェアごとの保護技術およびシステムを適用するネィティブプログラミング言語で書かれる、請求項33から38のいずれかに記載の方法。
- 前記セキュリティモジュールが、ローカルネィティブソフトウェアごとの保護技術およびシステムを適用するネィティブプログラミング言語で書かれる、請求項33から38のいずれかに記載の方法。
- 前記セキュリティモジュールが、ホワイトボックスセキュリティ技術を用いて保護される、請求項33から38のいずれかに記載の方法。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構のパラメータが、ユーザの好みにより構成可能で、かつ、前記ユーザの好みに従って前記安全なJavaバイトコードが生成される、請求項33から41のいずれかに記載の方法。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が前記Javaバイトコードの実行の一部を前記セキュリティモジュールへ移動させ、それにより前記JVMが実行時に前記Javaバイトコードのすべてを実行するわけではなくなり、元のJavaバイトコードが、JVM上で完全に観察可能にはならない、請求項42に記載の方法。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、前記Javaバイトコードの選択されたメソッドを、JVMには直接可視的でなく、セキュリティモジュールによってのみ起動可能であるネィティブ形式の機能に変換する、請求項42に記載の方法。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が前記Javaバイトコードに対してデータフロー変換を行い、機能性を変更することなしに、前記Javaバイトコードのコード構造を変換する、請求項42に記載の方法。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、前記Javaバイトコードに対する制御フロー変換を行い、機能性を変更することなく前記Javaバイトコードのコード構造を変換する、請求項42に記載の方法。
- 前記セキュリティモジュールが、実行されるべきJavaバイトコードを、JVMの作業空間内にジャストインタイムでロードしかつ復元し、かつその後実行後の復元したJavaバイトコードを除去する、請求項42に記載の方法。
- 前記1つまたは複数の保護機構中の少なくとも1つの保護機構が、アンチデバッギングモニタリングを行う、請求項33から42のいずれかに記載の方法。
- 少なくとも1つのコンピュータ読取り可能な記録媒体であって、1つまたは複数のコンピュータデバイスで実行されたときに、前記1つまたは複数のコンピュータデバイスの少なくとも1つに、請求項33から48のいずれかに記載の方法を実行させるコンピュータ読取り可能な命令を記録した、記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26088709P | 2009-11-13 | 2009-11-13 | |
US61/260,887 | 2009-11-13 | ||
PCT/CA2010/001761 WO2011057393A1 (en) | 2009-11-13 | 2010-11-12 | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013511077A JP2013511077A (ja) | 2013-03-28 |
JP5689472B2 true JP5689472B2 (ja) | 2015-03-25 |
Family
ID=43991129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012538154A Expired - Fee Related JP5689472B2 (ja) | 2009-11-13 | 2010-11-12 | 悪意ある実行環境内での静的および動的攻撃からJavaバイトコードを保護するシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9213826B2 (ja) |
EP (2) | EP2467800B1 (ja) |
JP (1) | JP5689472B2 (ja) |
KR (1) | KR20130018642A (ja) |
CN (1) | CN102598017B (ja) |
CA (1) | CA2774728C (ja) |
IN (1) | IN2012DN02458A (ja) |
WO (1) | WO2011057393A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210094300A (ko) * | 2020-01-21 | 2021-07-29 | 주식회사 행복소프트 | 응용프로그램의 동적 변조 탐지 방법 및 장치 |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8424082B2 (en) | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
EP2402880A1 (en) * | 2010-07-01 | 2012-01-04 | Aladdin Europe GmbH | Method and device for selectively protecting one of a plurality of methods of a class of an application written in an object-orientated language |
FR2967275B1 (fr) * | 2010-11-10 | 2012-12-28 | Oberthur Technologies | Procede, programme d'ordinateur et dispositif de securisation de code intermediaire de programmation pour son execution par une machine virtuelle |
US8812868B2 (en) | 2011-03-21 | 2014-08-19 | Mocana Corporation | Secure execution of unsecured apps on a device |
US8955142B2 (en) * | 2011-03-21 | 2015-02-10 | Mocana 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 |
US9460281B2 (en) * | 2011-03-31 | 2016-10-04 | Irdeto B.V. | Method of securing non-native code |
WO2013049841A1 (en) * | 2011-09-30 | 2013-04-04 | Newman Infinite, Inc. | Apparatus, method and computer-readable storage medium for securing javascript |
US9021271B1 (en) * | 2011-12-27 | 2015-04-28 | Emc Corporation | Injecting code decrypted by a hardware decryption module into Java applications |
KR101944010B1 (ko) * | 2012-02-24 | 2019-01-30 | 삼성전자 주식회사 | 애플리케이션의 변조 감지 방법 및 장치 |
WO2013142947A1 (en) | 2012-03-30 | 2013-10-03 | Irdeto Canada Corporation | Secured execution of a web application |
WO2014133528A1 (en) * | 2013-02-28 | 2014-09-04 | Hewlett-Packard Development Company, L.P. | Determining coverage of dynamic security scans using runtime and static code analyses |
US9141823B2 (en) * | 2013-03-15 | 2015-09-22 | Veridicom, Sa De Cv | Abstraction layer for default encryption with orthogonal encryption logic session object; and automated authentication, with a method for online litigation |
KR101500512B1 (ko) * | 2013-05-15 | 2015-03-18 | 소프트캠프(주) | 데이터 프로세싱 시스템 보안 장치와 보안방법 |
US9378034B2 (en) | 2013-05-16 | 2016-06-28 | Sap Se | Dynamic bytecode modification of classes and class hierarchies |
US8943592B1 (en) | 2013-07-15 | 2015-01-27 | Eset, Spol. S.R.O. | Methods of detection of software exploitation |
KR101350390B1 (ko) * | 2013-08-14 | 2014-01-16 | 숭실대학교산학협력단 | 코드 난독화 장치 및 그 방법 |
KR101471589B1 (ko) * | 2013-08-22 | 2014-12-10 | (주)잉카엔트웍스 | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 |
KR101490047B1 (ko) * | 2013-09-27 | 2015-02-04 | 숭실대학교산학협력단 | 자가변환 기반 애플리케이션 코드 난독화 장치 및 그 방법 |
US9483549B2 (en) | 2013-09-30 | 2016-11-01 | Microsoft Technology Licensing, Llc | Persisting state at scale across browser sessions |
US9740854B2 (en) * | 2013-10-25 | 2017-08-22 | Red Hat, Inc. | System and method for code protection |
KR101556908B1 (ko) * | 2013-11-14 | 2015-10-02 | (주)잉카엔트웍스 | 프로그램 보호 장치 |
GB201405754D0 (en) * | 2014-03-31 | 2014-05-14 | Irdeto Bv | Protecting an item of software comprising conditional code |
KR101566142B1 (ko) * | 2014-10-21 | 2015-11-06 | 숭실대학교산학협력단 | 사용자 단말기 및 그것을 이용한 응용 프로그램의 핵심코드 보호 방법 |
CN104375938B (zh) * | 2014-11-20 | 2017-09-05 | 工业和信息化部电信研究院 | 安卓应用程序的动态行为监测方法及系统 |
EP3026559A1 (en) * | 2014-11-28 | 2016-06-01 | Thomson Licensing | Method and device for providing verifying application integrity |
WO2016112338A1 (en) * | 2015-01-08 | 2016-07-14 | Intertrust Technologies Corporation | Cryptographic systems and methods |
EP3265945A1 (en) * | 2015-03-02 | 2018-01-10 | Inventio AG | Protecting a computer program against reverse engineering |
US9460284B1 (en) * | 2015-06-12 | 2016-10-04 | Bitdefender IPR Management Ltd. | Behavioral malware detection using an interpreter virtual machine |
KR101740133B1 (ko) * | 2015-08-10 | 2017-05-26 | 라인 가부시키가이샤 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
KR101740134B1 (ko) | 2015-08-10 | 2017-05-26 | 라인 가부시키가이샤 | 어플리케이션의 코드 난독화를 위한 시스템 및 방법 |
WO2017056194A1 (ja) * | 2015-09-29 | 2017-04-06 | 株式会社 東芝 | 情報機器または情報通信端末および、情報処理方法 |
JP6890589B2 (ja) * | 2015-12-15 | 2021-06-18 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 計算デバイス及び方法 |
EP3188063A1 (en) * | 2015-12-29 | 2017-07-05 | GuardSquare NV | A build system |
MA44905A (fr) * | 2016-04-05 | 2018-05-09 | Mi Group B V | Système et procédé d'informations de vol |
US10073975B2 (en) | 2016-08-11 | 2018-09-11 | International Business Machines Corporation | Application integrity verification in multi-tier architectures |
US10394554B1 (en) * | 2016-09-09 | 2019-08-27 | Stripe, Inc. | Source code extraction via monitoring processing of obfuscated byte code |
US11423140B1 (en) * | 2017-03-27 | 2022-08-23 | Melih Abdulhayoglu | Auto-containment of guest user applications |
US10951644B1 (en) | 2017-04-07 | 2021-03-16 | Comodo Security Solutions, Inc. | Auto-containment of potentially vulnerable applications |
CN107294702B (zh) * | 2017-07-17 | 2020-04-28 | 四川长虹电器股份有限公司 | 基于Hybrid APP自身特征的前端代码加密方法 |
WO2019028547A1 (en) | 2017-08-08 | 2019-02-14 | Crypto4A Technologies Inc. | METHOD AND SYSTEM FOR DEPLOYING AND EXECUTING EXECUTABLE CODE BY SECURE MACHINE |
CN107480478B (zh) * | 2017-08-14 | 2019-08-13 | 钟尚亮 | 一种java应用程序的加密方法及运行方法 |
EP3861469B1 (en) | 2018-10-23 | 2023-05-31 | Huawei Technologies Co., Ltd. | Device and method for validation of virtual function pointers |
EP3709560A1 (en) * | 2019-03-14 | 2020-09-16 | Thales Dis France SA | Method for provisioning white-box assets and corresponding device, server and system |
US11468881B2 (en) * | 2019-03-29 | 2022-10-11 | Samsung Electronics Co., Ltd. | Method and system for semantic intelligent task learning and adaptive execution |
KR102243378B1 (ko) * | 2019-04-02 | 2021-04-22 | (주)드림시큐리티 | 자바 라이브러리의 무결성을 보장하기 위한 방법 및 장치 |
US11150915B2 (en) | 2019-09-13 | 2021-10-19 | International Business Machines Corporation | Deferred bytecode class verification in managed runtime environments |
CN110826031B (zh) * | 2019-10-31 | 2022-08-02 | 望海康信(北京)科技股份公司 | 加密方法、装置、计算机设备及存储介质 |
US10963275B1 (en) | 2019-10-31 | 2021-03-30 | Red Hat, Inc. | Implementing dependency injection via direct bytecode generation |
US11403075B2 (en) | 2019-11-25 | 2022-08-02 | International Business Machines Corporation | Bytecode verification using class relationship caching |
CN111143029B (zh) * | 2019-12-19 | 2024-03-22 | 浪潮软件股份有限公司 | 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 |
KR20210112923A (ko) | 2020-03-06 | 2021-09-15 | 삼성전자주식회사 | 시스템 온 칩 및 이의 동작 방법 |
US11550883B2 (en) * | 2020-09-08 | 2023-01-10 | Assured Information Security, Inc. | Code protection |
CN113239330A (zh) * | 2021-06-10 | 2021-08-10 | 杭州安恒信息技术股份有限公司 | 一种基于散列算法的反调试方法及相关装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692047A (en) | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
CA2293650C (en) | 1997-06-09 | 2012-09-25 | Christian Sven Collberg | Obfuscation techniques for enhancing software security |
US6594761B1 (en) | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
US6779114B1 (en) * | 1999-08-19 | 2004-08-17 | Cloakware Corporation | Tamper resistant software-control flow encoding |
CA2304433A1 (en) | 2000-04-05 | 2001-10-05 | Cloakware Corporation | General purpose access recovery scheme |
CA2305078A1 (en) | 2000-04-12 | 2001-10-12 | Cloakware Corporation | Tamper resistant software - mass data encoding |
US7020882B1 (en) * | 2000-09-14 | 2006-03-28 | International Business Machines Corporation | Method, system, and program for remotely manipulating a user interface over a network |
GB0024918D0 (en) * | 2000-10-11 | 2000-11-22 | Sealedmedia Ltd | Method of providing java tamperproofing |
CA2327911A1 (en) | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US7039814B2 (en) * | 2001-03-07 | 2006-05-02 | Sony Corporation | Method for securing software via late stage processor instruction decryption |
CA2348355A1 (en) | 2001-05-24 | 2002-11-24 | Cloakware Corporation | General scheme of using encodings in computations |
CA2350029A1 (en) | 2001-06-08 | 2002-12-08 | Cloakware Corporation | Sustainable digital watermarking via tamper-resistant software |
CA2354470A1 (en) | 2001-07-30 | 2003-01-30 | Cloakware Corporation | Active content for secure digital media |
US7516331B2 (en) * | 2003-11-26 | 2009-04-07 | International Business Machines Corporation | Tamper-resistant trusted java virtual machine and method of using the same |
JP2005293109A (ja) * | 2004-03-31 | 2005-10-20 | Canon Inc | ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム |
US20100146304A1 (en) * | 2005-07-22 | 2010-06-10 | Kazufumi Miyatake | Execution device |
US7788730B2 (en) * | 2006-01-17 | 2010-08-31 | International Business Machines Corporation | Secure bytecode instrumentation facility |
WO2007147495A2 (en) * | 2006-06-21 | 2007-12-27 | Wibu-Systems Ag | Method and system for intrusion detection |
JP2009258772A (ja) * | 2006-08-09 | 2009-11-05 | Panasonic Corp | アプリケーション実行装置 |
DE102007045743A1 (de) * | 2007-09-25 | 2009-04-02 | Siemens Ag | Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes |
EP2240857A4 (en) * | 2007-12-21 | 2013-12-25 | Univ Virginia Patent Found | SYSTEM, METHOD AND COMPUTER PROGRAM FOR PROTECTING SOFTWARE THROUGH ANTI-FALSIFICATION AND OBSCURING TRANSFORMATIONS |
KR20100120671A (ko) * | 2008-01-31 | 2010-11-16 | 이르데토 비.브이. | 스마트 카드의 보안 |
EP2196934A1 (en) * | 2008-12-09 | 2010-06-16 | Gemalto SA | Method for securing java bytecode |
-
2010
- 2010-11-12 CN CN201080048082.7A patent/CN102598017B/zh active Active
- 2010-11-12 CA CA2774728A patent/CA2774728C/en not_active Expired - Fee Related
- 2010-11-12 EP EP10829403.4A patent/EP2467800B1/en active Active
- 2010-11-12 JP JP2012538154A patent/JP5689472B2/ja not_active Expired - Fee Related
- 2010-11-12 KR KR1020127015162A patent/KR20130018642A/ko active IP Right Grant
- 2010-11-12 IN IN2458DEN2012 patent/IN2012DN02458A/en unknown
- 2010-11-12 US US13/499,495 patent/US9213826B2/en active Active
- 2010-11-12 EP EP21175342.1A patent/EP3923165A1/en not_active Withdrawn
- 2010-11-12 WO PCT/CA2010/001761 patent/WO2011057393A1/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210094300A (ko) * | 2020-01-21 | 2021-07-29 | 주식회사 행복소프트 | 응용프로그램의 동적 변조 탐지 방법 및 장치 |
KR102338885B1 (ko) | 2020-01-21 | 2021-12-14 | 주식회사 행복소프트 | 응용프로그램의 동적 변조 탐지 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP3923165A1 (en) | 2021-12-15 |
EP2467800A4 (en) | 2016-03-16 |
JP2013511077A (ja) | 2013-03-28 |
IN2012DN02458A (ja) | 2015-08-21 |
CA2774728C (en) | 2019-02-12 |
CN102598017B (zh) | 2016-03-09 |
CN102598017A (zh) | 2012-07-18 |
EP2467800B1 (en) | 2021-06-30 |
US9213826B2 (en) | 2015-12-15 |
KR20130018642A (ko) | 2013-02-25 |
WO2011057393A1 (en) | 2011-05-19 |
CA2774728A1 (en) | 2011-05-19 |
US20120246487A1 (en) | 2012-09-27 |
EP2467800A1 (en) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5689472B2 (ja) | 悪意ある実行環境内での静的および動的攻撃からJavaバイトコードを保護するシステムおよび方法 | |
US10255414B2 (en) | Software self-defense systems and methods | |
US20020144153A1 (en) | Systems and methods for preventing unauthorized use of digital content | |
US20170024230A1 (en) | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine | |
WO2013170724A1 (zh) | 安卓系统中java应用程序的保护方法 | |
JP2004038966A (ja) | セキュアな変数データ保護を提供するセキュアで不明瞭なタイプライブラリ | |
Shioji et al. | Code shredding: byte-granular randomization of program layout for detecting code-reuse attacks | |
CN105608391A (zh) | 多elf文件保护方法及系统 | |
Götzfried et al. | Soteria: Offline software protection within low-cost embedded devices | |
Cappaert et al. | Self-encrypting code to protect against analysis and tampering | |
US7444677B2 (en) | Intentional cascade failure | |
Gelbart et al. | CODESSEAL: Compiler/FPGA approach to secure applications | |
AU2002219852B2 (en) | Systems and methods for preventing unauthorized use of digital content | |
AU2002219852A1 (en) | Systems and methods for preventing unauthorized use of digital content | |
Buckwell et al. | Execution at RISC: Stealth JOP Attacks on RISC-V Applications | |
Epifani | Control-Flow Integrity for Embedded Systems: Study Case of an FPGA-Based Solution | |
Togan et al. | Virtual machine for encrypted code execution | |
Cloosters et al. | Salsa: SGX Attestation for Live Streaming Applications | |
Aelterman | Exploitation of synergies between software protections | |
Gerstmayer et al. | Binary protection framework for embedded systems | |
Shonia et al. | ANALYSIS OF WINDOWS PORTABLE EXECUTABLE SOFTWARE PROTECTION SYSTEMS | |
AU2010202883A1 (en) | Systems and Methods for Preventing Unauthorized Use of Digital Content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131025 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140805 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20141104 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20141111 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20141201 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20141208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150105 |
|
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: 20150127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5689472 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |