Dwa adresy URL mogą wyglądać identycznie w przeglądarce węzła, a znaczyć dla zapory zupełnie co innego. Jeden wskazuje usługę nasłuchującą na samym hoście. Drugi wskazuje adres hosta, którego port jest opublikowany w sieci kontenerów, gdzie krok tłumaczenia przekazuje połączenie innemu IP. W sieci równorzędnej, która kontroluje dostęp do sieci lokalnej uprawnieniem dla każdego węzła, ta różnica to cała analiza.

Uprawnienie dotyczy punktu końcowego hosta, tłumaczenie dotyczy Dockera, a logowanie dotyczy aplikacji. Trzy decyzje, trzy miejsca do sprawdzenia.

Śledź cel po opublikowaniu

Weź hosta Linux z Dockerem, który publikuje port 80 kontenera na porcie hosta 8080. Węzeł łączy się z adresem sieci hosta na porcie 8080, host akceptuje połączenie, a tłumaczenie celu przepisuje je na adres mostu kontenera, zwykle coś w rodzaju 172.17.0.2 na porcie 80.

Zanim reguła sprawdzi ten przepływ, interesującym celem jest kontener, a nie host. Polityka, która rozumuje tylko o „usłudze na tej maszynie”, rozumuje o niewłaściwym obiekcie. Żądanie wylądowało na hoście, ale jest dostarczane gdzie indziej.

Dlatego dokumentacja sieci wymienia kontenery Docker wśród zasobów, którymi zarządza uprawnienie sieci lokalnej w systemie Linux. Uprawnienie nie jest synonimem zwykłego wpisu na liście dozwolonych VPN i obie kontrole nie zastępują się nawzajem. Jedna decyduje, czy węzeł w ogóle może dotrzeć do zasobów lokalnych; druga decyduje, jakie cele niesie trasa tunelowana.

Zdecyduj, ile dostępu lokalnego daje uprawnienie

Przyznanie węzłowi dostępu do sieci lokalnej nie jest decyzją o jednym kontenerze. Może ujawnić inne opublikowane usługi na tym samym hoście i może sięgać dalej w zależności od tego, jak host przekazuje. Przeanalizuj rzeczywisty zakres, zanim klikniesz przełącznik dla jednego panelu.

Następnie sprawdź, gdzie Docker publikuje port. Publikacja na 0.0.0.0 tworzy nasłuch na każdym adresie hosta, co może dodać zwykły wpis LAN obok wpisu sieci. Jeśli wymaganiem jest tylko sieć, powiąż publikację z konkretnym adresem lub interfejsem, który masz na myśli, a szersze powiązanie traktuj jako odrębne ustalenie, a nie udogodnienie.

Utrzymuj politykę przekazywania hosta i uwierzytelnianie samej aplikacji wystarczająco wąskie dla usługi. Adres URL wyglądający na prywatny nie jest kontrolą dostępu, a kontener, który ufa każdemu źródłu w swojej sieci mostu, nie jest chroniony tym, że węzeł sieci został zatwierdzony. Uwierzytelnianie aplikacji to trzecia decyzja i jedyna, która wie, kim jest użytkownik. Uprawnienie na poziomie hosta nie może dostarczyć tej wiedzy.

Testuj uprawnienie, nie tylko adres URL

Z zatwierdzonego węzła otwórz dokładnie tę usługę i potwierdź, że działa. Następnie wypróbuj cel, który powinien pozostać odrzucony, i potwierdź, że nie działa. Testowanie tylko szczęśliwej ścieżki mówi ci, że uprawnienie zostało przyznane; nie mówi, że granica jest tam, gdzie myślisz.

Osobno porównaj usługę rodzimą dla hosta. Jeśli baza danych nasłuchuje na hoście, a panel działa w kontenerze, podążają różnymi ścieżkami przez to samo uprawnienie i mogą nie być zarządzane jednakowo przez politykę przekazywania hosta. Zapisz, co jest czym, zanim napiszesz notatkę z analizy.

Nie opróżniaj tabel Dockera ani reguł klienta sieci, aby „zresetować” dostęp. Oba produkty instalują własną integrację polityk, a jej usunięcie daje hosta, który wygląda na działający, ale omija kontrole, które miałeś ocenić. Jeśli reguła wygląda źle, przeczytaj ją i zmień właśnie tę regułę. Jeśli nie potrafisz wyjaśnić, co robi reguła, to jest ustalenie, a nie powód do jej usunięcia.

Napisz ustalenie terminami samego systemu

Liczy się rozróżnienie, które produkt faktycznie egzekwuje, a nie to z szablonu analizy: uprawnienie do osiągnięcia punktu końcowego hosta, uprawnienie do osiągnięcia trasowanych zasobów prywatnych i uprawnienie do korzystania z aplikacji. Opublikowanie portu pozostawia te trzy decyzje dokładnie tam, gdzie były, a analityk, który traktuje je jako jedną, zatwierdzi niewłaściwy zakres.

Podaj adres hosta, opublikowany port, cel kontenera i uprawnienie węzła w jednym zdaniu. To zdanie jest weryfikowalne przez kogoś innego i właśnie dlatego jest ustaleniem, a nie opinią.

Powiązane artykuły