Intermediary Device Detecting Incomplete HTTP Headers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems are ineffective in preventing Slowloris denial-of-service attacks, which keep web servers unavailable by maintaining idle connections and consuming computation resources, as they fail to distinguish between active and idle connections effectively.

Innovation Solution

A method that determines fresh activity on HTTP connections by updating the last activity time only when complete packets are received, silently dropping connections with incomplete headers or those idle for extended periods, without sending reset packets to clients, and tracking client details for future reference.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of stationary object

If the web server maintains idle connections for extended periods, then legitimate clients can establish connections, but Slowloris attacks can exploit this to consume computation resources and render the server inaccessible

Engineering Contradiction:
Improveconnection idle timeout periodVSAvoidweb server accessibility
Core Design Contradiction:
Duration of action of stationary objectVSReliability

Solution Approach 1:

The patent applies preliminary action by detecting incomplete HTTP headers before the connection timeout period expires. The system monitors incoming packets and identifies when an HTTP header is incomplete, then proactively terminates the connection before it can consume excessive resources. This prevents the Slowloris attack mechanism from taking effect while still allowing legitimate connections to proceed normally.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the traditional time-based connection management mechanism with a packet-content-based detection mechanism. Instead of relying solely on timeout periods to manage connections, the system substitutes a method that inspects HTTP header completeness in incoming packets. This substitution allows for more precise differentiation between legitimate idle connections and attack connections, resolving the contradiction between maintaining connections and preventing resource exhaustion.

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

2Object-affected harmful factors

If the web server terminates connections with incomplete HTTP headers, then Slowloris attacks are prevented, but legitimate connections with delayed packets may be incorrectly terminated

Engineering Contradiction:
ImproveSlowloris attack preventionVSAvoidlegitimate connection maintenance
Core Design Contradiction:
Object-affected harmful factorsVSReliability

Solution Approach 1:

The patent applies partial action by implementing a hybrid approach that combines both time-based timeout monitoring and packet-content-based header completion detection. The system does not terminate connections solely on the basis of incomplete headers nor solely on timeout, but uses both criteria in combination. This partial application of termination criteria reduces false positives while maintaining effectiveness against Slowloris attacks.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent implements feedback mechanisms by continuously monitoring connection state and adjusting termination decisions based on accumulated packet information. The system tracks whether HTTP headers are complete or incomplete and uses this feedback to make informed decisions about connection termination. This feedback loop allows the system to distinguish between temporary packet delays and genuine attack patterns, maintaining reliability while preventing attacks.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If the device sends RESET packets to notify clients of dropped connections, then clients can properly clean up connection state, but attackers can use this information to adjust their attack timing and evade detection

Engineering Contradiction:
Improveclient connection state managementVSAvoidattack detection and evasion
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent extracts the notification function from the connection termination process. Instead of sending RESET packets that provide feedback to the client about connection state, the system silently drops connections without notification. This extraction removes the information that attackers could use to adjust their timing, while the client's connection state is managed through alternative means such as connection timeout and reconnection logic.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent converts the potential harm of silent connection dropping (which could confuse clients) into a benefit by making the attack detection more effective. The absence of RESET packets prevents attackers from receiving feedback about their attack success, thereby converting what could be a negative user experience into an enhanced security measure that disrupts attack timing and detection evasion.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS8843645B2Systems and methods for detecting incomplete requests, TCP timeouts and application timeouts
Publication Date: 2014.09.23 CITRIX SYSTEMS INC
  • US8843645B2 patent drawing
  • US8843645B2 patent drawing
  • US8843645B2 patent drawing

AI summary

Described herein is a method and system for preventing Denial of Service (DoS) attacks. An intermediary device is deployed between clients and servers. The device receives a first packet of an application layer transaction via a transport layer connection between the device and client. The device records a last activity time for the transport layer connection based upon the timestamp of the first packet. The device receives subsequent data packets and determines whether the data in the packets completes a protocol data structure of the application layer protocol. If the device determines that the subsequent packet completes the protocol data structure, the last activity time is updated. If the device determines that the application layer protocol remains incomplete, the device retains the last activity time and determines that the duration of inactivity for the transport layer connection exceeds a predetermined threshold. The device may subsequently drop the connection.