Studium przypadku / 05

Reguła ochrony zatrzymała strony

Zmiana w ochronie WWW wywołała awarię Cloudflare. Historia o testach wydajności, etapowym wdrażaniu i przygotowanym wycofaniu zmiany.

Udokumentowane zdarzenie3 minuty lekturyOpracowanie: NetOpiekun

2 lipca 2019 roku aktualizacja reguły WAF w Cloudflare wywołała globalną awarię. Wyrażenie regularne zużywało nadmiernie procesory. Reguła działała w trybie symulacji: nie blokowała żądań, lecz nadal musiała je analizować.

Ochronę trzeba było przywrócić bez błędu

Zespół wyłączył WAF, co przywróciło ruch. Po sprawdzeniu poprawki na ograniczonej części ruchu ponownie uruchomił ochronę. Raport wskazał nadmierne cofanie dopasowań w wyrażeniu regularnym jako przyczynę obciążenia.

Symulacja też wykonuje pracę

Wniosek NetOpiekuna: ustawienie „tylko obserwuj” nie musi oznaczać braku wpływu na usługę. Reguła nadal może obciążać urządzenie lub aplikację. Oceniając zmianę, trzeba pytać zarówno o jej poprawność, jak i koszt działania.

Mała zmiana może mieć duży zasięg.

Najpierw mały zakres

Zalecamy ustalić punkt odniesienia przed zmianą: czas odpowiedzi, błędy i obciążenie. Następnie wdrożyć zmianę na ograniczonym zakresie i obserwować te same wskaźniki. Dopiero po ocenie wyniku rozszerzać zasięg.

Test powinien obejmować także nietypowe i dłuższe dane wejściowe, nie tylko kilka poprawnych przykładów. Kryterium przerwania wdrożenia trzeba uzgodnić wcześniej, zanim pojawi się presja czasu.

Plan wycofania jest częścią wdrożenia

Przygotować poprzednią konfigurację, wskazać osobę podejmującą decyzję i sprawdzić dostęp do zarządzania na wypadek awarii chronionej usługi. Sam zapis pliku nie dowodzi, że można go sprawnie przywrócić.

Wyłączenie ochrony było reakcją na konkretny incydent, nie uniwersalnym zaleceniem. W firmie należy dobrać możliwie wąskie wycofanie wadliwej zmiany, a po odzyskaniu dostępności potwierdzić działanie wymaganych zabezpieczeń.

O tej historii

Opracowanie publicznego raportu wskazanego poniżej. Opis zdarzenia dotyczy wskazanego w nim okresu; zalecenia NetOpiekuna wyróżniono osobno. Nie jest to nasza realizacja ani opis obecnego stanu systemów organizacji.

Źródła: Cloudflare — Details of the Cloudflare outage on July 2, 2019, 12 July 2019