TCP Sequence Prediction
# TCP Sequence Prediction

TCP Sequence Prediction (TCP-Sequenzvoraussage, auch TCP sequence number prediction) bezeichnet eine Angriffsmethode in IP-Netzwerken, um dem Opfer einen anderen Absender vorzutäuschen (IP-Spoofing) oder bestehende Verbindungen zu übernehmen (TCP/IP-Hijacking).

Das TCP-Protokoll verwendet die Sequenznummer für die Angabe der Bytes, die versendet werden sollen. Die Sequenznummer wird dementsprechend laufend um die Anzahl der gesendeten Bytes erhöht. Damit ist ein Empfänger in der Lage, einen Datenstrom der Anwendung auch dann geordnet zu präsentieren, wenn einige Pakete z. B. aufgrund unterschiedlicher Laufzeiten außerhalb der originären Reihenfolge ankommen oder verloren gehen sollten. Die erste Sequenznummer wird beim Verbindungsaufbau (Drei-Wege-Handschlag) ausgehandelt und dann von den Kommunikationspartnern selbständig weitergezählt; Pakete mit unerwarteten Sequenznummern (d. h. Sequenznummern die bereits empfangen wurden oder die über den verfügbaren Empfangspuffer hinausgehen würden) werden vom Empfänger verworfen.

Um sich für den Empfänger eines TCP-Datenstroms als erwarteter Sender ausgeben zu können („spoofing“) oder gar die Verbindung komplett zu übernehmen („hijacking“), muss der Angreifer zunächst also versuchen, die vom jeweiligen Empfänger erwarteten Sequenznummern zu „erraten“ und gleichzeitig dafür zu sorgen, dass seine Datenpakete vor denen des tatsächlichen Senders ankommen (z. B. indem der Sender gleichzeitig mit einer Denial-of-Service-Attacke angegriffen wird). Gelingt dies, so verwirft der Empfänger daraufhin die Pakete des tatsächlichen Senders (da die entsprechenden Sequenznummern ja bereits vom Angreifer an den Empfänger gesendet wurden). Ab diesem Zeitpunkt scheinen die Pakete des Angreifers für den Empfänger vom erwarteten Sender zu kommen.

Gelingt es dem Angreifer zusätzlich noch, den tatsächlichen Sender so lange zu blockieren, dass die von ihm mitgezählten Sequenznummern des Empfängers sich um mehr als die Puffergröße von jenen des Empfängers unterscheiden kann er auch dem Sender gefälschte Pakete zuschicken und sich so in die Verbindung zwischen den beiden Kommunikationspartnern einklinken (TCP/IP-Hijacking), da die Sequenznummern dann für beide jeweils außerhalb des erwarteten Bereiches liegen.

