Konkrete Kritik an CVSS4
Marc Ruef
Im Zuge der Festnahme von Julian Assange und dem politischen Druck gegen Wikileaks haben sich verschiedene Kreise zu einer umstrittenen Distributed Denial of Service-Attacke (DDoS) gegen Wikileaks-Gegner zusammengeschlossen. Dieser Operation Payback, die durch Mitglieder des Underground-Forums 4chan orchestriert wird, sind mehrere grosse Dienstleister zum Opfer gefallen:
Um diese Angriffe umzusetzen, wird das Tool LOIC (Low Orbit Ion Cannon) verwendet. Dieses wurde ursprünglich in C# geschrieben, ist aber ebenfalls als plattformunabhängige Java-Portierung erhältlich. Es sieht sich in der Lage, das Zielsystem mit einer Vielzahl an Anfragen zu überlasten. Dabei können entweder klassisches TCP- oder UDP-Flooding aber auch HTTP-Flooding durchgesetzt werden.
Der Quelltext der Original-Implementierung steht zur Verfügung und mit der Durchsicht dessen wird die Funktionsweise des Angriffs über HTTP ersichtlich. Diese wird in der Funktion bw_DoWork()
in der Datei HTTPFlooder.cs
wie folgt definiert (Zeilen 56-82; letzte Comments leicht gekürzt):
private void bw_DoWork(object sender, DoWorkEventArgs e) { try { byte[] buf = System.Text.Encoding.ASCII.GetBytes( "GET " + Subsite + " HTTP/1.0\r\n\r\n\r\n"); IPEndPoint RHost = new IPEndPoint(System.Net.IPAddress.Parse(IP), Port); while (isFlooding) { State = ReqState.Ready; // SET STATE TO READY // LastAction = Tick(); byte[] recvBuf = new byte[64]; Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); State = ReqState.Connecting; // SET STATE TO CONNECTING // sck.Connect(RHost); sck.Blocking = Resp; State = ReqState.Requesting; // SET STATE TO REQUESTING // sck.Send(buf, SocketFlags.None); State = ReqState.Downloading; iRequested++; // DOWNLOADING // REQUESTED++ if (Resp) sck.Receive(recvBuf, 64, SocketFlags.None); State = ReqState.Completed; iDownloaded++; // COMPLETED // DOWNLOADED++ if (Delay>0) System.Threading.Thread.Sleep(Delay); } } catch { } isFlooding = false; }
Hierbei ist zu sehen, wie in der Variable buf
die HTTP GET-Anfrage definiert wird. Diese weist drei Auffälligkeiten auf:
HTTP/1.0
(und kein HTTP/1.1) unterstützt.\r\n
abgeschlossen.Diese drei Eigenschaften machen es möglich, derlei Zugriffe erkennen und frühstmöglich mitigieren zu können. Vor allem das letztgenannte Detail ist unüblich bei herkömmlichen GET-Anfragen. Ein entsprechendes Unterdrücken mit einem Proxy-Element oder einem .htaccess/mod_security Filter können dabei helfen, die Wucht der sehr primitiven Attacke abzufedern.
Zudem unterstützen die gegenwärtigen Versionen von LOIC keinerlei Möglichkeit zum Spoofing der Quell-IP-Adressen oder dem Generieren von Decoy-Zugriffen (diese wären vor allem im UDP-Modus effektiv). Aus diesem Grund kann es auch einfach nur helfen, mittels einem Protocol Analyzer die Zugriffe mitzulesen und in periodischer Weise restriktive IP-Filter für die einzelnen DDoS-Nodes anzuwenden (einfaches Beispiel mit .htaccess). Der LOIC-Client wird von den meisten Antiviren-Lösungen als solcher erkannt.
Weitere Informationen zum Schutz gegen DDoS-Attacken fasst die hervorragende Arbeit A Taxonomy of DDoS Attacks and DDoS Defense Mechanisms zusammen. Eine Diskussion zur Entwicklung von Gegenmassnahmen in den letzten 10 Jahren ist auf der Mailingliste der NANOG zu finden.
Aktualisierung der Liste der betroffenen Internet-Seiten.
Unsere Spezialisten kontaktieren Sie gern!
Marc Ruef
Marc Ruef
Marc Ruef
Marc Ruef
Unsere Spezialisten kontaktieren Sie gern!