Ob DDoS oder Traffic-Spike, zeigt das Verhalten der Besucher. Echte Spitzen haben einen Auslöser wie Newsletter, TV-Beitrag oder Social-Media-Post, kommen mit Referer, verteilen sich auf viele Seiten und erzeugen Bestellungen. Ein Angriff beginnt abrupt, trifft wenige teure Pfade, kommt gebündelt aus Rechenzentren und führt zu keiner einzigen Conversion.
Ein Mittwochabend, 20:15 Uhr. Der Server-Graph zeigt das Zwanzigfache der üblichen Last. Zwei Möglichkeiten: Dein Produkt wurde gerade im Fernsehen gezeigt, oder jemand hat ein Botnetz auf dich gerichtet. Die falsche Diagnose ist in beide Richtungen teuer. Wer echte Kundschaft per Challenge aussperrt, verschenkt den besten Abend des Jahres. Wer einen Angriff für Erfolg hält, wartet zu lange.
DDoS oder Traffic-Spike: die acht Unterscheidungsmerkmale
Kein einzelnes Merkmal ist ein Beweis. Zeigen fünf oder mehr in dieselbe Richtung, ist die Sache ziemlich klar.
| Merkmal | Echte Traffic-Spitze | DDoS-Angriff |
|---|---|---|
| Auslöser | Newsletter, Presse, Post, Kampagne | keiner erkennbar |
| Anstieg | steil, aber in Minuten aufbauend | schlagartig von einer Sekunde zur nächsten |
| Referer | Nachrichtenseite, Social Media, Suchmaschine | leer oder unsinnig |
| Aufgerufene Seiten | Startseite, Artikel, Produktseite, dann weiter | ein bis drei Pfade, oft Suche oder Login |
| Netze (ASN) | Telekom, Vodafone, Kabel- und Mobilnetze | gebündelt aus Hosting- und Cloud-Netzen |
| User-Agents | bunte Mischung aktueller Browser | wenige, identische Strings oder veraltete Versionen |
| Sitzungsverhalten | lädt CSS, Bilder, JavaScript, klickt weiter | nur das HTML-Dokument, keine Folgeanfragen |
| Conversion | Bestellungen, Anmeldungen steigen mit | null |
Das Sitzungsverhalten ist mein Lieblingsindikator, weil er sich schwer fälschen lässt. Ein echter Browser lädt nach dem HTML-Dokument Dutzende Ressourcen. Ein einfacher Flood-Bot holt nur die eine URL, immer wieder.
Plötzlich viel Traffic: so prüfst du die Logs in zehn Minuten
Mit dem nginx-Access-Log im Standardformat bekommst du die wichtigsten Merkmale aus der Tabelle direkt. Zuerst die Referer der letzten 50.000 Requests:
tail -n 50000 /var/log/nginx/access.log | awk -F'"' '{print $4}' | sort | uniq -c | sort -rn | head -15
Steht oben eine Nachrichtenseite oder t.co, l.facebook.com, ein Newsletter-Tool, ist der Fall fast erledigt. Steht oben ein Strich (-) mit 95 Prozent Anteil, wird es verdächtig.
Dann das Verhältnis von HTML zu statischen Dateien:
tail -n 50000 /var/log/nginx/access.log | awk '{print $7}' | grep -cE '\.(css|js|png|jpg|webp|woff2)'
tail -n 50000 /var/log/nginx/access.log | wc -l
Bei echtem Besuch machen statische Dateien einen großen Teil aus, sofern sie nicht schon das CDN ausliefert. Liegt der Anteil nahe null, holen die Clients nur Dokumente. Wenn ein CDN die Assets cacht, prüfst du das Verhältnis dort statt im Server-Log.
Zum Schluss die Pfade mit Query-String:
tail -n 50000 /var/log/nginx/access.log | awk '{print $7}' | grep -c '?'
Tausende verschiedene, zufällig aussehende Parameter auf der Startseite sind ein klassischer Versuch, den Cache zu umgehen. Mehr Befehle für die Analyse stehen im Artikel DDoS-Attacke erkennen.
Bot-Traffic erkennen, der sich als Crawler ausgibt
Ein Sonderfall sind Anfragen mit User-Agent „Googlebot“ oder „bingbot“. Echte Crawler lassen sich verifizieren: Reverse-DNS der IP auflösen, dann den Namen wieder vorwärts auflösen und vergleichen.
host 66.249.66.1
host crawl-66-249-66-1.googlebot.com
Endet der Name auf googlebot.com oder google.com und führt die Vorwärtsauflösung zur selben IP, ist es Google. Andernfalls ist es ein Bot, der sich verkleidet hat. Cloudflare bietet für diesen Zweck das Feld „Verified Bot“ in Regeln, das bekannte Crawler bereits erkennt.
Website überlastet durch echte Besucher: was dann hilft
Ist die Diagnose „echter Andrang“, sind die Maßnahmen andere als bei einem Angriff:
- Seiten-Cache aktivieren oder verlängern. Ein Full-Page-Cache für nicht angemeldete Besucher entlastet PHP und Datenbank am stärksten.
- Teure Funktionen drosseln. Volltextsuche, Filter mit vielen Kombinationen und Empfehlungs-Widgets vorübergehend vereinfachen.
- Statisches über das CDN. Bilder und Skripte sollten gar nicht erst am Server ankommen.
- Warteschlange statt Fehlerseite. Bei sehr großen Spitzen ist eine Warteraum-Seite besser als ein 503.
Viele dieser Schritte helfen auch bei einem Angriff. Deshalb lautet meine Empfehlung bei Unsicherheit: zuerst cachen und drosseln, erst dann Challenges und harte Sperren. Ein maßvolles Rate Limiting auf Login und Suche ist in beiden Fällen sinnvoll.
Wenn es doch ein Angriff ist
Zeigen die Merkmale auf Bots, wechselst du in den Abwehrmodus. Die Reihenfolge der Schritte, vom Hoster-Anruf bis zur Beweissicherung, steht im Artikel DDoS-Attacke: was tun?. Für die Einordnung, welche Art von Angriff vorliegt, hilft die Übersicht der DDoS-Arten.
Eine Mischform kommt übrigens häufiger vor, als man denkt: Ein Beitrag geht viral, und kurz darauf beginnt jemand, die gut besuchte Seite zusätzlich zu fluten. Dann laufen beide Maßnahmenpakete parallel.
Vorbereitung für die nächste Spitze
Den Normalwert deiner Website solltest du kennen, bevor es ernst wird. Notiere dir Requests pro Sekunde, Bandbreite und Anteil der Top-10-Netze an einem normalen Tag und an einem guten Kampagnentag. Mit diesen Zahlen dauert die Entscheidung beim nächsten Mal Minuten statt einer Stunde.
Zur Vorbereitung gehört auch die DNS-Seite. Stehen Domain und Nameserver bei einem Anbieter, bei dem du Einträge schnell ändern kannst, schaltest du im Ernstfall ein CDN in Minuten davor. Bei betadomain liegt die Nameserver-Verwaltung direkt im Kundenkonto, eine .de-Domain bei einem Registrar mit DNSSEC lässt sich zusätzlich signieren, und die Jahrespreise ohne Lockangebot stehen in der Preisübersicht für Domains. Nimm dir als Nächstes die drei Log-Befehle von oben und lass sie einmal an einem normalen Tag laufen, damit du deinen Vergleichswert hast.
Domain gefunden? Prüfen und registrieren kannst du sie direkt bei Domain ohne Lockvogelpreis – Jahrespreis ab 2,99 €.
Häufige Fragen
Kann echter Traffic eine Website genauso lahmlegen wie ein DDoS?
Ja. Wenn ein Beitrag in einer großen Sendung oder auf einer Nachrichtenseite läuft, kommen in Minuten mehr Leute, als der Server verkraftet. Für die Besucher sieht das Ergebnis gleich aus. Der Unterschied liegt in der Reaktion: Bei echtem Andrang skalierst du und cachst, bei einem Angriff filterst du.
Sind Suchmaschinen-Crawler ein Problem?
Selten, aber möglich. Aggressive SEO-Tools und schlecht konfigurierte Crawler können kleine Server auslasten. Seriöse Bots lassen sich über Reverse-DNS verifizieren und halten sich an robots.txt. Bots, die sich als Googlebot ausgeben, aber nicht aus Googles Netz kommen, sind keine Crawler.
Was mache ich, wenn ich mir nicht sicher bin?
Behandle es zuerst wie echten Andrang: Caching hoch, teure Funktionen vorübergehend drosseln. Diese Maßnahmen schaden echten Besuchern kaum und entlasten auch bei einem Angriff. Erst wenn die Merkmale eindeutig auf Bots zeigen, verschärfst du die Filter.