Sierpniowa paczka uaktualnień, w skład której wchodzi m.in. KB2918614, wprowadza znaczące zmiany w usłudze „Windows Installer”. Zmiany te dotyczą zachowania sie usługi „Windows Installer”, a dokładniej mechanizmu naprawy pakietu MSI. Poprawka podnosi bezpieczeństwo usługi, poprzez wprowadzenie kontroli uprawnień i komunikatów UAC do mechanizmu naprawy pakietu. Ma to ma na celu uniemożliwienie hakerowi podmiany pakietu MSI, a co za tym idzie wymuszeniu jego naprawy, co w konsekwencji może prowadzić do wykonania spreparowanego kodu i uzyskania wyższych uprawnień w systemie. W zamieszczonym na stronach Microsoftu biuletynie bezpieczeństwa, możemy przeczytać m.in.

This security update resolves a privately disclosed vulnerability in Microsoft Windows. The vulnerability could allow elevation of privilege if an attacker runs a specially crafted application that attempts to repair a previously-installed application. An attacker must have valid logon credentials and be able to log on locally to exploit this vulnerability.

 

W powyższym tekście nie uwzgledniono jednak, wpływu aktualizacji na zachowanie usługi „Windows Installer”. Jak wiadomo, do przeprowadzenia naprawy pakietu MSI, nie są wymagane uprawnienia administracyjne i jest ona wykonywana automatycznie z tzw.”sticky elevation”. Po uaktualnienieniu systemu do KB2918614 sytuacja wygląda odwrotnie, przy każdorazowej naprawie pakietu MSI, wyświetlany jest UAC, wymagający uprawnień administracyjnych w systemie. Nie trzeba chyba tu nikomu wyjaśniać, jak negatywny wpływ ma to na organizacje, w skład których wchodzą setki a nawet tysięce komputerów, na których zainstalowane są pakiety MSI.

 

Opis problemów, które mogą wystąpic po instalacji uaktualnienia KB2918614:

1. Instalacja pakietu MSI zostaje przerwana i wyświetlany jest błąd „The profile for the user is a temporary profile” (Profil użytkownika jest profilem tymczasowym).

Ponadto w logu instalacyjnym zapisywana jest poniższa sekwencja.

SECREPAIR: A general error running CryptAcquireContext / Crypt Provider not initialized. Error:-2146893813

Problem ten może wystapić podczas instalacji pakietów MSI korzystajacych z profili typu „Temporary” (tymczasowy) lub „Mandatory” (obligatoryjny).

 

2. Przy próbie uruchomienia naprawy pakietu MSI, wyświetlany jest UAC proszący o zalogowanie się użytkownika z uprawnieniami administracyjnymi.

User Account Control

Rys.1. User Account Control (UAC)

3. Podczas instalacji aktualizacji typu „Minor Upgrades” wyświetlany jest UAC, proszący o zalogowanie się użytkownika z uprawnieniami administracyjnymi.

 

Rozwiązanie:

1. Pierwszą z możliwości jest deinstalacja KB2918614. Przywróci nam to poprzednią funkcjonalność usługi „Windows Installer”, ale pozostawi opisaną w sierpniwym biuletynie lukę w jej zabezpieczeniach.

2. Drugą z możliwości jest pozostawienie KB2918614 w systemie i dodanie polis wraz z tzw. „białą listą” (white list) pakietów.

Wykonamy to doając do rejestru następujące wpisy:

Do gałęzi rejestru „HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer” dodajemy wpis „SecureRepairPolicy” (typ: REG_DWORD) i przypisujemy mu wartość „2”.

Polisa "SecureRepairPolicy"

 Rys.2. Polisa „SecureRepairPolicy”

Następnie w „HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer” tworzymy nową gałąż o nazwie „SecureRepairWhitelist” i dodajemy „ProductCode” naszego pakietu (typ: REG_SZ).

 "White List" (biała lista) pakietówRys.3. „White List” (biała lista) pakietów

Tzw. GUID – produktu („ProductCode”) znajdziemy w gałęzi „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” lub edytując pakiet MSI przy pomocy np. erytora „Orca” (tabela „Properties”, wiersz „ProductCode”).

Podsumowanie:

Z kilkunastu testów przeprowadzonych na komputerach klienckich i maszynach wirtualnych wynika, że problem ten nie dotyczy wszystkich pakietów zainstalowanych już w systemie lub instalowanych po zaktualizowaniu systemu do KB2918614.  Ma to zwiazek z ich budową (zależności pomędzy „Features” i komponentami). Z kilkudziesięciu przetestowanych pakietów (testowano naprawę pakietów MSI) tylko kilka odmówiło posłuszeństwa i wyświetliło komunikaty UAC proszące o podwyższone uprawnienia administracyjne. Przykładem może być np. „Adobe Reader”. Ze względu na złożoność problemu i uciążliwość generowania wpisów w „białej liście” pakietów, zalecane jest nie instalowanie poprawki KB2918614 na stacjach klienckich.

Be Sociable, Share!