Funkcja i bug

W świecie testów penetracyjnych rzadko kiedy mamy do czynienia z „nudnymi” incydentami. Każda aplikacja jest inna, a przydatne na co dzień funkcjonalności potrafią w nieoczekiwany sposób obrócić się przeciwko samym użytkownikom. Dobrym przykładem takiej sytuacji jest niedawno wykryta podatność w jednej z testowanych przez nas aplikacji webowych, która wykorzystywała integrację z domeną Windows. Z pozoru nieszkodliwy „ficzer” zamienił się w lukę bezpieczeństwa o wysokim poziomie ryzyka. Jak do tego doszło?

Kiedy „ficzer” staje się „bugiem” – niebezpieczna integracja z domeną Windows

Testy webaplikacji

Aplikacja webowa, która była przedmiotem testów, posiadała standardowy mechanizm logowania za pomocą kont wbudowanych w system. Jednak, oprócz tego, aplikacja oferowała również możliwość integracji z domeną Windows, co teoretycznie miało ułatwić użytkownikom dostęp poprzez ich istniejące konta domenowe. Problem polegał na tym, że właściciel aplikacji nie był świadomy, że ta funkcja była aktywna, a co gorsza, nie została ona poprawnie skonfigurowana.

W efekcie, każdy użytkownik mający konto w domenie Windows (w tym pracownicy zewnętrzni oraz osoby z działów niezwiązanych z IT) mógł zalogować się do aplikacji bez konieczności dodatkowej autoryzacji. To już samo w sobie stanowiło poważne zagrożenie, ponieważ aplikacja nie powinna być dostępna dla wszystkich pracowników, a jedynie dla wybranych grup użytkowników.

Najbardziej niepokojące było jednak to, że aplikacja automatycznie przypisywała wszystkim użytkownikom domenowym bardzo wysokie uprawnienia. Wynikało to z nieprawidłowej konfiguracji integracji z Active Directory (AD) i braku wskazania grupy AD dla osób mogących zarządzać aplikacją. W praktyce oznaczało to, że osoby, które nie powinny mieć dostępu do wrażliwych funkcji aplikacji, mogły nie tylko przeglądać dane, ale także wprowadzać zmiany w systemie, co mogło prowadzić do poważnych naruszeń bezpieczeństwa.

Błąd w aplikacji webowej

Przyczyną tego problemu była kombinacja braku świadomości ze strony właściciela aplikacji oraz błędów w konfiguracji. Integracja z domeną Windows, choć przydatna, wymaga starannego zarządzania uprawnieniami i regularnego przeglądu konfiguracji. W tym przypadku funkcja została włączona bez odpowiedniego nadzoru. A to doprowadziło do sytuacji, w której każdy użytkownik domenowy mógł uzyskać nieograniczony dostęp do aplikacji.

Dlaczego warto wykonywać testy penetracyjne?

Ten przypadek pokazuje, jak ważne jest regularne audytowanie konfiguracji aplikacji, zwłaszcza tych, które integrują się z zewnętrznymi systemami, takimi jak Active Directory. Właściciele aplikacji powinni:

1. Regularnie przeglądać aktywne funkcje – Wszystkie funkcje powinny być świadomie włączone i odpowiednio skonfigurowane.
2. Stosować zasadę najmniejszych uprawnień – Użytkownicy powinni otrzymywać tylko te uprawnienia, które są im niezbędne do wykonywania swoich zadań.
3. Monitorować dostęp do aplikacji – Wprowadzić mechanizmy monitorowania, które pozwolą wykryć nieautoryzowane próby logowania lub logowanie przez osoby nieuprawnione.  Częstym błędem jest logowanie tylko nieudanych prób autoryzacji, podczas gdy, jak się okazuje, udane logowania też mogą świadczyć o nieprawidłowościach.
4. Przeprowadzać regularne testy penetracyjne – Testy te pomagają wykryć potencjalne luki w zabezpieczeniach, które mogą wynikać z błędów konfiguracyjnych.

Podsumowanie

Funkcje, które mają ułatwiać życie użytkownikom, mogą stać się źródłem poważnych zagrożeń, jeśli nie są odpowiednio zarządzane. W tym przypadku integracja z domeną Windows, choć przydatna, okazała się podatnością o wysokim poziomie ryzyka. Powodem był brak świadomości i błędną konfigurację. Dlatego tak ważne jest, aby zespoły odpowiedzialne za bezpieczeństwo IT regularnie przeglądały i testowały swoje systemy, aby uniknąć podobnych sytuacji w przyszłości.