Analiza zainstalowanego oprogramowania stanowi jeden z kluczowych elementów audytu systemów operacyjnych Windows i Linux. Jej głównym celem jest identyfikacja wszystkich aplikacji w środowisku organizacji oraz ocena ich wpływu na poziom cyberbezpieczeństwa. Audytor sprawdza, czy wykorzystywane oprogramowanie jest zgodne z polityką bezpieczeństwa organizacji, ma aktualne wsparcie producenta, jest regularnie aktualizowane i nie zwiększa niepotrzebnie powierzchni potencjalnego ataku.
Współczesne systemy operacyjne rzadko działają samodzielnie. Na stacjach roboczych i serwerach znajdują się dziesiątki, a nawet setki aplikacji wspierających procesy biznesowe, komunikację, administrację, analizę danych czy zarządzanie urządzeniami. Każda dodatkowa aplikacja wprowadza do systemu nowe biblioteki, usługi, sterowniki oraz procesy, które mogą zawierać podatności bezpieczeństwa lub być niewłaściwie skonfigurowane.
Audyt nie ogranicza się więc jedynie do sporządzenia listy zainstalowanego oprogramowania. W pierwszej kolejności jego celem jest identyfikacja wszystkich wykorzystywanych aplikacji, a następnie ocena, czy każda z nich ma uzasadnienie biznesowe i zapewnia odpowiedni poziom bezpieczeństwa. Ponadto należy sprawdzić, czy oprogramowanie pozostaje objęte wsparciem producenta oraz czy otrzymuje niezbędne aktualizacje. W rezultacie kompleksowa analiza pozwala również określić, czy każda aplikacja jest właściwie zarządzana na poszczególnych etapach całego cyklu życia.
Znaczenie analizy oprogramowania w cyberbezpieczeństwie
Cyberprzestępcy coraz częściej wykorzystują podatności nie w samych systemach operacyjnych, lecz w aplikacjach instalowanych przez użytkowników lub administratorów. Programy biurowe, przeglądarki internetowe, klienty poczty elektronicznej, środowiska Java, platformy .NET, aplikacje do zdalnego dostępu oraz narzędzia administracyjne regularnie stają się celem ataków wykorzystujących znane luki bezpieczeństwa.
Problemem nie jest wyłącznie obecność podatnych aplikacji. Równie niebezpieczne może być pozostawienie w systemie nieużywanego oprogramowania, które nadal uruchamia aktywne usługi lub komponenty podczas startu systemu. Administratorzy często nie aktualizują takich aplikacji, ponieważ nie wiedzą o ich obecności.
Dodatkowym zagrożeniem jest instalowanie oprogramowania spoza oficjalnych źródeł lub bez zgody działu IT. Zjawisko to określamy mianem Shadow IT i stanowi ono istotne wyzwanie dla wielu organizacji. Pracownicy instalują narzędzia ułatwiające codzienną pracę, jednak często dział IT nie ocenia ich pod kątem bezpieczeństwa ani nie obejmuje ich centralnym zarządzaniem.
Analiza zainstalowanego oprogramowania pomaga ograniczyć te zagrożenia poprzez identyfikację nieautoryzowanych, nieaktualnych oraz zbędnych aplikacji.
Zakres kontroli audytowej
Kontrola obejmuje wszystkie aplikacje zainstalowane na serwerach, stacjach roboczych, komputerach administracyjnych oraz urządzeniach zarządzanych przez organizację. Audytor analizuje zarówno programy instalowane lokalnie, jak i komponenty systemowe, biblioteki współdzielone, środowiska uruchomieniowe oraz narzędzia administracyjne.
W środowisku Windows szczególną uwagę należy zwrócić na aplikacje instalowane za pomocą pakietów MSI, plików EXE oraz rozwiązań do centralnego zarządzania oprogramowaniem. W systemach Linux kontrola obejmuje pakiety instalowane z repozytoriów systemowych, aplikacje kompilowane ze źródeł, kontenery oraz oprogramowanie instalowane ręcznie poza systemem zarządzania pakietami.
Audyt powinien również uwzględniać dodatki do przeglądarek internetowych, rozszerzenia środowisk programistycznych, agentów systemów monitorujących, klientów VPN, sterowniki urządzeń oraz aplikacje działające jako usługi systemowe.
Klasyfikacja oprogramowania
Podczas audytu warto podzielić zidentyfikowane aplikacje na grupy, co ułatwia ocenę ryzyka i planowanie działań naprawczych.
Pierwszą grupę stanowi oprogramowanie systemowe, obejmujące komponenty dostarczane wraz z systemem operacyjnym. Należą do niej między innymi biblioteki systemowe, narzędzia administracyjne oraz usługi odpowiedzialne za funkcjonowanie platformy.
Drugą grupę stanowi oprogramowanie biznesowe, które organizacja wykorzystuje do realizacji swoich procesów. W tej kategorii znajdują się przede wszystkim systemy ERP i CRM, aplikacje księgowe, narzędzia projektowe, a także specjalistyczne systemy branżowe. Ze względu na ich znaczenie dla funkcjonowania organizacji, warto zwrócić szczególną uwagę na ich dostępność, aktualność oraz poziom zabezpieczeń.
Kolejną kategorię tworzą aplikacje użytkowników, czyli przede wszystkim pakiety biurowe, przeglądarki internetowe, komunikatory, klienty poczty elektronicznej oraz narzędzia wspomagające codzienną pracę. Z jednej strony ułatwiają one realizację bieżących zadań, z drugiej natomiast mogą zwiększać powierzchnię ataku, dlatego również wymagają regularnej kontroli i aktualizacji.
Szczególnej uwagi wymagają narzędzia administracyjne, aplikacje do zdalnego dostępu, programy umożliwiające wykonywanie poleceń z podwyższonymi uprawnieniami oraz oprogramowanie zabezpieczające. Ich kompromitacja może umożliwić atakującym przejęcie kontroli nad całym środowiskiem.
Co powinien sprawdzić audytor?
Podczas analizy audytor powinien odpowiedzieć na szereg pytań dotyczących zarządzania oprogramowaniem.
Czy organizacja posiada centralny rejestr zainstalowanego oprogramowania?
Wszystkie aplikacje są objęte procesem zarządzania wersjami?
Czy wykorzystywane oprogramowanie posiada aktywne wsparcie producenta?
Regularne aktualizowanie aplikacji?
Czy instalacja nowego oprogramowania wymaga zgody administratora lub właściciela systemu?
Samodzielna instalacja aplikacji?
Czy organizacja kontroluje wykorzystanie oprogramowania typu freeware oraz open source?
Przegląd nieużywanych oraz niewspieranych wersji aplikacji?
Czy prowadzone są okresowe przeglądy zainstalowanego oprogramowania?
Czy istnieje proces oceny bezpieczeństwa nowych aplikacji przed ich wdrożeniem?
Metody prowadzenia kontroli
Pierwszym etapem jest zebranie pełnej listy aplikacji zainstalowanych na wszystkich systemach objętych audytem. W dużych środowiskach wykorzystuje się do tego narzędzia klasy Endpoint Management lub systemy CMDB.
Następnie należy porównać uzyskane informacje z listą oprogramowania dopuszczonego do stosowania w organizacji. Pozwala to wykryć aplikacje instalowane bez autoryzacji oraz programy pozostające poza procesem zarządzania.
Kolejnym krokiem jest analiza wersji poszczególnych aplikacji oraz ich zgodności z aktualnym stanem publikowanym przez producentów. Audytor powinien zweryfikować, czy organizacja monitoruje komunikaty dotyczące podatności oraz czy posiada proces wdrażania aktualizacji aplikacji.
Warto również przeanalizować wykorzystanie oprogramowania. Często okazuje się, że część aplikacji nie była uruchamiana od wielu miesięcy, mimo że nadal pozostaje zainstalowana i może stanowić źródło podatności.
Narzędzia wykorzystywane podczas kontroli
Do analizy zainstalowanego oprogramowania wykorzystuje się wiele narzędzi administracyjnych oraz rozwiązań klasy Endpoint Management.
W środowiskach Windows najczęściej stosowane są:
- Microsoft Intune,
- Microsoft Configuration Manager,
- PowerShell,
- Windows Management Instrumentation (WMI),
- Microsoft Defender Vulnerability Management,
- Sysinternals Suite.
W systemach Linux wykorzystywane są między innymi:
- APT,
- DNF,
- YUM,
- RPM,
- dpkg,
- Snap,
- Flatpak,
- osquery,
- OpenSCAP,
- Lynis.
Do identyfikacji podatnych aplikacji często wykorzystuje się również platformy zarządzania podatnościami, takie jak Qualys VMDR, Nessus, Rapid7 InsightVM czy OpenVAS.
Typowe niezgodności wykrywane podczas audytu
Jednym z najczęściej spotykanych problemów jest obecność dużej liczby nieużywanych aplikacji pozostawionych po zakończonych projektach lub zmianach organizacyjnych. Programy te nie są aktualizowane, nie posiadają właściciela i często zawierają znane podatności bezpieczeństwa.
Audytorzy regularnie identyfikują również wiele różnych wersji tej samej aplikacji funkcjonujących równolegle w organizacji. Powoduje to trudności w zarządzaniu poprawkami oraz zwiększa ryzyko wykorzystania starszych, podatnych wersji.
Częstą niezgodnością jest również instalowanie aplikacji przez użytkowników bez zgody administratorów. Dotyczy to przede wszystkim komunikatorów internetowych, narzędzi do współdzielenia plików, programów do zdalnego dostępu oraz bezpłatnych aplikacji pobieranych z Internetu.
W środowiskach serwerowych spotykanym problemem jest instalowanie pakietów „na zapas”, mimo że nie są wykorzystywane przez żadne usługi. Każdy dodatkowy komponent zwiększa powierzchnię ataku i komplikuje proces zarządzania aktualizacjami.
Ocena ryzyka
Niekontrolowane oprogramowanie zwiększa ryzyko wystąpienia incydentów bezpieczeństwa. Aplikacje niewspierane, nieaktualne lub pochodzące spoza oficjalnych źródeł mogą zawierać podatności umożliwiające wykonanie złośliwego kodu, eskalację uprawnień lub wyciek danych.
Ryzyko należy oceniać na podstawie funkcji aplikacji, poziomu uprawnień, liczby użytkowników, częstotliwości aktualizacji oraz dostępności publicznych informacji o podatnościach. Szczególną uwagę należy poświęcić aplikacjom wykorzystywanym do administracji systemami, zdalnego dostępu oraz przetwarzania danych wrażliwych.
Rekomendowane działania naprawcze
Organizacja powinna wdrożyć centralny proces zarządzania oprogramowaniem, który obejmuje cały cykl życia aplikacji – od oceny przed wdrożeniem, przez eksploatację i aktualizacje, aż po bezpieczne wycofanie z użycia.
Należy opracować katalog dopuszczonego oprogramowania (Application Allow List), który określa aplikacje zatwierdzone do stosowania w organizacji. Instalacja nowych programów powinna wymagać uzasadnienia biznesowego, oceny bezpieczeństwa oraz akceptacji odpowiednich osób.
Regularne przeglądy zainstalowanego oprogramowania powinny umożliwiać identyfikację aplikacji zbędnych, nieaktualnych lub niewspieranych. Programy, których organizacja już nie wykorzystuje, należy usuwać z systemów, ograniczając w ten sposób powierzchnię ataku.
Dobrą praktyką jest również wdrożenie mechanizmów Application Control lub Application Whitelisting, które pozwalają uruchamiać wyłącznie zatwierdzone aplikacje. Takie rozwiązanie znacząco ogranicza ryzyko instalacji nieautoryzowanego oprogramowania oraz uruchamiania złośliwego kodu.
Powiązanie z normami i dobrymi praktykami
Kontrola zainstalowanego oprogramowania wspiera realizację wymagań dotyczących zarządzania aktywami, bezpiecznej konfiguracji oraz zarządzania podatnościami określonych w normie ISO/IEC 27001:2022. Jest zgodna z funkcjami Identify i Protect w NIST Cybersecurity Framework 2.0 oraz z wymaganiami CIS Controls v8, dotyczącymi zarządzania oprogramowaniem przedsiębiorstwa (Inventory and Control of Software Assets) i ochrony przed nieautoryzowanym oprogramowaniem. Kontrola ta wpisuje się również w wymagania wielu regulacji sektorowych, które nakładają obowiązek utrzymywania aktualnego i bezpiecznego środowiska aplikacyjnego.
Podsumowanie
Analiza zainstalowanego oprogramowania to znacznie więcej niż sporządzenie listy aplikacji obecnych w systemie operacyjnym. Proces ten pozwala ocenić rzeczywistą powierzchnię ataku organizacji oraz zidentyfikować komponenty, które mogą stanowić źródło podatności lub powodować niezgodność z polityką bezpieczeństwa.
Dojrzała organizacja powinna znać wykorzystywane oprogramowanie, jego właścicieli, wersje oraz status wsparcia producenta. Równie istotne są procedury zatwierdzania nowych aplikacji, regularnych przeglądów oraz usuwania programów, z których organizacja już nie korzysta. Ograniczenie liczby zbędnych aplikacji zmniejsza powierzchnię ataku, upraszcza zarządzanie aktualizacjami i zwiększa odporność środowiska na współczesne zagrożenia.
W następnym podrozdziale omówię kontrolę usług uruchamianych wraz z systemem. Jej celem jest identyfikacja niepotrzebnych procesów i usług zwiększających ryzyko naruszenia bezpieczeństwa oraz ocena poprawności ich konfiguracji.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).