Web Application Translation Service for Secure Native Code Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional techniques for translating web application code into native executable code face security vulnerabilities due to the design of portable code and the complexity of translation components, which can lead to bugs and exploitable features, compromising system safety.
Innovation Solution
A translation service that generates native object code by translating intermediate representation of application code into native executable code for a specific instruction set architecture, with optional optimizations and validation by a trusted validator to ensure code safety, decoupling validation from translation and allowing non-local translation services to handle resource-intensive tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If portable code is used to ensure cross-platform compatibility, then portability is improved, but security vulnerabilities increase due to unsafe source language constructs and complex translation components
Solution Approach 1:
The patent introduces an intermediary translation service that acts as a trusted mediator between portable code and native execution. This service translates portable code to native code in a controlled environment and returns only validated native code to the client, eliminating the need for clients to run complex translation components locally. The intermediary service includes trusted validators that verify code safety constraints, thereby maintaining security while enabling portability.
Solution Approach 2:
The patent extracts the translation and validation functionality from the client system and relocates it to a remote translation service. By taking out the complex translation components (interpreters, JIT compilers, bytecode verifiers) from the client, the system eliminates the security vulnerabilities associated with running these complex components locally, while still providing cross-platform execution capabilities through the remote service.
2Ease of operation
If translation components (interpreters, JIT compilers, bytecode verifiers) are included in the client system, then local translation capability is improved, but device complexity and security risks increase
Solution Approach 1:
The patent extracts translation components from the client system and relocates them to a remote translation service. The client system no longer needs to include interpreters, JIT compilers, or bytecode verifiers, significantly reducing device complexity. The translation functionality is provided as a network service, allowing clients to obtain native code without maintaining complex translation infrastructure locally.
Solution Approach 2:
The remote translation service acts as an intermediary that provides translation capability to clients without requiring clients to implement translation components themselves. This intermediary approach maintains ease of operation for clients while eliminating the complexity of local translation components, as the service handles all translation and validation operations remotely.
3Adaptability or versatility
If complex translation components are deployed locally, then translation functionality is improved, but the attack surface for malicious exploitation increases
Solution Approach 1:
The patent extracts translation components from the client system and relocates them to a remote translation service. By removing interpreters, JIT compilers, and bytecode verifiers from the client, the system eliminates the attack surface associated with these complex components. The client system no longer contains exploitable translation infrastructure, significantly reducing vulnerability to malicious code exploitation.
Solution Approach 2:
The remote translation service acts as a secure intermediary that performs all translation operations in a controlled environment. This intermediary approach ensures that translation functionality is maintained while the attack surface is minimized, as the service can implement security measures and validation in a centralized, secure manner without exposing translation components to client-side exploitation.
4Adaptability or versatility
If portable code represents unsafe source language constructs, then language expressiveness is improved, but system safety is compromised when translated to native code
Solution Approach 1:
The patent applies preliminary validation to portable code before translation to native code. The translation service includes validators that check code safety constraints and verify that unsafe source language constructs do not compromise system safety. This preliminary action ensures that language expressiveness is maintained while safety issues are identified and handled before native code generation, preventing unsafe constructs from reaching the execution environment.
Solution Approach 2:
The translation service acts as an intermediary that mediates between portable code with unsafe constructs and safe native execution. The service includes trusted validators that verify code safety constraints, ensuring that language expressiveness is preserved while system safety is maintained. The intermediary validates and sanitizes code during translation, preventing unsafe constructs from compromising the execution environment.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing a translation service that generates native object code by translating an intermediate representation of application code in a portable code format. One aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a translation service request for a native executable for a particular instruction set architecture from a requestor, where the translation service request includes data specifying portable code in an instruction-set neutral format; obtaining the portable code; translating the portable code into native object code for execution on the particular instruction set architecture; generating a native executable for the particular instruction set architecture; and returning the native executable to the requestor.


