SG10201801669XA - Secure just-in-time (jit) code generation - Google Patents

Secure just-in-time (jit) code generation

Info

Publication number
SG10201801669XA
SG10201801669XA SG10201801669XA SG10201801669XA SG10201801669XA SG 10201801669X A SG10201801669X A SG 10201801669XA SG 10201801669X A SG10201801669X A SG 10201801669XA SG 10201801669X A SG10201801669X A SG 10201801669XA SG 10201801669X A SG10201801669X A SG 10201801669XA
Authority
SG
Singapore
Prior art keywords
jit
code segment
time
secure
executing
Prior art date
Application number
SG10201801669XA
Inventor
Udi Yavo
Original Assignee
Ensilo Ltd
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 Ensilo Ltd filed Critical Ensilo Ltd
Publication of SG10201801669XA publication Critical patent/SG10201801669XA/en

Links

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/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/53Monitoring 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test 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

SECURE JUST-IN-TIME (JIT) CODE GENERATION A method of securely executing a Just-In-Time (JIT) compiled code in a runtime environment, comprising using one or more processors for receiving from a JIT executing process a request to compile in runtime a code segment, initiating a JIT compiling process to compile the code segment in order to generate an executable code segment, storing the executable code segment in a shared memory and providing to the JIT executing process a pointer to the executable code segment in the shared memory. Wherein the JIT executing process having read-execute access rights to the shared memory and the JIT executing process and the JIT compiling process are different processes.
SG10201801669XA 2017-03-05 2018-03-01 Secure just-in-time (jit) code generation SG10201801669XA (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/449,965 US10795989B2 (en) 2017-03-05 2017-03-05 Secure just-in-time (JIT) code generation

Publications (1)

Publication Number Publication Date
SG10201801669XA true SG10201801669XA (en) 2018-10-30

Family

ID=61557080

Family Applications (1)

Application Number Title Priority Date Filing Date
SG10201801669XA SG10201801669XA (en) 2017-03-05 2018-03-01 Secure just-in-time (jit) code generation

Country Status (7)

Country Link
US (1) US10795989B2 (en)
EP (1) EP3373133B1 (en)
JP (1) JP2018152061A (en)
CA (1) CA2996747A1 (en)
HK (1) HK1255149A1 (en)
IL (1) IL257893B (en)
SG (1) SG10201801669XA (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11822654B2 (en) * 2017-04-20 2023-11-21 Morphisec Information Security 2014 Ltd. System and method for runtime detection, analysis and signature determination of obfuscated malicious code
CN113360134B (en) * 2020-03-06 2022-06-17 武汉斗鱼网络科技有限公司 Method, device, equipment and storage medium for generating security verification program
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

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
JP2006048186A (en) * 2004-08-02 2006-02-16 Hitachi Ltd Language processing system protecting generated code of dynamic compiler
US7603712B2 (en) * 2005-04-21 2009-10-13 Microsoft Corporation Protecting a computer that provides a Web service from malware
US20070283336A1 (en) 2006-06-01 2007-12-06 Michael Karl Gschwind System and method for just-in-time compilation in a heterogeneous processing environment
US20080127142A1 (en) * 2006-11-28 2008-05-29 Microsoft Corporation Compiling executable code into a less-trusted address space
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 (en) * 2015-08-24 2019-08-07 キヤノン株式会社 Information processing apparatus and control method thereof
US10303885B2 (en) * 2016-03-02 2019-05-28 Apple Inc. Methods and systems for securely executing untrusted software

Also Published As

Publication number Publication date
HK1255149A1 (en) 2019-08-09
IL257893B (en) 2022-01-01
EP3373133B1 (en) 2021-02-24
EP3373133A1 (en) 2018-09-12
JP2018152061A (en) 2018-09-27
IL257893A (en) 2018-04-30
US10795989B2 (en) 2020-10-06
CA2996747A1 (en) 2018-09-05
US20180253549A1 (en) 2018-09-06

Similar Documents

Publication Publication Date Title
SG10201801669XA (en) Secure just-in-time (jit) code generation
PH12019501795A1 (en) Method and apparatus for writing service data into block chain and method for determining service subset
RU2014133160A (en) SOFTWARE CODE GENERATION AND CACHING
US9971576B2 (en) Software development environment and method of compiling integrated source code
MX2015014870A (en) Controlling runtime access to application programming interfaces.
GB2509438A (en) Compiling code for enhanced application binary interface (abi) with decode time instruction optimization
CA2953788C (en) Automated code lockdown to reduce attack surface for software
WO2013019059A3 (en) Sandboxing technology for webruntime system
PH12015500405B1 (en) Generating native code from intermediate laguage code for an application
EP4290377A3 (en) Hardware acceleration method, compiler, and device
WO2015011567A3 (en) Method and system for compiler optimization
WO2017053022A8 (en) Speculative scalarization in vector processing
WO2017030619A3 (en) Techniques for distributed operation of secure controllers
GB2509653A8 (en) Linking code for an enhanced application binary interface (abi) with decode time instruction optimization
EP3722984A3 (en) Method and system for converting a single-threaded software program into an application-specific supercomputer
EP2579817A4 (en) Implant components and methods
WO2013036703A3 (en) Profile guided jit code generation
GB201209821D0 (en) Animation processing
JP2015509249A5 (en)
GB2602751A (en) Kernel fusion for machine learning
GB2540498A (en) Dynamic selection of memory management algorihm
JP2018152061A5 (en)
CN108121285B (en) Application software collaborative compiling method and device based on continuous function diagram
CN105637474B (en) System and method for register distribution
Nurmukhametov et al. Application of compiler transformations against software vulnerabilities exploitation