Az olyan PDF-olvasók, mint az Adobe Reader, számos évtizedes biztonsági résnek adtak ki forrást. Ez azért van, mert a PDF fájl nem csak egy dokumentum - tartalmazhat parancsfájlokat, beágyazott médiát és más megkérdőjelezhető dolgokat.
A PDF fájlok nem csak dokumentumok
A PDF fájlformátum valójában nagyon bonyolult. Számos dolgot tartalmazhat, nem csak szövegeket és képeket, ahogyan elvárható. A PDF számos olyan funkciót támogat, amelyeknek vitathatatlanul nem kellene, és amelyek sok biztonsági rést nyitottak a múltban.
- JavaScript: A PDF-fájlok JavaScript kódot tartalmazhatnak, amely a böngészőben lévő weboldalak által használt nyelvvel azonos. A PDF-fájlok dinamikusak lehetnek, és olyan kódot is futtathatnak, amely módosítja a PDF tartalmát, vagy manipulálja a PDF-megjelenítő funkcióit. Történelmileg sok biztonsági rést okozott a JavaScript-kódot használó PDF-fájlok az Adobe Reader kihasználásához. Az Adobe Reader JavaScript-implementációja tartalmaz még Adobe-specifikus JavaScript API-kat is, amelyek közül egyesek bizonytalanok és kiaknázottak.
- Beágyazott vaku: A PDF-fájlok beágyazott Flash tartalmat tartalmazhatnak. A Flash bármely sebezhetőségét az Adobe Reader kompromittálására is felhasználhatják. 2012. április 10-ig az Adobe Reader tartalmazta saját Flash Player-jét. A legfontosabb Flash Player-ben rögzített biztonsági hibákat hetekig nem lehetett rögzíteni az Adobe Reader mellékelt Flash Player-ben, így a biztonsági lyukak nyitva maradtak a kizsákmányoláshoz. Az Adobe Reader mostantól a rendszeren telepített Flash Playert használja, nem pedig egy belső lejátszót.
- Műveletek indítása: A PDF fájlok képesek voltak parancsokat indítani, miután megjelenítették a megerősítő ablakot. Az Adobe Reader régebbi verzióiban a PDF fájl megpróbálhat veszélyes parancsot indítani, amíg a felhasználó az OK gombra kattintott. Az Adobe Reader most tartalmaz egy feketelistát, amely korlátozza a PDF fájlokat a végrehajtható fájlok elindításáról.
- GoToE: A PDF fájlok beágyazott PDF fájlokat tartalmazhatnak, amelyek titkosítva lehetnek. Amikor a felhasználó betölti a fő PDF fájlt, azonnal betöltheti beágyazott PDF-fájlját. Ez lehetővé teszi a támadók számára, hogy elrejtsék a rosszindulatú PDF fájlokat más PDF-fájlokba, meggátolva a víruskeresőket, megakadályozva ezzel, hogy megvizsgálják a rejtett PDF fájlt.
- Beágyazott médiavezérlők: A Flash mellett a PDF-fájlok történelmileg tartalmazhatnak Windows Media Player, RealPlayer és QuickTime adathordozókat. Ez lehetővé tenné, hogy a PDF kihasználja a beágyazható multimédiás lejátszók biztonsági réseit.
A PDF fájlformátumban számos további funkcióval rendelkezik, amelyek növelik a támadási felületét, beleértve a PDF fájlba ágyazott és a 3D grafikák használatát.
A PDF biztonság javult
Most remélhetőleg megértsétek, hogy az Adobe Reader és a PDF fájlok miért olyan sok biztonsági rést jelentenek. A PDF fájlok egyszerű dokumentumoknak tűnhetnek, de nem szabad megtéveszteni - a felszín alatt sokkal többet lehetne folytatni.
A jó hír az, hogy a PDF biztonság javult. Az Adobe az Adobe Reader X programban egy "Védett mód" nevű sandboxot adott hozzá. Ezzel a PDF-t korlátozott, zárolt környezetben futtatja, ahol csak a számítógép egyes részeire, nem pedig az egész operációs rendszerre van lehetősége. Ez hasonlít ahhoz, ahogyan a Chrome homokozója elkülöníti a weboldalakat a számítógép többi részétől. Ez sokkal több munkát eredményez a támadók számára. Nem csak a PDF-néző biztonsági rését kell találnia - meg kell találnia a biztonsági rést, majd egy második biztonsági rést használ a homokozóban, hogy elkerülje a homokozó helyet, és kárt okozzon a számítógép többi részén. Ez nem lehetetlen, de sokkal kevesebb biztonsági rést fedeztek fel és használtak fel az Adobe Readerben, mivel a homokozó került bevezetésre.
Bár kíváncsiak lennénk, hogy a PDF-k valóban képesek-e mindezen dolgokat elvégezni, a PDF biztonság legalább javult. Ez több, mint azt mondhatjuk a Java plug-in, ami szörnyű, és jelenleg az elsődleges támadási vektor az interneten. A Chrome figyelmezteti Önt, mielőtt Java-tartalmat futtatna, ha a Java beépülő modul is telepítve van.