Windows: Microsoft ma problem z naprawą dziur w SmartScreen

Choć najpoważniejszą dziurą łataną w Windowsach marcowymi aktualizacjami jest podatność w obsłudze HTTP/3, uwagę zwraca co innego: SmartScreen. To już trzecie podejście do naprawy.

Microsoft ma trudności z naprawą dziur w SmartScreen
Microsoft ma trudności z naprawą dziur w SmartScreen
Źródło zdjęć: © PxHere | 776882
Kamil J. Dudek

Marcowy festiwal aktualizacji Patch Tuesday wygrywa CVE-2023-23392. Złośliwa osoba z sieci może wysłać specjalnie przygotowany pakiet HTTP/3, który zostanie wykonany jako kod na prawach sterownika HTTP.sys. Choć brzmi to jak problem tylko dla Windows Server i to najnowszego (HTTP/3 jest świeże!), dziura znajduje się także w Windows 11. Z HTTP.sys korzysta bowiem PowerShell Remoting.

Jest to jednak mimo wszystko rzadszy scenariusz użycia, niż mechanizm SmartScreen, stosowany do obsługi każdego pobieranego w Windows pliku, oznaczanego przez system jako "pochodzący z internetu". SmartScreen ma na celu blokowanie funkcji, które nie powinny być dostępne dla niezaufanych plików. Korzysta z tego przede wszystkim pakiet Office, ale nie tylko.

Filtry zaufania

Oznaczenie braku zaufania, zwane przewrotnie "Mark-of-the-Web" (MOTW, Znak Sieci), jest aplikowane dla pliku w postaci ukrytego atrybutu (strumienia) NTFS, co oznacza, ze łatka "plik z internetu" podąża za plikiem, gdy jest on kopiowany między katalogami. Musi być zdjęta "ręcznie".

Dalsza część artykułu pod materiałem wideo

SmartScreen, poza sprawdzeniem czy plik jest zaufany, sprawdza też kilka innych rzeczy: czy jego podpis cyfrowy jest poprawny, czy jego typ jest dozwolony i jak często zbliżony plik jest pobierany z internetu. Im więcej podejrzeń dany plik wzbudza w SmartScreen, tym bardziej będzie on ostrzegał użytkownika.

Oznaczenie MOTW można zdjąć albo zignorować, ale SmartScreen bezwarunkowo będzie wyświetlać ostrzeżenie, jeżeli plik ma lewy podpis cyfrowy. Jeżeli jednak plik ma poprawną i wysoce zaufaną sygnaturę, SmartScreen będzie siedzieć cicho.

Byłoby więc wskazane, aby oszukanie SmartScreena było trudne. Niestety, okazało się, że możliwe było zastosowanie wadliwego podpisu w pliku MSI tak, by plik ten został uznany za zaufany i otrzymał błogosławieństwo SmartScreen - niezależnie od pozostałych wyników "reputacji". Słabość tę naprawia CVE-2023-24880.

Ale to już było...?

Z tym, że jak informuje Google (odkrywca luki), jest to wariant tej samej dziury, którą Microsoft już raz załatał. Miało to miejsce w grudniu, w ramach poprawki CVE-2022-44698, o czym wtedy informowaliśmy. Sprawę badał i opisywał Will Dormann, który odkrył że w przypadku plików JS i VBS możliwe jest przekazanie wadliwego podpisu, a SmartScreen nie będzie widział w tym problemu. Microsoft naprawił ten problem, ale tylko częściowo.

Lecz i to nie było jedyną ostatnio słabością w kategorii MOTW/SmartScreen. W listopadzie Microsoft wydał CVE-2022-41091, który miał uczyć filtry, że pliki wypakowane z pobranego ISO powinny dziedziczyć oznaczenie "niebezpieczne" tak samo jak te wypakowane z ZIP. Ponieważ tak się nie działo (a Windows umie dziś montować ISO), przestępcy zaczęli rozprowadzać złośliwe pliki w ISO.

Permanentnie popsute

Jest jednak jeszcze gorzej: domyślne poziomy zaufania dla certyfikatów w Windows są chaotyczne i wywołują niezgodności. Częściowa naprawa problemu z "przemycaniem" treści w już podpisanych plikach sprawiła w 2020 roku, że SmartScreen oprotestowywał instalator programu... Google Chrome. Wiązało się to z naprawą podatności CVE-2020-1464...

...która nie byłaby problemem, gdyby podatność CVE-2013-3900, naprawiona w grudniu 2013 (!!) nie pozostała częściowo otwarta, bowiem ze względu na zgodność, pół roku poźniej Microsoft wycofał się paczką 2915720 z nowych zabezpieczeń. Są dziś opcjonalne. Jeżeli chcemy je włączyć, musimy przygarnąć do Rejestru następujący wpis:

Windows Registry Editor Version 5.00  
[HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]   
"EnableCertPaddingCheck"="1"

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config] 
"EnableCertPaddingCheck"="1"

To zapewne nie ostatnia słabość w SmartScreen. Pozostaje mieć nadzieję, że poza naprawą nowych dziur, Microsoft zacznie poprawnie usuwać te poprzednie. Praktyka pokazuje, że różnie z tym bywa - umyślnie lub nie.

Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl

Jesteś świadkiem próby oszustwa?Poinformuj nas o tym zdarzeniu!

Programy

Zobacz więcej
smartscreenoprogramowanieit.pro
Wybrane dla Ciebie
Komentarze (72)