IP Fragmentierungs-Angriffe – Was verbirgt sich dahinter?

  • Fabian Sinner
  • Februar 14, 2018

Inhaltsverzeichnis

    IP Fragmentierungs-Angriffe – Was verbirgt sich dahinter?

    Um IP-Fragmentierungsangriffe zu verstehen, muss zunächst das Konzept von IP Fragmentierung verstanden werden. IP-Kommunikation dient dem Austausch von Datenpaketen im Internet. Auf dem Weg von der Quelle zum Ziel müssen die Pakete häufig über verschiedene Verbindungstechnologien/-systeme weitergeleitet werden.

    Die Vielzahl an Technologien bringt die Einschränkungen mit sich, die zur Notwendigkeit der Fragmentierung von IP-Paketen führen können. Unterschiedliche Übertragungssysteme haben nämlich unterschiedliche MTUs (Maximum Transfer Units). Die MTU gibt die maximale IP-Paketlänge/-größe für einen gegebenen Netzwerktyp bzw. ein Übertragungssystem an. Die MTU ist durch das Netzwerk nach oben beschränkt, kennt nach in der Paketgröße nach unten jedoch keine Limitierung. Je kleiner sie ist, desto mehr werden die Nutzdaten bei der Übertragung fragmentiert. Hierbei fällt im Zusammenhang mit dem Begriff „MTU“ oft die Bezeichnung „MSS“ (Maximum Segment Size). Beide stehen in einem Zusammenhang, dürfen aber nicht verwechselt werden. Die MTU ist die maximale Größe des kompletten Datenpakets, wobei die MSS die Größe der Nutzdaten innerhalb des Pakets angibt.

    Der Unterschied von MTU und MSS bei TCP/IP:

    Description of an ethernet frame
    Description of an ethernet frame (©Link11)

    Unterschiedliche MTU-Größen verschiedener Netzwerktypen in Bytes:

    NetzwerktypMTU
    Ethernet1500
    Token Ring   4Mbps4464
    Token Ring 16Mbps17914
    IEEE 802.31492
    X.25576
    FDDI4352

    Die IP-Fragmentierung teilt die Pakete/Datagramme so auf, dass diese über den entsprechenden Netzwerktyp übertragen werden können. Der erneute Zusammenbau wird dem Ziel überlassen. Folgende Felder des IP-Headers spielen hierbei eine Rolle:

    • Source IP
    • Destination IP
    • Identification
    • Total Length
    • Fragment Offset
    • Flags

    Beispiel eines fragmentierten IP-Datagramms:

    Original Datagramm

    SequenceIdentifierTotal LengthDF May/Don’tMF Last/MoreFragment Offset
    05675180000

    IP-Fragmente

    SequenceIdentifierTotal LengthDF May/Don’tMF Last/MoreFragment Offset
    0:05671500010
    0:1567150001185
    0:2567150001370
    0:356774000555

    Wie kann man dies für Angriffe nutzen?

    IP-Fragmentierung kann in mehrfacher Hinsicht für Angriffe missbraucht werden. Sie kann genutzt werden, um beim Zielsystem die IP-Kommunikation zu attackieren, aber auch, um Sicherheitskomponenten auf dem Weg zum Zielsystem zu attackieren.

    Der erneute Zusammenbau (Defragmentierung) kann erst dann erfolgen, wenn alle Fragmente eingetroffen sind. UDP/ICMP-basierte Fragmentierungsangriffe senden meist gefälschte Fragmente, die nicht defragmentiert werden können. Das Vorhalten der Fragmente erfordert Speicher und kann somit im schlimmsten Falle zu einer Erschöpfung der Ressourcen im Bereich Speicher führen. Ein solcher Angriff könnte in Paketen folgender Art erfolgen:

    SequenceIdentifierTotal LengthDF May/Don’tMF Last/MoreFragment Offset
    0:01001500010
    1:02001500010
    2:03001500010
    3:04001500010
    4:05001500010
    n:0X1500010

     

    Jedes Fragment stellt das erste Fragment eines Datagramms dar und kündigt weitere Fragmente an. Auf den bearbeitenden Hosts und Layer 7-Sicherheitskomponenten werden somit für alle „n“ Kommunikationen Ressourcen reserviert:

    A TCP-based fragmentation attack
    A TCP-based fragmentation attack (©Link11)

    TCP-basierte Fragmentierungsangriffe (auch als Teardrop bekannt) hingegen attackieren meist die Defragmentierungsmechanismen der Zielsysteme oder Sicherheitskomponenten. Es werden überlappende Pakete gesendet, die je nach Betriebssystem sogar zu einem Absturz der Zielsystems führen können.

    Teil 2: Welche Kosten verursacht eine DDoS-Attacke?
    Link11 Cloud Security Platform in Region Asien-Pazifik verfügbar
    X