19.7.2019

Entwicklerblog: Exploit Post mortem

In diesem Entwicklerblog werfen wir einen Blick auf die Exploits, wie wir sie behoben haben und was diese Behebung für zukünftige Exploits bedeutet.

ZEITLICHER ABLAUF

11. – 12. MAI

  • Anfang Mai haben drei Exploits innerhalb der „Rainbow Six Siege“-Community von sich reden gemacht: der „Clashs Schild“-Exploit, der Claymore-Exploit und der „Mobile Schilde“-Exploit.
  • Während das Team die Situation über das Wochenende beobachtete, wurde schnell klar, dass wir dieses Problem mit Priorität behandeln müssen.

13. MAI

  • Das Team begann mit der Untersuchung der Exploits. Unser erster Schritt war, die Exploits bei uns präzise und konsistent zu reproduzieren, um das Problem zu verstehen, damit wir danach die Ursache identifizieren konnten.
  • Die anfängliche Untersuchung hat ergeben, dass wir Zeit brauchen würden, um den tatsächlichen Umfang des Problems zu verstehen. Eine schnelle Behebung war also nicht möglich.
  • Da sich die Exploits innerhalb der Community verbreitete, fingen wir an, Pläne zu entwickeln, die die Auswirkungen kurzfristig lindern sollten.

15. MAI

  • Die Projektleitung von Rainbow Six Siege setzte sich zusammen, um die Exploits zu besprechen. Wir mussten durch quantitative Datenanalyse den genauen Umfang sowie die Auswirkungen der Exploits im Spiel bestimmen.

16. MAI

  • Am Morgen des 16. Mais, nachdem wir die Daten ausgewertet hatten, beschlossen wir, Clash, Claymores sowie die mobilen Schilde zu deaktivieren.
  • Mehrere Teams pausierten ihr Tagesgeschäft, während wir uns Optionen für eine Lösung überlegten, die Clash, Claymores und mobile Schilde deaktivieren würde.
  • Die möglichen Lösungen wurden getestet, nachdem sie fertiggestellt wurden. Wir fanden fünf mögliche Wege, das Problem anzugehen. Nach einer Reihe von Fehlschlägen waren wir mit der letzten Herangehensweise endlich erfolgreich.

17. MAI

  • Nachdem eine umgehend ausgeführte erste und zweite Testrunde erfolgreich waren, haben wir das Not-Aus zum Deaktivieren von Clash, Claymores und den mobilen Schilden als erste Notfallreaktion aktiviert.

24. MAI

  • Uns wurde klar, dass eine umfassende Fehlerbehebung mehr Zeit in Anspruch nehmen würde, da Prozesse im Kernsystem betroffen waren – in erster Linie die Reihenfolge, in der Pakete an den Server geschickt werden. Da uns jedoch bewusst war, dass die Entfernung von Clash und wichtigen Geräten das Gameplay enorm beeinträchtigte, haben andere Teams parallel daran gearbeitet, verschiedene Fail-Safes zu kreieren, die sicher eingeführt werden konnten.

JUNI

  • Im Verlauf der nächsten paar Wochen kam es wieder zu Meldungen von Exploits.
  • Da das Not-Aus schon bereit war, konnten wir schnell auf die neuen Meldungen reagieren und Clash und IQ deaktivieren.
  • Zu diesem Zeitpunkt hatte das Team bereits eine vollständige und funktionsfähige Lösung für die eigentliche Ursache der Exploits vollendet. Interne Testläufe hatten bereits positive Ergebnisse erzielt, aber wir mussten das Ganze zuerst noch mit groß angelegten Tests auf dem Testserver ausprobieren, bevor wir es zuversichtlich live schalten konnten.

JUNI – JULI

  • Ende Juni wurde Global Ordering zunächst für PC ausgerollt, für Konsolen dann im Juli.
  • Während dieser Zeit überwachen wir, wie sich diese Änderung verhält und auswirkt und ob es Anzeichen für Regression gibt.

NOT-AUS & FAIL-SAFES

Während ein Teil des Teams an der Behebung des Problems arbeitete, hatte ein anderer Teil schon früh mit der Entwicklung mehrerer kurzfristiger Fail-Safes begonnen, um eine nachhaltigere Kurzzeitlösung zu ermöglichen. Das Not-Aus und die Fail-Safes, die spezifisch auf die Methoden der Exploits ausgerichtet waren, waren nie als vollständige Behebung gedacht. Das Team traf die Entscheidung, sie trotzdem einzusetzen, nachdem die Auswirkungen des Entfernens von Clash und zwei Geräten auf das Gameplay abgewogen wurden. Schon kurze Zeit später wurden sie auf den Live-Servern veröffentlicht, mit der Aufgabe an die Community, jeden weiteren Vorfall zu melden.

Die Entscheidung, Operator zu entfernen und Ausrüstungen zu ändern, treffen wir nicht leichtfertig. Wir müssen die Zeit und die Mühe der Spieler respektieren, die sie in das Freischalten von Spielinhalten gesteckt haben, und uns bewusst sein, welche massiven Folgen das Entfernen von grundlegenden Gameplay-Mechaniken auf die Meta und das Ökosystem von Rainbow Six Siege haben kann. Dennoch war das Warten auf eine vollständige Behebung in der vorliegenden Situation unserer Meinung nach keine akzeptable Lösung. Wir mussten die Exploits so sicher und so schnell wie möglich beseitigen und das Gameplay für die Spieler wieder normalisieren.

An die Fail-Safe-Lösungen wurden hohe Ansprüche gestellt. Sie mussten exakt sein, damit keine Form der Regression oder unbeabsichtigte Kollateralschäden entstehen würden, sie mussten für eine schnelle Reaktion einfach modifizierbar sein und für ein schnelles Ausrollen nur minimale Tests erfordern. Das resultierende Not-Aus für Operator und Geräte war unsere erste Antwort, um die Exploits zügig anzugehen – im Bewusstsein, dass es sich um eine Notfalllösung mit extrem kurzer Laufzeit handelte, während wir unsere Fail-Safes vorbereiteten und testeten.

WAS IST GLOBAL ORDERING?

Alle Operator, Geräte, Granaten, Schilde, Kameras, Wände und Pflanzen in Rainbow sind Objekte. Jedes Objekt in Rainbow Six Siege schickt eine Nachricht (ein Paket) an den Server, wenn ein Schritt einer Aktion ausgeführt wird. Wenn ihr z. B. euer Gerät einsetzt, schickt euer Operator nacheinander die Nachrichten „Ich rüste mein Gerät aus“ und „Ich setze mein Gerät ein“. Gleichzeitig schickt auch euer Gerät Nachrichten wie „Gerät aktiviert“ und „Gerät eingesetzt“ an den Server. Der Server schickt diese Nachrichten an die anderen Spieler des Matchs.

Zuvor war die Reihenfolge, in der diese Nachrichten an den Server geschickt wurden, nur pro Objekt im Spiel garantiert. Das bedeutete, dass es auch zu Fehlern kommen konnte, wenn Nachrichten verloren gingen oder nicht in der richtigen Reihenfolge beim Server ankamen. Die Exploits haben sich diese Schwachstelle in unserem Netzwerkprotokoll zunutze gemacht, indem sie eine Flut von Aktionen gleichzeitig gesendet haben. Das erhöhte die Wahrscheinlichkeit, dass diese Netzwerknachrichten nicht ordnungsgemäß empfangen wurden. Das Ergebnis war, dass falsche Replikation über den Server dazu führte, dass die Spiele der Spieler die richtige und beabsichtigte Aktion nicht korrekt darstellten.

Unsere Lösung des Problems, Global Ordering, modifiziert die Netzwerk-Engine, um alle Nachrichten global zu verarbeiten. Die Nachrichten werden außerdem mehrfach geschickt, um sicherzustellen, dass die Daten zuverlässig versendet werden. Das bedeutet, dass jetzt jedes Spiel die gleiche Nachrichtensequenz erhält und die Replikation in den Spielen aller Spieler synchron sein wird.

Als wir feststellten, dass alle aktuellen Exploits auf diesem Kernprozess beruhten, mussten wir sehr gewissenhaft an das Global Ordering herangehen. Wir mussten sicherstellen, dass die Änderung keine nachteiligen Nebeneffekte mit sich bringt. Obwohl der Wechsel zu Global Ordering mit ein wenig zusätzlicher Belastung der Bandbreite verbunden ist, waren wir letztlich der Ansicht, dass die Vorteile von Global Ordering den kleinen Anstieg der Bandbreitekosten wert sind, und beschlossen, es einzuführen.

WAS BEDEUTET DAS FÜR DIE ZUKUNFT?

Durch das neue Global Ordering werden Aktionen für alle Spieler eines Matchs einheitlich repliziert, da sie nun auf globaler Ebene verarbeitet werden und nicht mehr auf Client-Ebene. Wir haben die zusätzlichen Bandbreitekosten beurteilt und abgewogen. Obwohl diese leicht ansteigen werden, wird euer Spielerlebnis dadurch nicht beeinflusst. Dies sollte jegliche Probleme mit Nachrichtenzustellungen in falscher Reihenfolge und ähnliche Fehlerausnutzungen verhindern.

Die Exploits und ihre Auswirkungen auf die Community haben auch den Wert des Not-Aus für Operator und Geräte hervorgehoben – sowie die Notwendigkeit auf unserer Seite, mehr Kontrolle über die Operator und ihre Ausrüstungskonfigurationen auf den Live-Servern zu haben. Seitdem haben wir begonnen, dafür mehr Ressourcen zur Verfügung zu stellen, damit wir auf eventuelle zukünftige Exploits schnell reagieren können.

Besuche weitere Social Media-Kanäle

facebook icontwitter iconyoutube icontwitch icon