Analýza škodlivých PDF souborů

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: ScheRas
Datum: 25.11.2013
Hodnocení/Hlasovalo: 1.43/21

Portable Document Format je možná vůbec nejrozšířenější formát pro sdílení dokumentů. Je používán jak jednotlivci, tak firmami, ke sdílení katalogů, faktur, knih, prostě všeho, co vás jenom napadne. Velmi oblíben je také mezi kyberzločinci. Pojďme si tedy ukázat nejen to, jak zjistit, jestli je soubor nějakým způsobem škodlivý, ale také to, jak formát PDF vypadá, a nesmíme opomenout ani to, jak se takový škodlivý soubor tvoří.

Tento článek je překladem originálu "Analyzing Malicious PDFs" od Rohita Shawa, který vyšel na webu www.infosecinstitute.com.

Předchozí roky nebyly pro uživatele příliš dobré. Bylo zveřejněno několik kritických zranitelností, například velice populární byl exploit zneužívající buffer overflow v Adobe Readeru do verze 9. Když se útočníkovi podaří dostat zhoubný soubor k uživateli, ať už pomocí sociálního inženýrství či prostým umístěním na internet, stačí ke spuštění škodlivého kódu pouhý akt otevření dokumentu. Většina útočníků pochopitelně poskytne uživateli původní soubor, takže si oběť nějaké neobvyklé aktivity ani nevšimne.

Adobe Reader - nejvíce zneužívaná aplikace - graf
Adobe Reader je vůbec nejzneužívanější aplikace posledních let (http://www.investintech.com/)

Jak jste si pravděpodobně všimli, PDF soubory jsou velice často součástí masových e-mailových kampaní. Tyto kampaně bývají bohužel velice často úspěšné. Abychom se nestali jednou z obětí, měli bychom vědět, jak takový zákeřný soubor odhalit (Někteří možná namítnou, že stačí neotvírat neznáme e-maily, což je sice pravda, ale k takovému dokumentu lze přijít i jinak).

Struktura PDF

Struktura PDF dokumentu

Formát PDF je schopný zobrazovat veliké množství obsahu (statický a dynamický). Dohromady tyto prvky tvoří vizuálně atraktivní, interaktivní a velice přenosný dokument. I když si všichni užíváme výhod, které z těchto funkcí plynou, má to i svou temnější stránku. Dynamický obsah v PDF souborů může totiž skrývat škodlivý obsah, který je často využíván k instalaci malwaru či ke krádežím osobních údajů.

Struktura PDF dokumentu

Základní struktura PDF dokumentu

Objekty, která lze použít v PDF souboru:

(Původní článek se strukturou PDF dokumentu příliš nezabývá, dovolil jsem si ho tedy trošku rozšířit. Pokud chcete vědět o struktuře PDF souborů víc, mohu vás odkázat na článek na wikipedii.)

Vytváření škodlivého PDF

Nejčastěji je škodlivý kód napsaný v JavaScriptu, jelikož lze k exploitaci použít techniku heap sprayingu.

Ve chvíli, kdy oběť otevře nakažený PDF dokument, spustí se JavaScriptový kód, který spustí shell kód a z internetu se stáhne trojský kůň.

K vytvoření zákeřného souboru využijeme JavaScriptovou funkci util.printf(), která způsobí přetečení bufferu.

Vytvoření takové souboru by mohlo vypadat nějak takto:

  1. Otevřeme msfconsoli a spustíme následující příkazy.

  2. Jakmile budeme mít všechny možnosti nastavené tak, jak chceme, můžeme spustit exploit a vytvořit náš škodlivý soubor.

  3. Ještě před tím, než pošleme vytvořený soubor obětí, musíme nastavit listener k přijímání zpětných spojení.

  4. Ve chvíli, kdy oběť otevře PDF dokument, je zřízena relace a my můžeme pomocí meterpreteru přistupovat k systému oběti.

Analýza PDF dokumentu

Analýza PDF souboru zahrnuje přezkoumávání, dekódování a extrahování obsahu podezřelých objektů, které mohou být využity k exploitaci zranitelnosti v Adobe Readeru. Naštěstí nemusíme vše dělat ručně, práci nám ušetří stále se zvětšující počet online a offline analyzérů..

Online analyzéry

Při každém, byť sebemenším, podezření je dobré prozkoumat potenciálně nebezpečné dokumenty některým z mnoha online analyzérů. Ten nahraný škodlivý PDF soubor otestuje na většinu známých exploitů a ihned vrátí výsledek.

Wapewet

Wepawet je služba pro detekci a analýzu webového malwaru. V současné době podporuje nejen formát PDF, ale také Flash či JavaScript. Wepawet je dostupný na adresehttp://wepawet.iseclab.org a pro otestování souboru ho stačí nahrát nebo vložit odkaz na zdroj v internetu.

PDF Examiner

PDF Examiner od Malware Tracker je schopný, podobně jako Wapevet, najít v uploadovaném PDF souboru desítky známých exploitů. Navíc umožňuje uživateli zobrazit si přesnou strukturu dokumentu, což se nám bude velice hodit, pokud budeme chtít nějaký dokument testovat ručně. Nástroj najdete na www.malwaretracker.com.

Offline analyzéry

Pokud chceme PDF dokument testovat ručně, budou se nám hodit následující aplikace.

PDF Stream Dumper

Hned po instalaci PDF Stream Dumperu nahrajeme podezřelý soubor a program ihned začne s analýzou. V pravém sloupci jsou barevně rozlišené různé objekty, například červenou barvou je zvýrazněn JavaScript.

Nástroj, podobně jako ostatní aplikace, dokáže odhalit veliké množství známých exploitů. Pokud chceme náš soubor na tyto exploity otestovat , stačí kliknout na "Exploits scan". V našem škodlivém dokumentu PDF Stream Dumper správně indikuje exploit zranitelnosti CVE-2008-2992.

Peepdf

Peepdf je nástroj napsaný v Pythonu, který slouží k prozkoumání souborů PDF za účelem zjistit, zda je soubor škodlivý či nikoliv. Cílem tohoto nástroje je poskytnout bezpečnostnímu výzkumníkovi všechny potřebné komponenty pro průzkum PDF dokumentů v jedné aplikaci a nahradit tak 3-4 jiné aplikace.

Pojďme tedy analyzovat náš maliciouspdf.pdf.

Pokud PDFko obsahuje nějaké JavaScriptové objekty, je nám k dispozici JS příkaz, který takový objekt podrobí důkladné analýze. V případě, že byl kód navázán na nějaký spustitelný soubor, Peepdf nám zobrazí URl adresu, na které je takový soubor umístěn.

Origami

Origami je Ruby framework navržený k parsování, analýze a vytváření PDF dokumentů. Krom zjištění, jestli se v PDFku škodlivý kód nenachází, nám může pomoci také při vytváření takovýchto zákeřných dokumentů.

Pdfid

Pdfid je nástroj, který nám zprostředkuje velice užitečné informace o PDF souboru. Zejména se pokouší o extrahování informací v hlavičce, jako je například JavaScriptový kód, různé objekty, streamy a podobně. Pdfid nám tedy pomůže zjistit, co se vlastně uvnitř dokumentu děje.

Závěr

V předchozích letech bylo objeveno několik desítek zranitelností a jejich počet se ze dne na den zvětšuje. Z toho vyplývá, že je potřeba před otevřením analyzovat každý PDF soubor, jelikož prostý akt otevření dokumentu může vést ke stažení malwaru z internetu. K analýze je možné použít různé automatické online a offline nástroje. Pro zmenšení pravděpodobnosti kompromitace je vhodné používat alternativní prohlížeče (SumatraPDF, Foxit, PDF XChange), instalovat poslední aktualizace a v Adobe Readeru zakázat spouštění JavaScriptu.

Reference