Analiza luki przegladarce plików PDF Mozilli Firefox

W dniu 6 sierpnia 2015 roku, Fundacja Mozilla wydała aktualizacje zabezpieczeń dla przeglądarki internetowej Firefox, która łata lukę CVE-2015-4495 we wbudowanej przeglądarce plików PDF, PDF.js. Podatność ta pozwala atakującemu na ominięcie polityki obsługi plików (reguły tego samego pochodzenia) i wykonanie skryptu Javascript, który jest interpretowany lokalnie, na komputerze użytkownika. To z kolei, umożliwia napastnikowi odczytywać i zapisywać pliki na urządzeniu lokalnym, jak i wysłać je do zdalnego serwera.

Luka jest wciąż aktywnie wykorzystywana w Internecie, co obliguje użytkowników Firefoksa do natychmiastowej aktualizacji do najnowszej wersji oprogramowania (40.0 w momencie pisania).

W tym artykule prezentujemy analizę dwóch wersji skryptów i opisujemy szczegóły ataków na systemy Windows, Linux i OS X.

Według firmy ESET LiveGrid® telemetry, serwer o adresie IP 185.86.77.48, hostował złośliwy skrypt i był dostępny od 27 lipca 2015 roku. Potwierdzenie możemy znaleźć na jednym z zainfekowanych forów:

Wypowiedź na forum - PDF Mozilli Firefox

(tłumaczenie: Gdy tylko ładuję stronę forum, to automatycznie pobiera mi się plik o rozmiarze 0kb. Wygląda na to, że pochodzi on z /ads.php z serwera 185.86.77.48. Nie wiem co się dzieje. Może już czas najwyższy dokonać upgrade’u oprogramowania tego forum.)

Pracownicy z działu do spraw cyberprzestępczości, z Ministerstwa Spraw Wewnętrznych Ukrainy, którzy bardzo szybko odpowiedzieli na zgłoszenie, potwierdzili, że złośliwy serwer działający na Ukrainie, był dostępny online od 27 lipca 2015.

Według systemów monitorowania zagrożeń ESET, serwer stał się nieaktywny 8 sierpnia 2015 roku.

Skrypt w wersji nr. 1

Użyty kod nie był zaszyfrowany i jest stosunkowo łatwy do analizy. Niemniej jednak, skrypt pokazuje, że napastnicy mieli bardzo dobrą znajomość kodów źródłowych Firefox’a.

Złośliwy skrypt tworzy IFRAME w pustym obiekcie PDF (Blob – binary large object – obiekt przechowujący dane binarne) w kodzie. Gdy Firefox otwiera obiekt PDF za pomocą przeglądarki plików PDF (PDF.js), nowy kod jest wstrzykiwany do IFRAME, co pokazano na poniższym zrzucie:

Exploit script PDF Mozilla Firefox. CVE-2015-4495

Po wykonaniu tego kodu, nowy obiekt „sandboxContext” jest utworzony w ramach „wrappedJSObject”. Funkcja JavaScript jest wpisywana do własności „sandboxContext”. Funkcja ta będzie później wywołana przez kolejny fragment kodu. Wszystkie te kroki prowadzą do skutecznego ominięcia reguły tego samego pochodzenia (same-origin policy – host, port i protokół).

Reguła SOP uniemożliwia dwóm osobnym kontekstom Javascript modyfikację swoich drzew DOM. Powoduje to, że potencjalny agresor, np. zainfekowany serwer, nie może zmodyfikować drzewa DOM innej strony, np. facebook.com, jeśli ofiara otworzyła dwie strony w dwóch oknach lub zakładkach przeglądarki.

Przykład działania pokazany jest poniżej:

Same Origin Policy

Exploit jest niezawodny w działaniu i działa płynnie. Ma jednak pewną wadę. Użytkownicy techniczni na pewno zwrócą uwagę na ostrzeżenie wyświetlane podczas działania skryptu:

Wyświetlanie - PDF Mozilla Firefox

Po udanej eksploatacji błędu, kod przechodzi do części eksfiltracji (ukrycia, przeniknięcia) kodu. Skrypt działa zarówno na platformach Linuxowych i Windowsowych. W Windowsie wyszukuje on pliki konfiguracyjne należące do popularnych klientów FTP, takich jak, np. SmartFTP, FileZilla, klienta SVN, komunikatorów (Psi+ i Pidgin) oraz klienta Amazon S3:

Exploit script PDF Mozilla Firefox

Pliki konfiguracyjne mogą zawierać zapisane loginy i hasła.

Operując w systemach Linux, skrypt wysyła następujące pliki do zdalnego serwera:

  • /etc/passwd
  • /etc/hosts
  • /etc/hostname
  • /etc/issue

Program analizuje również plik /etc/passwd w celu uzyskania katalogów domowych użytkowników w systemie (/home/nazwa_użytkownika). Następnie skrypt przeszukuje te katalogi w celu znalezienia wrażliwych plików, takich jak, np. „.bash_history”. Program działa inteligentnie i unika wyszukiwania plików w katalogach demonów, np. bin, sys, sync.

Exploit script PDF Mozilla Firefox

Malware wysyła następujące pliki na serwer:

  • historia (bash, MySQL, PostgreSQL),
  • pliki konfiguracyjne związane z SSH i klucze autoryzacji,
  • pliki konfiguracyjne oprogramowania dostępu zdalnego – Remmina,
  • pliki konfiguracyjne ftp – FileZilla,
  • konfiguracja PSI+,
  • pliki tekstowe zawierające komendy skryptowe (*.sh) i potencjalne dane uwierzytelniające (pass*.txt).

Jak widać, celem pierwszej wersji złośliwego skryptu było zebranie danych używanych głównie przez webmasterów i administratorów witryn. Pozwoliło to napastnikom na kompromitację poszczególnych witryn internetowych.

Skrypt w wersji nr. 2

Druga (udoskonalona) wersja skryptu powstała w odpowiedzi na wydaną łatkę Mozilli. Napastnicy uważnie śledząc support Firefoxa, zareagowali już dzień po wydanym patch’a. Zarejestrowali dwie, nowe domeny i poprawili działanie skryptu.

Dwie nowe złośliwe domeny to:

  • maxcdnn [.] com (93.115.38.136) i
  • acintcdn [.] net (185.86.77.48).

Należy zauważyć, że drugi adres IP jest taki sam jak ten zastosowany w pierwszym wariancie. Atakujący wybrali takie nazwy domen, ponieważ wyglądają one tak jakby były rozproszonym systemem dostarczania treści do wielu centrów danych i punktów wymiany ruchu w sieci (CDN – content delivery network). Celem CDN jest udostępnianie zawartości o wysokiej dostępności i wydajności końcowym użytkownikom.

Skrypt udoskonalono tak, żeby na platformie Windows zbierał nie tylko pliki konfiguracyjne dla aplikacji, ale również pliki tekstowe zawierające niemal wszystkie kombinacje słów, odnoszące się do plików mogących zawierać jakiekolwiek wrażliwe dane, np. hasła, konta, bitcoiny, karty kredytowe, exploity, certyfikaty, i tak dalej:

Exploit script Windows PDF Mozilla Firefox

Na platformie Linuxowej napastnicy również poprawili skrypt poprzez dodanie nowych plików do zbierania, a także opracowali kod, który działa w systemie operacyjnym Mac OS X:

Exploit script Mac OS X PDF Mozilla Firefox

Niektórzy rosyjskojęzyczni komentatorzy, niewłaściwie porównali ten kod do malware’u Duqu, ponieważ niektóre zmienne w kodzie zawierają tekst “DQ“.

Kopie exploita

Ponieważ exploit jest ogólnie dostępny, a scenariusz ataku bardzo prosty w wykorzystaniu, czyni to skrypt łatwym do użycia przez różne cybernetyczne grupy przestępcze. Badacze z ESET szybko zauważyli znaczną aktywność exploita głównie na stronach dla dorosłych z google-user-cache [.] Com (108.61.205.41)

Kopia złośliwego skryptu robi te same rzeczy co orginał, ale także zbiera dodatkowe pliki:

Exploit script - PDF Mozilla Firefox

Wnioski

Niedawne ataki na Firefoxa są przykładem poważnej luki w zabezpieczeniach oprogramowania. Działanie exploita pokazuje, że programiści piszący malware mieli głęboką wiedzę na temat kodów źródłowych Firefoxa. Jest to również interesujące z innego punktu widzenia, ponieważ w większości przypadków, exploity są używane jako wektor infekcji dla innych trojanów kradnących dane. W tym przypadku jednak, nie było to konieczne, ponieważ program sam był w stanie wykradać poufne pliki z systemów ofiar.

Dodatkowo, exploit zaczął być modyfikowany i używany przez innych agresórów, co jest dość powszechną praktyką w świecie szkodliwego oprogramowania.

ESET wykrywa złośliwe skrypty jako JS/Exploit. Luka została oznaczona jako CVE jak-2015-4495. Zaleca się aktualizację przeglądarki Firefox do najnowszej wersji.

Wewnętrzny czytnik plików PDF Firefoksa można wyłączyć poprzez zmianę ustawień pdfjs.disabled na wartość „true” (about:config).

Oto częściowa lista zainfekowanych serwerów:

http[:]//akipress [.] org/
http[:]//tazabek [.] kg/
http[:]//super [.] kg/
http[:]//rusmmg [.] ru/
http[:]//forum.cs-cart [.] com/
http[:]//searchengines. [.] u/
http[:]//forum.nag [.] ru/

Serwery użyte podczas ataku:
maxcdnn [.] com (93.115.38.136)
acintcdn [.] netto (185.86.77.48)
google-user-cache [.] com (108.61.205.41)

Źródło:
http://www.welivesecurity.com/2015/08/11/firefox-under-fire-anatomy-of-latest-0-day-attack/
Grafika SOP: https://en.wikipedia.org/wiki/Same-origin_policy

Jak oceniasz artykuł?

1 Star2 Stars3 Stars4 Stars5 Stars (5 ocena, średnio: 5,00 na 5)
Loading...

brak komentarzy
Dodaj swoją opinie

Kompetencje

Certyfikat Cisco Certified Network Associate (CCNA) Routing and Switching

Polecamy

VirtualStudy.pl - technologia w zasięgu Internetu

Zasubskrybuj Newsletter

Wyrażam zgodę na otrzymywanie informacji handlowych za pomocą środków komunikacji elektronicznej (zgodnie z Ustawą z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną - Dz. U. Nr 144 poz. 1204.).

autoresponder system powered by FreshMail
 
Przeczytaj poprzedni wpis:
UE naciska na Google. Wydawcy z USA podporządkowani europejskiemu ustawodawcy

Google opublikowało komunikat, z którego wynika, że każdy wydawca reklam w sieci partnerskiej AdSense na świecie powinien w ciągu 2...

Zamknij