Preventing network data injection attacks using duplicate-ACK and reassembly gap approaches
AssigneeCisco Technology, Inc.
InventorsAnantha Ramaiah, Randall Stewart, Peter Lei, Patrick Mahan
Life of this patent
Estimating the term…
Abstract
Approaches for preventing TCP data injection attacks in packet-switched networks are disclosed. An ACK message or dummy segment is sent to verify the authenticity of the data in the re-assembly buffer, and to help discard spurious data faster. These approaches involve the sender in detection of spurious data, and make improved use of mechanisms for processing ACK messages that are native to typical TCP implementations. The latter approach may be implemented without modification of the sender's TCP implementation. Further, the receiver's TCP implementation maintains compatibility with RFC 793.
Claims32
A method of preventing an attack on a network, wherein the attack comprises injecting a spurious transmission control protocol (TCP) segment into a TCP connection between a sender and a receiver, the method comprising the computer-implemented steps of:
- receiving a duplicate TCP ACK message;
- incrementing a false duplicate ACK counter when a TCP re-transmission buffer maintained by the receiver is empty;
- when the false duplicate ACK counter is equal to a specified strike factor, and only when a TCP re-transmission buffer maintained by the receiver is empty, sending a corrective ACK message that provides a correct sequence value and ACK value.
A method of preventing an attack on a network, wherein the attack comprises injecting a spurious transmission control protocol (TCP) segment into a TCP connection between a sender and a receiver, the method comprising the computer-implemented steps of:
- receiving a particular TCP segment;
- determining a sequence value gap as between the particular TCP segment and a prior TCP segment previously placed in a re-assembly buffer maintained by the receiver;
- determining whether the sequence value gap is too large according to a specified heuristic;
- if the sequence value gap is too large, then performing the steps of:
- creating and sending a dummy segment carrying a particular sequence value that is just prior to a last properly acknowledged sequence value;
- receiving an acknowledgment of the dummy segment;
- determining whether a second sequence value carried in the acknowledgment is less than a third sequence value of the first TCP segment;
- and
- discarding the particular TCP segment from the re-assembly buffer when the
- second sequence value carried in the acknowledgment is less than the third sequence value of the particular TCP segment.
An apparatus for preventing an attack on a network, wherein the attack comprises sending a spurious transmission control protocol (TCP) segment with a spurious or unwanted DATA segment, the apparatus comprising:
- means for receiving a duplicate TCP ACK message;
- means for incrementing a false duplicate ACK counter when a TCP re-transmission buffer maintained by the receiver is empty;
- means sending a corrective ACK message that provides a correct sequence value and ACK value when the false duplicate ACK counter is equal to a specified strike factor and only when a TCP re-transmission buffer maintained by the receiver is empty.
An apparatus for preventing an attack on a network, wherein the attack comprises sending a spurious transmission control protocol (TCP) segment with spurious or unwanted DATA segment, comprising:
- a processor;
- one or more stored sequences of instructions that are accessible to the processor and which, when executed by the processor, cause the processor to perform:
- receiving a duplicate TCP ACK message;
- incrementing a false duplicate ACK counter when a TCP re-transmission buffer maintained by the receiver is empty;
- when the false duplicate ACK counter is equal to a specified strike factor, and only when a TCP re-transmission buffer maintained by the receiver is empty, sending a corrective ACK message that provides a correct sequence value and ACK value.
A computer-readable tangible storage medium carrying one or more sequences of instructions for preventing an attack on a network, wherein the attack comprises sending a spurious transmission-control protocol (TCP) segment with unwanted or spurious DATA, wherein the execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform:
- receiving a duplicate TCP ACK message;
- incrementing a false duplicate ACK counter when a TCP re-transmission buffer maintained by the receiver is empty;
- when the false duplicate ACK counter is equal to a specified strike factor, and only when a TCP re-transmission buffer maintained by the receiver is empty, sending a corrective ACK message that provides a correct sequence value and ACK value.
An apparatus for preventing an attack on a network, wherein the attack comprises injecting a spurious transmission control protocol (TCP) segment into a TCP connection between a sender and a receiver, comprising:
- means for receiving a particular TCP segment;
- means for determining a sequence value gap as between the particular TCP segment and a prior TCP segment previously placed in a re-assembly buffer maintained by the receiver;
- means for determining whether the sequence value gap is too large according to a specified heuristic;
- means operable when the sequence value gap is too large for creating and sending a dununy segment carrying a particular sequence value that is just prior to a last properly acknowledged sequence value, for receiving an acknowledgment of the dummy segment, for determining whether a second sequence value carried in the acknowledgment is less than a third sequence value of the first TCP segment, and for discarding the particular TCP segment from the re-assembly buffer when the second sequence value carried in the acknowledgment is less than the third sequence value of the particular TCP segment.
An apparatus for preventing an attack on a network, wherein the attack comprises injecting a spurious transmission control protocol (TCP) segment into a TCP connection between a sender and a receiver, comprising:
- a processor;
- one or more stored sequences of instructions that are accessible to the processor and which, when executed by the processor, cause the processor to perform:
- receiving a particular TCP segment;
- determining a sequence value gap as between the particular TCP segment and a prior TCP segment previously placed in a re-assembly buffer maintained by the receiver;
- determining whether the sequence value gap is too large according to a specified heuristic;
- when the sequence value gap is too large, creating and sending a dummy segment carrying a particular sequence value that is just prior to a last properly acknowledged sequence value, receiving an acknowledgment of the dummy segment, determining whether a second sequence value carried in the acknowledgment is less than a third sequence value of the first TCP segment, and discarding the particular TCP segment from the re-assembly buffer when the second sequence value carried in the acknowledgment is less than the third sequence value of the particular TCP segment.
Dependencies are inferred from the claim text.