Jedną z głównych różnic między niedawno odkrytym wirusem Flame a Stuxnetem był fakt, że Flame nie korzystał z kradzionych certyfikatów do podpisywania swojego kodu. Jak się jednak okazuje, jego twórcy znaleźli inny sposób na zmniejszenie wykrywalności.
Zespół Microsoft Security Response Center ogłosił właśnie konieczność odwołania trzech cyfrowych certyfikatów, których ścieżka zaufania prowadzi do Microsoft Certificate Authority. Wydana została pilna poprawka (KB2718704) unieważniająca certyfikaty Microsoft Enforced Licensing Intermediate PCA (w sumie 2) oraz Microsoft Enforced Licensing Registration Authority CA. Co spowodowało tak nagłą reakcję Microsoftu?
Komponenty Flame’a podpisane przez Microsoft?
Pracownicy Microsoftu, pracujący nad analizą wirusa Flame, odkryli, że komponent odpowiedzialny za aktualizacje wirusa został podpisany za pomocą certyfikatu, przypisującego jego autorstwo Microsoftowi. Bez wątpienia takie sygnatury ułatwiały wirusowi uniknięcie wykrycia przez produkty antywirusowe – z definicji pliki podpisane prawidłowym certyfikatem Microsoftu mogły być traktowane jako bardziej zaufane. W przypadku Stuxnetu do podpisania kodu autorzy wirusa użyli wykradzionych certyfikatów. Czy tak też było w przypadku Flame’a?
Skąd te certyfikaty
Śledztwo Microsoftu wykazało, że przyczyną pojawienia się nieautoryzowanych certyfikatów był błąd sprzed wielu lat. Elementem systemu Microsoft Terminal Services jest serwer licencyjny Terminal Services, służący do wydawania licencji dostępowych (CAL). W ramach procesu licencjonowania oprogramowania serwer ten otrzymuje bezpośrednio od Microsoftu swój indywidualny certyfikat podrzędnego urzędu certyfikacji w standardzie X.509, potwierdzający tożsamość posiadacza serwera. Jak się okazało, certyfikat ten umożliwiał podpisywanie dowolnego kodu – w tym również komponentów wirusa.
Microsoft poinformował także, że elementem ataku była kolizja kryptograficzna. Oznacza to, że atakujący mógł wygenerować certyfikat o identycznej sygnaturze jak certyfikat oryginalny. Nie został jednak opisany mechanizm połączenia problemu kolizji z nieprawidłowym certyfikatem Terminal Services.
Reakcja Microsoftu
Choć od nieautoryzowanego podpisania kodu minęło już półtora roku i przestępcy mieli mnóstwo okazji, by wykorzystać odkryty błąd, Microsoft podjął szybkie kroki by zapobiec podobnym sytuacjom w przyszłości. Wszystkie certyfikaty, które mogły być wykorzystane do tworzenia fałszywych podpisów, zostały unieważnione a serwer Terminal Services został tak zmodyfikowany, by uniemożliwić podpisywanie obcego kodu. Nie da się jednak ukryć, że pewien niesmak pozostał…
Komentarze