IT4OWL Notfall melden
  1. IT4OWL
  2. Fälle
  3. Layer-7-Angriff auf Filterkombinationen: ein technisches Post-Mortem

Layer-7-Angriff auf Filterkombinationen: ein technisches Post-Mortem

Eine von IT4OWL selbst betriebene Vergleichsplattform fiel am 4. Oktober 2026 rund 3 Stunden 23 Minuten aus, als Anfragen mit ständig wechselnden Filterkombinationen eintrafen; Bandbreite war nicht der Engpass (höchstens 2,9 Mbit/s im Stundenmittel), und Limits pro Adresse konnten nicht greifen (1,28 Anfragen pro Adresse). Die Regel am Edge blockierte 50,6 % der Filter-Datensätze (5. Oktober 18:00 bis 6. Oktober 16:59 UTC), die Fehler endeten erst, als erkannte Anfragen vor der Anwendung statisch beantwortet wurden (ein Upstream-Fehler in rund 23 Stunden). Warum die Angriffswelle danach von selbst endete, zeigen die Daten nicht.

Aktualisiert

Zusammenfassung

Problem
Eine von IT4OWL selbst betriebene Vergleichsplattform, ein einzelner Server hinter Cloudflare, erhielt gültige Anfragen mit ständig neuen Kombinationen aus Hauptauswahl und Zusatzfiltern. Kein Exploit, keine fehlerhaften Eingaben.
Auswirkung
Am 4. Oktober war die Plattform rund 3 Stunden 23 Minuten nicht erreichbar. Von 17:00 bis 20:59 UTC endeten 91,6 % aller Anfragen am Edge mit einem 5xx-Fehler (Cloudflare-Schätzung).
Maßnahme
Eine schmale Regel am Edge, Prozessüberwachung mit automatischem Neustart und eine Klassifikation direkt vor der Anwendung, die erkannte Anfragen mit einer vorgerenderten statischen Seite beantwortet, ohne Anwendungs- und Datenbankarbeit.
Ergebnis
Von 5. Oktober 18:00 bis 6. Oktober 16:59 UTC liefen 608.882 filterförmige Datensätze auf; am Origin wurde 1 Upstream-Fehler protokolliert.
Dokumentation
Beweispaket mit 1.203 Dateien, jede mit SHA-256-Prüfsumme, erstellt am 28. Oktober 2026.

Am 4. Oktober 2026 fiel eine von IT4OWL selbst betriebene Vergleichsplattform aus. Es ist kein Kundenfall: IT4OWL betreibt die Plattform selbst, sie wird nicht benannt, es sind unsere eigenen Daten.

Was Betreibern mit einem ähnlichen Problem am meisten nützt: Bandbreite war nicht der Engpass. In der stärksten Stunde des erfassten Zeitraums kamen nach Schätzung von Cloudflare rund 74.400 Anfragen an, im Schnitt etwa 21 pro Sekunde. Die Quelladressen wechselten fast mit jeder Anfrage, Limits pro Adresse konnten deshalb nicht wirken. Und praktisch jede Kombination wurde höchstens zweimal abgerufen, kein Cache konnte helfen. Teuer war nicht eine einzelne langsame Anfrage, sondern die Rate, mit der neue Kombinationen eintrafen.

Wer hinter dem Verkehr stand, lässt sich aus den Daten nicht ableiten.

Zeitleiste

Alle Zeiten UTC. Die Berlin-Zeit steht in Klammern mit Zonenangabe: MESZ (UTC+2) bis zum 25. Oktober 01:00 UTC, danach MEZ (UTC+1).

  1. 23.–24. Sep
    Beobachtung Erste filterförmige Upstream-Timeouts am Origin in nennenswerter Zahl (4.288 fehlgeschlagene Anfragen am 24. Sep.).
  2. 26. Sep 03:34
    Ausfall Die Anwendung nimmt keine Verbindungen mehr an (05:34 MESZ). Die Ursache des Prozessendes ist nicht dokumentiert. Niemand hat hingesehen: Es gab weder Monitoring noch Alarmierung, der Ausfall blieb unbemerkt.
  3. 27. Sep 05:45
    Maßnahme Neustart bei einem geplanten Deployment, dessen Vorabprüfung den Ausfall zeigte (07:45 MESZ). Der Ausfall dauerte rund 26 Stunden.
  4. 30. Sep ca. 12:45–12:58
    Maßnahme Live: Eine bestehende Blockregel am Edge wird auf eine gemessene Kohorte erweitert (ca. 14:45–14:58 MESZ).
  5. 30. Sep 21:45
    Maßnahme Live: Neue Anwendungsversion mit erweitertem Filterkatalog (23:45 MESZ).
  6. 4. Okt 16:00
    Beobachtung Die Rate steigt auf rund 35.000, dann auf 74.400 Anfragen pro Stunde (Schätzung von Cloudflare; stärkste Stunde des erfassten Zeitraums; 18:00 MESZ).
  7. 4. Okt 17:07:10
    Ausfall Erste abgewiesene Verbindung (19:07:10 MESZ). Der Node.js-Prozess beendet sich nach Heap-Erschöpfung. Kein Alarm; wir bemerken den Ausfall selbst.
  8. 4. Okt 20:30:27
    Maßnahme Der Prozess wird von Hand neu gestartet (22:30:27 MESZ). Der Ausfall endet nach rund 3 Stunden 23 Minuten.
  9. 4. Okt ca. 21:00
    Maßnahme Live: Notfall-Release mit Prozessüberwachung mit automatischem Neustart und Speichergrenze, Deduplizierungskorrektur, schmale Signatur am Edge, statische Antwort am Origin für diese Signatur (ca. 23:00 MESZ).
  10. 5. Okt 16:05
    Ausfall Der Verkehr kehrt mit veränderten Anfragemerkmalen zurück (18:05 MESZ). Die Edge-Regel fängt etwa die Hälfte ab, die andere Hälfte löst einen Neustart-Sturm aus.
  11. 5. Okt 17:45
    Maßnahme Live: Die Klassifikation am Origin wird auf die neue Kohorte erweitert; statische Antworten beginnen (19:45 MESZ). Um 17:55 geht die Variante mit serverseitig gespeicherter Klassifikation live; der letzte Upstream-Fehler der Welle wird um 17:55:30 protokolliert.
  12. 5. Okt 18:00 – 6. Okt 16:59
    Beobachtung Der Verkehr läuft weiter: 608.882 filterförmige Datensätze im Fenster; 1 Upstream-Fehler am Origin, 8 filterförmige 5xx am Edge.
  13. 6. Okt 16:40–16:55
    Beobachtung Die Welle endet (18:40–18:55 MESZ). Die Ursache ist unbekannt.
  14. 8. Okt ca. 08:10 – 17. Okt ca. 21:00
    Maßnahme Wir nehmen die Plattform selbst vom Netz (mit Ausnahme einiger Stunden am 14. Okt.). Die Maßnahme hielt; es war eine betriebliche Entscheidung: Andere Projekte hatten Vorrang, und wir wollten abwägen, ob sich der Weiterbetrieb als Angriffsziel lohnt.
  15. 14. Okt
    Maßnahme Live (vorbereitet am 7. Okt.): Gehärtete Anwendung, eigene Filterkombinationen erfordern eine signierte, unsichtbare Browser-Sitzung und unterliegen Sitzungs- und Gesamtbudgets.
  16. 22. Okt 10:20
    Maßnahme Live: Speichergrenze von 1.400 MiB auf 1.800 MiB angehoben (12:20 MESZ).
  17. 28. Okt 08:29
    Beobachtung Die Erfassung der Edge-Daten endet (09:29 MEZ); das Beweispaket wird am selben Tag versiegelt.

Der Fehlermodus

Die Vergleichsseite wird bei jeder Anfrage serverseitig gerendert, sobald die Adresse eine Hauptauswahl und optionale Zusatzfilter enthält. Der Verkehr variierte beides über den gültigen Wertebereich der Oberfläche, einschließlich älterer Kombinationen, die der Parser noch akzeptiert. Jede Anfrage war gültig.

Jede neue Kombination ist ein Cache-Miss: Datenbankabfragen für die Ergebnisse und mehrere Facettenzählungen, danach ein serverseitig gerenderter HTML-Aufbau. Der Cache für fertige Ergebnisse war begrenzt. Die Liste der noch laufenden Abfragen hatte pro Kombination keine Obergrenze und entdoppelte nur identische Abfragen. Der Datenbank-Pool hatte 16 Verbindungen und 20 Sekunden Wartebudget. Das Anwendungsprotokoll vom 4. Oktober enthält 19.089 Zeitüberschreitungen beim Beschaffen einer Verbindung und 1.893 unbehandelte Promise-Rejections, und es endet mit JavaScript-Heap-Erschöpfung bei rund 1,9 GB Heap, Abbruch, Exit-Code 134. Es war kein Kernel-OOM-Kill, der Host hatte freien Speicher. Plausibel ist: Viele einmalige Kombinationen erzeugen wartende Arbeit schneller, als der Pool sie abarbeitet, und diese Arbeit liegt auf dem Heap. Bewiesen ist das nicht; ein Heap-Profil, das diesen Pfad als alleinige Ursache zeigt, gibt es nicht.

Wie neu waren die Kombinationen?

Auf 100 Filteranfragen kamen rund 64 verschiedene URLs: 858.982 verschiedene URLs bei 1.338.251 filterförmigen Datensätzen. Das ist nicht der Anteil der nur einmal gesehenen URLs. Für den 4. bis 6. Oktober, an dem die Datensätze nahezu vollständig sind, gilt: 936.476 Filter-Datensätze, 565.127 verschiedene URLs, 99,7 % der Datensätze trafen eine URL, die höchstens zweimal vorkam, und 20,8 % eine URL, die genau einmal vorkam. Die meisten Kombinationen wurden genau zweimal abgerufen. Im Fehlerprotokoll des Origins vom 4. Oktober tragen 140.705 fehlgeschlagene Anfragen 82.951 verschiedene URLs, davon 57.089 genau zweimal (ungesampelt). Vorbehalt: Eine in der Stichprobe einmal gesehene URL kann öfter angefragt worden sein.

Verkehrsvolumen und Bandbreite

Die stärkste Stunde des erfassten Zeitraums (4. Oktober, 17:00–18:00 UTC) brachte nach Schätzung rund 74.400 Anfragen, die stärkste Minute rund 4.960 (30. September, 20:08 UTC). Die ausgelieferte Datenmenge lag in keiner Stunde über 1,31 GB, im Stundenmittel 2,9 Mbit/s (29. September, 22:00 UTC). In der Ausfallstunde am 4. Oktober waren es 0,43 GB, etwa 1 Mbit/s; über die 31 Tage wurden 114,7 GB ausgeliefert. Stundenmittel verbergen kurze Spitzen. Edge-Daten vor dem 27. September 08:15 UTC existieren nicht.

Anfragen pro Stunde am Edge, 27. Sep. bis 28. Okt. 2026

pro Stunde, UTC, Schätzung von Cloudflare
Anfragen (Schätzung) davon 5xx am Edge davon 403 am Edge Mbit/s (Stundenmittel)
Anfragen pro Stunde am Edge, 27. Sep. bis 28. Okt. 2026Verlauf von 27. Sep. 08:00 bis 28. Okt. 08:00 UTC. Anfragen (Schätzung): höchster Wert 74.420; davon 5xx am Edge: höchster Wert 63.842; davon 403 am Edge: höchster Wert 24.100; Mbit/s (Stundenmittel): höchster Wert 2,91.020.00040.00060.00080.000Anfragen pro Stunde0123Ausgelieferte Datenmenge, Mbit/s im StundenmittelPlattform von uns vom Netzgenommen1. Okt.5. Okt.10. Okt.15. Okt.20. Okt.25. Okt.UTCAnfragen pro Stunde am Edge, 27. Sep. bis 28. Okt. 2026Verlauf von 27. Sep. 08:00 bis 28. Okt. 08:00 UTC. Anfragen (Schätzung): höchster Wert 74.420; davon 5xx am Edge: höchster Wert 63.842; davon 403 am Edge: höchster Wert 24.100; Mbit/s (Stundenmittel): höchster Wert 2,91.020.00040.00060.00080.000Anfragen pro Stunde0123Ausgelieferte Datenmenge, Mbit/s imStundenmittelPlattform vonuns vom Netzgenommen1. Okt.8. Okt.15. Okt.22. Okt.UTC
Stundenwerte vom 27. Sep. bis 28. Okt. 2026 (UTC): geschätzte Anfragen, geschätzte 5xx- und 403-Antworten am Edge (alles Cloudflare-Schätzungen) sowie das Stundenmittel der ausgelieferten Datenmenge in Mbit/s. Vom 8. bis 17. Okt. haben wir die Plattform selbst vom Netz genommen; das niedrige Volumen dort ist keine ruhige Angriffsphase. Hochrechnung von Cloudflare aus einer Stichprobe, keine Zählung einzelner Anfragen.
Daten als Tabelle
Stunde (UTC) Anfragen (Schätzung) 5xx 403 Mbit/s (Mittel)
27. Sep. 08:005.7900100,403
27. Sep. 09:0014.5400901,205
27. Sep. 10:0020.91006101,515
27. Sep. 11:0029.55005702,289
27. Sep. 12:0034.88006802,731
27. Sep. 13:0032.42001.0401,75
27. Sep. 14:0027.86008901,2
27. Sep. 15:0032.30005801,561
27. Sep. 16:0035.54006801,822
27. Sep. 17:0043.55005801,92
27. Sep. 18:0042.770706602,207
27. Sep. 19:0039.9803401.1302,153
27. Sep. 20:0037.4901401.0401,954
27. Sep. 21:0037.0201201.1801,833
27. Sep. 22:0011.1200700,379
27. Sep. 23:0016.8602401000,662
28. Sep. 00:0022.1308701401,093
28. Sep. 01:0029.9009301301,096
28. Sep. 02:0019.8005601601,111
28. Sep. 03:003.50001900,198
28. Sep. 04:002.8700800,162
28. Sep. 05:003.69001300,212
28. Sep. 06:004.65001500,222
28. Sep. 07:006.03001700,3
28. Sep. 08:0017.740102600,739
28. Sep. 09:0027.07004501,282
28. Sep. 10:0031.01009001,415
28. Sep. 11:0038.87001.0601,859
28. Sep. 12:0039.130401.3101,96
28. Sep. 13:0040.3904501.5702,443
28. Sep. 14:0038.5505201.7302,238
28. Sep. 15:0016.60003400,873
28. Sep. 16:004.13002700,129
28. Sep. 17:0022.860350800,923
28. Sep. 18:0010.6200500,343
28. Sep. 19:0022.330650500,921
28. Sep. 20:0027.4802202101,062
28. Sep. 21:0012.8206602200,543
28. Sep. 22:006.30002.1400,234
28. Sep. 23:005.00001000,226
29. Sep. 00:0016.19002200,675
29. Sep. 01:0028.55005101,267
29. Sep. 02:0042.870506201,411
29. Sep. 03:0048.91005701,889
29. Sep. 04:0047.390107902,007
29. Sep. 05:0043.810809102,569
29. Sep. 06:0043.2908501.5902,604
29. Sep. 07:0044.7101.3501.2802,438
29. Sep. 08:0020.8901106001,054
29. Sep. 09:005.0900700,192
29. Sep. 10:0024.690303800,969
29. Sep. 11:0026.31005800,737
29. Sep. 12:0038.490905701,839
29. Sep. 13:0043.5307206302,308
29. Sep. 14:0019.020306100,641
29. Sep. 15:006.010103500,31
29. Sep. 16:006.76001700,474
29. Sep. 17:0015.92001200,889
29. Sep. 18:0032.7403104601,769
29. Sep. 19:0035.67005701,88
29. Sep. 20:0042.1202809902,112
29. Sep. 21:0035.7102707901,737
29. Sep. 22:0049.6602.2502.8702,912
29. Sep. 23:0054.0003.2402.3502,806
30. Sep. 00:009.170801400,344
30. Sep. 01:0031.8000400,923
30. Sep. 02:0023.21030500,724
30. Sep. 03:0012.460180700,559
30. Sep. 04:0022.520730801,291
30. Sep. 05:0036.3501.410601,365
30. Sep. 06:0051.0403206901,956
30. Sep. 07:0043.550501001,238
30. Sep. 08:0022.2700400,593
30. Sep. 09:006.24003500,264
30. Sep. 10:007.88005300,431
30. Sep. 11:0031.88007601,357
30. Sep. 12:0036.37002.8101,283
30. Sep. 13:0031.800011.3200,638
30. Sep. 14:0066.370024.1001,088
30. Sep. 15:0029.78009.9800,778
30. Sep. 16:002.25003900,129
30. Sep. 17:003.26008300,116
30. Sep. 18:007.89002.3200,163
30. Sep. 19:0021.52005.9600,435
30. Sep. 20:0050.770012.7600,781
30. Sep. 21:009.30002.9800,297
30. Sep. 22:0010.46002.3600,328
30. Sep. 23:0010.81002.5300,266
1. Okt. 00:007.34001.6600,317
1. Okt. 01:002.31005500,081
1. Okt. 02:002.21004400,11
1. Okt. 03:002.40004600,149
1. Okt. 04:002.31003500,18
1. Okt. 05:002.16006100,091
1. Okt. 06:002.06004300,144
1. Okt. 07:002.04004300,092
1. Okt. 08:002.39005670,171
1. Okt. 09:002.02004520,178
1. Okt. 10:005.35008760,41
1. Okt. 11:003.13001.0310,143
1. Okt. 12:003.75009390,19
1. Okt. 13:002.64001.0110,13
1. Okt. 14:002.49009080,105
1. Okt. 15:002.11006090,104
1. Okt. 16:003.71005020,625
1. Okt. 17:004.49006380,634
1. Okt. 18:003.78004850,674
1. Okt. 19:004.65005510,755
1. Okt. 20:004.14005370,747
1. Okt. 21:004.25005750,729
1. Okt. 22:004.68025470,796
1. Okt. 23:003.73003890,716
2. Okt. 00:005.08005410,789
2. Okt. 01:005.48005920,792
2. Okt. 02:004.66005450,775
2. Okt. 03:004.19006560,86
2. Okt. 04:004.41005210,86
2. Okt. 05:003.66004850,665
2. Okt. 06:004.51004960,795
2. Okt. 07:004.56005190,841
2. Okt. 08:004.07003860,822
2. Okt. 09:004.90005480,838
2. Okt. 10:004.59008900,882
2. Okt. 11:005.67001.5230,788
2. Okt. 12:004.94018540,861
2. Okt. 13:005.30001.3030,748
2. Okt. 14:004.20009310,707
2. Okt. 15:003.78005010,719
2. Okt. 16:005.95004470,934
2. Okt. 17:005.43004190,985
2. Okt. 18:005.13015601,04
2. Okt. 19:006.90016581,391
2. Okt. 20:007.88006371,335
2. Okt. 21:005.91005661,268
2. Okt. 22:006.03005911,199
2. Okt. 23:006.12005511,316
3. Okt. 00:006.01006451,226
3. Okt. 01:006.13005981,223
3. Okt. 02:005.97006001,327
3. Okt. 03:006.22006641,29
3. Okt. 04:005.75005971,197
3. Okt. 05:005.86007001,2
3. Okt. 06:005.52005291,222
3. Okt. 07:005.69006351,157
3. Okt. 08:006.94006051,22
3. Okt. 09:006.03004841,358
3. Okt. 10:005.03017091,124
3. Okt. 11:005.28009231,195
3. Okt. 12:005.32008491,174
3. Okt. 13:006.430909221,115
3. Okt. 14:005.14007111,234
3. Okt. 15:005.08004951,162
3. Okt. 16:004.73004321,072
3. Okt. 17:004.74003971,146
3. Okt. 18:004.78013611,127
3. Okt. 19:005.99024671,479
3. Okt. 20:005.78003421,5
3. Okt. 21:005.31001691,387
3. Okt. 22:005.42003641,344
3. Okt. 23:005.19012211,427
4. Okt. 00:004.95001531,351
4. Okt. 01:005.13001511,337
4. Okt. 02:005.10001131,408
4. Okt. 03:005.39003861,366
4. Okt. 04:005.20012731,335
4. Okt. 05:004.7400701,344
4. Okt. 06:004.8401781,349
4. Okt. 07:004.92011391,423
4. Okt. 08:005.13002161,285
4. Okt. 09:004.9500871,252
4. Okt. 10:004.78002061,279
4. Okt. 11:005.5300971,426
4. Okt. 12:004.9000971,346
4. Okt. 13:005.38002431,399
4. Okt. 14:004.78031151,266
4. Okt. 15:005.28021151,442
4. Okt. 16:0035.6302596200,694
4. Okt. 17:0074.42063.8425300,961
4. Okt. 18:0062.22062.0424540,932
4. Okt. 19:0015.78014.2503210,233
4. Okt. 20:009401742340,028
4. Okt. 21:001.37003920,073
4. Okt. 22:001.11001890,143
4. Okt. 23:001.65002540,161
5. Okt. 00:001.11001820,065
5. Okt. 01:001.50004530,121
5. Okt. 02:0097002560,071
5. Okt. 03:001.19002140,101
5. Okt. 04:001.17002810,107
5. Okt. 05:0069002670,049
5. Okt. 06:0089003510,395
5. Okt. 07:001.18002950,116
5. Okt. 08:001.32002920,047
5. Okt. 09:0091001380,046
5. Okt. 10:0063001380,075
5. Okt. 11:001.30012140,09
5. Okt. 12:001.17003160,123
5. Okt. 13:001.16003600,131
5. Okt. 14:001.25015510,125
5. Okt. 15:002.59001.2350,24
5. Okt. 16:0041.6106.43320.8960,587
5. Okt. 17:0025.6201.73812.4491,157
5. Okt. 18:0013.54006.3390,592
5. Okt. 19:0019.28009.6740,85
5. Okt. 20:0028.100114.3001,196
5. Okt. 21:0029.410014.8641,338
5. Okt. 22:0028.490014.1181,261
5. Okt. 23:0027.500014.2241,208
6. Okt. 00:0028.350113.7921,256
6. Okt. 01:0029.260014.7111,318
6. Okt. 02:0031.230115.2861,468
6. Okt. 03:0029.330014.6751,366
6. Okt. 04:0030.280114.3891,329
6. Okt. 05:0029.720015.0571,318
6. Okt. 06:0030.430014.7851,378
6. Okt. 07:0030.940114.4661,586
6. Okt. 08:0029.860014.5931,346
6. Okt. 09:0028.160013.8371,352
6. Okt. 10:0029.240114.6541,348
6. Okt. 11:0029.690014.7041,405
6. Okt. 12:0031.220115.2971,473
6. Okt. 13:0026.630512.8121,243
6. Okt. 14:0029.900014.7551,342
6. Okt. 15:0028.430213.8311,36
6. Okt. 16:0017.31028.3000,829
6. Okt. 17:0050001090,077
6. Okt. 18:007400590,033
6. Okt. 19:005800620,018
6. Okt. 20:001.47005220,025
6. Okt. 21:006800990,038
6. Okt. 22:005904460,06
6. Okt. 23:009700820,063
7. Okt. 00:006802660,051
7. Okt. 01:008701830,036
7. Okt. 02:002.42007750,038
7. Okt. 03:008400400,058
7. Okt. 04:004200510,014
7. Okt. 05:005400580,057
7. Okt. 06:001.01001090,023
7. Okt. 07:006200560,033
7. Okt. 08:006900850,053
7. Okt. 09:004000440,032
7. Okt. 10:0078001130,112
7. Okt. 11:002.95007650,125
7. Okt. 12:0062001220,032
7. Okt. 13:003400800,017
7. Okt. 14:0039001280,027
7. Okt. 15:0065001230,038
7. Okt. 16:005600760,037
7. Okt. 17:0069001120,042
7. Okt. 18:004200900,027
7. Okt. 19:0073001360,143
7. Okt. 20:005800720,015
7. Okt. 21:005.25001.1830,072
7. Okt. 22:001.04011760,021
7. Okt. 23:005000860,026
8. Okt. 00:001.0000780,042
8. Okt. 01:006500690,026
8. Okt. 02:0083001090,04
8. Okt. 03:001.40002860,089
8. Okt. 04:001.42002080,04
8. Okt. 05:001.04001960,163
8. Okt. 06:001.20001850,045
8. Okt. 07:001.45002120,039
8. Okt. 08:0012039200,002
8. Okt. 09:00302010,001
8. Okt. 10:00302700,001
8. Okt. 11:00101000
8. Okt. 12:00302600,001
8. Okt. 13:00101200
8. Okt. 15:0010800
8. Okt. 16:0010800
8. Okt. 17:00101200
8. Okt. 18:00201200
8. Okt. 20:0010700
8. Okt. 21:0010900
8. Okt. 22:0010800
8. Okt. 23:00201000
9. Okt. 00:00301010
9. Okt. 01:0010800
9. Okt. 02:0020600
9. Okt. 04:00101700
9. Okt. 05:00101300
9. Okt. 07:00101200
9. Okt. 09:00304600,001
9. Okt. 10:00101100
9. Okt. 11:00101200
9. Okt. 12:00101500
9. Okt. 13:0030800
9. Okt. 15:00101200
9. Okt. 16:00101200
9. Okt. 19:0010100
9. Okt. 20:0010400
9. Okt. 21:0020600
9. Okt. 22:00401500,001
9. Okt. 23:0010500
10. Okt. 00:00101100
10. Okt. 05:00101500
10. Okt. 06:00101700
10. Okt. 07:00201400
10. Okt. 08:00201300
10. Okt. 09:0010800
10. Okt. 11:0020800
10. Okt. 12:00401900,001
10. Okt. 17:0010600
10. Okt. 22:0010400
10. Okt. 23:0010600
11. Okt. 01:0010900
11. Okt. 05:0010200
11. Okt. 06:0010600
11. Okt. 07:0010400
11. Okt. 08:0010400
11. Okt. 10:0010300
11. Okt. 19:0019024700
11. Okt. 22:0010200
12. Okt. 01:0010500
12. Okt. 12:002100
12. Okt. 13:001100
12. Okt. 16:002200
12. Okt. 17:001100
12. Okt. 19:001100
12. Okt. 21:001100
12. Okt. 22:004400
13. Okt. 00:002200
13. Okt. 01:006500
13. Okt. 02:001100
13. Okt. 03:003300
13. Okt. 04:004300
13. Okt. 06:001100
13. Okt. 07:001100
13. Okt. 08:001000
13. Okt. 11:001100
13. Okt. 13:002100
13. Okt. 14:004300
13. Okt. 15:001100
13. Okt. 16:003200
13. Okt. 17:001100
13. Okt. 18:001100
13. Okt. 19:001100
13. Okt. 20:001000
13. Okt. 21:001000
13. Okt. 22:00222200
13. Okt. 23:001100
14. Okt. 00:002100
14. Okt. 01:004400
14. Okt. 02:00373700
14. Okt. 03:002200
14. Okt. 04:001000
14. Okt. 06:001100
14. Okt. 08:001100
14. Okt. 10:001100
14. Okt. 14:001.2411310,113
14. Okt. 15:001.695119840,078
14. Okt. 16:00893802650,016
14. Okt. 17:00402334510,007
14. Okt. 18:00442370620,007
14. Okt. 19:00367311470,006
14. Okt. 20:00557288440,006
14. Okt. 21:00403338520,007
14. Okt. 22:00388349330,007
14. Okt. 23:00419361460,007
15. Okt. 00:00804741480,014
15. Okt. 01:00419368490,006
15. Okt. 02:00360308480,006
15. Okt. 03:00458341980,007
15. Okt. 04:00343300330,006
15. Okt. 05:003962761180,006
15. Okt. 06:00467378810,008
15. Okt. 07:00452378630,007
15. Okt. 08:00270224400,004
15. Okt. 09:00468411510,008
15. Okt. 10:00567521360,01
15. Okt. 11:00329286290,006
15. Okt. 12:00318241580,005
15. Okt. 13:00310248510,005
15. Okt. 14:00361260750,005
15. Okt. 15:00330286360,006
15. Okt. 16:00348297370,006
15. Okt. 17:00296223630,005
15. Okt. 18:00337278410,006
15. Okt. 19:00309257420,005
15. Okt. 20:00337267550,005
15. Okt. 21:00336234840,005
15. Okt. 22:00418314740,006
15. Okt. 23:00271200650,004
16. Okt. 00:00247185560,004
16. Okt. 01:00321266500,005
16. Okt. 02:00271227390,005
16. Okt. 03:00357252900,005
16. Okt. 04:00382305700,006
16. Okt. 05:00305221740,005
16. Okt. 06:00347270600,006
16. Okt. 07:00424345580,007
16. Okt. 08:00418342690,007
16. Okt. 09:004643181380,007
16. Okt. 10:00529456540,009
16. Okt. 11:00390301750,007
16. Okt. 12:00419310980,007
16. Okt. 13:004213041010,006
16. Okt. 14:00391301650,006
16. Okt. 15:00370274720,006
16. Okt. 16:00463369690,008
16. Okt. 17:00350270650,006
16. Okt. 18:00362277560,006
16. Okt. 19:00391319530,007
16. Okt. 20:00367281630,006
16. Okt. 21:00443355670,007
16. Okt. 22:00343270520,006
16. Okt. 23:00401325530,007
17. Okt. 00:00396312670,007
17. Okt. 01:006904112610,01
17. Okt. 02:00411327590,007
17. Okt. 03:00432329740,007
17. Okt. 04:00338226940,005
17. Okt. 05:00319247530,005
17. Okt. 06:00336259530,005
17. Okt. 07:00397327470,006
17. Okt. 08:00343283410,006
17. Okt. 09:00324237680,005
17. Okt. 10:00593517530,01
17. Okt. 11:006123852020,009
17. Okt. 12:005343841240,008
17. Okt. 13:004763191380,008
17. Okt. 14:00378295580,006
17. Okt. 15:00377292570,006
17. Okt. 16:00318249570,005
17. Okt. 17:00243201380,004
17. Okt. 18:00344288530,006
17. Okt. 19:00298238530,005
17. Okt. 20:00363300540,006
17. Okt. 21:002.5291381230,093
17. Okt. 22:001.119711130,04
17. Okt. 23:00951721040,055
18. Okt. 00:00992623000,042
18. Okt. 01:00923671110,071
18. Okt. 02:00938511250,08
18. Okt. 03:001.004711340,154
18. Okt. 04:001.330845250,047
18. Okt. 05:00965841020,084
18. Okt. 06:001.330724790,063
18. Okt. 07:001.567731450,106
18. Okt. 08:001.752513950,123
18. Okt. 09:001.215711140,08
18. Okt. 10:002.281805850,263
18. Okt. 11:002.396253860,151
18. Okt. 12:001.963712050,086
18. Okt. 13:001.9752303970,084
18. Okt. 14:001.451613210,082
18. Okt. 15:001.281641010,093
18. Okt. 16:003.085702140,314
18. Okt. 17:001.454663050,056
18. Okt. 18:001.19770600,114
18. Okt. 19:001.21473500,058
18. Okt. 20:001.281521180,05
18. Okt. 21:001.701743170,088
18. Okt. 22:001.096611040,052
18. Okt. 23:001.796691540,065
19. Okt. 00:002.010793270,438
19. Okt. 01:001.62505590,085
19. Okt. 02:001.55703990,12
19. Okt. 03:001.80903250,096
19. Okt. 04:002.609156050,22
19. Okt. 05:003.191652110,912
19. Okt. 06:001.58932160,086
19. Okt. 07:002.466143140,114
19. Okt. 08:001.898182220,097
19. Okt. 09:003.3921953350,172
19. Okt. 10:002.423761750,321
19. Okt. 11:004.366701600,229
19. Okt. 12:002.865753380,142
19. Okt. 13:002.171632590,13
19. Okt. 14:001.412721910,066
19. Okt. 15:002.627824650,313
19. Okt. 16:001.714761970,17
19. Okt. 17:001.888432970,129
19. Okt. 18:001.705502100,142
19. Okt. 19:001.231441600,06
19. Okt. 20:002.6751535880,134
19. Okt. 21:001.76602600,299
19. Okt. 22:001.43003010,084
19. Okt. 23:001.52802460,074
20. Okt. 00:001.49302680,073
20. Okt. 01:002.32842320,218
20. Okt. 02:001.01001940,046
20. Okt. 03:001.65903130,105
20. Okt. 04:002.24013040,143
20. Okt. 05:003.21783720,325
20. Okt. 06:002.09433490,107
20. Okt. 07:003.1303674100,101
20. Okt. 08:001.999592950,098
20. Okt. 09:002.100534700,298
20. Okt. 10:002.446411790,425
20. Okt. 11:002.725661710,179
20. Okt. 12:001.896452660,09
20. Okt. 13:002.029663800,085
20. Okt. 14:001.891671950,119
20. Okt. 15:002.150522180,102
20. Okt. 16:002.814694500,231
20. Okt. 17:001.30152710,075
20. Okt. 18:001.175572580,066
20. Okt. 19:001.0333720,07
20. Okt. 20:001.12302780,072
20. Okt. 21:001.993118880,09
20. Okt. 22:001.24002110,103
20. Okt. 23:003.0404251060,297
21. Okt. 00:00915632290,05
21. Okt. 01:00810581200,046
21. Okt. 02:0072753890,059
21. Okt. 03:00927581930,161
21. Okt. 04:001.235561280,122
21. Okt. 05:002.270552450,15
21. Okt. 06:001.7321933500,156
21. Okt. 07:001.188611210,121
21. Okt. 08:001.411451890,078
21. Okt. 09:001.654501370,102
21. Okt. 10:001.67060880,219
21. Okt. 11:001.403172120,165
21. Okt. 12:001.615101770,271
21. Okt. 13:001.3250870,234
21. Okt. 14:002.15903650,159
21. Okt. 15:001.3470850,226
21. Okt. 16:001.100142240,133
21. Okt. 17:00995111170,062
21. Okt. 18:004480870,064
21. Okt. 19:001.2282513180,05
21. Okt. 20:00519651110,087
21. Okt. 21:0078150950,106
21. Okt. 22:0065244730,066
21. Okt. 23:001.140483770,051
22. Okt. 00:0062152620,055
22. Okt. 01:00698591050,072
22. Okt. 02:0096751710,05
22. Okt. 03:00597442480,041
22. Okt. 04:0061835900,05
22. Okt. 05:0052550720,047
22. Okt. 06:0098938770,065
22. Okt. 07:003650850,086
22. Okt. 08:0051901040,088
22. Okt. 09:001.15011860,065
22. Okt. 10:008240720,209
22. Okt. 11:002.733764820,231
22. Okt. 12:002.460763040,208
22. Okt. 13:001.938632880,203
22. Okt. 14:001.577422660,168
22. Okt. 15:002.065514620,251
22. Okt. 16:002.942561.3810,129
22. Okt. 17:001.873511.1140,077
22. Okt. 18:002.004481.2040,061
22. Okt. 19:001.898351.0800,051
22. Okt. 20:001.990181.0040,076
22. Okt. 21:002.204541.0620,089
22. Okt. 22:002.841501.1090,138
22. Okt. 23:001.782279800,069
23. Okt. 00:002.16401.2030,118
23. Okt. 01:001.818189780,124
23. Okt. 02:001.52507510,137
23. Okt. 03:002.43801.0310,408
23. Okt. 04:002.46411.0010,17
23. Okt. 05:0097303200,045
23. Okt. 06:001.52614000,131
23. Okt. 07:001.39602430,114
23. Okt. 08:002.621372720,254
23. Okt. 09:001.563501680,102
23. Okt. 10:001.5971574500,169
23. Okt. 11:002.155413030,224
23. Okt. 12:003.323424870,293
23. Okt. 13:001.137381440,08
23. Okt. 14:001.514411450,055
23. Okt. 15:001.517572070,099
23. Okt. 16:001.095471290,046
23. Okt. 17:001.392495770,086
23. Okt. 18:001.387441820,113
23. Okt. 19:0074140860,088
23. Okt. 20:00905441460,033
23. Okt. 21:00982693490,048
23. Okt. 22:001.87301450,215
23. Okt. 23:0096801750,091
24. Okt. 00:002.3491103560,129
24. Okt. 01:0056501550,084
24. Okt. 02:0071451960,117
24. Okt. 03:00885473020,094
24. Okt. 04:00662511230,043
24. Okt. 05:00678532210,032
24. Okt. 06:00980483070,039
24. Okt. 07:001.088444250,037
24. Okt. 08:001.148482040,088
24. Okt. 09:001.006531640,043
24. Okt. 10:001.332413510,168
24. Okt. 11:0091745970,087
24. Okt. 12:001.055451790,128
24. Okt. 13:00820411650,046
24. Okt. 14:0076762000,078
24. Okt. 15:001.70805210,165
24. Okt. 16:002.044436170,158
24. Okt. 17:001.175203790,098
24. Okt. 18:001.828563800,12
24. Okt. 19:001.134433610,056
24. Okt. 20:002.161476890,175
24. Okt. 21:001.511503020,153
24. Okt. 22:001.944454930,203
24. Okt. 23:001.611414520,099
25. Okt. 00:001.181453130,081
25. Okt. 01:001.134462610,045
25. Okt. 02:001.078472420,084
25. Okt. 03:001.341452600,064
25. Okt. 04:001.150431950,076
25. Okt. 05:001.325454840,09
25. Okt. 06:001.226302940,091
25. Okt. 07:001.19161970,092
25. Okt. 08:002.192322180,268
25. Okt. 09:001.856591700,21
25. Okt. 10:002.675432150,384
25. Okt. 11:002.973585700,365
25. Okt. 12:001.429721360,126
25. Okt. 13:001.619743100,131
25. Okt. 14:002.006643100,084
25. Okt. 15:001.540724250,063
25. Okt. 16:001.682642970,071
25. Okt. 17:001.789644050,072
25. Okt. 18:001.533717140,065
25. Okt. 19:001.369713780,053
25. Okt. 20:001.041723520,036
25. Okt. 21:001.507651980,072
25. Okt. 22:003.229872050,292
25. Okt. 23:005.700712630,757
26. Okt. 00:001.511812490,101
26. Okt. 01:001.487812070,154
26. Okt. 02:001.422811860,059
26. Okt. 03:005.292654690,338
26. Okt. 04:001.543561510,151
26. Okt. 05:001.188681580,122
26. Okt. 06:001.993664600,21
26. Okt. 07:001.822681400,163
26. Okt. 08:001.834652980,144
26. Okt. 09:001.847742730,189
26. Okt. 10:002.443631370,325
26. Okt. 11:002.801653990,284
26. Okt. 12:001.568655220,041
26. Okt. 13:001.564673110,085
26. Okt. 14:001.544644110,063
26. Okt. 15:002.069644460,115
26. Okt. 16:002.201543940,069
26. Okt. 17:001.08158980,042
26. Okt. 18:001.355541060,069
26. Okt. 19:001.694622380,085
26. Okt. 20:002.623554670,11
26. Okt. 21:001.29547530,061
26. Okt. 22:001.606461840,083
26. Okt. 23:001.400563510,073
27. Okt. 00:0070756760,04
27. Okt. 01:001.512722030,125
27. Okt. 02:001.615451140,147
27. Okt. 03:001.299491190,109
27. Okt. 04:001.722432900,15
27. Okt. 05:001.196471180,139
27. Okt. 06:001.095481030,107
27. Okt. 07:002.20537830,228
27. Okt. 08:001.487451120,152
27. Okt. 09:001.646421740,15
27. Okt. 10:001.372451030,085
27. Okt. 11:001.264341240,104
27. Okt. 12:0088333980,091
27. Okt. 13:001.401391810,079
27. Okt. 14:001.241401470,097
27. Okt. 15:001.13851640,062
27. Okt. 16:00892331360,049
27. Okt. 17:001.029403710,291
27. Okt. 18:001.195432880,063
27. Okt. 19:001.56644900,083
27. Okt. 20:001.632143030,078
27. Okt. 21:001.85212820,079
27. Okt. 22:001.215131340,065
27. Okt. 23:0052715930,024
28. Okt. 00:0031316540,018
28. Okt. 01:00700241570,067
28. Okt. 02:001.347572440,089
28. Okt. 03:003.099401120,14
28. Okt. 04:001.272472460,092
28. Okt. 05:001.073411620,083
28. Okt. 06:001.404521030,118
28. Okt. 07:001.834481540,134
28. Okt. 08:004411240,027

Ein Adresspool, der fast pro Anfrage wechselte

Am 6. Oktober stammten 469.726 filterförmige Datensätze von 366.865 verschiedenen Quelladressen: 1,28 Anfragen pro Adresse, 80 % der Adressen genau einmal, die aktivste Adresse sandte 69. Am 4. Oktober waren es 254.856 Datensätze von 219.829 Adressen (1,16 pro Adresse, aktivste 34). Über das gesamte Fenster kamen mindestens 897.554 verschiedene Quelladressen vor (Untergrenze wegen der Stichprobe). Im Fehlerprotokoll vom 4. Oktober hatte der häufigste Client-Wert 39 von 140.705 Fehlern. Ratenlimits und Sperren pro Adresse laufen bei dieser Streuung ins Leere. 97,9 % der Filter-Datensätze (1.310.134 von 1.338.251) kamen von Ausgängen, die Cloudflare außerhalb von DE, AT und CH verortet; das beschreibt Ausgangsorte, nicht die Herkunft des Verkehrs.

Verschiedene Quelladressen pro Tag bei filterförmigen Anfragen

pro UTC-Tag, exportierte Datensätze
Filterförmige Datensätze Verschiedene Quelladressen Datensätze pro Adresse Adressen nur einmal (%)
Verschiedene Quelladressen pro Tag bei filterförmigen AnfragenVerlauf von 27. Sep. bis 28. Okt. UTC. Filterförmige Datensätze: höchster Wert 469.726; Verschiedene Quelladressen: höchster Wert 366.865; Datensätze pro Adresse: höchster Wert 2,2; Adressen nur einmal (%): höchster Wert 100.0200.000400.000600.000Filterförmige DatensätzeVerschiedene QuelladressenAnzahl pro Tag0123Datensätze pro Adresse0255075100Adressen, die nur einmal vorkommen, in %Plattform von uns vom Netzgenommen1. Okt.5. Okt.10. Okt.15. Okt.20. Okt.25. Okt.UTCVerschiedene Quelladressen pro Tag bei filterförmigen AnfragenVerlauf von 27. Sep. bis 28. Okt. UTC. Filterförmige Datensätze: höchster Wert 469.726; Verschiedene Quelladressen: höchster Wert 366.865; Datensätze pro Adresse: höchster Wert 2,2; Adressen nur einmal (%): höchster Wert 100.0200.000400.000600.000Anzahl pro Tag0123Datensätze pro Adresse0255075100Adressen, die nur einmal vorkommen, in %Plattform vonuns vom Netzgenommen1. Okt.8. Okt.15. Okt.22. Okt.UTC
Pro UTC-Tag: filterförmige Datensätze, verschiedene Quelladressen, Datensätze pro Adresse und Anteil der Adressen, die nur einmal vorkommen. Die Werte vom 27. bis 30. Sep. sind starke Unterzählungen (nur etwa jede zehnte Anfrage liegt als Datensatz vor). Tageswerte sind nicht addierbar. Eine Quelladresse ist ein Netzwerkausgang, keine Person. Gezählte Datensätze einzelner Anfragen aus dem Cloudflare-Export. Der Export ist eine Stichprobe: vom 1. bis 28. Oktober nahezu vollständig, vom 27. bis 30. September etwa jede zehnte Anfrage.
Daten als Tabelle
Tag (UTC) Datensätze Quelladressen Datensätze je Adresse Höchstens von einer Adresse Adressen nur einmal Abdeckung
27. Sep.22.42116.8991,331983,2 %0,09
28. Sep.23.04616.9361,361383,7 %0,1
29. Sep.41.23825.8971,591681,8 %0,1
30. Sep.18.14214.1511,281384,9 %0,09
1. Okt.33.45830.2271,113492,9 %0,83
2. Okt.76.33671.1031,073494,5 %0,94
3. Okt.99.51692.9011,0735294,3 %0,97
4. Okt.254.856219.8291,163487,1 %0,98
5. Okt.211.894183.4241,165387,3 %0,98
6. Okt.469.726366.8651,286979,8 %0,98
7. Okt.4.3773.9811,1693 %0,91
8. Okt.9979561,04596,2 %0,82
9. Okt.7711100 %0,93
10. Okt.5511100 %1,11
11. Okt.1111100 %0,5
12. Okt.2211100 %1,18
14. Okt.1.9281.3201,4656497,3 %0,97
15. Okt.2.1961.9101,1514295,2 %0,98
16. Okt.2.8132.5041,12793,8 %0,99
17. Okt.2.5892.1421,212991,1 %0,97
18. Okt.4.4762.8841,552975,8 %0,94
19. Okt.4.2221.9192,23969,8 %0,96
20. Okt.4.9302.5901,94172,4 %0,97
21. Okt.5.0903.8521,322488,2 %0,98
22. Okt.6.8886.0241,14888,5 %0,96
23. Okt.6.9194.6631,483376 %0,96
24. Okt.2.8312.3291,22682,7 %0,97
25. Okt.14.2588.0421,774.06487 %0,96
26. Okt.10.4128.3601,2519188,5 %0,96
27. Okt.7.9056.7461,172890,8 %1
28. Okt.4.7724.5431,05795,9 %1,03

Der Ausfall am 4. Oktober

Erster Upstream-Timeout 16:39:49 UTC, erste abgewiesene Verbindung 17:07:10 UTC, letzte 20:27:47 UTC, neuer Prozess um 20:30:27 UTC. Von 17:00 bis 20:59 UTC endeten 91,6 % aller Anfragen am Edge in einem 5xx (140.308 von rund 153.100, Cloudflare-Schätzung). Das Origin zählte an diesem Tag 140.689 Upstream-Fehler, davon 140.495 abgewiesene Verbindungen; beide unabhängigen Quellen stimmen innerhalb von 0,3 % überein. Die schlimmste Minute zählte 1.986 fehlgeschlagene Anfragen (17:38 UTC).

Kosten pro Anfrage

Unter Normallast (1. Oktober bis 4. Oktober 15:59 UTC) brauchte eine erfolgreiche Filteranfrage am Origin im Median 678 ms (p95 2,25 s), eine normale Seite ohne Query 623 ms (p95 3,09 s): etwa das 1,1- bis 1,3-Fache. Nach der Wiederinbetriebnahme (18. bis 28. Oktober, geringe Last) lag der Median einer erfolgreichen Filteranfrage bei 1.011 ms, gegenüber 678 ms in der Normallast; die Daten erklären den Unterschied nicht. Von 16:00 bis 17:59 UTC am 4. Oktober brauchten die noch erfolgreichen normalen Seiten im Median 5,0 s (p95 21 s), gegenüber 0,6 s und 3,1 s an den Tagen davor (12.752 Datensätze). Die 5,0 s und 21 s beruhen nur auf 87 Datensätzen. Die statische Antwort dauerte im Median 265 ms (p95 0,94 s), etwa das 2,6- bis 3-Fache schneller als eine gerenderte Filterseite.

Antwortzeit der Origin: Filter-Anfragen gegenüber normalen Seiten

Millisekunden, nur Status 200
Filter-Anfragen Normale Seiten Filter-Anfragen, statisch beantwortet
Antwortzeit der Origin: Filter-Anfragen gegenüber normalen Seiten1. Okt. 00:00 - 4. Okt. 15:59, Filter-Anfragen: Median 678 ms, p95 2.251 ms. 1. Okt. 00:00 - 4. Okt. 15:59, Normale Seiten: Median 623 ms, p95 3.088 ms. 4. Okt. 16:00 - 17:59, Filter-Anfragen: Median 1.568 ms, p95 12.727 ms. 4. Okt. 16:00 - 17:59, Normale Seiten: Median 5.032 ms, p95 20.958 ms. 5. Okt. 00:00 - 15:59, Filter-Anfragen: Median 786 ms, p95 3.050 ms. 5. Okt. 00:00 - 15:59, Normale Seiten: Median 611 ms, p95 2.012 ms. 5. Okt. 18:00 - 6. Okt. 16:59, Filter-Anfragen: Median 265 ms, p95 940 ms. 5. Okt. 18:00 - 6. Okt. 16:59, Normale Seiten: Median 531 ms, p95 2.141 ms. 18. Okt. 00:00 - 28. Okt. 09:00, Filter-Anfragen: Median 1.011 ms, p95 3.234 ms. 18. Okt. 00:00 - 28. Okt. 09:00, Normale Seiten: Median 533 ms, p95 2.464 ms.05.00010.00015.00020.00025.0001. Okt. 00:00 - 4. Okt. 15:59 · Filter-Verkehr wird von der Anwendung gerendert, kein AusfallFilter-AnfragenMedian 678 · p95 2.251Normale SeitenMedian 623 · p95 3.0884. Okt. 16:00 - 17:59 · Überlast vor und während des Ausfalls (nur erfolgreiche Antworten)Filter-AnfragenMedian 1.568 · p95 12.727Normale SeitenMedian 5.032 · p95 20.9585. Okt. 00:00 - 15:59 · nach Wiederanlauf, geringes Filter-VolumenFilter-AnfragenMedian 786 · p95 3.050Normale SeitenMedian 611 · p95 2.0125. Okt. 18:00 - 6. Okt. 16:59 · statischer Pfad aktiv, Angriff läuft weiterFilter-AnfragenMedian 265 · p95 940Normale SeitenMedian 531 · p95 2.14118. Okt. 00:00 - 28. Okt. 09:00 · nach Wiederinbetriebnahme, geringe LastFilter-AnfragenMedian 1.011 · p95 3.234Normale SeitenMedian 533 · p95 2.464Antwortzeit der Origin: Filter-Anfragen gegenüber normalen Seiten1. Okt. 00:00 - 4. Okt. 15:59, Filter-Anfragen: Median 678 ms, p95 2.251 ms. 1. Okt. 00:00 - 4. Okt. 15:59, Normale Seiten: Median 623 ms, p95 3.088 ms. 4. Okt. 16:00 - 17:59, Filter-Anfragen: Median 1.568 ms, p95 12.727 ms. 4. Okt. 16:00 - 17:59, Normale Seiten: Median 5.032 ms, p95 20.958 ms. 5. Okt. 00:00 - 15:59, Filter-Anfragen: Median 786 ms, p95 3.050 ms. 5. Okt. 00:00 - 15:59, Normale Seiten: Median 611 ms, p95 2.012 ms. 5. Okt. 18:00 - 6. Okt. 16:59, Filter-Anfragen: Median 265 ms, p95 940 ms. 5. Okt. 18:00 - 6. Okt. 16:59, Normale Seiten: Median 531 ms, p95 2.141 ms. 18. Okt. 00:00 - 28. Okt. 09:00, Filter-Anfragen: Median 1.011 ms, p95 3.234 ms. 18. Okt. 00:00 - 28. Okt. 09:00, Normale Seiten: Median 533 ms, p95 2.464 ms.Balken Median, Strich bis p95 (ms)05.00010.00015.00020.00025.0001. Okt. 00:00 - 4. Okt. 15:59678 / 2.251623 / 3.0884. Okt. 16:00 - 17:591.568 / 12.7275.032 / 20.9585. Okt. 00:00 - 15:59786 / 3.050611 / 2.0125. Okt. 18:00 - 6. Okt. 16:59265 / 940531 / 2.14118. Okt. 00:00 - 28. Okt. 09:001.011 / 3.234533 / 2.464
Origin-Antwortzeit (Median und Perzentile), getrennt nach Filteranfragen und normalen Seiten, nur erfolgreiche Antworten (Status 200). Fünf Zeiträume in dieser Reihenfolge: 1. bis 4. Okt. bis 15:59 UTC (Normallast), 4. Okt. 16:00–17:59 UTC (Überlast; nur 87 normale Seiten, die meisten Filteranfragen schlugen fehl und fehlen), 5. Okt. bis 15:59 UTC, 5. Okt. 18:00 bis 6. Okt. 16:59 UTC (statische Antworten; vierte Gruppe), 18. bis 28. Okt. Gezählte Datensätze einzelner Anfragen aus dem Cloudflare-Export. Der Export ist eine Stichprobe: vom 1. bis 28. Oktober nahezu vollständig, vom 27. bis 30. September etwa jede zehnte Anfrage.
Daten als Tabelle
Zeitraum (UTC) Anfragen n Median p90 p95 p99
1. Okt. 00:00 - 4. Okt. 15:59 (Filter-Verkehr wird von der Anwendung gerendert, kein Ausfall)Filter-Anfragen251.5606781.5772.2514.446
1. Okt. 00:00 - 4. Okt. 15:59 (Filter-Verkehr wird von der Anwendung gerendert, kein Ausfall)Normale Seiten12.7526232.2643.08841.148
4. Okt. 16:00 - 17:59 (Überlast vor und während des Ausfalls (nur erfolgreiche Antworten))Filter-Anfragen2.0501.5689.59312.72715.472
4. Okt. 16:00 - 17:59 (Überlast vor und während des Ausfalls (nur erfolgreiche Antworten))Normale Seiten875.03213.62120.958106.353
5. Okt. 00:00 - 15:59 (nach Wiederanlauf, geringes Filter-Volumen)Filter-Anfragen3.8297862.0343.0503.846
5. Okt. 00:00 - 15:59 (nach Wiederanlauf, geringes Filter-Volumen)Normale Seiten2.0576111.6092.0123.183
5. Okt. 18:00 - 6. Okt. 16:59 (statischer Pfad aktiv, Angriff läuft weiter)Filter-Anfragen300.5292657389401.398
5. Okt. 18:00 - 6. Okt. 16:59 (statischer Pfad aktiv, Angriff läuft weiter)Normale Seiten2.6295311.6112.1413.171
18. Okt. 00:00 - 28. Okt. 09:00 (nach Wiederinbetriebnahme, geringe Last)Filter-Anfragen41.4201.0112.5253.2345.486
18. Okt. 00:00 - 28. Okt. 09:00 (nach Wiederinbetriebnahme, geringe Last)Normale Seiten43.8325331.6892.4645.147

Was geholfen hat und was nicht

Erkennung am Edge: die Hälfte. Am Abend des 4. Oktober kam eine schmale Cloudflare-Signatur für das beobachtete Client-Profil hinzu. Im Fenster 5. Oktober 18:00 bis 6. Oktober 16:59 UTC wurden 308.119 von 608.882 filterförmigen Datensätzen am Edge blockiert (50,6 %). Die andere Hälfte hatte ihre Anfragemerkmale geändert, erreichte das Origin und löste am Nachmittag des 5. Oktober allein den Neustart-Sturm aus. Erkennung allein reichte nicht; entscheidend war, dass erkannte Anfragen nichts mehr kosteten.

Prozessüberwachung: aus dem Absturz wurde ein Neustart-Sturm. Am 4. Oktober startete nichts den Prozess neu; er wurde von Hand gestartet. Danach startete eine Prozessüberwachung die Anwendung bei Überschreiten einer Speichergrenze neu. Ab 16:05 UTC am 5. Oktober ging das im Minutentakt: Der Zähler stand um 17:26 UTC bei 94, um 17:29 bei 98 und um 17:57 bei 118. Er war am 4. Oktober gegen 21:05 UTC bei 0 gestartet, und bis 16:05 UTC am 5. Oktober zeigt das Origin-Protokoll nur zwei vereinzelte Verbindungsabweisungen, gegen 4.450 allein in der Stunde ab 16:00 UTC. Die 94 sind also der Sturm selbst: rund 94 Neustarts in seinen ersten 80 Minuten, rund 118 zwischen 16:05 und 17:57 UTC (24 in den 31 Minuten der Inspektion). Der Prozess lag bei 1,46–1,48 GB RSS, die mittlere HTTP-Latenz bei 3,1–3,6 s. Am Origin gab es an diesem Nachmittag 8.250 Upstream-Fehler, am Edge endeten nach Schätzung 12 % aller Anfragen von 16:00 bis 17:59 UTC in 5xx. Die Deduplizierungskorrektur vom 4. Oktober hatte keine messbare Wirkung.

Statische Antwort vor der Anwendung: Ende der Fehler. Ab etwa 17:45 UTC am 5. Oktober (19:45 MESZ) wurden Anfragen mit der Angriffsform im Webserver vor der Anwendung klassifiziert und mit einer vorgerenderten statischen Seite beantwortet, ohne Anwendungs- und Datenbankarbeit. Die Klassifikation arbeitet anhand der Form der Anfrage und weiterer Merkmale, direkt vor der Anwendung; das Ergebnis wird serverseitig gespeichert. Einzelheiten veröffentlichen wir nicht, weil die Regel sonst eine Anleitung zum Umgehen wäre. Die gespeicherte Variante ging gegen 17:55 UTC live; ihr erster Versuch schlug fehl und wurde einige Minuten auf die zustandslose Variante zurückgesetzt, die Maßnahme lief also nicht ohne Unterbrechung.

Gespeicherte Klassifikation: Absicherung, kein Arbeitspferd. Sie sollte verhindern, dass eine einmal erkannte Adresse nach geänderten Anfragen wieder die Anwendung belastet. In der intensivsten Phase (6. Oktober 08:44 bis 13:30 UTC) zeigen die Zähler mindestens 65.536 neu klassifizierte Anfragen gegen weniger als 512, die nur wegen einer gespeicherten Klassifikation statisch beantwortet wurden: unter 1 %. Die Zähler protokollieren in Zweierpotenzen, die Werte sind Schranken.

Wohin der Filter-Verkehr ging: Edge-Block, statische Antwort, Anwendungsfehler (4.-7. Okt.)

Anfragen pro Stunde, UTC
Filterförmige Datensätze Am Edge blockiert (403) Beantwortet (2xx) Fehlgeschlagen (5xx) Vom Client abgebrochen (499) Statische Origin-Antworten Upstream-Fehler am Origin
Wohin der Filter-Verkehr ging: Edge-Block, statische Antwort, Anwendungsfehler (4.-7. Okt.)Verlauf von 4. Okt. 12:00 bis 7. Okt. 06:00 UTC. Filterförmige Datensätze: höchster Wert 74.325; Am Edge blockiert (403): höchster Wert 20.422; Beantwortet (2xx): höchster Wert 15.116; Fehlgeschlagen (5xx): höchster Wert 63.509; Vom Client abgebrochen (499): höchster Wert 30.722; Statische Origin-Antworten: höchster Wert 14.865; Upstream-Fehler am Origin: höchster Wert 64.000. Markiert: Notfall-Release (4. Okt. 21:00 UTC), Statische Antworten beginnen (5. Okt. 17:45 UTC).020.00040.00060.00080.000Filterförmige DatensätzeAm Edge blockiert (403)Am Edge (exportierte Datensätze)020.00040.00060.00080.000Fehlgeschlagen oder abgebrochen (exportierte Datensätze)020.00040.00060.00080.000Am Origin (Protokollzeilen)5. Okt.12:006. Okt.12:007. Okt.UTCNotfall-ReleaseStatische Antworten beginnenWohin der Filter-Verkehr ging: Edge-Block, statische Antwort, Anwendungsfehler (4.-7. Okt.)Verlauf von 4. Okt. 12:00 bis 7. Okt. 06:00 UTC. Filterförmige Datensätze: höchster Wert 74.325; Am Edge blockiert (403): höchster Wert 20.422; Beantwortet (2xx): höchster Wert 15.116; Fehlgeschlagen (5xx): höchster Wert 63.509; Vom Client abgebrochen (499): höchster Wert 30.722; Statische Origin-Antworten: höchster Wert 14.865; Upstream-Fehler am Origin: höchster Wert 64.000. Markiert: Notfall-Release (4. Okt. 21:00 UTC), Statische Antworten beginnen (5. Okt. 17:45 UTC).020.00040.00060.00080.000Am Edge (exportierte Datensätze)020.00040.00060.00080.000Fehlgeschlagen oder abgebrochen (exportierteDatensätze)020.00040.00060.00080.000Am Origin (Protokollzeilen)5. Okt.6. Okt.7. Okt.UTC12
  1. 1 Notfall-Release, 4. Okt. 21:00 UTC
  2. 2 Statische Antworten beginnen, 5. Okt. 17:45 UTC
Stundenwerte vom 4. bis 7. Okt. (UTC): filterförmige Datensätze, davon am Edge blockiert (403), mit 2xx beantwortet, mit 5xx fehlgeschlagen oder vom Client abgebrochen (499), dazu die statischen Antworten und Upstream-Fehler aus dem Origin-Protokoll. Die Edge-Werte sind exportierte Datensätze, die Origin-Werte ungesampelte Protokollzeilen. Das Protokoll der statischen Antworten hat keine Client-Angaben und enthält deshalb auch Validierungsabfragen und mögliche Fehlklassifikationen. Gezählte Datensätze einzelner Anfragen aus dem Cloudflare-Export. Der Export ist eine Stichprobe: vom 1. bis 28. Oktober nahezu vollständig, vom 27. bis 30. September etwa jede zehnte Anfrage.Zeilen aus dem Protokoll des eigenen Servers, vollständig und ohne Stichprobe.
Daten als Tabelle
Stunde (UTC) Filter-Datensätze Edge-Block (403) 2xx 5xx 499 Statisch (Origin) Upstream-Fehler
4. Okt. 12:004.443244.4120300
4. Okt. 13:004.501574.4390200
4. Okt. 14:004.405384.3642100
4. Okt. 15:004.597584.5282800
4. Okt. 16:0033.2012192.05021030.7220136
4. Okt. 17:0074.325478063.50910.335064.000
4. Okt. 18:0062.001379061.6210062.115
4. Okt. 19:0013.84388013.7520014.261
4. Okt. 20:0016011598900177
4. Okt. 21:002088612000140
4. Okt. 22:00186591260000
4. Okt. 23:00257901640000
5. Okt. 00:00256691820000
5. Okt. 01:00359842730100
5. Okt. 02:00219761430000
5. Okt. 03:00286802040000
5. Okt. 04:00196921040000
5. Okt. 05:0016268920000
5. Okt. 06:002621121490000
5. Okt. 07:0017379930000
5. Okt. 08:00183761060000
5. Okt. 09:00183751080000
5. Okt. 10:00179751020020
5. Okt. 11:003781552210101
5. Okt. 12:003551372150100
5. Okt. 13:005442612800100
5. Okt. 14:009964655291101
5. Okt. 15:002.0411.0121.0280100
5. Okt. 16:0040.51220.4221.3586.26612.46026.485
5. Okt. 17:0024.22312.2956.4591.5793.8882.1761.763
5. Okt. 18:0012.3386.0136.322006.2730
5. Okt. 19:0018.3309.4948.826078.6990
5. Okt. 20:0027.69714.17913.5061713.3080
5. Okt. 21:0027.77714.24813.51401013.2950
5. Okt. 22:0027.01813.75913.23402213.0480
5. Okt. 23:0027.22713.93113.26702613.0850
6. Okt. 00:0026.16213.44712.7070312.4870
6. Okt. 01:0028.51814.62013.8900413.6680
6. Okt. 02:0030.27415.14915.1161614.8650
6. Okt. 03:0028.26814.46113.7980313.5380
6. Okt. 04:0028.10214.20713.8821513.6450
6. Okt. 05:0029.38514.92014.4510814.2230
6. Okt. 06:0028.76814.48714.2710514.0560
6. Okt. 07:0028.16014.19113.9631413.7650
6. Okt. 08:0028.84014.46014.3760214.0930
6. Okt. 09:0027.20313.73813.4550613.2140
6. Okt. 10:0028.71114.56414.1371513.8980
6. Okt. 11:0028.82714.57414.2500214.0080
6. Okt. 12:0030.11015.06015.0411814.7630
6. Okt. 13:0024.65812.59512.0552611.8081
6. Okt. 14:0028.13214.28013.8450213.6620
6. Okt. 15:0027.60113.55014.0420513.7960
6. Okt. 16:0016.7768.1928.581018.3900
6. Okt. 17:001757110001480
6. Okt. 18:007925530000
6. Okt. 19:00467380000
6. Okt. 20:00518478390000
6. Okt. 21:00151331160000
6. Okt. 22:0012981210000
6. Okt. 23:00133101230000
7. Okt. 00:00162201420000
7. Okt. 01:00145191260000
7. Okt. 02:00721650660000
7. Okt. 03:00740730000
7. Okt. 04:008824640000
7. Okt. 05:00664620000
7. Okt. 06:00699600000

Was echte Nutzer sahen

Die statische Seite zeigte keine Skripte, deshalb hinterlässt ein Nutzer, der sie bekam, kein Analytics-Ereignis. Das Protokoll der statischen Antworten hat keine Client-Angaben, und die Edge-Datensätze tragen keine Anfrage-Header. Wie viele echte Nutzer in diesen 23 Stunden die statische Seite sahen, lässt sich nicht messen. Die Daten begrenzen es aus mehreren Richtungen:

  • Die Einordnung konnte nur direkte Aufrufe gespeicherter Filter-Links mit einem bestimmten Merkmalsprofil treffen. Wer über die Oberfläche der Seite filterte, bekam echte Ergebnisse. Betroffen sein konnte ein Nutzer, der einen gespeicherten Link direkt in diesem Profil öffnete oder von einer bereits als erkannt gespeicherten Adresse kam (geteilte Mobilfunk- oder Firmenausgänge).
  • Ausgelöst nur wegen einer gespeicherten Adresse wurden vom 6. Oktober 08:44 UTC bis 7. Oktober 07:26 UTC weniger als 512 Antworten, gegenüber mindestens 65.536 Treffern der Signatur (bis 13:30 UTC). Mindestens 2.048 in Frage kommende Seitenaufrufe gelangten unklassifiziert zur Anwendung. Für die ersten 15 Stunden (5. Oktober 17:56 bis 6. Oktober 08:44 UTC) liefen die Zähler nicht; dafür gibt es keine Schranke.
  • Von 5. Oktober 17:55 bis 6. Oktober 16:59 UTC bekamen 300.360 filterförmige Datensätze mit dem für die Klassifikation in Frage kommenden Client-Profil HTTP 200; das Origin protokollierte rund 295.587 statische Antworten. Mindestens 1.165 Datensätze mit anderen Profilen bekamen echte Daten von der Anwendung. Von den 300.360 kamen 5.633 (1,9 %) von Ausgängen in DE, AT oder CH, derselbe Anteil wie beim Angriff insgesamt (2,1 %). Das spricht nicht für einen Überschuss inländischer Nutzer; 5.633 ist eine Obergrenze, keine Schätzung echter Nutzer.
  • Die normale Nutzung lief weiter: Die eigene Analytik zählte im Fenster 72 Sitzungen, 135 Seitenaufrufe, 48 Klicks und 5 Formularabsendungen, gegenüber 47 bis 49 Sitzungen in denselben 23-Stunden-Abschnitten am 1. bis 3. Oktober. Auch das erfasst keine Nutzer, die die statische Seite bekamen.

Warum der 29. September nicht abstürzte, der 4. Oktober schon

Teilweise beantwortbar. Der 29. September war kein gesunder Tag, sondern ein schwerer Brownout: In den stärksten Stunden (22:00–23:59 UTC) erreichten nach unserer Schätzung rund 45.600 bis 50.100 Filteranfragen pro Stunde das Origin (Stundenschätzung von Cloudflare mal Filteranteil der Datensätze mal nicht blockierter Anteil). Sie brauchten im Median 7,5 bis 10,0 s, das p95 lag bei rund 97 bis 99 s, die mittlere Origin-Zeit des gesamten Verkehrs bei 25,7 bis 26,5 s, und 31 bis 33 % der Filteranfragen endeten damit, dass der Client aufgab (Status 499). Am 4. Oktober um 17:00 UTC erreichten rund 73.700 Filteranfragen pro Stunde das Origin, etwa das 1,5-Fache. Zwischen beiden Tagen lag eine neue Anwendungsversion mit erweitertem Filterkatalog (30. September, 21:45 UTC); der Prozess, der am 4. Oktober abstürzte, lief mit ihr. Ob sie die Kosten pro Anfrage veränderte, wurde nicht gemessen. Nicht beantwortbar sind der Speicherspielraum (vor dem 4. Oktober gibt es keine Speichermesswerte) und ein Vergleich der Kombinationsraten (die Datensätze vom 29. September sind eine 1-zu-10-Stichprobe, die vom 4. Oktober nahezu vollständig).

Ebenen im Überblick

Edge

Live: eine bestehende Blockregel, am 30. Sep. auf eine gemessene Kohorte erweitert, am 4. Okt. um eine schmale Signatur ergänzt. Sie fing nur die Hälfte ab; die andere Hälfte änderte ihre Merkmale. Die Standard-Bot-Challenges von Cloudflare liefen durchgehend und erfassten täglich einige tausend Anfragen.

Origin

Live: Klassifikation vor der Anwendung und vorgerenderte statische Antwort (5. Okt.). Auf dieser Ebene endeten die Fehler.

App

Live: Prozessüberwachung mit Neustart und Speichergrenze sowie die Deduplizierungskorrektur (4. Okt.; letztere ohne messbare Wirkung). Filterkombinationen nur mit signierter Browser-Sitzung und mit Budgets seit dem 14. Okt., nach der Hauptwelle, ohne messbare Wirkung in diesen Daten.

Ergebnis in Zahlen

Gegenüber dem 4. Oktober, als die Anwendung ausfiel:

  • Filterförmige Datensätze pro Stunde am Edge: 74.325 (4. Oktober, 17 Uhr UTC; Gesamtverkehr dieser Stunde nach Schätzung 74.420 Anfragen) gegenüber 608.882 Datensätzen im gesamten Fenster 5. Oktober 18:00 bis 6. Oktober 16:59 UTC (ein Stundenmittel geben wir nicht an).
  • 5xx am Edge, gesamter Verkehr: 91,6 % (4. Oktober, 17:00–20:59 UTC) gegenüber 0,003 % (16 von rund 634.000 Anfragen, Schätzung); 8 filterförmige Datensätze endeten in 5xx.
  • Upstream-Fehler am Origin: 140.689 am 4. Oktober, 8.250 am Nachmittag des 5. Oktober, danach 1 (5. Oktober 18:00 bis 6. Oktober 16:59 UTC), bei 295.587 statischen Antworten (rund 12.500 bis 14.900 pro vollständiger Stunde ab 20:00 UTC am 5. Oktober).
  • Neustarts: rund 118 in knapp zwei Stunden (5. Oktober, 16:05–17:57 UTC), danach 7 in rund 15 Stunden (Zähler 125 gegen 08:50 UTC am 6. Oktober).
  • Anwendung: 1,46–1,48 GB RSS an der Grenze beziehungsweise Heap-Erschöpfung bei rund 1,9 GB gegenüber 608 MiB RSS und 27,7 % CPU um 17:59 UTC am 5. Oktober.
  • Normale Seiten: 5,0 s / p95 21 s (n = 87) gegenüber 531 ms / p95 2,1 s.

Der Neustart-Sturm endete; Neustarts endeten nicht. Der Zähler stand am 8. Oktober um 03:12 UTC bei 135, in einem Intervall mit mindestens zwei absichtlichen Deployments. Die Ursache der Neustarts nach dem Sturm ist nicht dokumentiert.

Grenzen der Daten

  • Stichprobe. Die Edge-Daten stammen aus Cloudflares Adaptive Analytics. Es gibt zwei Größen, die nicht addiert oder vermischt werden: die Schätzung von Cloudflare (rund 4,1 Mio. Anfragen im 31-Tage-Fenster, 27. September 08:15 UTC bis 28. Oktober 08:10 UTC) und 1,96 Mio. (1.963.348) einzeln ausgewertete Datensätze, deren Erfassung bis 28. Oktober 08:29:21 UTC lief. Warum das Fenster der Schätzung früher endet als das der Erfassung, halten die Unterlagen nicht fest. Vom 27. bis 30. September liegt nur etwa jede zehnte Anfrage als Datensatz vor; ab 1. Oktober folgen die Datensätze der Schätzung innerhalb weniger Prozent (0,94–0,98 an den Tagen 2. bis 6. Oktober), was auf eine fast vollständige Abdeckung hindeutet, aber keine Garantie ist. Für den 4. bis 6. Oktober gilt: rund eine Million Anfragen (Schätzung 1.002.210; Datensätze 979.982). Ungesampelte Rohprotokolle (Logpull, Logpush) standen auf diesem Konto nicht zur Verfügung.
  • Filterförmig ist kein Urteil. Gezählt werden GET-Seitenaufrufe mit Filterparametern. Echte Nutzer verwenden Filter ebenfalls, und eine Basislinie vor dem Angriff liegt im aufbewahrten Fenster nicht vor. 1.338.251 filterförmige Datensätze (68 % von 1.963.348) sind keine Zahl von Angriffsanfragen, und Adressen sind keine Personen.
  • Origin-Fehlerprotokolle zeichnen nur Fehlschläge auf, nicht alle Anfragen.
  • Mechanismus nicht bewiesen. Der Pfad von Kombinationen über wartende Abfragen zur Heap-Erschöpfung ist aus Code und Protokollen plausibel; es gibt kein Heap-Profil.
  • Warum die Welle endete, wissen wir nicht. Zwischen 16:40 und 16:55 UTC am 6. Oktober fielen die statischen Antworten von rund 1.000 pro fünf Minuten auf unter 100, das Edge-Volumen auf unter 500 Anfragen pro Stunde. Die Daten zeigen nicht, dass die statische Antwort das Ende verursacht hat.
  • Ausfall vom 26. und 27. September. Siehe Zeitleiste: Die Ursache des Prozessendes ist nicht dokumentiert, und wir führen es nicht auf Filteranfragen zurück. Dass der Ausfall rund 26 Stunden dauerte, hat einen einfachen Grund: Niemand hat hingesehen. Es gab kein Monitoring und keine Alarmierung, bis eine Prüfung vor einem unabhängig geplanten Deployment ihn fand. Für diesen Zeitraum gibt es keine Edge-Daten.
  • Abschaltung vom 8. bis 17. Oktober. Die Maßnahme hielt. Vom 8. bis 17. Oktober haben wir die Plattform trotzdem selbst vom Netz genommen: eine betriebliche Entscheidung, weil andere Projekte Vorrang hatten und wir abwägen wollten, ob sich der Weiterbetrieb als Angriffsziel lohnt. Diese Tage zählen weder als Ausfall durch den Angriff noch als ruhige Phase; die Messwerte in diesem Zeitraum sagen über den Angriff nichts.
  • Zweites Speicherproblem. Nach der Rückkehr am 17. und 18. Oktober startete die Prozessüberwachung die Anwendung bei niedrigem Verkehr 5- bis 15-mal am Tag neu (18. Okt.: 5, 19. Okt.: 13, 20. Okt.: 15, 21. Okt.: 9). Die Grenze von 1.400 MiB lag innerhalb des normalen Arbeitsspeichers von 1,0 bis 1,5 GB, überwiegend nativer Speicher. Nach der Anhebung auf 1.800 MiB am 22. Oktober überschritt der Prozess sie am 23. Oktober noch zweimal. Bei keinem dieser Neustarts fand die Untersuchung eine Verkehrsspitze. Das ist ein eigenes Anwendungsproblem, keine Angriffsfolge, und es ist nicht gelöst.
  • Spätere Kohorten. Ab dem 7. Oktober erschien eine kleine, wechselnde Kohorte auf einzelnen Inhaltsseiten (einige hundert Anfragen pro sechs Stunden). Vom 17. bis 22. Oktober wurden neue Kohorten mit drei schmalen Erweiterungen statisch oder mit bewusst verzögerter Fehlerantwort beantwortet; vom 18. bis 28. Oktober waren rund 96 % aller 5xx-Antworten am Edge solche Verzögerungsantworten, keine Ausfälle.
  • Nicht gemessen: die Wirkung der gehärteten Anwendung vom 14. Oktober, da sie nach der Hauptwelle kam.

Wie die Ausfälle entdeckt wurden: gar nicht

Bei der Inspektion am 30. September gab es auf dem Server weder eine Erreichbarkeitsprüfung noch einen Monitoring-Dienst, und bei keinem der beiden Ausfälle hat etwas Alarm geschlagen, auch am 4. Oktober nicht. Den Ausfall ab 26. September fand die Vorabprüfung eines unabhängig geplanten Deployments am 27. September, behoben durch den Neustart um 05:45 UTC: rund 26 Stunden unentdeckt. Den Ausfall am 4. Oktober haben wir selbst bemerkt. Die erste abgewiesene Verbindung war um 17:07:10 UTC, der erste protokollierte Untersuchungsstand um 20:27 UTC, der Neustart um 20:30:27 UTC. Wann wir den Ausfall bemerkten, ist nicht festgehalten, die Zeit bis zur Entdeckung betrug also höchstens rund 3 Stunden 20 Minuten. Der automatische Neustart existiert seit dem 4. Oktober gegen 21:05 UTC; eine vom Agenten ausgeführte Gesundheitsprüfung alle fünf Minuten läuft seit dem 6. Oktober 17:05 UTC (ab 8. Oktober sind 15 Minuten freigegeben).

Was wir heute anders machen würden

  • Eine Erreichbarkeitsprüfung von außerhalb des Servers, die einen Menschen alarmiert. Beide Ausfälle blieben ohne Alarm, der erste rund 26 Stunden lang; der unbemerkte Ausfall im September ist das deutlichste Argument für eine Prüfung von außen. Die Prüfung ruft die Seite alle paar Minuten von außen ab und meldet sich, wenn sie nicht antwortet. Ob das bei dieser Plattform schon läuft, belegen die Unterlagen nicht.
  • Prozessüberwachung, die Neustarts meldet. Der automatische Neustart verhinderte den langen Ausfall und machte daraus rund 118 Neustarts in knapp zwei Stunden. Künftig soll die Überwachung jeden Neustart zählen und melden, sobald die Rate über dem Normalbetrieb liegt.
  • Eine feste Obergrenze für die Liste laufender Abfragen. Sie hatte pro Kombination keinen Deckel und entdoppelte nur identische Abfragen; die Deduplizierungskorrektur vom 4. Oktober änderte daran nichts. Die Liste braucht eine feste Größe, statt auf dem Heap mit dem Verkehr zu wachsen. Ob die am 27. Oktober eingecheckten Änderungen zur Renderlast live sind, ist nicht verifiziert.
  • Die Speichergrenze aus dem gemessenen Arbeitsspeicher ableiten. Die Grenze von 1.400 MiB lag im Normalbereich von 1,0 bis 1,5 GB und löste eigene Neustarts aus; auch 1.800 MiB wurden am 23. Oktober noch zweimal überschritten. Die Grenze muss aus der gemessenen Normalauslastung folgen, nicht aus einer Schätzung; das Problem ist nicht gelöst.
  • Die vorgerenderte statische Antwort als erste Maßnahme bereithalten. Die Regel am Edge fing die Hälfte ab und wurde innerhalb eines Tages umgangen; erst die Klassifikation vor der Anwendung mit statischer Antwort beendete die Fehler. Beides sollte als fertige Vorlage bereitliegen, bevor die Erkennung verfeinert wird.
  • Rohdaten-Export am Edge vor dem nächsten Vorfall einschalten und einen Normalwert festhalten. Auf diesem Konto standen Logpull und Logpush nicht zur Verfügung, es gibt nur Schätzungen und Stichproben, und keine Basislinie vor dem Angriff. Beides lässt sich nach dem Vorfall nicht nachholen.

Was das Beweispaket enthielt

Am 28. Oktober entstand ein Beweispaket mit 1.203 Dateien, rund 3,0 GB unkomprimiert, jede mit SHA-256-Prüfsumme und Größe aufgelistet. Das Erfassungsfenster am Edge reichte vom 27. September 08:15:59 UTC bis 28. Oktober 08:29:21 UTC in 466 zusammenhängenden Zeitfenstern, keines gekappt oder fehlgeschlagen, mit 1.963.348 Anfragedatensätzen und 197.837 Sicherheitsereignissen (überlappend, nie addiert). Ein separat gesicherter Stand vom 6. Oktober wurde erneut geprüft: alle 39 ursprünglichen Dateiprüfsummen stimmten überein. Das Paket enthält eine Kurzfassung, eine UTC-Zeitleiste, bei der jeder Eintrag als dokumentiert, vom Betreiber berichtet oder Hypothese gekennzeichnet ist, eine Datei zu Belegtem, Nichtbelegtem und verworfenen Spuren, Verkehrskohorten, Origin-Fehler in Fünf-Minuten-Abschnitten, Konfigurationsstände und das Inventar der Rohdaten. Originale und abgeleitete Dateien sind getrennt, Fehlschläge und verweigerte Zugriffe als Nachweis der Abwesenheit aufbewahrt. Wir erheben keinen Anspruch auf eine zertifizierte forensische Sicherung.

Notfall

Emergency Rescue: 499 € einmalig, netto, bis 2 Stunden aktive Arbeit, danach 149 € pro Stunde.

Das Absenden kostet nichts.