Wykrycie 8 krytycznych podatności w systemie finansowym
Przeprowadziliśmy głęboki audyt architektury dla platformy pożyczkowej. Znaleźliśmy dziury w logice autoryzacji, które mogły doprowadzić do kradzieży danych.
Weszliśmy do projektu w momencie, gdy system API platformy SzybkaPożyczka.pl był wystawiony na ryzyko. Przez 11 dni nasz dwuosobowy zespół analizował każdy punkt styku aplikacji z bazą danych, aby wyłapać błędy, których nie widziały standardowe skanery.
Wyzwanie
Klient zarządzał siecią 12 mikroserwisów, które obsługiwały wnioski o pożyczki w czasie rzeczywistym. Problem zaczął się od dziwnego wzrostu błędnych logowań – odnotowano 412 takich przypadków w ciągu zaledwie 3 godzin w jeden wtorek. Wewnętrzny zespół 4 programistów nie mógł namierzyć źródła problemu, a ryzyko wycieku danych osobowych 14 tysięcy aktywnych użytkowników rosło z każdą godziną. Głównym wyzwaniem była nieszczelna logika autoryzacji, gdzie zmiana jednego parametru ID w adresie URL pozwalała podejrzeć historię kredytową innej osoby.
Podejście
Prace zaczęliśmy od statycznej analizy kodu (SAST) przy użyciu dedykowanych reguł dla frameworka Spring Boot. Następnie przeszliśmy do testów dynamicznych (DAST), skupiając się na module CreditEngine. Skupiliśmy się na ręcznej weryfikacji 37 endpointów API. Odkryliśmy, że tokeny sesji nie były poprawnie sprawdzane pod kątem uprawnień użytkownika. Szczerze mówiąc, był to typowy błąd wynikający z pośpiechu przy wdrażaniu nowej wersji systemu, ale skutki mogły być fatalne dla reputacji firmy w Kielcach i całej Polsce.
Rozwiązanie
Wdrożyliśmy nową warstwę walidacji na bramie API (API Gateway), która blokuje każde zapytanie niepasujące do identyfikatora sesji. Skonfigurowaliśmy automatyczne skanowanie bezpieczeństwa w potoku GitLab, które teraz sprawdza każdy commit pod kątem 142 znanych wzorców podatności. Dodatkowo przepisaliśmy middleware odpowiedzialny za autoryzację, wprowadzając mechanizm Policy-Based Access Control, co zamknęło drogę do manipulacji parametrami ID.
Rezultaty
W ciągu niecałych dwóch tygodni ustabilizowaliśmy system i zabezpieczyliśmy dane klientów, eliminując ryzyko kar finansowych i kradzieży tożsamości.
Harmonogram
-
3 Wrzesień 2024Start audytu i skanowanie statyczne 12 mikroserwisów.
-
7 Wrzesień 2024Wykrycie luki IDOR w module CreditEngine.
-
14 Wrzesień 2024Wdrożenie poprawek i testy regresyjne na środowisku staging.
"The SpyBolt znalazło błędy, które nasze automatyczne narzędzia kompletnie pominęły. Nie dostaliśmy tylko suchego raportu, ale konkretne instrukcje, jak naprawić kod krok po kroku."