Jak aktualizować sterowniki w (teoretycznie) bezpieczny sposób?

Jak aktualizować sterowniki w (teoretycznie) bezpieczny sposób?10.05.2020 00:50
Jak aktualizować sterowniki? (fot. Image by Pixabay)

Powiedzmy to wprost. Szybka odpowiedź na pytanie "jak poprawnie aktualizować sterowniki?" brzmi "nie da się". Jest kilka sposobów, z czego większość jest błędna. Najbardziej oczywistą, a zarazem najmniej wydajną metodą jest wizyta na stronie internetowej producenta i ręczne pobranie paczki z instalatorem sterownika. Wadą tego podejścia jest oczywiście długotrwałość procesu. Ponadto, dostawcy sterowników w paczce EXE ze sterownikiem często serwują tonę dodatkowego śmiecia i nie dla każdego jest oczywiste, co jest "rozbudowanym sterownikiem" i aplikacją pomocniczą, a co jakąś zbędną aplikacją do wyświetlania obok zegarka ikony pełnej zbędnych skrótów do zbędnych czynności.

Nie każdy opanował piwniczną umiejętność ekstrahowania z pakietów instalacyjnych wyłącznie potrzebnych plików, nie z każdym instalatorem jest to możliwe i nie wszyscy producenci dostarczają paczki "mini" (DPInst), zawierające tylko to, co trzeba. Potrzebny jest zatem plan B. Ponieważ nie można z czystym sumieniem polecić instalatorów oferowanych przez producentów (Lenovo Vantage, HP Support Assistant itd), bo one same są ciężkie i zawierają błędy, należy udać się w inne miejsce i jest nim Windows Update.

Mityczny "Single Point of Trust"

Już od ponad dwudziestu lat, Windows Update przechowuje poza aktualizacjami także sterowniki. Obecne w Katalogu Microsoft Update sterowniki pochodzą z programu certyfikacji WHQL i stanowią nie tyle "najnowszą dostępną" ale "najnowszą certyfikowaną przez OEMów" wersję oprogramowania dla danego sprzętu. Rozwój roli Windows Update w kwestii obsługi sprzętu był obraźliwie powolny, bo choć zadebiutowała już w systemie Windows 98, to przez wiele lat pożytek z niej był dość mizerny. Ostatnia dekada, szczególnie w czasach wzrostu popularności Windows 7, dokonała znaczącej zmiany tej tendencji, a nowe urządzenia z Windows 10 aktualizują przez WU nawet firmware chipsetów i UEFI.

Niestety, Windows bardzo rzadko bywa w pełni racjonalny. Podobnie jest i tym razem: nie wszystkie sterowniki są pobierane automatycznie. Na szczęście w większości przypadków, Windows Update pobiera zaktualizowane sterowniki (jeżeli sprzęt przeszedł w ogóle WHQL) gdy w systemie brakuje sterownika w ogóle lub gdy oznaczono obecną wersję jako niebezpieczną. Zakres scenariuszy, w których Aktualizacje Automatyczne jednak proszą Katalog o nową wersje sterownika wydaje się rosnąć, ale wciąż znajdujemy się na etapie, gdy mimo komunikatu "System jest aktualny", losowe kliknięcie w Menedżerze Urządzeń na "Zaktualizuj sterownik" pobierze coś nowego z internetu. Dlaczego? Trudno o jednoznaczną odpowiedź.

Przeklęte działy pobierania

Dlatego wariantem nieco mniej męczącym, niż wędrówka po stronie producenta, jest wyprawa do Menedżera Urządzeń i przeklikanie "Zaktualizuj sterownik". Ma to jedną, niezaprzeczalną zaletę: ta metoda dostarcza certyfikowane sterowniki dla instalatorów i sprzedawców. Powinny być najstabilniejsze. Ma jednak szereg wad. Mniej popularny sprzęt nie otrzyma aktualizacji tą drogą, a oferowane sterowniki rzadko bywają najnowsze i nie zawsze rozwiązują wszystkie problemy z zabezpieczeniami (tylko te najpoważniejsze). No i podobnie, jak przeprawa przez witrynę producenta, jest to ręczna robota.

Gdy producenci, celem rozwiązania tego problemu, oferują Menedżery Pobierania, system operacyjny dostarcza Windows Update. Oba te narzędzia są na swój sposób upośledzone. Menedżery - każdy na swój sposób, natomiast Windows Update musi być zmuszane do tego, gdy zaserwować użytkownikowi komplet opcji. Na Menedżery nie ma rady, ale czy da się coś zrobić z Windows Update? Tak. Programistycznie.

API Windows Update

Funkcjonalność Windows Update jest wyprowadzona do środowiska COM, więc można ją odpytać. Środowisko PowerShell umożliwia stworzenie prostego obiektu zawierającego metody odpytujące Katalog o brakujące w systemie sterowniki. Za pomocą skryptu:


$ss = New-Object -ComObject Microsoft.Update.Session           
$sc = $ss.CreateUpdateSearcher() 
$sc.ServiceID = "7971f918-a847-4430-9279-4a52d1efe18d"
$sc.SearchScope =  1
$sc.ServerSelection = 3
$sr = $sc.Search("IsInstalled=0 and Type='Driver' and ISHidden=0")          
$sr.Updates

...zidentyfikujemy i pobierzemy sterowniki dostępne w Windows Update dla naszego sprzętu. Nie jest to bezpośrednia reimplementacja zachowania Menedżera Urządzeń, który korzysta z nieudokumentowanych wywołań RUNDLL32 i MMC, ale efektycznie powinno prowadzić do tego samego. Niestety, Windows Update nie pozwala definiować dodatkowych repozytoriów ze sterownikami. Jeżeli czegoś nie ma na Windows Update, musimy to upolować sami.

Niniejszą słabość próbują nierzadko pokonać same sterowniki, dorzucając do systemu własne narzędzia aktualizacji. Oprogramowanie wideo od Intela i NVidii (a także... niektóre drukarki i skanery HP) dorzucają do systemu własne aktualizatory, nierzadko pracujące z wysokimi uprawnieniami. Dbając o bezpieczeństwo (wszak dostarczają aktualizacje!), eksponują tak naprawdę nową powierzchnię ataku. Miewają bowiem te same problemy, co ich instalatory, o których mówiliśmy poprzednim razem.

WuMgr
WuMgr

Narzędzia "second party"

Znalezienie optymalnej ścieżki zapewniającej wysokie bezpieczeństwo jest trudne. W idealnym świecie istniałby pojedynczy dostawca zaufanych sterowników, pozwalający zawsze otrzymać najnowszą ich wersję bez dodatkowych narzędzi. Tym dostawcą powinien być, i nigdy w pełni nim nie będzie, Windows Update. Zamiast tego, żyjemy w rzeczywistości, gdzie system aktualizuje tylko kilka sterowników, pozostałe wymagają ręcznego polowania lub polegania na (także niebezpiecznych) menedżerach i aktualizatorach. Istnieją nakładki na Windows Update dodające mu sensu w kwestii sterowników, acz ludzie zazwyczaj i tak korzystają z magazynów sterowników utrzymywanych przez strony trzecie. Trudno z odpowiedzialnością stwierdzić, że można im bezgranicznie ufać.

W dodatku, dzisiejszy sprzęt jest obarczony "terminem przydatności do spożycia". Starsze urządzenia, które są na tyle nowoczesne, że zawierają rozbudowany i potencjalnie niebezpieczny firmware z czasem wypadają ze wsparcia producenta. Gdyby chodziło o system, można by go zmienić na inny. Ale co w przypadku dziesiątek tysięcy komputerów z dziurawym sprzętem, dla którego nikt już nie wyda poprawki? Nikt – czyli producent, bowiem oprogramowanie układowe jest niewolne, więc nie ma szans liczyć na powstanie alternatyw.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.