Web Application Vulnerability Detection via Abstract Interpretation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current technologies fail to effectively identify and secure vulnerabilities in Web applications, particularly at the application level, leading to issues like XSS and SQL injection attacks, and existing security measures like application-level firewalls and software verification techniques suffer from high overhead, false positives, and scalability limitations.

Innovation Solution

The method involves transforming Web applications into abstract representations to preserve information flow properties, using type qualifiers and runtime guards to secure vulnerabilities, and employing lattice models and bounded model checking to reduce false positives and overhead, while providing immediate protection and counterexample traces for optimal patching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application-level firewalls are used to filter malicious inputs, then Web application security is improved, but runtime overhead and complexity increase significantly

Engineering Contradiction:
ImproveWeb application securityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing static analysis and vulnerability identification during the compilation phase before the application runs. Security checks are embedded into the bytecode during compilation, so that runtime overhead is minimized while maintaining security. The system pre-processes the application code to insert security checks, rather than filtering at runtime like traditional firewalls.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary component - a security analysis tool that acts as a mediator between the application code and the runtime environment. This tool performs static analysis, generates security checks, and transforms the bytecode to include embedded security validations. The intermediary handles the complexity of security filtering, allowing the application to run with minimal overhead while maintaining strong security.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If software verification techniques are used to identify vulnerabilities, then security assessment is improved, but false positives increase and scalability decreases

Engineering Contradiction:
Improvevulnerability identification accuracyVSAvoidfalse positives
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by focusing security analysis on specific high-risk areas of the application code rather than performing exhaustive analysis everywhere. The static analysis tool identifies and concentrates on critical sections where vulnerabilities are most likely to occur, such as input handling and database query construction. This targeted approach reduces false positives while maintaining high detection accuracy for actual vulnerabilities.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes parameters by using abstract interpretation with configurable precision levels and thresholds. The analysis can adjust its depth and focus based on the specific application context, allowing it to balance between thoroughness and false positive rates. By dynamically adjusting analysis parameters, the system maintains high accuracy without being overwhelmed by false alarms.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If comprehensive security checks are inserted into application code, then vulnerability protection is improved, but runtime performance and scalability deteriorate

Engineering Contradiction:
Improvevulnerability protectionVSAvoidruntime performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs security check insertion during the compilation phase as a preliminary action. The static analysis tool identifies vulnerability patterns and automatically inserts appropriate security checks into the bytecode before the application runs. This pre-processing approach ensures that security protections are in place without requiring complex runtime filtering, thereby maintaining high runtime performance while providing comprehensive vulnerability protection.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If existing security tools are used, then some vulnerabilities are detected, but they cannot provide immediate protection and require manual patching

Engineering Contradiction:
Improvevulnerability detection capabilityVSAvoidtime to fix vulnerabilities
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary action by automatically inserting security checks and generating patched bytecode during the compilation phase. When vulnerabilities are detected through static analysis, the system immediately applies fixes by transforming the code, rather than requiring separate manual patching steps. This automated remediation eliminates time losses associated with manual security hardening while maintaining precise vulnerability detection.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8555269B2System and method for securing web application code and verifying correctness of software
Publication Date: 2013.10.08 PROOFPOINT INC
  • US8555269B2 patent drawing
  • US8555269B2 patent drawing
  • US8555269B2 patent drawing

AI summary

Methods, software tools and systems for analyzing software applications, e.g., Web applications, are described. A software application to be analyzed is transformed into an abstract representation which preserves its information flow properties. The abstract interpretation is evaluated to identify vulnerabilities using, for example, type qualifiers to associate security levels with variables and/or functions in the application being analyzed and typestate checking. Runtime guards are inserted into the application to secure identified vulnerabilities.