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.

Chronologia katastrofy Knight Capital, 1 sierpnia 2012
CzasWydarzenie
Noc przed otwarciemWdrożenie nowego modułu RLP trafia na 7 z 8 serwerów, jeden pominięty
9:30Otwarcie giełdy, uśpiony kod Power Peg zaczyna generować realne zlecenia
9:31-9:45System wysyła miliony błędnych zleceń na ponad 150 spółek
ok. 10:00Inżynierowie identyfikują problem i wyłączają wadliwy serwer
PopołudnieFirma liczy stratę - ponad 440 mln dolarów
Kilka dni późniejKonsorcjum inwestorów dokapitalizowuje firmę w zamian za większość udziałów
2013Knight 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.

Skonsultuj bezpieczeństwo swojej infrastruktury Bezpłatna konsultacja