DOM-XSS Detection via Client-Side Indicator Injection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional security solutions, such as web application firewalls, are ineffective in detecting document object model (DOM) cross-site scripting (XSS) vulnerabilities at the client-side, leading to higher false positives and negatives, and are limited by their inability to access and analyze client-side code dynamically.
Innovation Solution
A method and system that identify data flows between attacker-controllable sources and security sensitive sinks in client-side code, inject an indicator string, execute it, and detect its presence at the sink to perform mitigation actions, thereby accurately detecting DOM-XSS vulnerabilities and enhancing security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional web application firewalls are used to detect XSS attacks, then server-side traffic can be filtered and monitored, but client-side DOM-XSS vulnerabilities cannot be detected
Solution Approach 1:
The patent extends security detection from the server-side dimension to the client-side dimension by implementing analysis within the browser environment itself. This dimensional shift allows detection of DOM-XSS vulnerabilities that traditional server-side firewalls cannot observe, as the detection now occurs in the same execution environment where the vulnerabilities manifest.
Solution Approach 2:
The patent introduces an intermediary detection layer that operates between the client-side code execution and the server. This intermediary analyzes data flows within the client-side environment and can block malicious operations before they reach the server, effectively mediating security between client and server without requiring full server-side awareness of client-side vulnerabilities.
2Measurement precision
If manual testing of DOM-XSS vulnerabilities is performed using browser developer tools, then some vulnerabilities can be detected, but the process is limited to static code reading resulting in higher false positives and negatives
Solution Approach 1:
The system implements self-service detection by automatically analyzing client-side code without requiring manual intervention. The detection mechanism autonomously identifies data flows, injects test payloads, and determines vulnerabilities, eliminating the need for security analysts to manually review static code and reducing both false positives and negatives associated with manual testing.
Solution Approach 2:
The patent performs preliminary analysis of client-side code by identifying data flows between sources and sinks before actual attacks occur. This preliminary action establishes a baseline understanding of the code's behavior, allowing the system to detect anomalies and vulnerabilities proactively rather than reactively, thereby improving detection accuracy.
3Productivity
If static code analysis is used to detect DOM-XSS vulnerabilities, then the detection process is simple, but false positive and false negative rates increase
Solution Approach 1:
The patent transitions from static code analysis to dynamic analysis by actually executing or simulating execution of client-side code in the browser environment. This dynamic approach observes real data flows and interactions at runtime, significantly improving detection accuracy while maintaining reasonable productivity through automated analysis processes.
Solution Approach 2:
The system implements feedback mechanisms where test payloads are injected into identified data flows and the results are observed and analyzed. This feedback loop allows the system to verify suspected vulnerabilities by watching whether test payloads successfully traverse from sources to sinks, thereby reducing false positives and negatives while maintaining efficient automated operation.
Data Source
AI summary
A system and method for detecting document object model cross-site scripting (DOM-XSS) vulnerability. The method includes identifying at least one data flow in a client-side code, wherein each of the at least one data flow is between an attacker-controllable source and a security sensitive sink, wherein the client-side code includes a DOM representation of a web page; injecting an indicator string in the attacker-controllable source of the client-side code; executing an injected client-side code, wherein the injected client-side code includes the indicator string; detecting the indicator string in the security sensitive sink of the at least one data flow; and performing mitigation action upon detecting the indicator string.


