Am Donnerstag, dem 16. August 2007, funktionierte Skype – der in Luxemburg ansässige Internet-Telefondienst im Besitz von eBay, damals mit 220 Millionen Nutzern – den größten Teil des Tages nicht mehr, und die Störung weitete sich zu einem fast zweitägigen Ausfall aus. Der Auslöser war alltäglich: Microsofts monatlicher Patch Tuesday verteilte Sicherheitsupdates, die einen Neustart erforderten, und Millionen Windows-Rechner starteten neu und versuchten, sich innerhalb weniger Stunden nacheinander wieder in Skypes Peer-to-Peer-Netzwerk einzuloggen. Skype nannte es „einen massiven Neustart der Computer unserer Nutzer auf der ganzen Welt innerhalb eines sehr kurzen Zeitraums“.

Skypes Peer-to-Peer-Architektur besaß, in seinen eigenen Worten, eine „eingebaute Fähigkeit zur Selbstheilung“ – die Fluktuation durch beitretende und verlassende Clients wurde normalerweise automatisch aufgefangen. Der Neustartsturm legte einen zuvor unentdeckten Softwarefehler im Algorithmus zur Zuweisung von Netzwerkressourcen offen, der verhinderte, dass die Selbstheilung schnell funktionierte. Der Wiederherstellungsmechanismus selbst versagte unter einem Ausmaß an Fehlern, das er nie zuvor erlebt hatte. Wie Skype es formulierte, war der Dienst „für die Mehrheit seiner Nutzer etwa zwei Tage lang nicht verfügbar“.

Während sich der Ausfall hinzog, spekulierten Sicherheitsforscher, eine in derselben Woche offengelegte Denial-of-Service-Schwachstelle sei die Ursache; Skype bestritt dies – das Netzwerk sei nicht angegriffen worden, es habe sich schlicht nicht schnell genug heilen können. Der Vorfall wurde zu einer frühen kanonischen Lehre, dass verteilt nicht gleich ausfallsicher bedeutet: Peer-to-Peer-Systeme stehen weiterhin global korrelierten Ereignissen gegenüber, und die Selbstheilungskapazität muss entsprechend dimensioniert und gegen sie getestet werden.

Der Dienst war für die Mehrheit von Skypes 220 Millionen Nutzern etwa zwei Tage lang nicht verfügbar; kleine Unternehmen, die ihre Festnetzanschlüsse aufgegeben hatten, verloren ihren Telefondienst

Der Patch Tuesday erzeugte ein korreliertes globales Ereignis: Millionen Windows-Rechner starteten neu und loggten sich innerhalb weniger Stunden wieder ein, weit über die Fluktuation hinaus, die das Netzwerk normalerweise auffing.

Ein zuvor unentdeckter Fehler im Algorithmus zur Zuweisung von Netzwerkressourcen führte dazu, dass die eingebaute Selbstheilungsfunktion „nicht schnell funktionierte“, als der Sturm einsetzte – der Wiederherstellungspfad selbst versagte unter Last.

Das Ausmaß des Fehlers war nie erprobt worden: Die Selbstheilungskapazität war implizit für gewöhnliche Beitritts- und Verlassensmuster dimensioniert, nicht für synchronisierte Neustarts der gesamten Client-Basis.

Eine in derselben Woche offengelegte Denial-of-Service-Schwachstelle vernebelte die Diagnose und zwang Skype, eine Angriffstheorie öffentlich zu bestreiten, während das Unternehmen seine eigene Software debugte.

Peer-to-Peer bedeutet nicht wartungsfrei. Dimensionieren Sie den Wiederherstellungspfad für korrelierte Ereignisse – ein Patch-Zyklus kann jeden Client auf einmal treffen – und erproben Sie ihn, bevor das gesamte Netzwerk von ihm abhängt.

Der Dienst wurde wiederhergestellt, und Skype veröffentlichte eine ausführliche Nachbetrachtung in seinem Heartbeat-Blog und übernahm die Verantwortung: Der Auslöser war Microsofts Patch-Zyklus, doch der Fehler lag in Skypes eigenem Ressourcenzuweisungscode, und das Unternehmen betonte, dass nichts mit Sicherheit zu tun hatte. Der Ausfall wird noch immer als Lehrbuchfall des korrelierten Fehlers in Peer-to-Peer-Netzwerken zitiert – und als Beispiel für die Kluft zwischen „verteilt, also widerstandsfähig“ und einer Widerstandsfähigkeit, die tatsächlich getestet wurde.

DEN BELEGEN FOLGEN

Die Quellen

  1. Patch Tuesday update triggered Skype outage The Register · theregister.co.uk ·
  2. Windows Users Caused Skype Outage TechCrunch · techcrunch.com ·
  3. Error in Skype's Software Shuts Down Phone Service The New York Times · nytimes.com ·