Attacks of Self-Denial
# Attacks of Self-Denial

Als Attacks of Self-Denial oder Self-Inflicted Denial-of-Service Attack (deutsch selbstzugeführter DoS-Angriff) bezeichnet man es, wenn ein Server durch eine große Anzahl an Anfragen überlastet wird und dadurch nicht mehr verfügbar ist. Im Gegensatz zu einem Distributed Denial of Service (DDoS) ist die Ursache jedoch nicht in einem Botnetz begründet, sondern wird durch menschliches Handeln ausgelöst.

Ursachen können etwa Werbeaktionen oder politisch motivierte Proteste sein, welche eine deutlich größere Menge an Anfragen auf dem Server veranlassen als im Normalfall. Der Ausfall des Servers veranlasst Nutzer zudem dazu die Webseite im Browser neu zu laden, weshalb zusätzliche Anfragen generiert werden, bevor die bestehenden Anfragen abgearbeitet wurden. Zudem können auch technische Fehlplanung oder Konfigurationsfehler eine Ursache sein.

## Beispiele

* Zum Launch der Xbox 360 wurde ein Werbemail versendet, welches Daten von einem Server nachlud, ohne das geplante Content Delivery Network von Akamai zu verwenden.
* Im November 2006 startete Amazon ein Sonderangebot, bei dem eine begrenzte Menge an Xbox-360-Konsolen zu einem stark vergünstigtem Preis verfügbar war. Amazon hatte es hierbei verabsäumt für die Aktion eigene Server für Bulkhead bereitzustellen, weshalb bei der Überlastung die gesamte Frontend-Infrastruktur mitgenommen wurde.
* Im Mai 2017 forderte der Politkomiker John Oliver die Öffentlichkeit dazu auf, Protestkommentare zur Netzneutralität auf der Webseite der Federal Communications Commission (FCC) einzureichen. Die Webseite fiel daraufhin aus, was laut FCC auf einen gezielten DDoS-Angriff zurückzuführen war. The Guardian vermutete jedoch, dass es sich um Attacks of Self-Denial gehandelt haben könnte, und verlangte die Herausgabe der Logdateien, um eine unabhängige Analyse durchführen zu können.

## Lösungsansätze

* Da ein DoS durch aufgebrauchte Threadpools verursacht wird, gilt es die Threadpools – insbesondere zu Datenbanken und externen Diensten – zu begrenzen.
* Sicherungen verhindern, dass das Backend im Falle einer Überlastung mit zusätzlichen Anfragen belastet wird.
* Bulkheads trennen die überlastete Infrastruktur von der restlichen Infrastruktur
* Abrufe statischer Dateien sollte nur über einen CDN erfolgen und direkte Serverzugriffe mittels einer Firewall geblockt werden.
* Im Falle von Werbeaktionen sollten zusätzliche Ressourcen eingeplant werden.
* Die notwendigen Dienste müssen dynamisch horizontal skalieren können. Hierfür werden Automated Scaling Listener eingesetzt, welche bedarfsorientiert weitere Instanzen der entsprechenden Dienste erzeugen.

## Quellen

* 1 2 3 Michael T. Nygard: Release It! Design and Deploy Production-Ready Software. O’Reilly, 2007, ISBN 978-0-9787392-1-8, 4.6 Attacks of Self-Denial (englisch, 326 S.).
* ↑ Terry Slattery: A Self-Inflicted Denial-of-Service Attack. NetCraftsmen, abgerufen am 10. Mai 2017.
* ↑ FCC claims comment system attacked after John Oliver's net neutrality segment. The Guardian, 8. Mai 2017, abgerufen am 10. Mai 2017 (englisch).
