Client-Specific Obfuscated Javascript Delivery Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing web security systems face challenges in providing optimized and secure Javascript code to web application clients, as obfuscation often increases code size and execution time, leading to a poor user experience.

Innovation Solution

A system that generates and obfuscates Javascript code tailored to specific web application client configurations, using a builder component to create compatible codes and an obfuscator component to generate multiple obfuscated versions, which are then selected and delivered based on client configuration, ensuring the same functionality while reducing code size and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If obfuscation is applied to Javascript code to hide its operations and deter reverse engineering, then security is improved, but code size increases and execution time increases

Engineering Contradiction:
ImprovesecurityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different obfuscation strategies based on the specific requirements of each Javascript code segment. Instead of uniformly obfuscating all code, the system identifies and obfuscates only the critical security-sensitive portions, leaving performance-critical sections unobfuscated or lightly obfuscated. This localized approach maintains security where needed while preserving execution speed where performance is paramount.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamic obfuscation where the obfuscation level and type are adjusted based on runtime conditions and code characteristics. The system can switch between different obfuscation techniques or intensity levels depending on the execution context, allowing the Javascript code to adapt its obfuscation state to balance security and performance requirements dynamically during operation.

Inventive Principle:
Principle #15Dynamics

2Reliability

If obfuscation is applied to Javascript code to deter reverse engineering, then security is improved, but code size increases

Engineering Contradiction:
ImprovesecurityVSAvoidcode size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies different obfuscation strategies based on the specific requirements of each Javascript code segment. Instead of uniformly obfuscating all code, the system identifies and obfuscates only the critical security-sensitive portions, leaving performance-critical sections unobfuscated or lightly obfuscated. This localized approach maintains security where needed while preserving execution speed where performance is paramount.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies partial obfuscation to only the extent necessary for security protection. Rather than fully obfuscating entire codebases, the system selectively applies obfuscation to specific functions and code blocks that pose security risks, leaving other sections in their original form. This partial action approach provides adequate security protection while minimizing the increase in code size.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If a pool of obfuscated Javascript codes is created with multiple variations, then security is improved by making the code a moving target, but device complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the Javascript code into distinct modules and functions, allowing each segment to be obfuscated independently and stored as separate variations in the code pool. This segmentation enables the system to manage multiple obfuscated versions more effectively, as each module can be selected and combined based on security requirements without managing a monolithic complex codebase.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent utilizes parameter changes in the obfuscation process, such as varying obfuscation intensity levels, different obfuscation algorithms, or modified code structures, to generate multiple variations from a base code template. This approach allows the system to create security variations without proportionally increasing complexity, as the variations stem from parameter modifications rather than fundamentally different code implementations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11397795B2Mechanism for providing obfuscated code to web application clients
Publication Date: 2022.07.26 IMPERVA INC
  • US11397795B2 patent drawing
  • US11397795B2 patent drawing
  • US11397795B2 patent drawing

AI summary

A method by one or more network devices for providing obfuscated code to web application clients. The method includes determining a configuration utilized by a web application client based on a header of a web application layer request generated by the web application client, selecting, for providing to the web application client with a web application layer response corresponding to the web application layer request, an obfuscated code from a plurality of obfuscated codes for the configuration utilized by the web application client, where the plurality of obfuscated codes for the configuration utilized by the web application client provide the same intended functionality but are obfuscated differently from each other, and providing the selected obfuscated code to the web application client with the web application response.