Java JavaScript Cooperation Analysis for Android Taint Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveanalysis complexityVSAvoidinformation leakage detection capability
Core Design Contradiction:
Device complexityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveinformation leakage detection capabilityVSAvoidanalysis complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvedata flow tracking capabilityVSAvoidoriginal code structure integrity
Core Design Contradiction:
Loss of informationVSManufacturing precision

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10691798B2Analysis device, analysis method, and analysis program
Publication Date: 2020.06.23 NIPPON TELEGRAPH & TELEPHONE CORP
  • US10691798B2 patent drawing
  • US10691798B2 patent drawing
  • US10691798B2 patent drawing

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.