Współczesne organizacje w coraz większym stopniu opierają swoje działania na technologii informatycznej, co czyni je zarazem bardziej podatnymi na różnego rodzaju zagrożenia bezpieczeństwa. Wysoki poziom zautomatyzowania procesów, integracja wielu systemów oraz praca zdalna użytkowników wymuszają konieczność regularnego przeprowadzania audytów IT. Wnioski płynące z takich audytów mogą mieć kluczowe znaczenie dla utrzymania bezpiecznego i wydajnego środowiska IT, a także dla spełnienia wymagań prawnych i branżowych. Poniżej przedstawiam case study dotyczące kompleksowego audytu IT, podczas którego wykryto istotne luki w systemie, zarówno w warstwie infrastrukturalnej, jak i aplikacyjnej.
Zdefiniowanie zakresu audytu i przygotowanie zespołu
Każdy audyt IT powinien rozpoczynać się od precyzyjnego zdefiniowania jego zakresu oraz wytyczenia celów, które chce osiągnąć organizacja. W omawianym przypadku duża firma z sektora usług finansowych zdecydowała się na przeprowadzenie audytu bezpieczeństwa w związku z planowanym wdrożeniem nowych aplikacji webowych oraz migracją części zasobów do środowiska chmurowego. Wyzwania polegały między innymi na konieczności migracji części danych historycznych, integracji systemów o różnych architekturach oraz zapewnieniu ciągłości działania w trakcie i po zakończeniu projektu. Zespół audytorski składał się z ekspertów w dziedzinach serwerów, bezpieczeństwa IT i zarządzania sieciami.
W pierwszym etapie dokonano przeglądu istniejących polityk bezpieczeństwa, dokumentacji architektury systemu oraz sposobów zarządzania tożsamościami użytkowników. Kluczowym elementem było również ustalenie, które systemy produkcyjne i środowiska deweloperskie zostaną objęte szczegółową analizą. Przeprowadzono inwentaryzację aktywów IT, sporządzono listę krytycznych aplikacji i serwerów oraz dokonano przeglądu uprawnień administracyjnych. Szczególną uwagę zwrócono na integracje pomiędzy systemami wewnętrznymi a usługami zewnętrznymi, zwłaszcza w zakresie wymiany poufnych danych.
Audytorzy wykorzystali zaawansowane narzędzia do skanowania podatności, testy penetracyjne oraz analizę logów systemowych i sieciowych. Równolegle trwały wywiady z użytkownikami kluczowych systemów, które pozwoliły na identyfikację potencjalnych obszarów niezgodności z praktykami bezpieczeństwa. Podczas przygotowania do właściwej części audytu, wykazano również problemy wynikające z niedostatecznej automatyzacji procesów backupu oraz incydentów braku monitorowania krytycznych zdarzeń w logach systemowych. Tak szeroko zakrojone przygotowania pozwoliły na szczegółowe zmapowanie ryzyka i zaplanowanie dalszych działań diagnostycznych.
Identyfikacja luk w infrastrukturze serwerowej i sieciowej
Po etapie przygotowania zespół przeszedł do fazy dogłębnej analizy infrastruktury serwerowej oraz sieci. Zastosowano szereg specjalistycznych narzędzi, takich jak skanery konfiguracji serwerów, testery wydajności oraz systemy monitorowania ruchu sieciowego. W przypadku infrastruktury serwerowej wykryto kilka istotnych nieprawidłowości, m.in. brak stosowania polityki separacji ról administracyjnych na serwerach produkcyjnych, przestarzałe wersje oprogramowania systemowego oraz nieaktualne mechanizmy szyfrowania transmisji (braki w obsłudze najnowszych wersji TLS). Dodatkowo, część serwerów dzieliła zasoby fizyczne i logiczne, co powodowało zwiększone ryzyko przenikania zagrożeń poziomych w przypadku włamania.
W warstwie sieciowej audyt wykazał niedostateczną segmentację sieci – brak wydzielenia stref bezpieczeństwa (VLAN) dla systemów krytycznych, co pozwalało na zbyt łatwy dostęp pomiędzy różnymi segmentami sieci, również tymi, które były przeznaczone dla gości lub pracowników zewnętrznych. Odkryto również luki w konfiguracji zapór sieciowych oraz brak wdrożenia systemów typu IDS/IPS monitorujących ruch w czasie rzeczywistym. Szczególnie alarmująca okazała się niska odporność na ataki typu spoofing i man-in-the-middle, wynikająca z niewłaściwej konfiguracji protokołów sieciowych oraz braku aktualizacji oprogramowania sprzętowego urządzeń sieciowych.
Nieprawidłowości dotyczyły również zarządzania zdalnym dostępem do sieci korporacyjnej. W kilku przypadkach stosowano uniwersalne konta VPN oraz słabe metody autoryzacji, co istotnie zwiększało ryzyko nieautoryzowanego dostępu do zasobów firmy. Brak silnych polityk haseł, niespójność ustawień MFA (uwierzytelnianie wieloskładnikowe) oraz powszechność tzw. shadow IT (użytkownicy korzystający z nieautoryzowanych rozwiązań chmurowych) to kolejne problemy, które znacząco podnosiły poziom zagrożenia dla integralności środowiska informatycznego.
Audyt środowiska aplikacyjnego i analiza kodu
Jednym z kluczowych elementów audytu było poddanie weryfikacji środowiska aplikacyjnego, ze szczególnym naciskiem na aplikacje webowe wdrożone w architekturze mikrousługowej. Specjaliści zastosowali szereg narzędzi do dynamicznej i statycznej analizy kodu źródłowego (SAST/DAST), testy bezpieczeństwa API oraz przegląd architektury zarządzania kluczami kryptograficznymi. Już we wstępnej fazie audytu ujawniono kilka poważnych błędów, m.in. niewłaściwe zarządzanie danymi uwierzytelniającymi w wybranych mikroserwisach – dane te były zapisywane w formie jawnej w zmiennych środowiskowych kontenerów, co mogło prowadzić do łatwego przejęcia, np. podczas ataku na rejestr obrazów kontenerów.
Analiza kodu aplikacji pozwoliła również na wykrycie powtarzających się podatności typu SQL Injection i Cross-Site Scripting (XSS). Nieprawidłowo wdrożone mechanizmy walidacji i sanitizacji danych wejściowych oraz brak automatycznych testów bezpieczeństwa w pipeline CI/CD pozwalały na łatwe wywołanie scenariuszy ataków przez złośliwe podmioty. Szczególnie newralgiczne okazało się niewystarczające logowanie działań użytkowników w usługach o podwyższonym ryzyku, takich jak systemy autoryzacji płatności czy generowanie raportów finansowych. Ten brak pełnej ścieżki audytowej stanowił istotną przeszkodę w spełnieniu wymogów audytów zgodności branżowej (np. normy PCI DSS).
Zidentyfikowano też istotne braki w zakresie automatyzacji aktualizacji zależności programistycznych (np. bibliotek open source wykorzystywanych przez aplikacje), a wiele komponentów działało na przestarzałych wersjach nieposiadających poprawek bezpieczeństwa. Brak dedykowanych testów regresyjnych oraz nieregularna walidacja bezpieczeństwa endpointów API narażały całość aplikacji na ataki przez zautomatyzowane narzędzia skanujące. Podsumowując, audyt środowiska aplikacyjnego wskazał na konieczność wdrożenia zorganizowanego podejścia do zarządzania cyklem życia aplikacji, w tym ścisłego monitoringu podatności oraz jasnego rozdzielenia obowiązków developersko-operacyjnych (DevSecOps).
Rekomendacje poaudytowe i wdrożenie zmian
Szczegółowy raport poaudytowy, zawierający opis wykrytych luk oraz ich potencjalny wpływ na organizację, stał się podstawą do zaprojektowania i wdrożenia kompleksowego planu naprawczego. Zalecenia podzielono na kilka kategorii – pilne mitygacje, poprawki średnioterminowe oraz działania długofalowe. Do priorytetowych działań należało uregulowanie polityki dostępu do serwerów (wdrożenie zasady najmniejszego uprzywilejowania), segmentacja sieci z wydzieleniem stref bezpieczeństwa oraz natychmiastowa aktualizacja systemów operacyjnych i urządzeń sieciowych do obsługi najnowszych standardów szyfrowania i protokołów bezpieczeństwa.
W środowisku aplikacyjnym wdrożono narzędzia do automatycznej analizy kodu, podłączono skanowanie bezpieczeństwa do pipeline’ów CI/CD oraz zaimplementowano mechanizmy wymuszające regularną aktualizację bibliotek i zależności. Kluczowe komponenty, takie jak dane uwierzytelniające oraz klucze kryptograficzne, zostały wyprowadzone z poziomu kodu i środowisk kontenerowych do menedżerów tajemnic spełniających normy branżowe. Rozpoczęto także procesy szkoleń dla programistów oraz administratorów w zakresie cyberbezpieczeństwa i reagowania na incydenty bezpieczeństwa.
Długofalowo organizacja ustanowiła stały program audytów IT, oparty na regularnych testach penetracyjnych oraz okresowej weryfikacji zgodności z normami branżowymi. Istotnym efektem audytu było również wzmocnienie współpracy pomiędzy działami IT, bezpieczeństwa i biznesu, co przełożyło się na skuteczniejsze monitorowanie i zarządzanie incydentami. Ten przypadek dobitnie pokazał, że efektywnie przeprowadzony audyt IT nie tylko pozwala na wykrycie istniejących luk, ale przede wszystkim staje się punktem wyjścia do opracowania spójnej strategii zarządzania ryzykiem technologicznym w przedsiębiorstwie.