Dzisiaj porozmawiamy o najnowszym kryzysie PrintNightmare dotyczącym użytkowników systemu Windows i przedstawimy kilka zaleceń dotyczących ochrony komputera. Jest to krytyczna usterka zlokalizowana w kolejce wydruku systemu Windows. Amerykańska Agencja Bezpieczeństwa Cyberbezpieczeństwa i Infrastruktury (CISA) wydała oświadczenie w tej sprawie i od tego czasu wszyscy mówią o czymś innym. Dziś omawiamy tę kwestię od A do Z.
PrintNightmare: Jak to się zaczęło?
Na początku czerwca, 8 czerwca, Microsoft opublikował CVE-2021-1675, zatytułowany „Windows Print Spooler Remote Code Execution Vulnerability”. W tamtym czasie wydawało się, że jest to niewielkie zagrożenie, które zostało zidentyfikowane, zanim zostało wykorzystane i które można łatwo naprawić. Dlatego nie było powodu do obaw.
Następnie główne światowe agencje bezpieczeństwa zaczęły wydawać oświadczenia ostrzegające przed ważną aktualizacją CVE-2021-1675. Wiadomości te zachęcały użytkowników i organizacje do natychmiastowego podjęcia środków w celu ochrony przed tym zagrożeniem. W tym samym czasie Microsoft opublikował lukę CVE-2021-34527, która nosi przydomek PrintNightmare.
Firma Microsoft przypisała kod CVE-2021-34527 do luki umożliwiającej zdalne wykonanie kodu, która dotyczy bufora wydruku systemu Windows. Więcej informacji znajdziesz tutaj: https://t.co/OarPvNCX7O
— Inteligencja zabezpieczeń firmy Microsoft (@MsftSecIntel) 2 lipca 2021
W przeciwieństwie do CVE-2021-1675, który otrzymał ocenę wysokiego ryzyka, PrintNightmare od samego początku zdobył ocenę krytycznej luki, ponieważ umożliwia zdalne wykonanie kodu. Od tego czasu pojawiło się kilka aktualizacji, a Microsoft przez całą dobę pracuje nad tym problemem. W międzyczasie, czekając na ostateczne rozwiązanie, udało nam się również znaleźć kilka zaleceń, aby złagodzić ryzyko.
Co to jest PrintNightmare?
Problem tkwi w funkcji kolejki wydruku Windows, a konkretnie w RpAddPrinterDriverEx(), która, jak sama nazwa wskazuje, umożliwia instalację nowej drukarki w systemie. Chociaż menedżer wydruku nie ogranicza dostępu do niego, każdy uwierzytelniony użytkownik może z niego korzystać zdalnie.
Więc jaki jest problem z możliwością zdalnej instalacji drukarki przez użytkownika i co sprawia, że PrintNightmare jest tak niebezpieczny? Kiedy mówimy o instalacji drukarki, mamy na myśli jej sterownik. Jeśli ktoś może zainstalować sterownik bez uprawnień, może on zawierać wiele złośliwych elementów. W ten sposób atakujący, który uzyska dostęp do systemu i użyje RpAddPrinterDriverEx() do wykonania złośliwego kodu, może zwiększyć uprawnienia, wysłać ładunki do zaatakowanego systemu, a nawet przejąć pełną kontrolę nad komputerem.
Menedżer wydruku jest składnikiem obecnym we wszystkich wersjach systemu Windows, więc firma Microsoft wskazuje, że każda instalacja jego systemu operacyjnego jest podatna na atak przy użyciu PrintNightmare. Dlatego bez względu na wersję systemu Windows, w zasadzie system jest narażony na działanie PrintNightmare i dlatego należy podjąć środki w celu ochrony siebie.
Jak uchronić się przed PrintNightmare?
Istnieje już łatka Microsoftu naprawiająca PrintNightmare, ale prawda jest taka, że nie jest skuteczna.
Ale zanim do tego przejdziemy, powinniśmy pamiętać o tym, o czym wspomnieliśmy na początku, i rozróżnić CVE-2021-1675 i CVE-2021-34527. W przypadku tych pierwszych firma Microsoft wydała już poprawki, które łagodzą określone zagrożenia związane z tą luką. Jednak te poprawki nie rozwiązują problemu związanego z CVE-2021-34527.
Z drugiej strony, zaledwie wczoraj Microsoft wydał łatki dla PrintNightmare dla różnych wersji Windows, w tym tych, które oficjalnie nie są już wspierane:
- KB5004945: Windows 10 20H1, 20H2 i 21H.
- KB5004946: Windows 10 wersja 1909
- KB5004947: Windows 10 w wersji 1809 i Windows Server 2019
- KB5004949: Windows 10 wersja 1803
- KB5004950: Windows 10 wersja 1507
- KB5004951: Windows 7 SP1 i Windows Server 2008 R2 SP1
- KB5004958: Windows 8.1 i Windows Server 2012
- KB5004959: Windows Server 2008 z dodatkiem SP2
Po tych wydaniach zaczęły napływać złe wieści, niektórzy użytkownicy twierdzą, że oficjalna łatka jest niekompletna i nie ma żadnego efektu.
0Patch wypuścił nieoficjalną łatkę, która okazała się skuteczna przeciwko PrintNightmare, ale zastosowanie oficjalnej łaty Microsoftu łagodzi skutki tej opracowanej przez 0patch, więc system jest ponownie podatny na atak oparty na następującym problemie bezpieczeństwa:
Jeśli używasz 0patch przeciwko PrintNightmare, NIE stosuj aktualizacji Windows z 6 lipca! Nie tylko nie naprawia lokalnego wektora ataku, ale także nie naprawia wektora zdalnego. Jednak zmienia localspl.dll, co powoduje, że nasze łatki rozwiązujące problem przestają obowiązywać. https://t.co/osoaxDVCoB
— 0patch (@0patch) 7 lipca 2021
Microsoft stwierdził, że pracuje nad tym problemem, ale w międzyczasie zaleca się, aby nie zezwalać na automatyczną aktualizację systemu Windows, jeśli używana jest poprawka 0patch, ponieważ ochrona oferowana przez poprawkę jest już wystarczająca. Inną możliwością jest wyłączenie usług drukowania, których nie potrzebujesz w każdym systemie. Na przykład serwery, o ile nie są serwerami wydruku, powinny mieć wyłączone te usługi ze względów bezpieczeństwa. A co do punktów końcowych, dokładnie tak samo ogranicz do minimum aktywne usługi związane z drukowaniem, zwłaszcza jeśli mówimy o systemach, z których nigdy nie drukujesz.
Aby sprawdzić aktualny stan usługi kolejki wydruku, będziemy musieli otworzyć konsolę PowerShell i w wierszu poleceń wpisać Get-Service -Name Spooler. W efekcie otrzymamy jego aktualny status. W przypadku, gdy usługa zostanie pokazana jako wyłączona lub wyłączona, nie musimy się martwić, ponieważ drzwi PrintNightmare pozostają zamknięte w tym systemie. W przypadku, gdy usługa jest aktywna, istnieją dwie możliwości, o ile nie mówimy o serwerze wydruku, w którym to przypadku środki te nie mogą być zastosowane, ponieważ usługa przestanie działać.
Pierwsza jest bez wątpienia najbardziej drastyczna i możemy jej użyć tylko wtedy, gdy nigdy nie drukujemy z tego systemu. W tej samej konsoli Powershell, której używamy do sprawdzania stanu usługi, będziemy musieli wpisać następujące polecenia:
Zatrzymaj usługę -Spooler nazwy -Siła
Set-Service -Name Spooler -StartupType Disabled
Pierwsza z nich natychmiast zatrzyma usługę drukowania Windows, natomiast druga zmodyfikuje jej konfigurację, aby nie była ponownie ładowana po ponownym uruchomieniu systemu. Gdy Microsoft wyda poprawkę, która na dobre naprawia PrintNightmare, możesz ją ponownie aktywować za pomocą tego polecenia;
Set-Service -Name Spooler -StartupType włączony
W ten sposób po ponownym uruchomieniu systemu będziesz mógł normalnie drukować z tego systemu.
Druga metoda polega na wyłączeniu w systemie tylko funkcji serwera wydruku. W ten sposób nadal będziesz mógł drukować z systemu, ale nie będzie on już miał funkcji serwera wydruku dla innych komputerów i urządzeń w sieci. Aby to zrobić, musisz uzyskać dostęp do Edytora lokalnych zasad grupy i przejść do opcji Zasady komputera lokalnego> Konfiguracja komputera> Szablony administracyjne> Drukarki i poszukać pozycji Zezwalaj Menedżerowi zadań drukowania na akceptowanie połączeń klientów.
Następnie kliknij go dwukrotnie i sprawdź jego status, który powinien być Wyłączony, aby zapobiec ryzyku PrintNightmare. Jeśli więc jest ustawiony na Nieskonfigurowany lub Włączony, zmień tę wartość i uruchom ponownie system.
Co zrobić, jeśli masz już zainstalowaną łatkę Microsoft dla PrintNightmare?
Możliwe, że zanim to przeczytasz, zainstalowałeś już oficjalną łatkę Microsoftu. Problem polega na tym, że nie rozwiązuje problemu PrintNightmare. W takim przypadku będziesz musiał dokonać zmiany w ustawieniach rejestru systemu Windows. Najszybszym sposobem na to jest otwarcie konsoli (Wiersz polecenia) i wpisanie następującego polecenia:
„HKEY_LOCAL_MACHINE Software Policies Microsoft Windows NT Printers PointAndPrint” / v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 1 /f
Wpisz dokładnie tak, jak pokazano, możesz skopiować i wkleić. Należy pamiętać, że chociaż jest podzielony ze względu na swoją długość, jest to pojedyncze polecenie.
W zasadzie środki te powinny już zapewniać niezbędny poziom bezpieczeństwa, choć prawdą jest, że na opublikowanie przez Microsoft ostatecznego rozwiązania będziemy musieli jeszcze poczekać.