21 czerwca 2010

Złośliwy kod podpisany za pomocą Authenticode?

Jedną z popularniejszych obecnie technologii podpisywania kodu wykonywalnego jest Microsoft Authenticode. Dzięki odpowiedniemu certyfikatowi użytkownik może dowiedzieć się, kto jest autorem programu (potwierdzić jego autentyczność) oraz zostanie ostrzeżony w razie wykrycia jakichkolwiek nieprawidłowości (podpis z wykorzystaniem certyfikatu wydanego przez nieznane centrum certyfikacji, modyfikacja aplikacji od momentu złożeniu podpisu lub też całkowity brak podpisu). Okazuje się jednak, że coraz częściej mamy do czynienia ze złośliwym kodem, który został podpisany w sposób nie budzący na pierwszy rzut oka żadnych zastrzeżeń!

Specjaliści z firmy F-Secure ostrzegają, że coraz częściej spotykany jest złośliwy kod podpisany za pomocą mechanizmu Authenticode:
Podpisany malware jest oczywiście o wiele bardziej skuteczny z punktu widzenia komputerowych przestępców, jako że nie wyzwala rozmaitych ostrzeżeń i jest generalnie uważany przez użytkowników za godny zaufania. Nic więc dziwnego, że autorzy złośliwych programów starają się swe dzieła podpisywać, jak jednak tego dokonują?

Okazuje się, że istnieje co najmniej kilka sposobów na wykorzystanie mechanizmu Authenticode w niecnym celu, takich jak:
  • wyciągnięcie odpowiednich informacji o certyfikacie z innego, prawidłowego pliku,
  • wykorzystanie podpisu własnego oraz fałszywej nazwy organizacji,
  • podrobienie skrótu MD5,
  • prawidłowe uzyskanie certyfikatu i wykorzystanie go do niecnych celów,
  • kradzież czyjegoś certyfikatu,
  • skorzystanie (ręczne lub automatyczne) z czyjegoś systemu certyfikacyjnego,
Niektóre z powyższych metod pozwalają na utworzenie podpisanego złośliwego kodu, który z pewnością nie wzbudzi żadnych podejrzeń u ogromnej większości użytkowników:
Co ciekawe, istnieją również firmy (np. Digital River), które oferują usługę podpisywania kodu. Trudno się więc dziwić, że powstają setki złośliwych programów podpisanych właśnie przez DR. Więcej szczegółowych informacji na temat wszystkich powyższych metod stosowanych przez autorów niechcianego oraz złośliwego oprogramowania można odnaleźć w prezentacji przygotowanej przez Jarno Niemelä.

Widać więc wyraźnie, że obecne mechanizmy podpisywania oprogramowania są podatne na szereg praktycznych ataków i w żadnym razie nie mogą być traktowane jako ostateczny wyznacznik autentyczności oraz integralności danej aplikacji...

[źródło]