JP4638505B2 - 電子デバイス内の安全なプログラム解釈方法 - Google Patents
電子デバイス内の安全なプログラム解釈方法 Download PDFInfo
- Publication number
- JP4638505B2 JP4638505B2 JP2007542018A JP2007542018A JP4638505B2 JP 4638505 B2 JP4638505 B2 JP 4638505B2 JP 2007542018 A JP2007542018 A JP 2007542018A JP 2007542018 A JP2007542018 A JP 2007542018A JP 4638505 B2 JP4638505 B2 JP 4638505B2
- Authority
- JP
- Japan
- Prior art keywords
- interpreted
- interpreted program
- electronic device
- program
- interpreter
- 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
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/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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
本発明はインタープリタ型プログラミング言語に関するものである。特に、本発明は電子デバイス内の安全なプログラム解釈方法に関するものである。
電子通信デバイスではセキュリティが重要な要素となっている。現代のモバイル端末は、シンプルな携帯電話からパーソナル・コンピュータと同様のアプリケーションを備える多目的通信デバイスへと進化を遂げている。これらの通信デバイスには、インターネット・ブラウジング、Eメール、マルチメディア・コール等のような様々なサービスが装備されている。モバイル端末向けの1つの重要な技術には、Java(登録商標)、Perl、PHP、Python等のような様々なインタープリタ型言語がある。これらのインタープリタ型言語を用いることにより、モバイル端末で利用可能な付加価値サービス及びゲームの種類は飛躍的に増加している。これらのインタープリタ型言語を使用して開発されるソフトウェアは、個別のプログラムと共有のライブラリとを含んでいる。これらのプログラム及びライブラリは、ネットワーク・サーバから無線を介してモバイル端末にダウンロードすることができる。
ステップ202で、主要なインタープリタ・コード、即ちインタープリタ・エンジンを含む共有インタープリタ・ライブラリが、電子デバイスに提供される。共有ライブラリは、例えばネイティブ・オペレーティング・システムの一部として提供することも、ユーザがインタープリタのダウンロードを要求したときに、無線を介してネットワーク・サーバから電子デバイスにダウンロードすることもできる。
ステップ222では、プログラムが終了したかどうかがインタープリタ・エンジンによってチェックされる。プログラムが終了していない場合は、ステップ224に進む。
ステップ230で、インタープリタ・エンジンはプログラムの実行を許可しないようにする。その際はユーザに対して適切なエラー・メッセージを示すことができ、実行可能スタブの実行は終了する。
インタープリタ実行可能ファイルを
/sys/bin/lang-<version>-interpreter.dll
(<version>部はインタープリタのバージョンを示す)
というDLL内に配置し、他の任意のプログラムに関するSID/VIDペアが各インタープリタ型プログラムに割り当てられる度に、実行可能スタブ
/sys/bin/lang-<version>-stub-interpreter.exe
(<version>部はインタープリタのバージョンを示す)を作成し、インタープリタ型プログラムの各ファイルを/private/<SID>/ディレクトリ内に配置し、各インタープリタ型プログラムXについて、
/sys/bin/lang-<version>-stub-interpreter.exe
を/sys/bin/interpreted-program-X.exeにコピーし、インタープリタ型プログラムXが有するべきケイパビリティをインタープリタ型プログラムXに割り当て、実行可能スタブは常にそれ自体のプライベート・ディレクトリから指定されたプログラムを実行し、汎用的な共有コードを/resource/<lang>/lib内に配置し、必要とされるネイティブDLLがあればそれを/sys/bin内に配置し、共有コードの管理に使用されるポリシーを規定するファイルを/resource/<lang>/policy.txt配下に配置する。
スタブ・インタープリタ実行可能ファイルを使用することにより、ケイパビリティをプログラムに付与する簡潔な手法が提供されるが、既存のオペレーティング・システムの仕組みを使用してケイパビリティを任意の入力に付与することは容易なことではない。
●/sys/resource/<lang>ディレクトリの管理手法
●インタープリタをあるスクリプトについて起動するlang-<version>-stub-interpreter.exeの作成手法
●スクリプト内で使用されるデフォルト・ディレクトリは、/private/<SID>である。グローバル読出し可能/書込み可能なファイルについてはその旨を明示的に宣言しなければならない。
●プログラムに何らかのケイパビリティ(ユーザ・ケイパビリティを含む)が付与されている場合は、プライベート・ディレクトリ及び/sys/resourceディレクトリの外部のコードの実行は無効化される。本機能を無効化する特別な「開発者スイッチ(developer-switch)」を有することが望まれる可能性もある。
●ユーザ・ケイパビリティが付与されている場合には、プログラム・コードは、プログラムのプライベート・ディレクトリ及び共有コード・ディレクトリからしかロードすることができない。
●システム・ケイパビリティが付与されている場合には、プログラム・コードは、プログラムのプライベート・ディレクトリからしかロードすることができない。
Claims (23)
- 電子デバイス内で、少なくとも1つの共有インタープリタ・ライブラリと実行可能スタブのプロトタイプとを提供することと、
インタープリタ型プログラムを前記電子デバイスにロードすることと、
前記電子デバイス内で、前記実行可能スタブのプロトタイプを使用して実行可能スタブを形成すること、ただし前記形成される実行可能スタブは、前記電子デバイスのオペレーティングシステムで実行されうるアプリケーションである、前記形成することと、
前記電子デバイス内で、前記実行可能スタブを前記インタープリタ型プログラムと関連付けることと、
少なくとも1つの第2のケイパビリティを前記実行可能スタブに割り当てることと、
前記実行可能スタブを前記電子デバイスの個別のプロセス・コンテキストで実行することと、
前記実行可能スタブによって、前記インタープリタ型プログラムを前記少なくとも1つの共有インタープリタ・ライブラリに示すことと、
前記実行可能スタブによって、前記少なくとも1つの共有インタープリタ・ライブラリ内の少なくとも1つの関数を呼び出して前記インタープリタ型プログラムを解釈することと、
外部のインタープリタ型プログラム・コード・セクションが前記インタープリタ型プログラムによって参照されているかどうかをチェックすることと、
前記外部のインタープリタ型プログラム・コード・セクションを前記電子デバイスにロードすることと、
前記外部のインタープリタ型プログラム・コード・セクションに関する少なくとも1つの第1のケイパビリティを推測することと、
前記少なくとも1つの第2のケイパビリティが前記少なくとも1つの第1のケイパビリティのサブセットでない場合は、前記外部のインタープリタ型プログラム・コード・セクションの実行を許可しないようにすることと
を含む、方法。 - 前記インタープリタ型プログラム・コード・セクションをロードすることは、それをネットワーク・サーバから前記電子デバイスにダウンロードすることを含む、請求項1に記載の方法。
- 信頼レベルを前記外部のインタープリタ型プログラム・コード・セクションに付与することと、
前記少なくとも1つの第1のケイパビリティを前記信頼レベルに基づいて判定することと
を更に含む請求項1または2に記載の方法。 - インタープリタ型プログラム・コード・セクションに関する信頼性カテゴリを、前記電子デバイスの前記ファイル・システム内に所在する前記インタープリタ型プログラム・コード・セクションを含むファイルに関する少なくとも1つの位置に基づいて判定し、前記インタープリタ型プログラム・コード・セクションが信頼されるリモート送信者から受信されたものかどうかを判定することと、
前記信頼レベルを前記信頼性カテゴリに基づいて付与することと
を更に含む請求項3に記載の方法。 - 前記インタープリタ型プログラムをロードすることは、前記インタープリタ型プログラムをネットワーク・サーバからダウンロードすることを含む、請求項1から4のいずれかに記載の方法。
- 前記少なくとも1つの共有インタープリタ・ライブラリと前記実行可能スタブのプロトタイプとを提供することは、それらをネットワーク・サーバから前記電子デバイスにダウンロードすることを含む、請求項1から5のいずれかに記載の方法。
- 前記インタープリタ型プログラムは、前記電子デバイス内で一意の識別子を使用して識別される、請求項1から6のいずれかに記載の方法。
- 前記電子デバイスは、モバイル端末である、請求項1から7のいずれかに記載の方法。
- 前記電子デバイスは、SYMBIAN(登録商標)オペレーティング・システム・デバイスである、請求項1から8のいずれかに記載の方法。
- 前記電子デバイスは、汎用パケット無線システム(GPRS)端末又はユニバーサル・モバイル・テレコミュニケーション・システム(UMTS)端末である、請求項1から9のいずれかに記載の方法。
- 装置であって、
インタープリタ・エンジンを実装するように構成された少なくとも1つの共有インタープリタ・ライブラリであって、外部のインタープリタ型プログラム・コード・セクションがインタープリタ型プログラムによって参照されているかどうかをチェックし、前記外部のインタープリタ型プログラム・コード・セクションに関する少なくとも1つの第1のケイパビリティを推測し、少なくとも1つの第2のケイパビリティが前記少なくとも1つの第1のケイパビリティのサブセットでない場合は、前記外部のインタープリタ型プログラム・コード・セクションの実行を許可しないように構成される、前記インタープリタ・ライブラリと、
前記インタープリタ型プログラムと前記外部のインタープリタ型プログラム・コード・セクションとを前記装置にロードし、実行可能スタブのプロトタイプを使用して実行可能スタブを形成し、前記実行可能スタブを前記インタープリタ型プログラムと関連付け、前記少なくとも1つの第2のケイパビリティを前記実行可能スタブに割り当てるように構成されたインストーラ・エンティティと、
前記実行可能スタブを個別のプロセス・コンテキストで実行するように構成されたオペレーティング・システム・エンティティと
を備える装置。 - 前記少なくとも1つのインタープリタ型プログラム・コード・セクションをロードすることは、それをネットワーク・サーバから前記装置にダウンロードすることを含む、請求項11に記載の装置。
- 前記少なくとも1つの共有インタープリタ・ライブラリは更に、信頼レベルを前記外部のインタープリタ型プログラム・コード・セクションに付与し、前記少なくとも1つの第1のケイパビリティを前記信頼レベルに基づいて判定するように構成される、請求項11または12に記載の装置。
- 前記インタープリタ型プログラムをロードすることは、前記インタープリタ型プログラムをネットワーク・サーバからダウンロードすることを含む、請求項11から13のいずれかに記載の装置。
- 前記インストーラ・エンティティは更に、前記少なくとも1つの共有インタープリタ・ライブラリと前記実行可能スタブのプロトタイプとをネットワーク・サーバから前記装置にダウンロードするように構成される、請求項11から14のいずれかに記載の装置。
- 前記オペレーティング・システム・エンティティは更に、前記インタープリタ型プログラムを一意の識別子を使用して識別するように構成される、請求項11から15のいずれかに記載の装置。
- モバイル端末である、請求項11から16のいずれかに記載の装置。
- SYMBIAN(登録商標)オペレーティング・システム・デバイスである、請求項11から17のいずれかに記載の装置。
- 汎用パケット無線システム(GPRS)端末又はユニバーサル・モバイル・テレコミュニケーション・システム(UMTS)端末である、請求項11から18のいずれかに記載の装置。
- コンピュータ・プログラムであって、データ処理システム上で実行されると、該データ処理システムに、
インタープリタ型プログラムをロードすることと、
実行可能スタブのプロトタイプを使用して実行可能スタブを形成すること、ただし前記形成される実行可能スタブは、前記電子デバイスのオペレーティングシステムで実行されうるアプリケーションである、前記形成することと、
前記実行可能スタブを前記インタープリタ型プログラムと関連付けることと、
少なくとも1つの第2のケイパビリティを前記インタープリタ型プログラムに割り当てることと、
前記少なくとも1つの第2のケイパビリティを前記実行可能スタブと関連付けることと、
前記実行可能スタブを個別のプロセス・コンテキストで実行することと、
前記実行可能スタブによって、前記インタープリタ型プログラムを少なくとも1つの共有インタープリタ・ライブラリに示すことと、
前記実行可能スタブによって、前記共有インタープリタ・ライブラリ内の少なくとも1つの関数を呼び出して前記インタープリタ型プログラムを解釈することと、
外部のインタープリタ型プログラム・コード・セクションが前記インタープリタ型プログラムによって参照されているかどうかをチェックすることと、
前記外部のインタープリタ型プログラム・コード・セクションを前記電子デバイスにロードすることと、
前記外部のインタープリタ型プログラム・コード・セクションに関する少なくとも1つの第1のケイパビリティを推測することと、
前記少なくとも1つの第2のケイパビリティが前記少なくとも1つの第1のケイパビリティのサブセットでない場合は、前記外部のインタープリタ型プログラム・コード・セクションの実行を許可しないようにすることと、
を実行させるように構成されたコードを含むコンピュータ・プログラム。 - 前記コンピュータ・プログラムは、コンピュータ可読媒体に記憶される、請求項20に記載のコンピュータ・プログラム。
- 前記コンピュータ可読媒体は、取り外し可能なメモリ・カードである、請求項21に記載のコンピュータ・プログラム。
- 前記コンピュータ可読媒体は、磁気ディスク又は光ディスクである、請求項21に記載のコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US99680104A | 2004-11-24 | 2004-11-24 | |
FI20041517A FI20041517A0 (fi) | 2004-11-25 | 2004-11-25 | Menetelmä elektroniikkalaitteiden ohjelmien turvalliseen tulkintaan |
PCT/FI2005/000504 WO2006056646A1 (en) | 2004-11-24 | 2005-11-24 | Method for the secure interpretation of programs in electronic devices |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008521111A JP2008521111A (ja) | 2008-06-19 |
JP2008521111A5 JP2008521111A5 (ja) | 2010-12-02 |
JP4638505B2 true JP4638505B2 (ja) | 2011-02-23 |
Family
ID=36497763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007542018A Expired - Fee Related JP4638505B2 (ja) | 2004-11-24 | 2005-11-24 | 電子デバイス内の安全なプログラム解釈方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1815381A1 (ja) |
JP (1) | JP4638505B2 (ja) |
WO (1) | WO2006056646A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2659742C1 (ru) | 2017-08-17 | 2018-07-03 | Акционерное общество "Лаборатория Касперского" | Способ эмуляции исполнения файлов, содержащих инструкции, отличные от машинных |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003202929A (ja) * | 2002-01-08 | 2003-07-18 | Ntt Docomo Inc | 配信方法および配信システム |
JP2004272594A (ja) * | 2003-03-07 | 2004-09-30 | Sony Corp | データ利用装置及びデータ利用方法、並びにコンピュータ・プログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974549A (en) * | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
US6044467A (en) * | 1997-12-11 | 2000-03-28 | Sun Microsystems, Inc. | Secure class resolution, loading and definition |
GB0024918D0 (en) * | 2000-10-11 | 2000-11-22 | Sealedmedia Ltd | Method of providing java tamperproofing |
GB2381090B (en) * | 2001-10-17 | 2005-02-02 | Bitarts Ltd | Software loading |
-
2005
- 2005-11-24 JP JP2007542018A patent/JP4638505B2/ja not_active Expired - Fee Related
- 2005-11-24 WO PCT/FI2005/000504 patent/WO2006056646A1/en active Application Filing
- 2005-11-24 EP EP05817859A patent/EP1815381A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003202929A (ja) * | 2002-01-08 | 2003-07-18 | Ntt Docomo Inc | 配信方法および配信システム |
JP2004272594A (ja) * | 2003-03-07 | 2004-09-30 | Sony Corp | データ利用装置及びデータ利用方法、並びにコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2008521111A (ja) | 2008-06-19 |
EP1815381A1 (en) | 2007-08-08 |
WO2006056646A1 (en) | 2006-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Smalley | Configuring the SELinux policy | |
US9916475B2 (en) | Programmable interface for extending security of application-based operating system | |
US7444624B2 (en) | Method for the secure interpretation of programs in electronic devices | |
Gong | Secure Java class loading | |
KR101456489B1 (ko) | CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치 | |
US20090307781A1 (en) | Program execution control method, its device, and execution control program for same | |
JP4757873B2 (ja) | プラグイン・コード・モジュールを実行する複数プロセス・アーキテクチャを有するコンピュータ装置 | |
US20090172657A1 (en) | System, Method, Apparatus, Mobile Terminal and Computer Program Product for Providing Secure Mixed-Language Components to a System Dynamically | |
JP2005500608A (ja) | コンピュータ装置上の記憶領域へのアプリケーションレベルのアクセス特権 | |
WO2006075872A1 (en) | System and method for providing and handling executable web content | |
KR20010040979A (ko) | 스택에 기초한 액세스 제어 | |
KR20130040692A (ko) | 보안 웹 위젯 런타임 시스템을 위한 방법 및 장치 | |
US7647629B2 (en) | Hosted code runtime protection | |
JP2008524686A (ja) | コンピュータ装置においてアプリケーションを保守する方法 | |
US20050172133A1 (en) | Cross assembly call interception | |
WO2019062771A1 (zh) | 一种Android应用多开实现方法、移动终端及存储介质 | |
US20030084324A1 (en) | Method and apparatus for type independent permission based access control | |
WO2017016231A1 (zh) | 一种策略管理方法、系统及计算机存储介质 | |
Rossi et al. | {SEApp}: Bringing mandatory access control to Android apps | |
JP4526383B2 (ja) | 実行可能なコードを格納するタンパーエビデントな取り外し可能な媒体 | |
CN115917539A (zh) | 确保系统调用的安全的方法、实施关联安全策略的方法、和执行这些方法的设备 | |
JP4638505B2 (ja) | 電子デバイス内の安全なプログラム解釈方法 | |
JP2008521111A5 (ja) | ||
EP2581853B1 (en) | Method and apparatus for secure web widget runtime system | |
US20230362198A1 (en) | Dynamic security policy enforcement method for container system, recording medium and system for performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090826 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100715 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101013 |
|
A524 | Written submission of copy of amendment under section 19 (pct) |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20101013 |
|
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: 20101108 |
|
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: 20101125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |