Czym jest podatność? Dla potrzeb poniższego wpisu przez podatność będziemy rozumieć słabość systemu informatycznego, wynikającą z błędu konfiguracyjnego, błędu podczas procesu wdrażania lub błędu podczas procesu wytwarzania oprogramowania, która może zostać wykorzystana przez atakującego. Zgodnie z MITRE, podatność ma negatywny wpływ na co najmniej jeden z podstawowych atrybutów bezpieczeństwa: poufność, integralność lub dostępność.

Przed przystąpieniem do procesu zarządzania podatnościami, powinniśmy przeprowadzić inwentaryzację naszych zasobów i na jej postawie określić ważność każdego z aktywów dla naszej organizacji. Musimy więc mieć aktualne plany sieci, stanowisk, serwerów oraz posiadać świadomość, które komponenty naszej infrastruktury informatycznej są dla nas kluczowe, a które trochę mniej.

Jak wygląda sam proces zarządzania podatnościami?

Na początku należy wspomnieć, że sam proces zarządzania podatnościami powinien być czynnością ciągłą, ma na celu nieustające identyfikowanie podatności. Błędy przy tworzeniu oprogramowania są i będą. Niestety z powodu dużej komplikacji systemów, protokołów czy języków programowania, z których korzystamy, proces zarządzania podatności, powinien być nieodłącznie wkomponowany w cyklu bezpieczeństwa cyfrowego każdej organizacji. Okazjonalne skanowanie podatności, w celu minimalizacji powierzchni ataku, może okazać się niewystarczające.

Proces zarządzania podatnościami składa się z następujących elementów:

Wykrycie: identyfikacja podatności (musimy pamiętać, że podatność rozumiemy jako słabość systemu, może ona wynikać z błędnej lub niepełnej konfiguracji, a także błędu w oprogramowaniu). Przy wykorzystaniu modułu Vulnerability Detector systemu Wazuh będziemy mieli do czynienia z numerami CVE, wraz z ich oceną istotności CVSS. W module Security Configuration Assessment będziemy mieli do czynienia z oceną konfiguracji.

Nadanie priorytetów: w tym kroku nasze zasoby należy podzielić na kategorie, w zależności od krytyczności zasobu dla organizacji, uruchomianych usług czy np. dostępności danego zasobu z Internetu.

– Ocena: w tym kroku przeprowadzamy ocenę zagrożeń, biorąc pod uwagę priorytet naszego zasobu, oraz krytyczność zidentyfikowanej podatności. Przyda nam się również ocena istotności podatności CVSS, wraz z informacją czy znaleziona podatność jest już wykorzystywana w aktywnych atakach lub jest na nią publiczny exploit.

– Raport: w tym kroku przygotowujemy dokumentację, która powinna zawierać informacje o wykrytych podatnościach, ich priorytetach oraz krokach jakie należy podjąć celem eliminacji ryzyka, wynikającego z wykrycia podatności np. instalacji poprawki.

– Naprawa: ten etap jest dość klarowny, musimy usunąć występujące podatności zgodnie z krokami zawartymi w raporcie.

– Weryfikacja: w tym kroku weryfikujemy czy działania podjęte w procesie naprawy, przyniosły spodziewany rezultat. Proszę pamiętać o tym, że agent wymienia dane w określonym interwale czasowym. Aktualizacja danych, po wprowadzeniu zmian w środowisku, może chwilę potrwać.

Wykrywanie podatności (Vulnerabilities)

System Wazuh z pomocą agenta w module Vulnerability Detector, jest w stanie wykryć luki w aplikacjach zainstalowanych na końcówkach. Audyt oprogramowania jest przeprowadzany poprzez integrację źródeł podatności indeksowanych przez Canonical, Debian, Red Hat, Arch Linux, ALAS (Amazon Linux Advisories Security), Microsoft i National Vulnerability Database.

Na poniższej stronie znajduje się pełna informacja, dotycząca kompatybilnych systemów operacyjnych z modułem Vulnerability Detector:

https://documentation.wazuh.com/current/user-manual/capabilities/vulnerability-detection/compatibility-matrix.html

Wykrywanie podatności musimy włączyć w pliku konfiguracyjnym. Ta opcja nie jest domyślnie włączona.

Przechodzimy do sekcji Management/Configuration i edytujemy konfigurację.

Musimy odnaleźć sekcję <vulnerability-detector> i ją aktywować. Zapisujemy konfigurację, restartujemy usługi. Musimy teraz cierpliwie poczekać, aż agent przeskanuje system, na którym jest zainstalowany i przekaże informacje o znalezionym oprogramowaniu do moduły zarządzającego.

Cała procedura uruchomienia modułu do zarządzania podatnościami jest opisana na blogu Wazuh pod poniższym linkiem:

https://wazuh.com/blog/using-wazuh-for-windows-vulnerability-detection/”>https://wazuh.com/blog/using-wazuh-for-windows-vulnerability-detection/

Dla mojego testowego systemu Microsoft Windows 2012r2 dashboard zbierający podatności wygląda następująco.

Dashboard przedstawia informację zbiorczą, dotyczącą zidentyfikowanych przez system WAZUH luk. Widzimy zidentyfikowane podatności w czterostopniowej skali od Low czyli najniżej, do Critical czyli najwyższej. System zidentyfikował 1713 podatności, z czego 47 jest najwyższego poziomu. Widzimy również informację dotyczącą ostatniego skanu systemu przez agenta, w celu identyfikacji luk. Podatności możemy posegregować po wszystkich kolumnach z zestawienia od nazwy, przez krytyczność, po numerze CVE, czy punktacji CVSS. Samo zestawienie możemy również wyeksportować.

Możemy wyświetlić szczegóły każdej zidentyfikowanej podatności bezpośrednio z dashboardu.

Opisy podatności, oprócz samych szczegółów identyfikacji, zawierają niejednokrotnie odniesienia do zewnętrznych źródeł, dokładnie opisujących wykorzystanie luki, czy sam proces mitygacji podatności.

Ocena konfiguracji bezpieczeństwa (Security Configuration Assessment)

Drugą funkcjonalnością, którą opiszę, jest moduł Security Configuration Assessment. Wykonuje on skanowanie, w celu wykrycia zagrożeń lub błędnych konfiguracji w monitorowanych systemach. Skanowania te oceniają konfigurację hostów przy użyciu plików zasad, które zawierają reguły do przetestowania w porównaniu z rzeczywistą konfiguracją. WAZUH może ocenić, czy konieczna jest zmiana konfiguracji związanej z hasłami, usunięcie niepotrzebnego oprogramowania, wyłączenie niepotrzebnych usług lub przeprowadzenie audytu konfiguracji stosu TCP/IP.

Lista dostępnych polityk bezpieczeństwa znajduje się na poniższej stronie projektu:

https://documentation.wazuh.com/current/user-manual/capabilities/sec-config-assessment/how-to-configure.html

System umożliwia również wdrożenie własnych polityk bezpieczeństwa. Dokładny opis jak stworzyć i wdrożyć własne polityki bezpieczeństwa znajduje się w dokumentacji:

https://documentation.wazuh.com/current/user-manual/capabilities/sec-config-assessment/creating-custom-policies.html

Dla mojego testowego systemu Microsoft Windows 2012r2 dashboard zbierający ocenę konfiguracji wygląda następująco.

W przypadku mojego systemu mam do dyspozycji dwa benchmarki:

– Benchmark for Windows audit,

– CIS Benchmark for Windows 2012 R2.

WAZUH automatycznie przyporządkował dostępne benchmarki do wykrytego systemu operacyjnego.

Interaktywny dashboard zawiera dane sumaryczne z przeprowadzonych testów konfiguracji, wraz z procentowym podsumowaniem, na jakim etapie jesteśmy z konfiguracją naszego stanowiska.

Analizując szczegóły z poszczególnych testów, otrzymujemy informację dotyczącą jego statusu (pass, fail, not applicable) oraz szczegółowe dane wraz z opisem, dotyczącym konieczności wprowadzenia zmian w konfiguracji.

Zgodność ze standardami bezpieczeństwa.

Dodatkową formą zabezpieczenia będzie badanie środowiska informatycznego pod kątem zgodności ze standardami bezpieczeństwa. Domyślny zestaw reguł systemu Wazuh zapewnia obsługę struktur i standardów PCI DSS, HIPAA, NIST 800-53, TSC. Reguły i dekodery Wazuh są wykorzystywane do wykrywania ataków, błędów systemowych, błędnych konfiguracji zabezpieczeń i naruszeń polityki.

Domyślnie włączone są polityki PCI DSS oraz NIST 800-53.

Każda z polityk jest dokładnie opisana oraz zawiera wskazówki konfiguracyjne, lub informacje dotyczące wymagań. Polityki są dostępne w module Regulatory Compliance. Poniżej zbiorcze informacje ze standardu PCI DSS dla testowego systemu z Microsoft Windows Server 2012r2.

Poniżej szczegóły dotyczące jednego z wymagań, dotyczącego wdrożenia mechanizmu wykrywania zmian.

Proces zarządzania podatnościami powinien być stałym element zarządzania bezpieczeństwem cyfrowym. Daje nam lepszą znajomość naszych systemów informatycznych, porządkuje wiedzę o wdrożonym oprogramowaniu oraz uruchomianych usługach. Wprowadza do organizacji priorytetyzację działań naprawczych, związanych z wykrytymi podatnościami. W efekcie działań naprawczych zwiększamy bezpieczeństwo naszej organizacji. Minimalizujemy również okres ekspozycji podatności na ewentualne wykorzystanie przez napastnika.