JP2018152061A - 安全なジャストインタイム(jit)コード生成 - Google Patents
安全なジャストインタイム(jit)コード生成 Download PDFInfo
- Publication number
- JP2018152061A JP2018152061A JP2018035322A JP2018035322A JP2018152061A JP 2018152061 A JP2018152061 A JP 2018152061A JP 2018035322 A JP2018035322 A JP 2018035322A JP 2018035322 A JP2018035322 A JP 2018035322A JP 2018152061 A JP2018152061 A JP 2018152061A
- Authority
- JP
- Japan
- Prior art keywords
- jit
- code segment
- code
- shared memory
- execution process
- 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.)
- Pending
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
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- 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/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
− コードセグメントをランタイムにおいてコンパイルする要求をJIT実行プロセスから受信することと、
− 実行可能なコードセグメントを生成するためにコードセグメントをコンパイルするJITコンパイルプロセスを開始することと、
− 共有メモリに実行可能なコードセグメントを格納することと、
− 共有メモリ内の実行可能なコードセグメントに対するポインタをJIT実行プロセスに提供することであり、JIT実行プロセスが共有メモリへの読取り実行アクセス権を有する、ポインタをJIT実行プロセスに提供することと
のために少なくとも1つのプロセッサを使用することを含み、JITでコンパイルしたコードを安全に実行するコンピュータ実装方法が提供される。
− コードセグメントをランタイムにおいてコンパイルする要求をJIT実行プロセスから受信するためのコード命令と、
− 実行可能なコードセグメントを生成するためにコードセグメントをコンパイルするJITコンパイルプロセスを開始するためのコード命令と、
− 共有メモリに実行可能なコードセグメントを格納するためのコード命令と、
− 共有メモリ内の実行可能なコードセグメントに対するポインタをJIT実行プロセスに提供するためのコード命令であって、JIT実行プロセスが共有メモリへの読取り実行アクセス権を有する、コード命令と、
を含む。
− 1つまたは複数の未コンパイルのコードセグメント含むJIT実行プロセスを開始するためのコード命令と、
− 1つまたは複数の対応する実行可能なコードセグメントを生成するために1つまたは複数のコードセグメントをコンパイルするJITコンパイルプロセスを実行するためのコード命令と、
を含む。
Claims (11)
- ランタイム環境においてジャストインタイム(JIT)でコンパイルしたコードを安全に実行するコンピュータ実装方法であって、
コードセグメントをランタイムにおいてコンパイルする要求をJIT実行プロセスから受信することと、
実行可能なコードセグメントを生成するために前記コードセグメントをコンパイルするJITコンパイルプロセスを開始することと、
共有メモリに前記実行可能なコードセグメントを格納することと、
前記共有メモリ内の前記実行可能なコードセグメントに対するポインタを前記JIT実行プロセスに提供することであり、前記JIT実行プロセスが前記共有メモリへの読取り実行アクセス権を有する、ポインタを前記JIT実行プロセスに提供することと、
のために少なくとも1つのプロセッサを使用すること、
を含み、
前記JIT実行プロセスと前記JITコンパイルプロセスとは、異なるプロセスである、方法。 - 前記JITコンパイルプロセスが、前記少なくとも1つのプロセッサのアーキテクチャに従って前記実行可能なコードセグメントを生成することに適応したJITコンパイラを利用する、
請求項1に記載のコンピュータ実装方法。 - 前記JIT実行プロセスが、コード生成特権を与えられない、
請求項1に記載のコンピュータ実装方法。 - 前記JIT実行プロセスが、前記共有メモリへの書込みアクセス権を与えられない、
請求項1に記載のコンピュータ実装方法。 - 前記JITコンパイルプロセスが、前記格納することを許可するために前記共有メモリへの読取り−書込みアクセス権を認可される、
請求項1に記載のコンピュータ実装方法。 - 前記JITコンパイルプロセスが、前記共有メモリからの実行アクセス権を与えられない、
請求項1に記載のコンピュータ実装方法。 - 前記コードセグメントにより開始された少なくとも1つの潜在的に悪意のある動作を識別するために前記実行可能なコードセグメントを生成する前に前記コードセグメントを解析する、すなわち、前記コードセグメントの有効性を検証するためにコンパイルの前に前記コードセグメントを解析することをさらに含む、
請求項1に記載のコンピュータ実装方法。 - 前記コードセグメントにより開始された少なくとも1つの潜在的に悪意のある動作を識別するために、生成した後で前記実行可能なコードセグメントを解析することをさらに含む、
請求項1に記載のコンピュータ実装方法。 - ランタイム環境においてジャストインタイム(JIT)でコンパイルしたコードを安全に実行するためのシステムであって、
コードを実行することに適応した少なくとも1つのプロセッサであり、前記コードが、
コードセグメントをランタイムにおいてコンパイルする要求をJIT実行プロセスから受信するためのコード命令と、
実行可能なコードセグメントを生成するために前記コードセグメントをコンパイルするJITコンパイルプロセスを開始するためのコード命令と、
共有メモリに前記実行可能なコードセグメントを格納するためのコード命令と、
前記共有メモリ内の前記実行可能なコードセグメントに対するポインタを前記JIT実行プロセスに提供するためのコード命令であり、前記JIT実行プロセスが前記共有メモリへの読取り実行アクセス権を有する、コード命令と、
を含み、
前記JIT実行プロセスと前記JITコンパイルプロセスとは、異なるプロセスである、
少なくとも1つのプロセッサ、
を備えるシステム。 - ランタイム環境においてジャストインタイム(JIT)でコンパイルしたコードを安全に実行するためのシステムであって、
コードを実行することに適応した少なくとも1つのプロセッサであり、前記コードが、
少なくとも1つの未コンパイルのコードセグメント含むJIT実行プロセスを開始するためのコード命令と、
少なくとも1つの対応する実行可能なコードセグメントを生成するために、前記少なくとも1つのコードセグメントをコンパイルするJITコンパイルプロセスを実行するためのコード命令と、
を含み、
前記少なくとも1つのコードセグメントをコンパイルするために前記JIT実行プロセスからの要求に応じて、前記JITコンパイルプロセスが、前記対応する実行可能なコードセグメントを生成するために前記少なくとも1つのコードセグメントをコンパイルし、かつ前記実行プロセスが読取り実行アクセス権を有する共有メモリに前記対応する実行可能なコードセグメントを格納する、
少なくとも1つのプロセッサ、
を備えるシステム。 - 前記JIT実行プロセスと前記JITコンパイルプロセスとは、異なるプロセスである、
請求項10に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/449,965 | 2017-03-05 | ||
US15/449,965 US10795989B2 (en) | 2017-03-05 | 2017-03-05 | Secure just-in-time (JIT) code generation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018152061A true JP2018152061A (ja) | 2018-09-27 |
JP2018152061A5 JP2018152061A5 (ja) | 2021-03-18 |
Family
ID=61557080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018035322A Pending JP2018152061A (ja) | 2017-03-05 | 2018-02-28 | 安全なジャストインタイム(jit)コード生成 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10795989B2 (ja) |
EP (1) | EP3373133B1 (ja) |
JP (1) | JP2018152061A (ja) |
CA (1) | CA2996747A1 (ja) |
HK (1) | HK1255149A1 (ja) |
IL (1) | IL257893B (ja) |
SG (1) | SG10201801669XA (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3612969A1 (en) * | 2017-04-20 | 2020-02-26 | Morphisec Information Security 2014 Ltd. | System and method for runtime detection, analysis and signature determination of obfuscated malicious code |
CN113360134B (zh) * | 2020-03-06 | 2022-06-17 | 武汉斗鱼网络科技有限公司 | 安全验证程序的生成方法、装置、设备和存储介质 |
US11487565B2 (en) * | 2020-10-29 | 2022-11-01 | Hewlett Packard Enterprise Development Lp | Instances of just-in-time (JIT) compilation of code using different compilation settings |
US11709675B2 (en) * | 2020-10-30 | 2023-07-25 | Apple Inc. | Software verification of dynamically generated code |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006048186A (ja) * | 2004-08-02 | 2006-02-16 | Hitachi Ltd | 動的コンパイラの生成コードを保護する言語処理系 |
US20070283336A1 (en) * | 2006-06-01 | 2007-12-06 | Michael Karl Gschwind | System and method for just-in-time compilation in a heterogeneous processing environment |
JP2010511227A (ja) * | 2006-11-28 | 2010-04-08 | マイクロソフト コーポレーション | 信頼性の低いアドレス空間への実行コードのコンパイル |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600222B2 (en) * | 2002-01-04 | 2009-10-06 | Microsoft Corporation | Systems and methods for managing drivers in a computing system |
US7219329B2 (en) * | 2003-06-13 | 2007-05-15 | Microsoft Corporation | Systems and methods providing lightweight runtime code generation |
US7603712B2 (en) * | 2005-04-21 | 2009-10-13 | Microsoft Corporation | Protecting a computer that provides a Web service from malware |
US8156093B2 (en) * | 2009-03-10 | 2012-04-10 | Microsoft Corporaton | Memory object sharing for just in time compiled data |
US8677329B2 (en) * | 2009-06-03 | 2014-03-18 | Apple Inc. | Methods and apparatuses for a compiler server |
JP6555981B2 (ja) * | 2015-08-24 | 2019-08-07 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US10303885B2 (en) * | 2016-03-02 | 2019-05-28 | Apple Inc. | Methods and systems for securely executing untrusted software |
-
2017
- 2017-03-05 US US15/449,965 patent/US10795989B2/en active Active
-
2018
- 2018-02-28 JP JP2018035322A patent/JP2018152061A/ja active Pending
- 2018-02-28 CA CA2996747A patent/CA2996747A1/en active Pending
- 2018-03-01 SG SG10201801669XA patent/SG10201801669XA/en unknown
- 2018-03-01 EP EP18159497.9A patent/EP3373133B1/en active Active
- 2018-03-05 IL IL257893A patent/IL257893B/en unknown
- 2018-11-08 HK HK18114234.7A patent/HK1255149A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006048186A (ja) * | 2004-08-02 | 2006-02-16 | Hitachi Ltd | 動的コンパイラの生成コードを保護する言語処理系 |
US20070283336A1 (en) * | 2006-06-01 | 2007-12-06 | Michael Karl Gschwind | System and method for just-in-time compilation in a heterogeneous processing environment |
JP2010511227A (ja) * | 2006-11-28 | 2010-04-08 | マイクロソフト コーポレーション | 信頼性の低いアドレス空間への実行コードのコンパイル |
Also Published As
Publication number | Publication date |
---|---|
CA2996747A1 (en) | 2018-09-05 |
HK1255149A1 (zh) | 2019-08-09 |
IL257893A (en) | 2018-04-30 |
SG10201801669XA (en) | 2018-10-30 |
EP3373133B1 (en) | 2021-02-24 |
US10795989B2 (en) | 2020-10-06 |
US20180253549A1 (en) | 2018-09-06 |
EP3373133A1 (en) | 2018-09-12 |
IL257893B (en) | 2022-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10528735B2 (en) | Malicious code protection for computer systems based on process modification | |
JP6837064B2 (ja) | ランタイム生成コードにおける悪意のあるコードの検出のためのシステムおよび方法 | |
Octeau et al. | Effective {Inter-Component} communication mapping in android: An essential step towards holistic security analysis | |
US20130347111A1 (en) | System and method for detection and prevention of host intrusions and malicious payloads | |
JP2018152061A (ja) | 安全なジャストインタイム(jit)コード生成 | |
JP2015141718A (ja) | プログラムの脆弱点を用いた攻撃の探知装置および方法 | |
US8756587B2 (en) | Static analysis of computer software applications | |
Graa et al. | Detecting control flow in smarphones: Combining static and dynamic analyses | |
US11609985B1 (en) | Analyzing scripts to create and enforce security policies in dynamic development pipelines | |
US11409865B1 (en) | Verification code injection at build time | |
US10545745B2 (en) | Application binary rewriting to reduce binary attack surface area | |
CN114641770A (zh) | 使用页帧标签机制来增强存储器安全编程 | |
US11620129B1 (en) | Agent-based detection of fuzzing activity associated with a target program | |
Alfalqi et al. | Android platform malware analysis | |
CN110717181B (zh) | 基于新型程序依赖图的非控制数据攻击检测方法及装置 | |
Elsayed et al. | IFCaaS: information flow control as a service for cloud security | |
EP4276665A1 (en) | Analyzing scripts to create and enforce security policies in dynamic development pipelines | |
CN116028945A (zh) | 防止执行注入的恶意代码的保护 | |
JP5989599B2 (ja) | 情報処理装置、および、情報処理方法 | |
Kononenko | An approach to error correction in program code using dynamic optimization in a virtual execution environment | |
Chen et al. | Vulnerability-based backdoors: Threats from two-step trojans | |
JP7076014B2 (ja) | プログラム保護のためのJavaデバッガ遮断方法およびシステム | |
EP4396702A1 (en) | Exploit prevention based on generation of random chaotic execution context | |
Ashouri et al. | JACY: a JVM-Based Intrusion Detection and Security Analysis System | |
Yuhui et al. | The behavioral analysis of Android malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180314 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20180518 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20180521 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20200721 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210121 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220712 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20221110 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20221213 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20230104 |
|
C30 | Protocol of an oral hearing |
Free format text: JAPANESE INTERMEDIATE CODE: C30 Effective date: 20230310 |
|
C23 | Notice of termination of proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C23 Effective date: 20230322 |
|
C03 | Trial/appeal decision taken |
Free format text: JAPANESE INTERMEDIATE CODE: C03 Effective date: 20230425 |
|
C30A | Notification sent |
Free format text: JAPANESE INTERMEDIATE CODE: C3012 Effective date: 20230425 |