Diese Website verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Sie stimmen dem durch die weitere Nutzung der Website zu. Weitere Infos zu Cookies und deren Deaktivierung finden Sie hier.

For English version click here.

Analyse von CHARGEN Floods als DoS-Vektor

08.02.2018        Tech-Blog
Analyse von CHARGEN Floods als DoS-Vektor
© shutterstock.com Bild-ID 56280433/Link11

Das aus dem Jahr 1983 stammende CHARGEN-Protokoll ist ein häufig eingesetzter DDoS-Vektor. Ursprünglich diente es zur Fehlersuche und zu Messungen in Netzwerken und Applikationen. Das Protokoll ist nur noch selten im Einsatz, wird aber immer noch von vielen öffentlich verfügbaren Systemen als Dienst angeboten. Das nutzen die Angreifer aus und verstärken ihre UDP-basierten Angriffe mittels IP Spoofing.

Das CHARGEN–Protokoll, auch „Character Generator Protocol“ genannt“, ist ein im Jahr 1983 definierter Netzwerkdienst. Die entsprechenden Spezifikationen sind in RFC 864 zu finden. Entwickelt wurde CHARGEN, um Tests, Fehlersuche und Messungen im Bereich von Netzwerken und Applikationen zu vereinfachen. Hinter dem Character Generator Protocol verbirgt sich die einfache Idee, einen Service anzubieten, der sowohl über das TCP- als auch über das UDP-Protokoll angesprochen werden kann (über Port 19). Wird der Service angesprochen, liefert er über die entsprechende „Verbindung“ eine zufällige Anzahl an zufälligen Charactern (Daten).

Die Implementierung des Protokolls beinhaltet jedoch einige Sicherheitsproblematiken. Der Dienst wird zwar inzwischen eher selten genutzt, ist aber noch häufig verfügbar, unter anderem auf älteren Windows-Servern, Windows-Desktop-PCs, Druckern, Heimroutern etc.

CHARGEN Flood-Angriffe missbrauchen diese noch verfügbaren Anlaufstellen des CHARGEN-Protokolls. Die häufigste Art solcher Angriffe nutzt CHARGEN als „Verstärker“ für UDP-basierte Angriffe mittels IP Spoofing. Der Angriff an sich ist relativ simpel: Der Angreifer stellt über sein Botnetz Zehntausende CHARGEN-Anfragen an eines oder mehrere öffentlich verfügbare Systeme, die den CHARGEN-Dienst anbieten. Die Anfragen nutzen das UDP-Protokoll, wobei die Bots die IP Adresse des Angriffsziels als Absender-IP verwenden, sodass die Antworten der CHARGEN-Dienste nicht in Richtung des Angreifers selbst, sondern in Richtung des Angriffsziels gesendet werden. Zehntausende Antworten werden dadurch von den CHARGEN-Diensten in Richtung des Angriffsziels gesendet. Die Kommunikation gestaltet sich wie folgt (hier mit nur einem angreifenden Bot):

Der Angreifer nutzt hierbei meist eine zusätzliche Eigenschaft des CHARGEN-Protokolls – hier ein Auszug aus RFC 864:

UDP Based Character Generator Service
Another character generator service is defined as a datagram based application on UDP. A server listens for UDP datagrams on UDP port 19. When a datagram is received, an answering datagram is sent containing a random number (between 0 and 512) of characters (the data in the received datagram is ignored). There is no history or state information associated with the UDP version of this service, so there is no continuity of data from one answering datagram to another. The service only send one datagram in response to each received datagram, so there is no concern about the service sending data faster than the user can process it.

Die Inhalte der Anfragen an den CHARGEN-Dienst werden ignoriert und es werden Antworten zufälliger Länge gesendet; die Antworten haben standardmäßig eine Länge zwischen 0 und 512 Charactern (Bytes).

Aber auch Antworten mit 1024 Bytes sind möglich. Eine Anfrage mit 1 Byte Inhalt kann also zu einer Antwort von 512 Bytes Inhalt oder mehr führen. Man spricht hierbei von einer „Verstärkung“ (Amplification) um den Faktor 512 im Bereich des Payloads. Ein Angreifer muss somit nur einen Bruchteil der Daten senden, die sein Ziel treffen. Einfach ausgedrückt: Ein Bot kann somit mit einer Bandbreite von 10 Mbps einen Angriff über 5 Gbps führen - ein ganzes Botnetz kann dadurch Angriffe von hunderten Gbps erzeugen. Eine CHARGEN-Anfrage mit der entsprechenden Antwort illustriert die Verstärkung am besten (hier ohne Layer 2- und Layer 3-Header):

Im Payload-Bereich handelt es sich um einen Verstärkungsfaktor von 1024. Die Anfrage besteht aus 1 Byte Daten, die Antwort jedoch aus 1024 Bytes Daten. Betrachtet man den Paketlevel, erkennt man, dass dem Anfragepaket von 60 Bytes ein Antwortpaket von 1066 Bytes gegenübersteht und die Verstärkung den Faktor 17 bis 18 hat.

Die Kommunikation des Botnetzes inklusive der Verstärkung gestaltet sich wie folgt:

Das Angriffsziel ist dabei mehreren Gefahren ausgesetzt:

  • Überlastung der Internetanbindung
  • Überlastung von Komponenten, welche die Pakete bearbeiten müssen
  • etc.

Im schlimmsten Fall führt ein solcher Angriff zum kompletten Ausfall der Internetanbindung des Angriffsziels.

Neueste Blogbeiträge

Bleiben Sie informiert über aktuelle DDoS-Reports, Warnmeldungen und Neuigkeiten zu IT-Sicherheit, Cybercrime und DDoS-Schutz.

Informiert bleiben!

Link11 Blog abonnieren mit News zum Unternehmen, IT-Security, Cybercrime

Kategorien

Link11GmbH​

Folgen Sie Link11 auf Twitter