Blog
PolskiEnglish

Nie chcesz, żeby nazwy serwerów wyszły z firmy

Seria „Od pierwszego serwera do raportu”, odcinek 1 z 9

Wyobraź sobie przygotowanie pierwszego skanu. Masz już wybrany serwer, ale jego nazwa zdradza nazwę klienta, lokalizację i rolę aplikacji. Taka konwencja pomaga administratorom. W zewnętrznym panelu niekoniecznie chcesz ją powtarzać. Zanim uruchomisz cokolwiek, pada więc rozsądne pytanie: jakie dane opuszczą maszynę?

Odpowiedź nie mieści się w zdaniu „tylko wyniki skanu”. Wynik zawiera informacje o systemie i oprogramowaniu, a część nazw może występować w kilku miejscach. Dlatego zaczynam ten cykl od danych. Instalacja ma sens dopiero wtedy, gdy wiesz, co zamierzasz przekazać i kto w Twojej firmie może to zaakceptować.

Pokażę własną etykietę, próbę bez wysyłki wyników oraz ograniczenia obu rozwiązań. To instrukcja dla administratora serwerów Linux. Możesz przekazać ją również osobie, która pyta o poufność wdrożenia, zamiast odpowiadać jej samą listą przełączników.

Jakie dane agent przesyła

Secvalis korzysta ze skanowania hosta Linux i obrazów uruchomionych kontenerów. Zakres obejmuje pakiety systemowe oraz pakiety językowe rozpoznawane przez skaner. Kontenery systemowe to dodatkowa ścieżka, którą trzeba rozpatrzyć osobno. Nie oznacza to skanowania każdego urządzenia w sieci.

Poniższa tabela opisuje dane budowane przez obecną wersję skryptu do normalnej wysyłki. Jest szersza niż skrót „nazwa maszyny i lista CVE”. Pole może być puste, jeśli źródło nie dostarczyło wartości. Nie należy z tego wyciągać wniosku, że cała kategoria danych nigdy nie wychodzi z serwera.

Grupa Przesyłane informacje Co sprawdzić przed wdrożeniem
Tożsamość maszyny machine_label, hostname Czy etykieta sama nie zdradza klienta lub funkcji serwera
System distro, distro_version Czy wolno udostępnić rodzinę i wersję systemu
Skan agent_version, scan_timezone, scan_status Wersja agenta, strefa czasowa, wynik pełny, częściowy lub nieudany
Stan hosta system_state.running_kernel, reboot_required Wersja działającego jądra i sygnał potrzeby restartu, jeśli dostępny
Pochodzenie wyniku Data aktualizacji bazy Trivy, jeśli dostępna; Target, Class, Type Czy cel skanu lub jego ścieżka zawiera poufną nazwę
Obrazy kontenerów _sourceImage, _sourceImageId, jeśli obecne Nazwy repozytoriów, tagi i identyfikatory obrazów
Podatności Identyfikator, pakiet, wersja zainstalowana i naprawiająca, istotność, status, tytuł, opis skrócony do 300 znaków, odsyłacz Jakie informacje o oprogramowaniu ujawnia wynik

Klucz API służy do uwierzytelnienia wysyłki i trafia do nagłówka żądania. Nie jest pozycją w tej tabeli wyników, ale też wymaga ochrony. Nie pokazuj go na zrzucie polecenia ani w zgłoszeniu do wsparcia. Podgląd JSON w próbie lokalnej nie zawiera klucza, co nie oznacza, że cały terminal jest pozbawiony informacji wrażliwych.

Etykieta zamiast hostname

--label=serwer-01 nadaje własną etykietę. Samo ustawienie etykiety nie wyłącza pola hostname. Do tego służy --no-hostname, które wymaga jawnego --label. Bez własnej etykiety skrypt mógłby użyć krótkiej nazwy hosta jako nazwy maszyny i przekazać właśnie to, co chciałeś ukryć.

Dobierz etykietę, którą administrator rozpozna przez wewnętrzny spis, ale która nie wymienia klienta, oddziału ani aplikacji. Powiązanie etykiety z rzeczywistym serwerem trzymaj we własnej dokumentacji. Sam ciąg serwer-01 niczego nie porządkuje, jeżeli zespół nie wie, do której maszyny się odnosi. Ustal też, kto aktualizuje spis po wymianie hosta.

Nie zmieniaj etykiet przypadkowo między uruchomieniami. Nazwa ma pomagać odnaleźć wynik właściwej maszyny. Przed szerszym wdrożeniem zapisz wybraną etykietę w konfiguracji uruchomienia i sprawdź ją przy następnym skanie. Ręczne dopisywanie przełącznika za każdym razem łatwo pominąć, szczególnie gdy później pojawia się timer.

Próba lokalna

Zakładam, że masz już sprawdzony skrypt zapisany jako /opt/secvalis.sh. Poniższe polecenie uruchom na wybranym serwerze Linux, w sesji z uprawnieniami odpowiednimi do odczytu skanowanego systemu:

bash /opt/secvalis.sh --dry-run --label=serwer-01 --no-hostname

W tym trybie klucz API nie jest wymagany. Skrypt wykonuje skan, ale nie wysyła wyników do Secvalis. Może natomiast pobrać Trivy i bazę podatności. To nie jest tryb offline ani obietnica, że nie wystąpi żaden ruch sieciowy. Jeśli serwer korzysta z ograniczonego wyjścia do Internetu, przygotuj próbę zgodnie z jego zasadami dostępu.

Przed uruchomieniem zamknij udostępnianie ekranu. Lokalny wydruk pokazuje rzeczywisty hostname także wtedy, gdy ustawisz --no-hostname. W podglądzie JSON zobaczysz natomiast hostname: null. To dwa różne miejsca. Kontrola wyłącznie JSON nie chroni przed pokazaniem nazwy kilka linii wyżej.

Schemat fragmentu terminala po ręcznym zasłonięciu danych, nie zapis rzeczywistego pomiaru:

Machine label: serwer-01
Hostname: [cała linia ręcznie zasłonięta przed udostępnieniem]

Podgląd z --dry-run pokazuje wybrane pola i licznik znalezisk, a nie pełną treść normalnej wysyłki. Nie szukaj w nim dowodu, że nie ma nazw obrazów albo informacji o jądrze. Te pola trzeba ocenić na podstawie zakresu danych powyżej i rzeczywistej konfiguracji środowiska. Próba pomaga sprawdzić uruchomienie oraz etykietę, ale nie zastępuje przeglądu całego przepływu.

Co nadal identyfikuje środowisko

Własna etykieta nie usuwa informacji o dystrybucji, wersjach pakietów ani podatnościach. Nazwa obrazu kontenera może zawierać nazwę firmy lub usługi. Cel skanu może ujawnić ścieżkę. Zestaw oprogramowania bywa charakterystyczny dla konkretnej aplikacji, nawet kiedy wszystkie maszyny noszą neutralne nazwy.

Dlatego --no-hostname nie oznacza anonimizacji. Ogranicza jedno pole. Jeśli potrzebujesz szerszego ograniczenia danych, nie dopisuj do opisu wdrożenia obietnicy, której przełącznik nie realizuje. Najpierw ustal, które informacje są dopuszczalne, a które wymagają innego sposobu pracy. Odmowa wysyłki pewnych danych jest decyzją o zakresie wdrożenia, nie błędem osoby oceniającej poufność.

Osobno sprawdź LXC. Na rozpoznanym hoście Proxmox skrypt może automatycznie wejść w tę ścieżkę, a etykiety wyników kontenerów pobiera z ich nazw. Neutralna etykieta hosta nie zastępuje nazw kontenerów. Opisana próba lokalna nie dochodzi do późniejszej ścieżki wysyłki LXC, więc nie potwierdza jej zakresu. Pierwszy test najlepiej przeprowadzić na zwykłym hoście Linux o znanej zawartości.

W praktyce przygotowałbym krótką notatkę: wybrana maszyna, etykieta, zakres skanu, odbiorca wyników i zaakceptowane kategorie danych. Do tego informacja, kto zatwierdził próbę. Taka notatka pozwala wrócić do ustaleń, gdy wdrożenie przechodzi z jednego serwera na kolejne. Nie trzeba odtwarzać rozmowy z pamięci ani zakładać, że zgoda na próbę obejmowała całą flotę.

Bezpieczny pokaz wyników

Do rozmowy o wyglądzie narzędzia użyj publicznego demo, które pokazuje fikcyjną firmę. Zrzut podpisz „dane demonstracyjne”. Nie przedstawiaj go jako wyniku własnej infrastruktury. Dzięki temu można omówić sposób czytania panelu, zanim ktokolwiek podejmie decyzję o przekazaniu danych produkcyjnych.

Jeżeli potrzebny jest własny wynik, przygotuj osobny obraz do pokazania. Sprawdź terminal, nazwę karty, pasek adresu, nazwy obrazów i widoczne dane konta. Zasłoń informacje w gotowym pliku i otwórz go ponownie przed wysłaniem. Samo ustawienie etykiety w poleceniu nie wykonuje tej pracy za Ciebie.

Rozdziel demonstrację interfejsu od oceny technicznej. Na spotkaniu wystarczy przykład z demo. Administrator oceniający wdrożenie potrzebuje zakresu pól i możliwości sprawdzenia skryptu. Osoba podejmująca decyzję o poufności potrzebuje informacji, co zostaje wewnątrz firmy i co jest przekazywane. Jeden zrzut ekranu nie odpowie dobrze na wszystkie te pytania.

Czego to nie załatwia

Secvalis dotyczy podatności na serwerach Linux, ich pakietów i obsługiwanych kontenerów. Nie skanuje Windows ani OT, PLC i SCADA. Nie wykrywa niezgłoszonych urządzeń, więc lista maszyn w panelu nie zastępuje inwentaryzacji infrastruktury.

Wybranie etykiety nie rozstrzyga też zasad poufności, dostępu ani warunków współpracy. Produkt może wspierać zarządzanie podatnościami i przygotowanie dowodów, ale sam nie zapewnia zgodności z NIS2/KSC ani uzyskania ISO 27001. Dla pierwszego testu wystarczy konkretny cel: znany zakres danych, świadoma decyzja o ich udostępnieniu i zweryfikowany wynik próby.

Potrzebujesz wsparcia przy wdrożeniu? Napisz do mnie: https://sysdevops.eu/kontakt. Zakres, poufność i formalności ustalimy indywidualnie.

Cotygodniowy digest CVE

Jeden mail w tygodniu z nowo opublikowanymi podatnościami, o których warto wiedzieć. Bez zakładania konta.

Digest dotyczy ogólnie nowych podatności, nie Twoich serwerów. Jeśli chcesz wiedzieć, które z nich faktycznie działają w Twojej infrastrukturze, tym zajmuje się Secvalis : skanuje Twoje maszyny i zgłasza wyłącznie to, co ich dotyczy.

Zgadzam się na otrzymywanie cotygodniowego digestu CVE na podany adres e-mail. Zgodę mogę wycofać w każdej chwili linkiem w stopce każdej wiadomości.