Windows 10 i Windows Update: ciekawostki z Łatkowego Wtorku maja
Doczekaliśmy czasów, w których Microsoft wydaje aktualizacje przez GitHuba. Oczywiście, dotyczy to tylko skromnego podzbioru oprogramowania, w tym przypadku .NET Core oraz NNI. To niejedyny interesujący aspekt majowych aktualizacji. Załatano także nieco zaskakujące podatności w obsłudze HTTP oraz wirtualizacji.
12.05.2021 03:15
Łatki opublikowane przez GitHuba dotyczą .NET Core 3.1 i 5.0 oraz wdrożeń opartych o tzw. aplikacje jednoplikowe (single-file application, SFA). To specyficzna metoda kompilacji (a dokładniej publikacji - dotnet publish) polegająca na otrzymaniu produktu składającego się z jednego pliku i niemal żadnych zależności: cały potrzebny framework jest integrowany z plikiem wykonywalnym.
Obniża to koszty przygotowania maszyny-hosta oraz zwiększa przenośność, niosąc za sobą oczywiste wady w postaci rozmiaru. Okazuje się też, że tak wdrożone aplikacje są podatne na wymuszone podniesienie uprawnień. Problem występuje... tylko na Linuksie i macOS.
Klasyka gatunku?
Najpoważniejsze błędy w Windows łatane w tym miesiącu dotyczą OLE, Hyper-V oraz HTTP.sys. Dziury w OLE to już klasyka, wszak OLE, RPC i DCOM to przeszczepy z antycznych czasów i ich zabezpieczenie bez utraty zgodności graniczy z cudem. Ponownie błąd w OLE, wymagający możliwości wdawania się w sieciową interakcję OLE (to nie musi być możliwe), odkrywa ta sama osoba: Yuki Chen.
Potem robi się goręcej: grupa badaczy zidentyfikowała możliwość uszkodzenia pamięci hipernadzorcy, wywołanego z poziomu maszyny-gościa. Odczyt pamięci hosta jest niemożliwy, ale sama próba odczytu arbitralnego adresu przez sterownik jądra (a tym między innymi jest hipernadzorca) to przepis na zawieszenie hosta. To poważny problem związany z niezawodnością: być może bezpieczeństwo nie zostaje naruszone, ale awaria hosta sprawia, że wszystkie hostowane maszyny "spadają".
Luka w obsłudze HTTP
Najpoważniejszy problem dotyczy obsługi HTTP. Pobieżne zapoznanie się z lakoniczną notatką kreśli dość apokaliptyczny scenariusz: wysłanie odpowiednio spreparowanego pakietu pozwala na zdalne wykonanie kodu na maszynie odbiorcy, z uprawnieniami sterownika (najwyższymi). Nie są potrzebne żadne uprawnienia. Maszynę można łatwo zmusić do zreplikowania kodu, więc dziura umożliwia rozplenienie się robaków. Armagedon?
Niekoniecznie. "Obsługa HTTP" oznacza sterownik HTTP.sys. Jest on składnikiem serwera WWW Windows, czyli IIS. Usługa IIS domyślnie nie jest włączona, a w scenariuszach które jej wymagają, nierzadko bywa postawiona za zaporą. Ponadto, dotyczy HTTP.sys jedynie w wersji 19041, czyli wyłącznie najnowszej wersji Windows: 2004/20H2/21H1.
Najwyraźniej rok temu coś mocno popsuto w IIS. Serwer WWW zakłada zazwyczaj wykorzystanie Windows Server, ale 19041 występuje jako Windows Server tylko w wersji Semi-Annual. Te z kolei, często wdrażane przez Azure, aktualizują się same.
To, że nie ma tym razem żadnej spektakularnej katastrofy nie oznacza, że łatane problemy nikogo nie dotyczą. Jest to prawda zarówno w kwestii HTTPS.sys, jak i dziesiątek innych, mniejszych luk łatanych w tym miesiącu. A tak przy okazji - Office 2010 tym razem już nie dostał aktualizacji. Minęło pół roku od formalnego zakończenia wsparcia i tym razem stało się ono faktem.