Egy új trükk, amellyel a kártevő átcsúszhat a szűrőkön

Egy vírusirtónak vagy EDR megoldásnak először azt kell eldöntenie, hogy bontsa ki és hogyan értelmezze a fájlt, és csak ezután tudja ténylegesen megvizsgálni a tartalmát. A most bemutatásra kerülő „Zombie ZIP” technika éppen ezt a folyamatot használja ki. Eléri, hogy a biztonsági eszköz ne azt vizsgálja, ami valójában a fájlban található.

A módszer alapja egy szándékosan félrevezető ZIP archívum. A fájl fejléce azt állítja, hogy a benne lévő adat nincs tömörítve, miközben a tartalom valójában mégis tömörített. A technika lényege az, hogy a ZIP fájl „Compression Method” mezője 0, vagyis „stored”, miközben a tényleges adat DEFLATE tömörítést használ. A védelem ezért nyers, tömörítetlen adatként próbálhatja ellenőrizni a fájlt, és így csak értelmetlennek tűnő bájtokat lát, nem pedig a valódi payloadot. A támadó eszköze viszont egyszerűen figyelmen kívül hagyja a hibás mezőt, és közvetlenül kibontja a tényleges tartalmat.

Itt nem arról van szó, hogy a támadó újraírja a kártevőt, titkosítja, feldarabolja vagy különösen kifinomult módon rejti el. A GitHubon közzétett PoC szerint „ugyanaz a payload, ugyanazok a bájtok, csak más a konténer”. A szerző egy normál ZIP fájlt és egy manipulált, úgynevezett method mismatch ZIP-et hasonlított össze. A normál archívumban lévő tesztminta több víruskereső motor számára felismerhető volt, míg a Zombie ZIP változatnál a VirusTotal eredményében 98 százalékos elkerülési arány szerepel. Ezek az adatok természetesen a kutató saját méréséből származnak, de arra jól rávilágítanak arra, hogy a módszer nem pusztán elméleti érdekesség.

A támadási modell szempontjából különösen fontos, hogy ez nem egy klasszikus „a felhasználó kicsomagolja, és már fertőződik is” típusú helyzet. A PoC leírása szerint ez inkább egy rejtett átjuttatási, vagyis „smuggling” technika. A támadó a manipulált ZIP-et átküldi egy vagy több biztonsági ellenőrzési ponton, például e-mail gatewayen, hálózati szkenneren vagy végpontvédelmen. A szkenner a fájlt tisztának láthatja, mert a hibás metaadat miatt nem a valódi tartalmat ellenőrzi. Ezután egy külön loader vagy dropper program kinyeri a beágyazott adatot, és a kártékony komponens csak ekkor „materializálódik”. Vagyis a ZIP itt nem maga a végső támadás, hanem a szállítóeszköz.

A CERT/CC a problémát VU#976247 azonosítóval látta el, és a leírás szerint az ilyen hibás ZIP fejlécek hamis negatív eredményekhez vezethetnek a vírusirtók és az EDR rendszerek vizsgálatai során. A bejegyzés szerint a probléma gyökere az, hogy a biztonsági megoldások jellemzően a ZIP metaadatai alapján döntik el, hogyan kell a fájlt előfeldolgozni, és ha a támadó ezt a mezőt manipulálja, a vizsgálat félrecsúszhat. Az olyan ismert eszközök, mint a 7-Zip, az unzip, a bsdtar vagy a Python zipfile modulja megbízik a megadott tömörítési módban, majd CRC vagy „unsupported method” hibával leállhat. A felhasználó ebből könnyen arra következtethet, hogy egyszerűen egy sérült archívummal van dolga.

A Cisco megerősítette, hogy a ClamAV nem tudja megfelelően átvizsgálni ezt a malformed ZIP típust, ugyanakkor ezt nem klasszikus sérülékenységnek, hanem inkább megerősítési, hardening jellegű problémának tekinti.

(github.com)