JVM Heap Dump Obfuscation That Preserves Critical Runtime Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional heap dump obfuscation methods indiscriminately obscure all data, losing valuable insights by erasing critical data such as the state of running threads and failing to preserve sensitive information like user data.
Innovation Solution
Obfuscate only sensitive data in heap dumps by identifying objects with application-specific class loaders and applying obfuscation criteria, while preserving non-sensitive data like processor state and thread data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Object-affected harmful factors
If all data in heap dump is obfuscated indiscriminately, then sensitive information is protected, but critical insights are lost
Solution Approach 1:
The patent applies obfuscation selectively to specific objects based on their class loader type rather than uniformly to all objects. Application-specific class loader objects are obfuscated to protect sensitive information, while objects from bootstrap and extension class loaders are preserved to maintain critical debugging insights. This localized approach resolves the contradiction by applying different treatment to different parts of the heap dump data.
Solution Approach 2:
The patent segments the heap dump objects into different categories based on their class loader origin. By identifying and separating objects loaded by application-specific class loaders from those loaded by bootstrap or extension class loaders, the system can apply obfuscation only to the appropriate segment, thereby protecting sensitive data while preserving critical system information.
2Loss of information
If selective obfuscation based on class loader type is applied, then sensitive data is protected while critical data is preserved, but processing complexity increases
Solution Approach 1:
The patent performs preliminary identification and classification of objects by their class loader type before applying obfuscation. By determining the class loader type (application-specific, bootstrap, or extension) in advance, the system can efficiently decide which objects require obfuscation without complex processing during the actual obfuscation phase, thereby reducing overall processing complexity.
Data Source
AI summary
A heap dump of a running application is obtained. For each object of one or more objects in the heap dump, the object may be obfuscated based on its class loader. A class loader of a class of the object is identified. A determination is made as to whether the class loader is of an application-specific class loader type. In response to determining that the class loader is of the application-specific class loader type, the object is obfuscated. The class loader is of an application-specific class loader type if is an application class loader or a custom class loader.


