Knight Capital: błąd w kodzie, który kosztował 440 mln $ w 45 minut
1 sierpnia 2012 roku jedna z największych firm brokerskich na Wall Street straciła 440 milionów dolarów w ciągu 45 minut. Winowajcą nie był haker ani kryzys finansowy, a zapomniany fragment kodu, który obudził się w najgorszym możliwym momencie. To historia, która powinna spać przy łóżku każdego, kto wdraża zmiany w produkcyjnym systemie.
Firma, która obracała jedną dziesiątą akcji na Wall Street
Knight Capital Group nie była anonimowym startupem. To był jeden z największych animatorów rynku w Stanach Zjednoczonych, odpowiadający za realizację niemal 17 procent wszystkich transakcji na giełdzie NYSE i NASDAQ. Firma istniała od 1995 roku i przez lata budowała reputację solidnego, technologicznie zaawansowanego brokera.
To właśnie skala działania sprawiła, że gdy 1 sierpnia 2012 roku o godzinie 9:30 rano otworzył się rynek, błąd, który normalnie mógłby przejść niezauważony, rozlał się na setki spółek notowanych na giełdzie w ciągu kilku sekund. System, który miał pomagać klientom kupować i sprzedawać akcje, zamienił się w maszynę bez wyłącznika, generującą tysiące zleceń na sekundę.
45 minut, które zrujnowały firmę
Rankiem tego dnia inżynierowie Knight Capital wdrażali nowy moduł o nazwie RLP, mający obsługiwać nowy program giełdy NYSE dla drobnych inwestorów. Wdrożenie miało trafić na osiem serwerów produkcyjnych. Na siedmiu z nich instalacja przebiegła prawidłowo. Na ósmym ktoś zapomniał skopiować nowy kod.
Na tym jednym serwerze pozostał stary, nieużywany od lat fragment oprogramowania o nazwie Power Peg, napisany jeszcze w 2003 roku do testowania systemów zleceń. Kod ten nigdy nie został usunięty, bo teoretycznie był nieaktywny. Problem polegał na tym, że nowy moduł RLP przypadkowo używał tego samego znacznika (flaga w konfiguracji), który dawniej aktywował Power Pega.
Efekt: ósmy serwer zaczął wykonywać starą logikę testową jako prawdziwe zlecenia rynkowe, wysyłając miliony zleceń kupna i sprzedaży na ponad 150 spółek. System nie miał zabezpieczenia, które pozwoliłoby to szybko zatrzymać. Zanim inżynierowie zrozumieli, co się dzieje, i fizycznie wyłączyli maszyny, minęło 45 minut. Knight Capital skupił akcje o wartości ponad 7 miliardów dolarów, których nie chciał kupować.
Anatomia katastrofy – dlaczego nikt tego nie złapał
Ta historia jest fascynująca właśnie dlatego, że każdy pojedynczy błąd wydaje się drobny, a razem złożyły się na jedną z najkosztowniejszych awarii w historii IT.
- Martwy kod nie został usunięty. Power Peg leżał w systemie przez blisko dziesięć lat, bo nikt nie widział ryzyka w jego pozostawieniu.
- Ponowne użycie tej samej flagi konfiguracyjnej do dwóch różnych funkcji stworzyło pułapkę, którą trudno wykryć w code review.
- Wdrożenie na osiem serwerów bez automatycznej weryfikacji zakończyło się częściowym sukcesem, a nikt nie sprawdził, czy wszystkie maszyny mają identyczną wersję kodu.
- Brak alertów i limitów bezpieczeństwa. System nie miał mechanizmu typu kill switch, który automatycznie zatrzymuje handel po przekroczeniu nietypowego wolumenu zleceń.
- Presja czasu. Zespół pracował nad wdrożeniem do ostatniej chwili przed otwarciem rynku, bez bufora na testy końcowe w środowisku identycznym z produkcją.
Żaden z tych elementów z osobna nie musiał skończyć się katastrofą. Złożone razem, w ciągu jednego poranka, kosztowały firmę więcej niż jej cały roczny zysk.
Cena błędu – od giganta Wall Street do przejęcia
Strata w wysokości 440 milionów dolarów przewyższała kapitał własny firmy. Knight Capital musiał w ciągu kilku dni znaleźć inwestorów gotowych dosypać kapitał, żeby uniknąć bankructwa. Ostatecznie firma została dofinansowana przez konsorcjum inwestorów w zamian za oddanie większości udziałów, a rok później została wykupiona przez konkurenta i przestała istnieć jako samodzielny podmiot.
Amerykańska Komisja Papierów Wartościowych (SEC) nałożyła na firmę dodatkową karę w wysokości 12 milionów dolarów, uznając, że Knight Capital nie miała odpowiednich procedur kontroli ryzyka technologicznego przed wdrożeniami. To był jeden z pierwszych przypadków, w którym regulator wprost powiązał brak dyscypliny w zarządzaniu zmianą IT z odpowiedzialnością finansową firmy.
Co z tego wynika dla mniejszej firmy
Skala Knight Capital jest nieporównywalna z typową firmą z sektora MŚP, ale mechanizm awarii jest uniwersalny i dotyka firm każdej wielkości: stary kod, który nikt nie sprząta, wdrożenie bez pełnej weryfikacji na wszystkich maszynach oraz brak alarmów, które wyłapałyby coś nietypowego, zanim zrobi się z tego problem.
- Każde wdrożenie zmian w systemach produkcyjnych powinno mieć checklistę i weryfikację, że dotarło do wszystkich środowisk, a nie tylko część z nich.
- Nieużywany kod i stare skrypty warto regularnie porządkować, a nie zakładać, że skoro leżą nieaktywne, są bezpieczne.
- Monitoring i alerty powinny wykrywać anomalie (np. nietypowy ruch, nietypową liczbę operacji) zanim urosną do rozmiarów katastrofy.
- Warto mieć przygotowaną procedurę wycofania zmiany (rollback), którą zespół może uruchomić w ciągu minut, nie godzin.
W NovaSys pomagamy firmom z Wrocławia i regionu wdrażać zmiany w infrastrukturze IT w sposób kontrolowany, z monitoringiem i planem na wypadek awarii, żeby nawet drobny błąd w konfiguracji nie zamienił się w kosztowny przestój.
| Czas | Wydarzenie |
|---|---|
| Noc przed otwarciem | Wdrożenie nowego modułu RLP trafia na 7 z 8 serwerów, jeden pominięty |
| 9:30 | Otwarcie giełdy, uśpiony kod Power Peg zaczyna generować realne zlecenia |
| 9:31-9:45 | System wysyła miliony błędnych zleceń na ponad 150 spółek |
| ok. 10:00 | Inżynierowie identyfikują problem i wyłączają wadliwy serwer |
| Popołudnie | Firma liczy stratę - ponad 440 mln dolarów |
| Kilka dni później | Konsorcjum inwestorów dokapitalizowuje firmę w zamian za większość udziałów |
| 2013 | Knight Capital zostaje przejęty przez konkurenta i przestaje istnieć samodzielnie |
Nie pozwól, aby jedno wdrożenie zrujnowało Twoją firmę
Błędy w kodzie i nieprzemyślane wdrożenia zdarzają się każdej firmie. Różnica polega na tym, czy macie procedury, monitoring i plan awaryjny, które ograniczą szkody. Zespół NovaSys pomoże Ci wdrożyć bezpieczne procesy zarządzania zmianą IT w Twojej firmie.