Aktualizacje¶
Cel artykułu
Celem artykułu jest przekazanie podstawowych informacji na temat aktualizacji oprogramowania. Artykuł został podzielony na dwie główne części.
Pierwsza zawiera trzy sekcje i dotyczy aktualizacji oprogramowania różnych kategorii produktów:
Druga Dobre praktyki przedstawia zbiór kilku dobrych praktych, jakie można zastosować podczas projektowania procesu zarządzania aktualizacjami oprogramowania w organizacji.
Aktualizacje bezpieczeństwa vs uaktualnienie oprogramowania¶
Pojęcie "aktualizacje oprogramowania" można rozumieć na dwa sposoby. Pierwszy dotyczy dostarczenia nowych funkcjonalności do używanego oprogramowania (tzw. uaktualnienie). Drugi dotyczy zabezpieczania oprogramowania przed potencjalnym szkodliwym wykorzystaniem (tzw. aktualizacje bezpieczeństwa czy bardziej kolokwialnie łatanie podatności).
Chociaż zapewnienie nowych funkcjonalności wydaje się ciekawsze, aktualizacje bezpieczeństwa są dużo ważniejsze. Zapewnienie terminowych aktualizacji oprogramowania wymaga pewnego wysiłku, ale ich brak w momencie wystąpienia incydentu bezpieczeństwa może spowodować nieodwracalne konsekwencje.
Od czasu do czasu we wszystkich systemach operacyjnych, niezależnie od producenta i wersji, wykrywane są podatności bezpieczeństwa. Publiczna informacja na temat nowej krytycznej podatności w oprogramowaniu uruchamia proces tworzenia mechanizmów wykorzystania takiej podatności (tzw. Exploit). Wystąpienie podatności umożliwiających zdalne wykonanie kodu w atakowanym systemie czy aplikacji (RCE - Remote Code Execution) pozwala założyć z bardzo dużym prawdopodobieństwem, że taka podatność zostanie następnie masowo wykorzystana w atakach.
Aktualizacje bezpieczeństwa oprogramowania można podzielić na trzy rodziny produktów:
- Oprogramowanie wbudowane w urządzenia
- Systemy operacyjne serwerów i stacji roboczych
- Aplikacje
Aktualizacje systemów wbudowanych¶
W tej kategorii może znaleźć się wiele produktów specjalistycznych jak systemy do monitoringu czy sprzęt PLC (Programmable Logic Controller). Jednak z perspektywy firm i instytucji do tej kategorii można zaliczyć również urządzenia wykorzystywane w komunikacji sieciowej, np. routery, firewalle i bramy VPN. Sprzęt tego typu posiada własne systemy operacyjne oraz uruchomione w tych systemach aplikacje. Zarówno systemy, jak i aplikacje często posiadają podatności bezpieczeństwa. W trakcie cyklu życia takich urządzeń ich producenci cyklicznie udostępniają odpowiednie aktualizacje.
Urządzenia tego typu bardzo często pełnią krytyczne role w środowisku gdyż zapewniają dostęp do wewnętrznej infrastruktury z poziomu Internetu. Ich podstawowym zadaniem jest ochrona zasobów wewnętrznych przed nieautoryzowanym dostępem z zewnątrz. Równie ważne jest to, że same urządzenia także są narażone na ciągłe skanowanie i testowanie ich odporności.
Sygnatury¶
Pierwszą kategorią aktualizacji oprogramowania urządzeń sieciowych mogą być aktualizacje reguł i polityk zarządzania ruchem. Producenci sprzętu skoncentrowanego na bezpieczeństwie sieci (Firewall, VPN) często publikują sygnatury antywirusowe, adresy IP czy nazwy domenowe zakwalifikowane jako szkodliwe. Informacje te mogą zostać wykorzystane przez administratora do monitorowania własnej infrastruktury. Inną kategorią publikowanych danych są reguły i polityki zapór definiowane przez producenta na podstawie znanych zagrożeń. Posiadając odpowiednią licencję instytucja korzystająca z urządzeń danego dostawcy może subskrybować dystrybuowane przez niego informacje w czasie rzeczywistym. Dlatego jeżeli jest to możliwe warto korzystać z tego źródła i uaktualniać bazy sygnatur w czasie korzystania z danego rozwiązania.
Każdy wiodący producent urządzeń sieciowych posiada tego typu rozwiązania. Jako przykład można przytoczyć:
- FortiGuard Labs w połączeniu z FortiGuard Distribution Network (FDN)
- Juniper Advanced Threat Prevention (ATP)
- Palo Alto Networks WildFire w połączeniu z AutoFocus
- Cisco Talos Intelligence Group (Talos feeds)
Firmware¶
Druga kategoria aktualizacji dotyczy oprogramowania samego systemu operacyjnego urządzenia (tzw. Firmware). Nowe podatności bezpieczeństwa co pewien czas znajdowane są w oprogramowaniu praktycznie każdego producenta urządzeń sieciowych. Najbardziej krytyczne prowadzą do możliwości zdalnego wykonania kodu w atakowanym systemie. Wykorzystanie tego typu podatności pozwala atakującemu przejąć całkowitą kontrolę nad takim urządzeniem.
Przerwanie komunikacji
Aktualizacje firmware często wymagają restartu urządzenia, co może spowodować przerwanie komunikacji.
Ryzyko blokady
Błąd i niepowodzenie aktualizacji może spowodować blokadę urządzenia (tzw. Brick Risk).
Dobrą strategią jest wykorzystanie pary urządzeń w trybie HA (High Availability). W tym trybie obydwa urządzenia posiadają zbliżoną konfigurację. Jedno z nich pełni główną rolę (active), przez to urządzenia przechodzi ruch sieciowy. W tym samym czasie drugie, zapasowe (passive) pełni rolę wsparcia.
Taka konfiguracja pozwala w pierwszej kolejności przeprowadzić aktualizację urządzenia passive. Następnie po testach i potwierdzeniu powodzenia procesu aktualizacji można przełączyć urządzenia passive w tryb active i przeprowadzić analogiczny proces aktualizacji na drugim urządzeniu z jednoczesnym zachowaniem komunikacji.
Dokumentacja
Przed rozpoczęciem aktualizacji warto posiadać dokumentację producenta, w której omówiono procedurę resetu, albo obsługi trybu "Recovery".
Weryfikacja
Po aktualizacji warto sprawdzić poprawność konfiguracji (Reguły filtrowania ruchu, weryfikację dostępu czy konfigurację innych usług).
Aktualizacje systemów operacyjnych¶
Jedną z podstawowych zasad bezpieczeństwa dotyczą systemów operacyjnych komputerów jest ich terminowa aktualizacja.
Świadoma organizacja powinna przyjąć założenie, że systemy posiadające podatności bezpieczeństwa na pewno staną się celem ataku. Nawet jeżeli takie systemy nie są dostępne bezpośrednio do Internetu zostaną wykorzystane przez atakujących, którzy uzyskali dostęp do infrastruktury wewnętrznej.
Automatyzacja i centralizacja procesu aktualizacji¶
Automatyzacja pobierania i dystrybucji aktualizacji bezpieczeństwa wewnątrz organizacji wspomaga szybkość ich dostarczania do stacji końcowych. Jednocześnie pozwala obniżyć pasmo sieciowe potrzebne do pobrania oprogramowania. Każdy producent systemów operacyjnych posiada mechanizmy wspierające automatyzację dostarczania aktualizacji.
W środowisku Microsoft Windows do automatyzacji procesu aktualizacji można wykorzystać m. in.:
-
Windows Server Update Service (WSUS)
Usługa uruchomiona na serwerze lokalnym stanowiącym centrum dystrybucji aktualizacji wewnątrz organizacji. Aktualizacje są pobierane na serwer WSUS, a następnie dystrybuowane wewnątrz organizacji. Administrator sam może decydować o poziomie aktualizacji dla poszczególnych stacji. Obecnie usługa nadal działa, ale firma Microsoft jest w trakcie wygaszania jej wsparcia.
-
Microsoft Intune
Usługa oparta o infrastrukturę chmurową do zarządzania stacjami i zasobami w środowisku Windows. Oprócz wielu innych możliwości, system pozwala na zarządzanie aktualizacjami oraz ich automatyczną dystrybucję do maszyn połączonych poprzez Internet.
-
Azure Update Manager
Usługa zarządzania aktualizacjami w środowiskach korzystających z technologii Azure. Pozwala automatyzować dystrybucję aktualizacji zarówno w infrastrukturze chmurowej jak i fizycznej.
Korzystanie z systemów oferujących dłuższy cykl wsparcia¶
Z perspektywy wsparcia aktualizacji warto rozważyć wybór systemów znajdujących się na stosunkowo wczesnym etapie cyklu życia systemu.
Wybór systemu operacyjnego serwera może odbywać się na podstawie wcześniejszych doświadczeń i znajomości danej wersji. W przypadku zakupu licencji po jednej stronie może stać argumentacja, że starsza wersja systemu jest lepiej poznana i przez to łatwiejsza w obsłudze, a wszystkie najgorsze błędy zostały już naprawione. Dodatkowo licencja na starszy system może być tańsza niż jej nowszy odpowiednik. Jednak z drugiej strony wybór nowszej wersji z dłuższym cyklem wsparcia może pomóc w ochronie przed incydentem bezpieczeństwa.
W przypadku serwerów korzystających z systemów z rodziny Linux warto wybierać systemy w wersjach LTS (Long Term Support) zamiast Rolling Releases. Te pierwsze charakteryzują się większą stabilnością przez cały okres wsparcia (liczony w latach). Poza aktualizacjami bezpieczeństwa producenci nie wprowadzają zbyt wielu zmian funkcjonalnych. Wersje Rolling Release nastawione są na ciągły rozwój i w ramach aktualizacji pojawiają się nowe aplikacje, biblioteki i sterowniki, które mogą powodować problemy związane ze stabilnością systemu.
Inwentaryzacja i rotacja przestarzałych systemów¶
Po upływie określonego okresu czasu dostawca każdego produktu przestaje zapewniać wsparcie danego oprogramowania. Prowadzi to do zaprzestania publikacji i dostarczania poprawek bezpieczeństwa pomimo odkrycia nowych podatności. W związku z tym każda instytucja powinna rozważyć wymianę systemów operacyjnych zbliżających się do momentu zakończenia cyklu wsparcia (ang. EOSL - End of Support Life) pomimo ich prawidłowego działania.
Przestarzałe systemy pomimo prawidłowego działania nie powinny być używane produkcyjnie
Zasada ta dotyczy wszystkich rodzajów systemów operacyjnych używanych zarówno w serwerach i stacjach roboczych jak i w systemach wbudowanych.
Wydłużenie wsparcia w zakresie bezpieczeństwa
Microsoft Extended Security Updates ESU Możliwość oferowana przez firmę Microsoft do zapewnienia dodatkowego wsparcia w postaci aktualizacji bezpieczeństwa dla produktów dla których normalne wsparcie zostało już zakończone. Program ten zapewnia dodatkowe wsparcie od daty zakończenia oficjalnego wsparcia systemu jedynie w zakresie aktualizacji bezpieczeństwa bez wsparcia dodatkowych funkcji.
Konieczność stosowania przestarzałych systemów¶
W skrajnych przypadkach w których krytyczne aplikacje i usługi nie mogą działać na nowszych systemach należy takie systemy objąć dodatkowymi mechanizmami zabezpieczeń:
-
Ograniczenie dostępu administracyjnego
Dostęp administracyjny powinien odbywać się przy użyciu dedykowanych poświadczeń innych niż stosowane w pozostałych systemach.
-
Dodatkowa separacja
Dostęp do przestarzałych systemów powinien być maksymalnie ograniczony sieciowo jedynie do wymaganych usług. Warto rozważyć odłączenie przestarzałego systemu od domeny Active Directory. Po przejęciu kontroli nad tym systemem atakujący nie powinien mieć możliwości ataku pozostałych zasobów.
-
Wzmocnienie konfiguracji
Wszystkie niepotrzebne usługi powinny zostać wyłączone. Taki system nie powinien świadczyć żadnych usług, ani posiadać żadnych danych poza wymaganą aplikacją.
Aktualizacje aplikacji¶
Ostatnim elementem na który warto zwrócić uwagę z perspektywy aktualizacji bezpieczeństwa jest oprogramowanie użytkowe i pomocnicze. Bardzo często błędy programistyczne pozwalają na manipulację zachowaniem albo kradzież danych aplikacji. Oprogramowanie uruchomione z podwyższonymi uprawnieniami, które uda się skompromitować przestępcy może umożliwić przejęcie kontroli nad dobrze zabezpieczonym serwerem.
Kategoria aktualizacji oprogramowania jest bardzo szeroka i może obejmować zarówno pojedyncze programy jak i komponenty większych aplikacji. W przypadku maszyny oferującej usługę serwera WWW, poza kodem samego serwisu, należy brać pod uwagę także silnik bazy danych, technologię konteneryzacji czy biblioteki pomocnicze. Wszystkie te elementy mogą być traktowane jak odrębne aplikacje pomimo tego, że składają się na jedną całość.
Aktualizacje poszczególnych części mogą powodować dodatkowe problemy z obsługą zależności, co może wpływać na poprawne działanie całości.
Dodatkowo w przypadku dużych aktualizacji wprowadzających zmiany w głównym wydaniu oprogramowania należy dodatkowo zweryfikować dokumentację zmian wprowadzanych wraz z aktualizacją. Tego typu aktualizacje mogą być oparte o nowe technologie czy biblioteki, a wraz z nimi producent może zmodyfikować dotychczas używane mechanizmy. W takich sytuacjach aktualizacja może wymagać dodatkowych działań wykonanych przed uruchomieniem nowej wersji aplikacji.
Dobre praktyki¶
Niezależnie od kategorii produktu projektując procedury zarządzania procesem aktualizacji oprogramowania warto stosować kilka dobrych praktyk.
Śledzenie informacji¶
Dobrą praktyką jest śledzenie informacji dostarczanych przez producentów oprogramowania i odpowiednio wczesna reakcja na publikowane aktualizacje oraz informacje o planowanym zakończeniu wsparcia.
Dodatkowo warto subskrybować informacje na temat podatności odkrytych w używanym przez instytucję oprogramowaniu. Informacje na temat bezpieczeństwa często są publikowane przez samych producentów oprogramowania jak i przez inne instytucje. Administrator może subskrybować w takich źródłach informacje ściśle powiązane z technologiami jakich używa w swojej infrastrukturze.
Przykład:
- https://msrc.microsoft.com/
- https://www.fortiguard.com/psirt
- https://nvd.nist.gov/vuln/search
- https://cve.mitre.org/cve/search_cve_list.html
- https://moje.cert.pl/komunikaty/?categories=2
Testowanie¶
Z perspektywy aktualizacji oprogramowania testy można rozumieć na dwa sposoby.
- Testy systemów i aplikacji w poszukiwaniu potencjalnych luk, które należy zaktualizować. Może to być zapewnione poprzez inwentaryzację zasobów i weryfikację zainstalowanego oprogramowania. Inną metodą mogą być skanowania wykonane narzędziami automatycznymi (tzw. skanery podatności)
- Testy samych aktualizacji
- Ograniczenie pierwszej partii aktualizowanych serwerów do "grupy kontrolnej" i po weryfikacji poprawności i stabilności ich działania kontynuowanie procesu aktualizacji kolejnej grupy
- Utworzenie dodatkowej instancji systemu czy aplikacji w celu wykonania testów aktualizacji mogących mieć wpływ na działanie wersji produkcyjnej
Opracowanie strategii zarządzania procesem aktualizacji¶
Śledzenie informacji, pobieranie, instalowanie i testowanie aktualizacji oprogramowania na wielu systemach może być wymagające dla zespołu administratorów. Często zespoły muszą w danej chwili ograniczać albo zmieniać kolejność systemów do aktualizacji. Warto wcześniej przygotować strategię usprawniającą cały proces.
Przed aktualizacją¶
Ustalić plan na instalację aktualizacji na podstawie oceny ryzyka. W planie można zawrzeć informacje na temat tego kiedy i jak instalować aktualizacje zależnie od tego jakich systemów dotyczą oraz jakie błędy naprawiają. W ten sposób można nadać priorytet na podstawie indywidualnych wymagań np.:
- Świadczonych usług. W pierwszej kolejności lepiej aktualizować systemy i aplikacje dostępne z zewnątrz niż te z infrastruktury testowej.
- Ważności. Aktualizacja naprawiająca podatność typu RCE może być ważniejsza niż łatająca błędy w logice aplikacji.
- Aktualizacje krytyczne (czy instalować natychmiast, biorąc pod uwagę potencjalny przestój działania systemu czy aplikacji?)
- Aktualizacje cykliczne (czy stosować opóźnienie instalacji "Microsoft Patch Tuesday" o kilka dni w celu weryfikacji?)
W trakcie aktualizacji¶
Jest to moment w którym proces instalacji aktualizacji ma się rozpocząć. Strategia może obejmować kroki jakie zawsze powinny zostać wtedy podjęte np.:
- Przygotowanie dokumentacji producenta oprogramowania
- Wykonanie migawki maszyny wirtualnej
- Wykonanie kopii zapasowej aplikacji, bazy danych czy konfiguracji
- Posiadanie planu odtworzenia kopii w przypadku ewentualnej awarii
Po aktualizacji¶
Dobrą praktyką może być prowadzenie dziennika aktualizacji. Taka dokumentacja może być pomocna w celu diagnostyki awarii systemu czy aplikacji, która mogła być związana z aktualizacją, a wynikła po pewnym czasie. Dodatkowo dziennik aktualizacji może być pomocny w ramach obsługi incydentu bezpieczeństwa. Informacje na temat wersji oprogramowania stosowanych na różnych maszynach w danych okresach czasu mogą pomóc wytypować bądź ograniczyć zakres analizy po wystąpieniu incydentu.
Ostatnia aktualizacja artykułu: 2026-09-02.