Nicht erfolgreiche Softwarebereitstellung stürzt Cloudflare-Dienst ab

Dies ist ein kleiner temporärer Artikel, dem später eine vollständige Analyse und umfassende Informationen über das, was heute passiert ist, folgen werden.


Heute, etwa 30 Minuten lang, konnten Besucher von Cloudflare-Sites den Fehler 502 sehen, der durch einen starken Anstieg der CPU-Auslastung unseres Netzwerks verursacht wurde. Dies war auf eine fehlgeschlagene Softwarebereitstellung zurückzuführen. Wir haben die Änderungen rückgängig gemacht, und jetzt funktioniert der Dienst wie gewohnt wie gewohnt, und alle Domänen, die Cloudflare verwenden, sind auf das normale Verkehrsniveau zurückgekehrt.


Wir versichern Ihnen, dass es keinen Angriff gab, und entschuldigen uns zutiefst für das, was passiert ist. Unsere Entwickler führen bereits eine detaillierte Fehleranalyse durch und versuchen herauszufinden, was getan werden muss, um solche Vorfälle in Zukunft zu vermeiden.


Gepostet um 20:09 UTC:


Heute um 13:42 UTC wurde ein Fehler in unserem Netzwerk festgestellt, wodurch Besucher von Cloudflare-Domänen den Fehler 502 ("Bad Gateway") sahen. Der Grund für diesen Fehler war die Bereitstellung einer falsch konfigurierten Regel in der Cloudflare Web Application Firewall (WAF) während des Standardprozesses der Bereitstellung neuer von Cloudflare WAF verwalteter Regeln.


Die neuen Regeln wurden entwickelt, um den Blockierungsmechanismus von eingebettetem JavaScript zu verbessern, das bei Hackerangriffen verwendet wird. Diese Regeln wurden im Simulationsmodus bereitgestellt, in dem normalerweise Fehler erkannt und protokolliert werden, ohne den Benutzerverkehr zu blockieren. Auf diese Weise können wir die Anzahl der Fehlalarme messen und sicherstellen, dass die neuen Regeln bei der Bereitstellung im Rahmen dieses Projekts ordnungsgemäß funktionieren.


Leider enthielt eine dieser Regeln einen regulären Ausdruck, was zu einem Anstieg der CPU-Auslastung auf unseren Computern überall um bis zu 100% führte. Aufgrund dieses Sprunges haben die Benutzer unseres Dienstes einen 502-Fehler festgestellt, und der Datenverkehr ist auf 82% gesunken.


Die folgende Grafik zeigt den CPU-Lastsprung auf einem unserer PoPs:



Zum ersten Mal standen wir vor dem Problem der vollständigen Erschöpfung der CPU-Ressourcen, das für uns äußerst unerwartet war.


Wir stellen ständig Software in unserem Netzwerk bereit und haben bereits automatisierte Systeme für die Ausführung von Tests und ein schrittweises Bereitstellungsverfahren entwickelt, um unangenehme Situationen zu vermeiden. Leider war die weltweite Bereitstellung von WAF-Regeln ein einmaliger Prozess, der den heutigen Misserfolg verursachte.


Um 14:02 UTC erkannten wir, was passiert war, und beschlossen, die WAF-Regelsätze vollständig zu deaktivieren, wodurch die CPU-Auslastung sofort normalisiert und der Datenverkehr wiederhergestellt wurde. Wir haben es um 14:09 UTC gemacht.


Danach haben wir die problematische Pull-Anforderung analysiert, die Änderungen in den relevanten Regeln rückgängig gemacht, unsere Aktionen getestet, um 100% sicher zu sein, dass der Fehler korrekt gefunden wurde, und dann die WAF-Regelsätze um 14:52 wiederhergestellt.


Wir sind uns bewusst, wie viel Schaden diese Vorfälle unseren Benutzern zufügen. In diesem Fall hat unser Testmechanismus die Aufgabe nicht bewältigt, und wir arbeiten bereits daran, sie zu verbessern und den Bereitstellungsprozess zu optimieren, um ähnliche Fehler in Zukunft zu vermeiden.

Source: https://habr.com/ru/post/de458660/


All Articles