Java JavaScript Cooperation Analysis for Android Taint Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional static taint analysis technologies fail to detect information leakage when attackers exploit the cooperation mechanism between Java and JavaScript codes in Android applications, as they only analyze Java application codes and not the JavaScript codes, allowing information to be leaked undetected.
Innovation Solution
An analysis device that specifies the implementation portion of the cooperation mechanism between Java and JavaScript codes, inserts a simulation function call code, and analyzes data flow using the argument and return value to detect information leakage between the two code types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If static taint analysis technology only analyzes Java application codes, then analysis complexity is reduced, but information leakage detection capability deteriorates when attackers exploit JavaScript cooperation mechanisms
Solution Approach 1:
The patent segments the analysis process into two distinct parts: (1) analyzing Java application codes using conventional static taint analysis, and (2) analyzing JavaScript codes separately by injecting simulation functions. This segmentation allows each code type to be analyzed with appropriate methods while maintaining overall detection capability.
Solution Approach 2:
The patent introduces simulation functions as intermediaries between Java and JavaScript codes. These simulation functions are injected into JavaScript codes to represent Java object interfaces, enabling the analysis system to track data flow across the Java-JavaScript boundary without requiring full JavaScript analysis capability.
2Reliability
If the analysis target is expanded to include both Java and JavaScript codes, then information leakage detection capability is improved, but analysis complexity increases
Solution Approach 1:
The patent performs preliminary actions by injecting simulation functions into JavaScript codes before the actual data flow analysis. This preliminary setup creates a structured framework that simplifies the subsequent analysis process, allowing the system to track data flow from Java sources through JavaScript without handling the full complexity of JavaScript analysis.
Solution Approach 2:
The patent creates simplified copies of Java object interfaces through simulation functions that are injected into JavaScript codes. These simulation functions replicate the essential data flow characteristics of Java objects without requiring the full complexity of the original Java code structure, enabling analysis of JavaScript code while maintaining connection to Java sources.
3Loss of information
If simulation functions are injected into Java codes, then data flow tracking between Java and JavaScript is enabled, but manufacturing precision of original code structure deteriorates
Solution Approach 1:
The patent substitutes the mechanical injection of simulation functions into Java codes with a conceptual approach where simulation functions are injected only into JavaScript codes. This substitution eliminates the need to modify Java code structure while still enabling data flow tracking, as the simulation functions in JavaScript can reference and track data from Java sources through the defined interfaces.
Data Source
AI summary
A static code analysis unit specifies an implementation portion of a Java code in a cooperation mechanism that sends and receives data between an Android application implemented by the Java code and Web content implemented by a JavaScript code and specifies a method in which a return value that can be called by the JavaScript code is set in the cooperation mechanism; a code converting unit inserts, into the Java code, a call code of a simulation function in which the return value of the specified method is inserted into an argument; and a data flow analysis unit analyzes a data flow by observing, by using the argument and the return value of the simulation function and the specified method, the data that is sent and received between the Android application implemented by the Java code and the Web content implemented by the JavaScript code.


