Was ist HTTP Response Splitting?
Beim HTTP Response Splitting handelt es sich um eine Sicherheitslücke, die Exploits, wie etwa Cross-User Defacements, Cross-Site Scripting-Attacken und Web Cache Poisoning, möglich macht. Die Sicherheitslücke tritt auf, wenn Daten ohne vorherige Maskierung in einen HTTP-Response-Header geschrieben werden. Für einen erfolgreichen Angriff muss die Anwendung Eingaben erlauben, die CR- (Carriage Return) und LF- (Line Feed) Zeichen enthält. Mithilfe der Zeichen verschafft sich der Angreifer die Kontrolle über den Header und Body, außerdem kann dieser weitere Responses erstellen und kontrollieren.
Wie funktioniert eine HTTP Response Splitting Attack?
Der Cyberkriminelle fügt per Header-Injection mehrere Zeilenvorschübe in den Header einer HTTP-Antwort ein. Die erste Leerzeile entspricht im HTTP-Standard dem Ende des Header-Bereichs und kennzeichnet den Beginn der Nutzdaten. Bei unzureichender Kontrolle der Nutzdaten ist die Übernahme der Nutzlast und Zweiteilung der HTTP-Antwort möglich. Wenn die gleiche TCP-Verbindung für eine weitere Anfrage verwendet wird, wird der zweite Teil als Antwort auf die Folgeanfrage verschickt. Die zweite Antwort enthält dann die vom Angreifer injizierten Daten und kann zum Beispiel das Ziel verfolgen, Nutzerdaten des Seitenbesuchers abzufangen.
Welche Gegenmaßnahmen gibt es?
Eingabeparameter müssen geprüft werden, bevor diese im Header landen. Durch die Manipulation der HTTP-Antwort sind gefährliche Cyberattacken, wie Cross-Site Scripting, möglich, daher müssen Administratoren diese Attacke ernst nehmen und entsprechende Schutzmaßnahmen ergreifen. Eine Bibliotheksfunktion kann die Prüfung der Parameter übernehmen.