Wirus w obrazku. Pliki SVG wykorzystane jako nośniki złośliwego oprogramowania
Oszuści opracowują coraz ciekawsze metody ataków, a ostatnia kampania, wycelowana w obywateli Kolumbii, wykorzystywała pliki SVG, do tej pory niekojarzone powszechnie z takimi działaniami. Co więcej, za sprawą swojej unikatowości, innowacyjne złośliwe oprogramowanie uniknęło wykrycia przez większość dostępnych antywirusów i dopiero oprogramowanie należącego do Google VirusTotal wykazało, że coś może być na rzeczy.
SVG, czyli Scalable Vector Graphics (pol. skalowalne grafiki wektorowe) to, jak sama nazwa wskazuje, skalowalny format grafiki wektorowej oparty na XML. Pozwala on na opisanie obrazów nie za pomocą pikseli, a za pomocą kształtów, linii oraz krzywych, dzięki czemu podczas powiększania lub pomniejszania grafika nie traci ani na jakości, ani na ostrości. W kontekście opisywanego ataku najistotniejsze jest jednak to, że plik SVG jest w zasadzie opisany za pomocą tekstu – a to oznacza, że można w nim osadzić złośliwe instrukcje.
Pliki SVG wykorzystane jako nośniki złośliwego oprogramowania
Jak wynika z raportu przedstawionego przez firmę VirusTotal, która za pomocą swojego narzędzia Code Insight przeanalizowała plik SVG uznany przez wszystkie antywirusy za bezpieczny, w rzeczywistości był on złośliwym oprogramowaniem podszywającym się pod kolumbijski portal systemu sądownictwa. Osadzona w tym formacie kopia witryny internetowej zawierała nawet animowany pasek postępu pobierania pliku, aczkolwiek stanowił on jedynie przynętę. W tle wykonywany był bowiem skrypt, który wymuszał ściągnięcie na maszynę archiwum ZIP z wirusem. Pełny opis zagrożenia pochodzący z Code Insight prezentuje się następująco:
Ten plik SVG wykonuje osadzony kod JavaScript podczas renderowania. Skrypt dekoduje i wstrzykuje zakodowaną w Base64 stronę phishingową HTML, podszywającą się pod portal kolumbijskiego systemu sądownictwa. Aby oszukać użytkownika, symuluje pobieranie pliku za pomocą paska postępu, podczas gdy w tle dekoduje drugi, duży ciąg znaków Base64, który jest złośliwym archiwum ZIP, i wymusza jego pobranie.
Oczywiście badacze postanowili nie wierzyć na słowo programowi, więc postanowili osobiście przekonać się, czy mówi on prawdę. Uznany za zagrożenie plik SVG został uruchomiony w kontrolowanym środowisku i okazało się, że rzeczywiście wywołuje on fałszywą stronę kolumbijskiego rządu. Na pierwszy rzut oka naprawdę trudno określić, że mamy do czynienia z podróbką, jako że na witrynie zawarte zostały m.in. tokeny zabezpieczające, numery spraw sądowych oraz wszelkie atrybuty kojarzone z oficjalnymi portalami administracji – a wszystko to w obrębie SVG.
Jak się okazało, rzeczona strona rzeczywiście była próbą wyłudzenia danych i, co gorsza, jedynie wierzchołkiem góry lodowej, jakim okazał się problem dotyczący plików SVG ze wstrzykniętym złośliwym kodem. W toku analizy okazało się, że podobnych "grafik" przygotowano znacznie więcej, bowiem ich liczba przekroczyła 40. Charakteryzowały się one marginalnymi zmianami między sobą, niemniej przestępcy zastosowali techniki zaciemniania kodu i nafaszerowali go pozornie bezsensowną paplaniną, aby uniknąć wykrycia fragmentów istotnych w procesie pobrania wirusa na komputer.
Sytuacja ta ukazuje, że nawet obcując z pozornie niegroźnym obrazkami w formacie grafiki wektorowej, musimy zachować czujność. Jeśli chcemy dowiedzieć się więcej na temat odkrycia inżynierów z VirusTotal, szczegółowe informacje w jego kontekście znajdziemy w niniejszym raporcie.
Jakub Dmuchowski, redaktor pcformat.pl