
Co znajdziesz w tym artykule?
Co to jest Vulnerability Management i dlaczego jest tak istotny?
Nie prowadząc testów bezpieczeństwa nie możemy mówić o bezpieczeństwie organizacji. To, że nie wiemy jakie są potencjalne zagrożenia dla naszych systemów i urządzeń końcowych nie oznacza, że one nie występują. W rezultacie otrzymujemy mylne wrażenie, że „wszystko jest ok”. Efektem jest iluzja bezpieczeństwa naszej organizacji. Kwestią czasu będzie to, kiedy ktoś potrafiący posługiwać się odpowiednimi narzędziami uzyska nieautoryzowany dostęp do naszych systemów.
Najbardziej podstawowym sposobem na rozpoznanie potencjalnych zagrożeń występujących w naszych systemach jest wdrożenie cyklicznych testów na luki w zabezpieczeniach (z ang. Vulnerability Management). Jest to proces niezbędny. Bez tego nie jesteśmy w stanie poprawnie zrealizować analizy ryzyka dla naszych systemów i urządzeń końcowych w naszej sieci.
Vulnerability Management powinien być procesem cykliczny, dlatego zasoby powinny być rutynowo skanowane, zwłaszcza po poważnych zmianach. Szybkie identyfikowanie i naprawianie podatności w zabezpieczeniach oznacza, że potencjalni atakujący mają mniej czasu na ich wykrycie i wykorzystanie.
Dlaczego to takie ważne? Nowe podatności są stale zgłaszana a większość z nich dotyczy używanego na masową skale oprogramowania. Od 2017 r. zgłaszanych jest średnio 50 nowych podatności każdego dnia.
Proces ten będzie dla nas ważny jeśli jesteśmy lub planujemy być zgodni z normami liczącymi się w świecie bezpieczeństwa informacji. Niektóre z nich opisałem skrótowo tutaj. Jeśli mówimy o zgodności z ISO27001 to obliguje nas do tego punkt A 12.6 Zarządzanie podatnościami technicznymi.
W tym artykule skupiam się na procesie zarządzania podatnościami w kontekście urządzeń końcowych. Miej świadomość, że proces ten może dotyczyć każdego aktywu lub zabezpieczenia. Nas interesuje teraz w aspekcie technicznym.

Ale od początku. Czym jest podatność?

Podatność – słabość danego systemu informatycznego wynikająca z błędów wewnętrznych (wynikających z niedoskonałości procesu produkcyjnego oprogramowania) lub błędów użytkownika (zazwyczaj konfiguracyjnych).
Amerykański instytut NIST (National Institute of Standards and Technology), zajmujący się między innymi badaniem podatności systemów teleinformatycznych na zagrożenia, wyodrębnił trzy zasadnicze obszary podatności:
- Spowodowane błędem w projektowaniu lub implementacji oprogramowania, zarówno niezamierzonym, jak i zamierzonym.
- Wynikające z niedoskonałości konfiguracji systemu, poprzez które atakujący może uzyskać do niego dostęp.
- Niewłaściwe wykorzystanie funkcji oprogramowania, prowadzące do naruszenia bezpieczeństwa systemu, np. odebranie za pomocą komunikatora zainfekowanego pliku.
Czyli mówiąc kolokwialnie podatność systemu informatycznego wynika z tego, że albo producent oprogramowania nie przewidział pewnych scenariuszy jego wykorzystania albo popełniono błędy podczas jego konfigurowania, używania lub wdrażania.
Każdą potencjalną podatność powinniśmy być w stanie znaleźć w bazie danych CVE (Common Vulnerabilities and Exposures). CVEDetails.com to baza danych podatności w zabezpieczeniach, która zawiera wiele informacji i może umożliwić nam wyszukiwanie określonych CVE, a nawet przeglądanie luk posortowanych według daty publikacji.
Jak pewnie widzisz w opisie danej podatności występuje coś takiego jak CVSS Score.
Common Vulnerability Scoring System (CVSS) umożliwia uchwycenie głównych cech luki i wygenerowanie liczbowego wyniku odzwierciedlającego jej wagę. Oblicza się ją w kontekście wpływu na dostępność, integralność i poufność oraz jakie muszą wystąpić warunki na wykorzystanie danej podatności. Wynik liczbowy można następnie przełożyć na reprezentację jakościową (taką jak niski, średni, wysoki i krytyczny), aby pomóc organizacjom w prawidłowej ocenie. Na podstawie reprezentacji jakościowej możemy ustalić priorytety procesów zarządzania podatnościami.
Najprostszym sposobem na sprawdzenie podatności naszym systemie operacyjnym jest użycie narzędzia nmap. Opis tego jak i innych narzędzi (np. skanerów podatności) opiszę na łamach tego bloga wkrótce.
Zero Day Exploit

Szczególnym przypadkiem podatności są tak zwane „Zero Day”. Są to podatności, których nikt nie zgłosił. Zazwyczaj posiadają one wysoki wynik CVSS. Oficjalnie nie posiadamy wiedzy na temat ich istnienia. Są one wykorzystywane w celu kompromitacji systemu lub wiedza o nich sprzedawana osobom zainteresowanym ich użyciem.
Vulnerability Management a nie działania ad hoc

Tak jak wspominałem na początku, Vulnerability Management jest to proces identyfikowania potencjalnych podatności w zabezpieczeniach systemów lub oprogramowaniu. Po wykryciu ich należy je zgłosić a następnie sprawdzić w celu naprawy. Działanie te mają znaczący wpływ na zmniejszenie ryzyka wpływu cyberataków oraz ograniczają powierzchnię ataku. Jeżeli nie dołożymy starań aby ten rodzaj audytu bezpieczeństwa był cykliczny, nie możemy mówić o ciągłości utrzymywania poziomu bezpieczeństwa w naszej organizacji.
Przygotowania
Przed korzystaniem z narzędzi i rozpoczęciem procesu koniecznie zinwentaryzujmy nasze systemy. Uporządkujmy wiedzę na temat naszych systemów abyśmy mogli ew. zawęzić zakres testowanych urządzeń końcowych. Warto podzielić naszą sieć chociaż zgrubnie. Zaoszczędzi nam to czas podczas trwania samych testów. Niektóre segmenty naszej sieci będziemy chcieli sprawdzać częściej niż pozostałe. Powinno to zawsze wynikać z analizy ryzyka. Zinwentaryzowanie naszych systemów również da nam punkt odniesienia i wspomoże w trakcie monitorowania wykonywanego procesu.

Vulnerability Management obejmuje następujące kroki:
- Identyfikacja – Korzystanie z skanerów podatności sieciowych lub poprzez sprawdzenie ręczne potencjalnych luk w systemach oraz nadanie im odpowiedniej wartości (na podstawie CVSS). Zminimalizowanie problemów z tym etapem: Naucz się narzędzi które używa Twoja organizacja. Dowiedz się dokładnie co to jest CVE, CVSS oraz jak potwierdzić wystąpienie podatności.
- Raportowanie – Zgłaszanie tych problemów odpowiednim interesariuszom, aby można było się nimi zająć i ostatecznie rozwiązać. Zminimalizowanie problemów z tym etapem: Właściciel ryzyka nie koniecznie musi być administratorem lub właścicielem systemu. Przed przypisaniem dokładnie dowiedz się kto powinien otrzymać tę informację.
- Naprawa – Naprawienie problemów bezpieczeństwa przez właściciela systemu lub właściciela technicznego, aby podatność w zabezpieczeniach nie była już obecna. Do usuwania luk w zabezpieczeniach można użyć różnych metod, takich jak poprawki zabezpieczeń, rekonfiguracje lub mechanizmy ograniczające zagrożenie.
- Ponowna ocena – skanowanie lub ręczne sprawdzanie, aby upewnić się, że problemy z bezpieczeństwem zostały pomyślnie naprawione. Zminimalizowanie problemów z tym etapem: ZAWSZE sprawdzaj ponownie czy luki zostały naprawione zgodnie z statusem zgłoszenia. Dopiero potem zajmij się samym zgłoszeniem.
Podsumowanie

Vulnerability Management w kontekście technicznym jest podstawowym procesem, który powinien być realizowany w każdym przedsiębiorstwie. Dzięki okresowemu monitorowaniu stanu i ilości podatności w naszych systemach możemy przeprowadzić analizę ryzyka. Pomoże nam to też zminimalizować szansę na skuteczny atak oraz ograniczy jego powierzchnię.
Systemy zawierające informację o podatnościach w naszym przedsiębiorstwie powinny być poddawane szczególnej ochronie.
W następnych artykułach na łamach tego bloga zostaną omówione narzędzia open source, które wspomogą Was w tym zadaniu.
Daj znać w komentarzu czy Ty stosujesz zarządzanie podatnościami w swojej pracy? Jakich narzędzi używasz?
