- In einer Zeit ohne formelle On-Call-Rotation weckte die Katze um 3 Uhr morgens eine schlafende Person, wodurch eine AWS-CloudWatch-Warnung und der Website-Ausfall sofort bemerkt wurden
- Nach einer Warnung zu unhealthy targets des Load Balancers ließ sich die Website nicht mehr öffnen; von vielen IPs, die mehreren Ländern zugeordnet waren, gingen massenhaft Requests ein
- Da das Produkt nur für Nutzer in den USA verfügbar war, war internationaler Traffic ungewöhnlich; den Umständen nach handelte es sich um einen DDoS-Angriff
- Einzelne IPs auf dem Server zu blockieren hätte ineffizient sein können, aber mit der bereits eingerichteten Länder-Blocking-Regel in AWS WAF wurden innerhalb von etwa einer Stunde Hunderttausende Requests blockiert
- Um den Zeitpunkt des Angriffsbeginns traf im Support-Postfach eine Drohmail ein: Man habe die Website über eine Apache-Schwachstelle lahmgelegt und fordere 5.000 Dollar in Bitcoin; das Unternehmen antwortete nicht
Ausfall um 3 Uhr morgens entdeckt
- Das Startup hatte damals keine formelle On-Call-Rotation; das Team betrieb den Dienst so, dass alle gemeinsam auf dringende Alerts achteten
- Gegen 3 Uhr morgens weckte die Katze die Person, indem sie deren Haare putzte; beim Blick aufs Handy war dort eine wenige Minuten alte Warnung von AWS CloudWatch
- Ursache der Warnung waren unhealthy targets des Load Balancers, und die Website lud tatsächlich nicht
- Im Monitoring-Dashboard waren massenhafte Requests von vielen IP-Adressen zu sehen, die mehreren Ländern zugeordnet waren
- Da das Produkt nur für Nutzer in den USA angeboten wurde, wich internationaler Traffic vom Normalzustand ab; den Umständen nach wurde dies als DDoS-Angriff eingeschätzt
Request-Flut mit AWS WAF abgewehrt
- Die erste naheliegende Reaktion war, IP-Adressen auf Serverebene zu blockieren; wenn Angreifer jedoch weitere Quell-IPs nutzen können, wäre das mühsam und nur begrenzt wirksam gewesen
- Mit der bereits eingerichteten AWS Web Application Firewall wurde für die unmittelbare Störungsbehebung eine Regel zum Blockieren von Requests aus anderen Ländern hinzugefügt
- Nachdem die Regel aktiv war, wurden in etwa einer Stunde Hunderttausende Requests blockiert, und die Website begann wieder zu funktionieren
- Als auch die Request-Flut stoppte, war die akute Störung behoben
Drohmail kurz nach dem Angriff
- An jenem Morgen wurde eine Mail geprüft, die um den Beginn des Angriffs herum im Support-Postfach eingegangen war
- Der Absender behauptete, eine Schwachstelle der Website gefunden und Apache zum Absturz gebracht zu haben; das Unternehmen nutzte jedoch kein Apache
- Er habe den gesamten Traffic der Website gestoppt und könne dies monatelang aufrechterhalten; gegen 5.000 Dollar in Bitcoin werde er eine „solution file“ schicken
- Das Unternehmen antwortete nicht
- Da das Handy nachts im Nicht-stören-Modus war, passte die Erklärung nicht, dass Vibrationen oder Töne der AWS-Benachrichtigung zuerst die Katze geweckt hätten
- Die betroffene Person dachte, die Katze habe somehow gespürt, dass etwas nicht bis zum Morgen warten konnte, und empfand diese Art des Weckens als deutlich weniger unangenehm als einen PagerDuty-Alarm
1 Kommentare
Kommentare auf Hacker News
Wie immer übersieht man leicht die Insider-Bedrohung. Eine Erpresser-Mail mit verdächtiger Grammatik? Eine Bitcoin-Lösegeldforderung? Habt ihr nie daran gedacht, dass hinter dem Angriff vielleicht die Katze steckte?
In Kansas gibt es nicht viele Erdbeben, aber ich erinnere mich noch immer an das erste und einzige, das ich gespürt habe.
Ich schlief tief und fest, als meine Siamkatze mich mit der Pfote ins Gesicht tippte und weckte; sie saß am Fußende des Betts und knurrte ungewöhnlich aggressiv.
Keine 30 Sekunden später begann es zu wackeln. Ich weiß nicht, woher sie es wusste, aber es war ziemlich beeindruckend. Sie ist 2020 von uns gegangen, und ich vermisse sie immer noch.
Auch beim jüngsten Erdbeben in NYC gab es Videos von Hunden, die heulten, bevor Menschen die Erschütterung bemerkten; ich halte das für ein ziemlich verbreitetes Phänomen.
Als ich vor ein paar Wochen in Taipei ein Erdbeben der Stärke 7,4 erlebte, dachte ich nur daran, dass ich, wie versprochen, zu meinem Hund zurückmusste. Bevor ich ging, war der Hund unruhig; ich weiß nicht, ob er gespürt hatte, dass ich ging, oder das Erdbeben, auf das ich mich zubewegte.
In Gestein gibt es zwei Arten von Wellen: P-Wellen und S-Wellen. P-Wellen sind Druckwellen und schneller, S-Wellen schwingen seitlich und sind etwas langsamer. Die Katze ist wahrscheinlich durch das zischende Geräusch der P-Welle aufgewacht, die etwas vor dem Erdbeben ankommt, das Menschen spüren.
Dass es zwei Arten von Wellen gibt und P-Wellen zuerst eintreffen, lässt sich hier nachlesen: https://manoa.hawaii.edu/exploringourfluidearth/physical/oce...
Das Handy war vielleicht stummgeschaltet, aber der Bildschirm könnte weiter geblinkt haben. Meins verhält sich in diesem Modus auch so.
In meinem ersten Job gab es jemanden, der auf dem Monitoring-Dashboard Ausfälle schon erkannte, bevor sie richtig losgingen. Er konnte selbst nicht erklären oder verstehen, worauf er achtete, und niemand sonst konnte es nachmachen, aber wenn er sagte, dass etwas komisch sei, kam meist kurz darauf ein Alarm.
Ich habe einmal von einem Bauleiter gelesen, der bei den Arbeitern Respekt genoss, weil er ungewöhnlich gut Leitungen im Boden oder in Wänden finden konnte. Anfangs begann er selbst zu glauben, es sei eine Art übersinnliche Fähigkeit, kam später aber zu dem Schluss, dass er unbewusst typische Muster und gelegentliche nicht intuitive Hinweise gelernt hatte. Zum Beispiel, wenn man an der Wand eines Gebäudes einen Lüftungsschacht sieht und dadurch erkennt, dass im Untergrund wahrscheinlich eine Abwasserleitung verläuft.
Ich kam an den Punkt, an dem ich ziemlich zuverlässig merkte: „Dieses Spiel stürzt gleich ab, ich sollte speichern.“ Wenn ich speicherte und 10 Sekunden später neu anfing, stürzte es tatsächlich ab. Ich weiß bis heute nicht, woher ich das wusste.
5.000 Dollar ist ja ein ziemlich prinzenhafter Betrag. 2016 bekam unser Unternehmen auch so eine Forderung.
Wir wurden per DDoS angegriffen und beschlossen, es zu ignorieren, haben aber vorsichtshalber ein bisschen BTC bereitgelegt. Danach kostete uns die ganze DDoS-Abwehr zwar deutlich mehr als 5.000 Dollar, aber es ist es wert, den Erpressern kein Geld zu geben.
Wir haben auf keine der Mails geantwortet. Die Angreifer waren auch ziemlich dumm und griffen nur den Webserver an, der an einem gut angebundenen Standort stand.
Der Dienst, der tatsächlich Geld einbrachte, lag in der Karibik und hatte nur eine 1,5-Mbps-T1-Leitung sowie ein 0,5-Mbps-Satelliten-Backup. Den hätten sie viel leichter und länger sättigen können, und dann hätten wir etwa 1 Million Dollar Umsatz pro Stunde verloren.
Einem Angreifer 5.000 Dollar zu zahlen, kann billiger wirken als der Aufbau einer Abwehr, aber mit einer Abwehr wird man künftig wahrscheinlich seltener angegriffen. Und wie gesagt: Es hat an sich einen Wert, Kriminellen kein Geld zu geben.
Zu „Ich habe nicht geantwortet, aber im Nachhinein wäre es wohl lustig gewesen, sie ein bisschen zu verarschen“: Nicht zu antworten ist die einzig sinnvolle Antwort.
Wenn man sie provoziert, fällt man nur stärker auf und kann zum Ziel weiterer Angriffe werden. Was gewinnt man dadurch?
Aber die Vorstellung war trotzdem lustig, besonders nachdem ich dieses im Beitrag verlinkte Video gesehen hatte: https://www.youtube.com/watch?v=dWzz3NeDz3E
Vor einiger Zeit bemerkte jemand aus meiner Familie dank einer Katzen-Benachrichtigung, dass der Geschirrspüler Wasser verlor.
Die Schlussfolgerung war: Entweder wollte die Katze uns retten, oder sie wollte uns umbringen.
Eine Person, die draußen schläft, wird vom Krächzen einer Krähe geweckt; genau in diesem Moment schleicht sich eine große Katze, vermutlich ein Tiger, an.
Eine Figur meint, die Krähe habe die Person warnen wollen; eine andere meint, der Vogel habe den schlafenden Menschen dem Tiger angezeigt, um nach der Mahlzeit die Reste zu fressen.
„Schreckliche Grammatik“ – ganz typisch für die Zeit vor ChatGPT
Etwas ernster gefragt: Wird es irgendwann eine Möglichkeit geben, DDoS-Angriffe dauerhaft zu verhindern? Alle Bedrohungen sind schlimm, aber DDoS wirkt wie die banalste Angriffsart. Man braucht keine besonderen Fähigkeiten oder Kenntnisse; man lässt ein Script laufen oder bezahlt gleich jemanden, der es als Service für einen erledigt
IP-Adressen – bei IPv6 Subnetze – sind für normale Nutzer eine begrenzte Ressource, und Bandbreite ebenso. Die meisten Amplification-Angriffe benötigen IP-Spoofing, was bei gewöhnlichen Verbindungen oft nicht möglich ist
Bei volumenbasierten Angriffen gewinnt die Seite mit mehr Bandbreite. Der Angreifer kann dabei Amplification nutzen. Bei lastbasierten Angriffen oder Angriffen auf der Anwendungsschicht lässt sich das durch Blockieren der Angreifer-IP auf Firewall-Ebene lösen. In diesem Fall waren bereits WAF/CloudFront vorhanden, daher war es eher ein Angriff auf der Anwendungsschicht als ein reiner Volumenangriff
Die zu blockierenden Angreifer-IPs zu finden ist im Kern das Problem, Kosten korrekt nach Source-IP zuzuordnen, ebenso den Nutzen legitimer Nutzeraktivität korrekt nach Source-IP zuzuordnen und dann IPs oder Bereiche zu blockieren, bei denen die Kosten den Nutzen deutlich übersteigen
Das ist leichter gesagt als getan. Kosten treten in vielen Formen auf: offene Verbindungen, die Speicher belegen, TLS-Handshakes, Requests, deren Parsing für den Webserver teuer ist, Requests, die teure Datenbankabfragen auslösen, Ein-/Ausgabe-Bandbreite und so weiter. Deshalb setzen die meisten Cloudflare oder, wie hier, CloudFront davor und umgehen das Problem mit manuellen Regeln wie in diesem Fall
Es wäre großartig, wenn es eine Möglichkeit gäbe, Protokollebene so zu gestalten, dass sie robust gegen DDoS ist, aber ich weiß nicht, ob das möglich ist
Und dann gibt es volumenbasiertes DDoS. Das kann man abwehren, wenn man mehr Bandbreite hat als alle anderen, aber das ist ziemlich schwierig, und man wird dabei selbst zu einem potenziellen Angreifer
Die Innovation hierbei ist, Traffic-Filter per BGP zu verbreiten. Null-Routing ist sozusagen das Minimum Viable Product: Diese IP wird angegriffen, also verwirf den Traffic dorthin so schnell wie möglich. Ich habe auch präzisere Systeme gesehen, etwa UDP verwerfen, fragmentierte Pakete verwerfen oder ein- und ausgehende Pakete auf bestimmten UDP/TCP-Ports verwerfen
Die meisten dieser Systeme sind so ausgelegt, dass spezielle Routen nicht direkt über Peers hinaus propagiert werden, aber je nach Fall kann es auch wünschenswert sein, dass sie weitergegeben werden
Wenn die meisten Kunden in Mexiko sind und Kanada einen DDoS fährt, sodass die Leitung zwischen mir und Kanada voll ist, muss das nicht unbedingt ein großes Problem sein. Solange die Consumer-Router in Mexiko nicht anfangen, diesem kanadischen Engpass helfen zu wollen
Ich dachte, der Katzenfutterautomat sei mit den Alerts verbunden gewesen
Jedenfalls niedlich. Wie hieß die Katze?
Der Name war Bamboo. Leider ist er an Krebs gestorben. Ich habe ihn so genannt, weil eines der ersten Dinge, die er nach der Adoption tat, war, meine Bambuspflanze fressen zu wollen
Ein kabelloser Katzenfutterautomat hing vom Internet ab, und als kein Futter herauskam, ging die Katze zum Administrator, um sich zu beschweren
Das erinnert mich an dieses Buch: Dogs that Know When their Owners are Coming Home https://www.sheldrake.org/books-by-rupert-sheldrake/dogs-tha...
DDoS mit einem Token Bucket zu verhindern ist so einfach, dass meine Katze mich normalerweise nur dann wecken muss, wenn mein Discord überfallen wird
Es sieht eher nach einer Methode aus, bei der an der Firewall oder am Ingress Pakete verworfen werden, die übermäßige Last verursachen, bevor sie den Anwendungsserver erreichen
Wenn das Volumen der Verbindungsanfragen oder die Zahl eindeutiger IP-Adressen groß genug ist, kann der Dienst trotzdem überlastet werden
Ein Token Bucket ist normalerweise Teil einer umfassenden Resilienzstrategie, aber kein Allheilmittel für alle Denial-of-Service-Probleme