Bytecode Obfuscation for Interpreted Language Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing security techniques struggle to differentiate between legitimate user requests and malicious bot activities in client/server systems, making it difficult for web server administrators to prevent unauthorized attacks while allowing legitimate user interactions.

Innovation Solution

Implementing bytecode conversion techniques that convert human-readable instructions into non-human readable bytecode, which are then executed by a client computer, thereby preventing attackers from exploiting or simulating the functionality defined by the original code, and sending the modified HTML and bytecode instructions to the client computer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If bytecode conversion techniques are implemented to improve security, then security against bot attacks is improved, but device complexity increases due to the need for bytecode interpreters and conversion infrastructure

Engineering Contradiction:
ImprovesecurityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary bytecode conversion system that translates human-readable code into bytecode and provides a runtime interpreter. This intermediary layer protects the original code logic from direct exposure to bots while maintaining functionality, resolving the contradiction between security improvement and system complexity by encapsulating the complexity within a dedicated interpretation infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameter of code representation from human-readable text to bytecode format. This parameter change fundamentally alters how code is processed and executed, making it unreadable to bots while preserving executable functionality through the interpreter, thereby achieving security enhancement without requiring complete system redesign.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If bytecode conversion is used to prevent attacks, then security is improved, but processing time increases due to the additional conversion and interpretation steps

Engineering Contradiction:
ImprovesecurityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs bytecode conversion in advance during the code deployment phase, before the code is executed in the runtime environment. This preliminary action separates the time-consuming conversion process from the execution phase, allowing the runtime interpreter to execute bytecode efficiently without incurring conversion overhead during critical operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a dynamic runtime interpreter that adapts to different bytecode instructions and executes them efficiently. The interpreter dynamically processes bytecode without requiring static compilation, allowing flexible and optimized execution that minimizes processing time overhead while maintaining security benefits.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3440542B1Applying bytecode obfuscation techniques to programs written in an interpreted language
Publication Date: 2021.04.28 SHAPE SECURITY INC
  • EP3440542B1 patent drawingFigure 1
  • EP3440542B1 patent drawingFigure 2
  • EP3440542B1 patent drawingFigure 3

AI summary

In an embodiment, a computer system configured to improve security of client computer interacting with server computers comprises one or more processors; a digital electronic memory storing a set of program instructions which when executed using the one or more processors cause the one or more processors to: process a first set of original instructions that produce a first set of outputs or effects; generate a first set of interpreter instructions that define a first interpreter; generate a first set of alternate instructions from the first set of original instructions, wherein the first set of alternate instructions is functionally equivalent to the first set of original instructions when the first set of alternate instructions is executed by the first interpreter; send, to the first client computer, the first set of alternate instructions and the first set of interpreter instructions.