Artikel
Knight Capital: Ein vergessener Server, 45 Minuten, 460 Millionen Dollar
Wenn mir jemand sagt, ein Deployment sei „nur eine Formalität“, erzähle ich diese Geschichte. Alle Fakten stammen aus der Anordnung der US-Börsenaufsicht SEC vom 16. Oktober 2013.
Einer von acht Servern bleibt alt
Ab dem 27. Juli 2012 spielt Knight Capital neuen Code auf die acht Server seines automatischen Ordersystems. Auf einem der acht Server kommt der neue Code nicht an, ein Techniker hat ihn dort nicht kopiert. Eine Kontrolle durch einen zweiten Techniker gibt es nicht (SEC, Absätze 12 und 15).
Alter Code wacht auf
Auf diesem Server liegt noch eine alte Funktion namens „Power Peg“, seit 2003 ungenutzt. Der neue Code verwendet ihren alten Schalter für etwas Neues. Am Morgen des 1. August springt auf dem vergessenen Server deshalb Power Peg an (SEC, Absätze 13, 14 und 16).
97 Fehlermails vor Börsenstart
Vor der Börsenöffnung um 9:30 Uhr gehen 97 automatische E-Mails mit dem Fehler „Power Peg disabled“ an Mitarbeiter. Als Alarm waren sie nicht gedacht, und vor der Öffnung reagiert niemand darauf (SEC, Absatz 19).
212 Aufträge, über 4 Millionen Ausführungen
Der Server schickt für jeden Kundenauftrag pausenlos Teilaufträge an die Handelsplätze, ohne zu prüfen, wie viel schon ausgeführt ist. In rund 45 Minuten werden aus 212 Kundenaufträgen über 4 Millionen Ausführungen in 154 Aktien (SEC, Absätze 1, 16 und 17).
Die Reparatur macht es schlimmer
Bei einem Versuch, den Fehler zu beheben, entfernt Knight den neuen Code von den sieben richtig bespielten Servern. Damit läuft der alte Code nun auch dort. Am Ende steht ein Verlust von über 460 Millionen Dollar (SEC, Absätze 1 und 27).
Was die Aufsicht bemängelte
Die SEC warf Knight unzureichende Kontrollen vor, unter anderem fehlende schriftliche Verfahren für Deployments. Knight verpflichtete sich, 12 Millionen Dollar zu zahlen.
Tobis Fazit
Drei Lehren, die heute noch gelten: Deployments automatisieren und prüfen, ob wirklich alle Server den neuen Stand haben. Toten Code löschen, statt alte Schalter wiederzuverwenden. Und Warnmeldungen so bauen, dass ein Mensch sie auch als Warnung erkennt.