dostęp just-in-time
| Po angielsku | just-in-time access (JIT) |
|---|---|
| Którą formą pisać | obie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski. |
| Inne formy | dostęp JIT · JIT · dostęp w odpowiednim momencie · tymczasowe uprawnienia |
| Kategoria | SOC, wywiad o zagrożeniach i reagowanie |
Dostęp just-in-time (just-in-time access, JIT) to praktyka nadawania podwyższonych uprawnień tylko na czas konkretnego zadania i odbierania ich automatycznie po upływie ustalonego limitu. Keeper Security opisuje ją jako praktykę z zakresu zarządzania dostępem uprzywilejowanym (PAM), polegającą na przyznaniu użytkownikom i urządzeniom podwyższonych uprawnień na określony czas w celu wykonania określonego zadania [1]. Przeciwieństwem są stałe uprawnienia, które konto ma zawsze, także wtedy, gdy nikt z nich nie korzysta. W WordPressie odpowiada temu tymczasowe konto administratora dla serwisanta, które samo wygasa.
Jak działa
Microsoft opisuje dostęp just-in-time jako model, w którym użytkownik dostaje tymczasowe uprawnienia do zadań uprzywilejowanych, a po ich wygaśnięciu osoby złośliwe lub nieuprawnione nie mogą już z nich skorzystać [3]. Dostęp jest przyznawany tylko wtedy, gdy jest potrzebny [3].
Typowy przebieg ma kilka kroków. Schemat poniżej pokazuje je na przykładzie administratora, który potrzebuje dostępu do serwera.
Usługa Microsoft Entra Privileged Identity Management pozwala m.in. przyznawać dostęp ograniczony datą początku i końca, wymagać zatwierdzenia aktywacji roli, wymuszać uwierzytelnianie wieloskładnikowe przy aktywacji, zbierać uzasadnienie i wysyłać powiadomienia o aktywacji ról uprzywilejowanych [3]. Pobieranie historii audytu ułatwia późniejszą kontrolę [3].
Odmiany
Keeper wyróżnia trzy rodzaje dostępu just-in-time [1].
| Odmiana | Na czym polega |
|---|---|
| Uzasadnione przyznanie i odebranie | użytkownik uzasadnia wniosek o dostęp do centralnie zarządzanego konta [1] |
| Konta efemeryczne | konta jednorazowego użytku do wykonania określonego zadania [1] |
| Podniesienie uprawnień | użytkownik prosi o czasowo wyższy poziom dostępu [1] |
Osobną odmianą jest dostęp just-in-time do sieci, w którym tymczasowo otwiera się port, a nie nadaje rolę. Microsoft Defender dla Chmury zaleca w ten sposób chronić porty 22 (SSH), 3389 (RDP) oraz 5985 i 5986 (WinRM) [2]. Dokumentacja zauważa, że zapory sieciowe często zawierają reguły zezwalające, które pozostawiają maszyny wirtualne narażone na zagrożenia [2]. Domyślnie maksymalny czas dostępu wynosi 3 godziny [2]. We wniosku użytkownik wskazuje porty, źródłowe adresy IP i okno czasowe [2].
W WordPressie
WordPress nie ma wbudowanego mechanizmu kont wygasających. Rola nadana użytkownikowi obowiązuje, dopóki ktoś jej nie zmieni. Najwyższą rolę na pojedynczej witrynie ma administrator, który według dokumentacji ma dostęp do wszystkich funkcji administracyjnych [5]. Dokumentacja odnotowuje też, że konto administratora powstaje automatycznie przy instalacji [5].
Problem pojawia się przy pracy z osobami z zewnątrz. Właściciel strony zakłada konto administratora dla programisty albo agencji, a po zakończeniu zlecenia konto zostaje. Po miesiącach nikt nie pamięta, czyje ono jest, a hasło mogło wyciec razem z danymi uwierzytelniającymi z innego serwisu. Takie konto trudno odróżnić od konta nieautoryzowanego.
Dostęp just-in-time zapewniają w WordPressie wtyczki. Przykładem z katalogu wordpress.org jest Temporary Login Without Password, która pozwala utworzyć samowygasający link logowania dla programisty, pracownika wsparcia albo gościnnego redaktora zamiast przekazywania nazwy użytkownika i hasła [6]. Wygaśnięcie ustawia się na godzinę, dzień, tydzień, miesiąc albo konkretną datę, a tymczasowemu kontu można nadać dowolną rolę WordPressa [6]. Po upływie czasu dostęp wyłącza się automatycznie [6].
Przy takim rozwiązaniu warto pamiętać o dwóch zasadach.
- Link logowania bez hasła działa jak hasło: kto go ma, ten się loguje. Należy go przekazywać bezpiecznym kanałem i nie wysyłać w otwartej wiadomości.
- Tymczasowe konto powinno mieć najniższą rolę wystarczającą do zadania, zgodnie z hasłem role i uprawnienia użytkowników. Poprawa treści nie wymaga roli administratora.
Na poziomie serwera ten sam model stosuje się do SSH i SFTP: port otwiera się tylko dla adresu serwisanta i tylko na czas prac, co ogranicza skanowanie portów i ataki siłowe na usługę.
Znaczenie
Stałe uprawnienia zwiększają powierzchnię ataku. Microsoft uzasadnia PIM tym, że organizacje chcą zmniejszyć liczbę osób z dostępem do zasobów chronionych, bo ogranicza to szansę uzyskania dostępu przez napastnika i ryzyko przypadkowej szkody wyrządzonej przez uprawnionego użytkownika [3]. Konto, które przez większość czasu nie ma uprawnień, jest mało wartościowym celem przejęcia.
Dostęp just-in-time realizuje w czasie zasadę najmniejszych uprawnień. Microsoft definiuje ją jako praktykę, w której każdy użytkownik ma tylko minimalne uprawnienia potrzebne do zadań, do których jest upoważniony [3]. JIT dodaje do niej wymiar czasu: minimalne uprawnienia i tylko wtedy, gdy są potrzebne.
Model ten wpisuje się w architekturę Zero Trust. NIST opisuje ją jako przesunięcie obrony ze statycznych granic sieci na użytkowników, zasoby i usługi, w którym uwierzytelnienie i autoryzacja odbywają się jako odrębne kroki przed nawiązaniem sesji z zasobem [4]. W tym ujęciu nikt nie ma stałego, domniemanego dostępu.
Dobre praktyki
- Inwentaryzacja kont z rolą administratora i usunięcie tych, które nie są potrzebne na co dzień.
- Konta dla serwisantów i agencji zakładane z datą wygaśnięcia albo przez mechanizm tymczasowego logowania.
- Uwierzytelnianie wieloskładnikowe przy aktywacji uprawnień [3].
- Zatwierdzanie wniosków przez drugą osobę i zapis uzasadnienia [3].
- Przegląd dziennika aktywacji. Defender dla Chmury udostępnia dziennik aktywności z historią operacji na maszynie objętej JIT [2].
- Dla dostępu do serwera: logowanie kluczem SSH zamiast hasła, a otwarcie portu tylko dla wskazanego adresu, na przykład przez białą listę adresów IP ustawianą na czas prac.
Przypisy
6- [1] Czym jest dostęp just-in-time? · Keeper Security
- [2] Włącz dostęp just in time do maszyn wirtualnych — Microsoft Defender dla Chmury · Microsoft Learn
- [3] What is Privileged Identity Management? · Microsoft Learn
- [4] SP 800-207: Zero Trust Architecture · NIST
- [5] Roles and Capabilities · WordPress.org
- [6] Temporary Login Without Password · WordPress.org (katalog wtyczek)
Hasła w tym artykule
13- zarządzanie dostępem uprzywilejowanym (PAM)
- uwierzytelnianie wieloskładnikowe
- dane uwierzytelniające
- nieautoryzowane konto administratora
- role i uprawnienia użytkowników
- skanowanie portów
- atak siłowy (brute-force)
- powierzchnia ataku
- przejęcie konta
- zasada najmniejszych uprawnień
- Zero Trust
- logowanie kluczem SSH
- biała lista adresów IP