Application-Aware Virtual Patching for Web Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web applications face vulnerabilities such as Cross-site Request Forgery and Cross-site Scripting due to their inherent security weaknesses, which traditional Web Application Firewalls cannot effectively address without a deeper understanding of the application's context and state, limiting their ability to apply targeted patches.

Innovation Solution

An application-aware virtual patching system that integrates with the web application, allowing for the creation and application of rules based on specific application states, enabling patches to be applied without modifying the code or restarting the application, and allowing non-programmers to define state variables for patch construction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional WAF rules are applied to protect web applications, then general security coverage is provided, but the ability to address application-specific vulnerabilities requiring deeper contextual understanding is lost

Engineering Contradiction:
Improvesecurity coverageVSAvoidapplication-specific vulnerability addressing
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the patching capability into two distinct layers: traditional WAF-level rules for general security coverage, and application-aware virtual patches for specific vulnerability remediation. This segmentation allows each layer to operate independently with its own strengths, resolving the contradiction between general security coverage and application-specific addressing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer called 'application-aware virtual patching' that sits between the WAF and the application code. This intermediary enables contextual awareness of application state while maintaining the ability to apply security rules, thus bridging the gap between general security coverage and application-specific vulnerability protection.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If patches are applied by modifying application code, then targeted vulnerability remediation is achieved, but application downtime and maintenance complexity increase

Engineering Contradiction:
Improvevulnerability remediation effectivenessVSAvoidapplication downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies virtual patches in advance of actual vulnerability exploitation by injecting security rules into the application execution path before malicious code runs. This preliminary action allows vulnerability remediation without waiting for attacks, and without modifying permanent application code, thus avoiding downtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of modifying the original application code, the patent creates a virtual copy of the patched behavior through injectable security rules. This copying approach allows vulnerability remediation while preserving the original application code, enabling patches to be applied without restarting or modifying the actual application binaries.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If deep application context awareness is implemented, then application-specific vulnerability patching is enabled, but system complexity and implementation difficulty increase

Engineering Contradiction:
Improveapplication-state dependent patchingVSAvoidpatching system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal virtual patching framework that can operate across multiple application types and contexts through a standardized interface. This multi-functionality allows application-state dependent patching without requiring custom complex implementations for each application, thus reducing overall system complexity while maintaining adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent changes the parameters of patch application from static code modification to dynamic rule injection based on application state. By using parameterizable security rules that can be configured without code changes, the system achieves application-state awareness while reducing implementation complexity through configuration rather than development.

Inventive Principle:
Principle #35Parameter changes

4Manufacturing precision

If code-level understanding is required for patching, then precise vulnerability targeting is achieved, but accessibility to non-programmers is reduced

Engineering Contradiction:
Improvevulnerability targeting accuracyVSAvoidpatch construction accessibility
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The patent replaces the mechanical process of code-level programming with a rule-based configuration system. Instead of requiring non-programmers to write code, they can define vulnerability responses through high-level rules that the system automatically translates into executable patches, thus maintaining precision while improving accessibility.

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

Solution Approach 2:

The patent introduces an intermediary translation layer that converts user-friendly patch definitions into the necessary code-level actions. This intermediary allows non-programmers to specify vulnerability responses in accessible terms while the system handles the complex code generation and injection, bridging the gap between accessibility and precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10083024B2Application aware virtual patching
Publication Date: 2018.09.25 SALESFORCE INC
  • US10083024B2 patent drawing
  • US10083024B2 patent drawing
  • US10083024B2 patent drawing

AI summary

The technology disclosed relates to thwarting attempts in between software releases to take advantage of security holes in web applications. A virtual patch is a data object comprising an identifier that indicates a relevant local context for the patch and may be created while the application is running. One or more conditions included in the patch are evaluated using data from a service request or from the local context. A patch directive specifies an action to perform when the one or more conditions are satisfied. A virtual patch may be applied to the running application without requiring replacing the application code. Responsive to a request for a web service, a web application may execute code in multiple distinct local contexts such as session management, authorization, and application-specific business logic. The code for each local context may independently retrieve a set of virtual patches relevant to its particular local context.