Gyanús fájlok fertőtlenítése - víruskergető nélkül

Egy rövid postban szeretnék megemlékezni egy víruskereső és szignatúra nélküli fertőtlenítési módszerről, amely nem csak manuálisan játszható, de a jobb védelmi rendszerek részeként automatikusan is működik, legfeljebb nem tudjuk, hogy ott van és teszi a dolgát.

A Content Disarm and Reconstruction (azaz CDR) olyan malware védelmi vagy remediációs eljárás, amikor a fájlból (manuálisan vagy automatikusan) eltávolításra kerülnek az aktív és beágyazott (veszélyes) elemek.

A CDR egyáltalán nem csodaszer, viszont egyre inkább a fejlett malware-k elleni védekezés eszközévé válik, mivel ahhoz, hogy „lefegyverezzen” egy kártékony kóddal megspékelt állományt, nem kell felismernie, hogy az állományban kártékony kód van.

Ugye, itt van a kutya elásva, évek óta megy a harc a felismerés és a megkerülés (evasion) között, és nem úgy néz ki, hogy a felismerés állna nyerésre – bármit is állítsanak a malware védelmi gyártók brossúrái.

Nem is újkeletű megoldásról van szó, a Symantec email védelmi megoldásában pl. régóta fontos szerepet játszik a „Disarm” funkció, alapvető védelmi funkcióként akkor is jó hatásfokkal egyeli ki a kódokat a fájlokból, ha a vírusvédelmi komponens szerint ártalmatlan tartalomról van szó.

A CDR lényege, hogy nem válogat, az állományból (legyen az dokumentum, kép, videó, zene, stb.) gondolkodás nélkül minden aktív elemet, beágyazott objektumot eltávolít, akkor is, ha az egy kártékony makró (esetleg flash objektum, Java Script, Power Shell kód, bágyazott állomány, stb.) – és akkor is, ha a legtutibb pénzügyes, elszámolós, statisztikai, stb. makróról van szó.

Ez a CDR hátránya, neki teljesen mindegy, mi az aktív vagy beágyazott cucc, mindent „kitöröl” az állományból. Na ez így kicsit pongyola.

A CDR funkció egészen pontosan nem kitörli az aktív tartalmakat, hanem a fájlt szétbontja (tartalom, formátum elemek, stb.), majd a kis részekből újraépíti az eredeti formátumának megfelelően, de az aktív tartalom és az adott formátumban veszélyes elemek és funkciók nélkül.

A CDR tehát nagyon egyszerű és hatékony eszköz az olyan kártékony kódokkal szemben, amelyeket a vírusvédelmi rendszer nem képes szignatúra alapon vagy viselkedés alapján felismerni: ha át is jut a vírusellenőrzésen, a következő lépésben a CDR kapja el az állományt, szétcincálja, majd újra összeépíti az aktív és beágyazott elemek (így a kártékony kódok) nélkül.

Kik motoroznak CDR funkciókkal?

  • A már említett Symantec email védelmi eszközében jó hatásfokkal működik a Disarm funkció (bár azért nem tökéletes – de ugye mi az?)
  • A CheckPoint SandBlast eszköze is CDR funkciókkal operál
  • OPSWAT – a királykategóriában játszik, a CDR funkciók mellett dinamikus fájlkonverziókkal is tud működni (a megvizsgált .docx állományból .pdf állományt csinál, nyilván ezt a szanitizálást semmilyen fertőzés nem képes túlélni), ráadásul akár 20 AV/AM motor is integrálható bele
  • ODIX – szintén durva CDR funkcionalitással rendelkezik, viszont itthon kevésbé ismert technológia
  • Votiro – Az ODIX-hoz hasonlóan a CDR-re fókuszálnak, és szintén kevésbé ismertek itthon.
  • Fortinet – Legalábbis papíron létezik valami ilyen megoldásuk

DocBleach

Aki ki szeretné próbálni, hogyan működik a CDR, vagy esetleg a vírusvédelem számára tiszta, de egyébként humán sejtéssel gyanús dokumentumokat szeretne megtisztítani, annak jó hír, hogy a DocBleach open-source CDR alkalmazás kiválóan használható.

A DocBleach ugyan Python-alapú, viszont voltak olyan rendesek és Windows-on is futtathatóvá tették (Python nélkül).

A Windows változata simán települ és probléma nélkül fut (leszámítva, hogy néha fura hibaüzeneteket ír ki, miközben egyébként működik és teszi a dolgát).

cdr1.png

A PeePDF pdf-vizsgáló eszközzel megnézve az állományt, látható, hogy a 12, 15, 18, 21 objektumok Java Script kódot tartalmaznak.

A 12-es objektumot megnézve látszik, hogy az adott Java Script egy ablakot dob fel (ez csak egy demó állomány, szóval a riogatáson kívül amúgy nem csinál semmit).

Na, engedjük rá a DocBleach programot. 

cdr2.pngSajnos nekem Windows alatt ilyen fura üzeneteket írogat, de ettől még működik (Linux alatt semmi ilyesmit nem írogat ki, szóval a Windows verziónál ezt el kell fogadni). 

Jelen esetben a DocBleach 18 veszélyes hívást és elemet eltávolított, szóval ha megnézzük az állományt belülről, akkor egészen mást kell látnunk, mint az eredeti fájl esetében.

cdr3.png

Látható, hogy a fájl hash-e is megváltozott, hiszen a DocBleach egy új állományt rakott össze, amelyből kihagyta azt a 18 elemet, amelyet veszélyesnek ítélt. A legfontosabb, hogy a Java Script objektumok eltűntek belőle, és a maradék AcroForm is olyan elemre mutat, amely egyébként veszélytelen, és a fájlban elhelyezett képre mutat. 

A DocBleach jó kis eszköz, pláne, hogy ingyen van. Érdemes használni. 

A CDR jövője

A CDR funkciók egyre inkább részei lesznek a fejlett (határ) védelmi eszközöknek, mivel a működéséhez és fejlesztéséhez nem kell sokmilliárd szignatúrát ismerni, viselkedést elemezni, sandboxolni, stb.

A CDR működéséhez csak a fájlformátumokat kell a gyártónak ismernie, és csak azt kell tudnia, hogy az adott fájlformátumon belül (pl. docx, xlsx, pdf, doc, jpg, mp3, stb) milyen veszélyesen IS használható építőelemek vannak, amelyekhez kártékony kódot lehet hozzáfűzni, és amely kódok aztán az adott alkalmazásban el tudnak indulni vagy működésbe tudnak lépni.

Ezt a tudást jóval egyszerűbb naprakészen tartani és az esetleges fájlformátum-változásokat implementálni, mint szenvedni a soha véget nem érő felismerés-megkerülés küzdelemben.

Nyilván a CDR nem fogja leváltani a víruskergetőket, de sebtapasz tud lenni a sok sebből vérző testen.