Sicherheitshinweise

Fehlerhafte Zustellung eines Log-Abschnitts

3. September 2020

Nachfolgend finden Sie ein „Fastly Security Advisory“ (FSecA) (Sicherheitshinweis), in dem eine Untersuchung der Fehlleitung von Protokollen beschrieben wird, die durch eine seltene Anhäufung von Umständen verursacht wurde.


In diesem FSecA erklären wir, dass wir den Gültigkeitsbereich und die Auswirkungen dieser Untersuchung genau verstehen, und beschreiben die umgesetzten Abhilfemaßnahmen.


Zusammenfassung


Am 29. Juli um 00:00 Uhr UTC wurde Fastly von einem Kunden (Kunde X) gemeldet, dass eine einzelne Protokollzeile, die für einen anderen Kunden (Kunde Y) bestimmt war, im Protokollsystem des Kunden X gelandet war. Fastly begann sofort mit der Untersuchung und stellte fest, dass bei einem komplexen Zusammentreffen von Umständen eine Log-Zeile an einen verkehrten Logging-Service geleitet werden kann. Wir konnten die Ursache auf einen Fehler in der Programmlogik zurückführen, die von Fastly zur Verbesserung der Leistung im April 2012 eingeführt worden war. Dieser einmalige Bericht eines Kunden ist der einzige Fall in acht Jahren, der Fastly bekannt ist, in dem alle erforderlichen Umstände zur gleichen Zeit zusammen kamen.


Einsatzbereich


Fastly hat diesen Vorfall auf die folgende Kombination von Umständen eingrenzen können (alles unten Genannte muss zutreffen):



  1. Ein Subsystem des Varnish-Daemons geht in einen vorübergehenden Betriebszustand über, in dem es über keinen oder fast keinen Speicher mehr verfügt (dies kann durch unerwartete Last oder Programmierfehler passieren)

  2. Der Varnish-Daemon schreibt eine Log-Zeile in seinen Log-Puffer (für Kunde X), aber sie ist aufgrund des Out-of-Memory-Umstands (Log-Zeile X1) unvollständig.

  3. Ein Teil des Speichers wird dynamisch zurückgewonnen, da an anderer Stelle Ressourcen frei werden, und es wird eine vollständige Log-Zeile eines anderen Kunden (Protokollzeile Y1) geschrieben

  4. Da die Log-Zeile X1 unvollständig war, werden die beiden Log-Zeilen zusammengesetzt (Bildung der Log-Zeile X1Y1)

  5. Der Logging-Server nimmt die Log-Zeile (Zeile X1Y1) auf und liest die Kundenzielinformationen am Anfang der so zusammengesetzten Log-Zeile (Zeile X1Y1) und liefert diese gesamte Log-Zeile (Zeile X1Y1) dann an Kunden X


Abhilfemaßnahme


Wir denken, dass wir bereits früher davon gehört hätten, wenn all diese Umstände in den letzten 8 Jahren öfter ausgelöst worden wären. Wir nehmen jedes mögliche Szenario der Datenkorruption sehr ernst (siehe auch „Falsches Service-Routing bei HTTP/2-Client-Verbindungen“ und „Offenlegung des Textes für andere Fastly Services anfordern“). Wie in diesem Fall, ist selbst eine einzige fehlerhafte Log-Zeile nicht etwas, das wir ohne Ursachenanalyse einfach so durchgehen lassen. Wir haben Schutzmaßnahmen ergriffen, um dieses Problem in Zukunft zu vermeiden.


Eine flottenweite Lösung, die sicherstellt, dass Varnish mit einem Out-of-Memory-Umstand während des Schreibens einer Log-Zeile (Umstand Nr. 2 oben) richtig umgeht, wurde eingesetzt, um zu verhindern, dass die Kombination dieser Umstände zu einer Fehlleitung der Logdaten führt. Wenn seit dem Einsatz des Fixes ein Fehler beim Erstellen eines Log-Ereignisses auftritt, schlägt der Prozess fehl und verwirft die Zeile, anstatt sie zu schreiben. Der schrittweise Einsatz der flottenweiten Abhilfemaßnahme wurde am 31. Juli um 10:51 Uhr UTC gestartet und am 9. August um 14:49 Uhr UTC abgeschlossen.


Fastly führte nach der Bereitstellung der Abhilfemaßnahmen vom 13. August bis zum 2. September eine umfangreiche Überprüfung der Umstände durch, die zu diesen Fehlern führen, um die potenzielle Häufigkeit zu ermitteln, mit der Log-Zeilen falsch geleitet worden sein könnten.
Unsere Überprüfung ergab, dass es besser ist, wenn unsere Kunden keine Maßnahmen ergreifen. Wenn Sie eine unerwartete Log-Zeile erhalten haben, melden Sie sich bitte und wir werden uns sofort darum kümmern, um festzustellen, ob es mit diesem Problem zusammenhängt.


Ereignis-Timing


Ereignisse vom 29. Juli 2020



  • (00:00 Uhr UTC) – Der Kunde fand eine Log-Zeile von einem anderen Fastly Kunden in seinem Log-Stream und hat dies an Fastly gemeldet

  • (00:35 Uhr UTC) – Fastly Störungsmanagement-Prozesse wurden eingeleitet

  • (00:57 Uhr UTC) – Fastly hat eine Kopie der durchgesickerten Logdaten erhalten und mit der Auswertung begonnen

  • (01:03 Uhr UTC) – Fehlerquelle der Logdaten in Varnish identifiziert; Untersuchung möglicher Abhilfemaßnahmen eingeleitet


Ereignisse vom 31. Juli 2020



  • (07:44 Uhr UTC) – Varnish-Patch vorgeschlagen, um den Programmfehler zu beheben

  • (08:15 Uhr UTC) – Varnish-Patch getestet und für den Einsatz freigegeben

  • (10:51 Uhr UTC) – Einsatz in Varnish gestartet


Ereignisse vom 9. August 2020



  • (14:49 Uhr UTC) – Varnish-Patch-Bereitstellung und Abhilfemaßnahme abgeschlossen


Ereignisse vom 13. August bis 2. September 2020



  • Umfassende Untersuchung der zu den Fehlern führenden Umstände abgeschlossen


Kontaktinformationen


Sollten Sie weitere Fragen haben, wenden Sie sich bitte an Fastly Customer Engineering unter support@fastly.com oder an das Fastly Sicherheitsteam unter security@fastly.com

Melden Sie sich für die Sicherheitshinweise an.

Mit der Übermittlung Ihrer Anfrage erklären Sie sich damit einverstanden, dass Ihre personenbezogenen Daten zur Verarbeitung gemäß unserer Datenschutzrichtlinie an Fastly in den USA übermittelt werden.

Sie möchten loslegen?

Setzen Sie sich mit uns in Verbindung oder erstellen Sie einen Account.