Egy számlának látszó PDF vagy egy táblázat érkezik a beszállító nevében, a levél szövege rövid és hihető. A levélszűrő ilyenkor először azt nézi, ismeri-e már a fájlt. Ha igen, gyorsan dönt. Ha a fájl még sehol nem fordult elő, a döntéshez meg kell nézni, mit csinál, amikor valaki megnyitja.
A sandbox erre való: egy elszigetelt, eldobható gépen megnyitja a fájlt, és a viselkedéséből ítél. Az alábbiakban végigkövetjük, mi történik a melléklettel a beérkezéstől az ítéletig, hogyan próbálja a kártevő kijátszani az elemzést, és mit nem lát a sandbox akkor sem, ha jól van beállítva.
Miért nem elég a szignatúra-alapú víruskeresés
A szignatúra egy már ismert kártevő ujjlenyomata: a teljes fájl kivonata (hash), egy jellemző bájtsorozat vagy egy mintára illeszkedő szabály. Ha a beérkező fájl egyezik vele, a döntés egyszerű és gyors. A módszer gyengesége is ebből következik, mert csak azt ismeri fel, amit valaki már látott, elemzett és felvett az adatbázisba.
Ugyanazt a kártevőt ezért újracsomagolják vagy titkosítják, így minden kampányban, sokszor minden címzettnél más lesz a hash. A polimorf kártevő minden új példánynál más alakot ölt: másik kulccsal titkosítja magát, és a visszafejtő kódrésze is változik. A célzott támadásnál használt fájl pedig jellemzően sehol máshol nem bukkan fel, ezért szignatúra sem készülhet róla időben.
Gyakori az is, hogy a melléklet maga szinte ártalmatlan. Egy makrós dokumentum vagy egy parancsfájl csak letöltő: megnyitáskor elér egy távoli címet, és onnan húzza le a valódi kártevőt. A fájl statikus vizsgálatakor ebből annyi látszik, hogy van benne egy rövid, esetleg elrejtett kódrészlet. A heurisztikus keresés gyanús szerkezeteket is jelezhet, de hogy a kód futás közben mit tölt le és mit indít, az csak futtatáskor derül ki.
Mit figyel a sandbox a fájl futtatása közben
A sandbox egy elszigetelt elemzőkörnyezet, általában virtuális gép, amely egy hétköznapi munkaállomást utánoz. Az elemzés két szakaszban zajlik.
Statikus előszűrés
Először a fájlt megnyitás nélkül vizsgálja: a valódi fájltípust (a kiterjesztés hazudhat), a beágyazott objektumokat, a makrókat, a csomagolás nyomait és a hivatkozásokat. Ami egyértelműen ismert, jó vagy rossz, itt már eldől. A többi továbbmegy futtatásra.
Dinamikus futtatás
A fájl a típusának megfelelő programmal nyílik meg: a dokumentum szövegszerkesztővel, a PDF olvasóval, a futtatható állomány közvetlenül. Az elemző eközben rögzíti, mi történik a gépen:
- milyen folyamatokat indít, például ha egy szövegszerkesztő parancsértelmezőt vagy szkriptfuttatót hív meg, ami egy számla megnyitásakor nem szokás;
- milyen fájlokat hoz létre, módosít vagy töröl, és elkezd-e tömegesen fájlokat átírni, ami zsarolóvírusra utal;
- beír-e magát az automatikusan induló programok közé, vagy ütemezett feladatot hoz-e létre, hogy újraindítás után is fusson;
- milyen domainneveket kérdez le és milyen címekre kapcsolódik, mert ebből derülhet ki az irányító szerver;
- beinjektál-e kódot egy másik, megbízható folyamat memóriájába, vagy hozzányúl-e a tárolt jelszavakhoz.
Az eredmény
Az elemzés végén a sandbox ítéletet ad, általában kockázati pontszámmal és egy jelentéssel arról, mit látott. A jelentés hasznos része az IoC-lista: a fájl és a letöltött további fájlok hash-ei, a megkeresett domainek és IP-címek. Sok termék a megfigyelt viselkedést a MITRE ATT&CK technikáihoz rendeli, így az incidenskezelő egy közös szótárban látja, mire készült a kártevő.
Kitérési technikák: hogyan próbál a kártevő rejtve maradni
A kártevők írói is ismerik a sandboxot, és sok minta megpróbálja észrevenni, hogy elemzőkörnyezetben fut. Ha erre jut, nem csinál semmit, vagy ártalmatlan programnak adja ki magát, és tiszta ítéletet kap. A MITRE ATT&CK ezt külön technikaként tartja nyilván (T1497, Virtualization/Sandbox Evasion). A leggyakoribb fogások a következők.
A környezet vizsgálata
A minta megnézi, virtuális gépen fut-e: keresi a virtualizációs illesztőprogramokat és szolgáltatásokat, a hálózati kártya gyártói előtagját, a jellemző registry-kulcsokat. Gyanús neki az egy processzormag, a kevés memória, a kicsi lemez és az is, ha a gépnek nincs tartományi tagsága vagy a nyelvi beállítás nem az, amire a támadó számít.
A felhasználó hiánya
Egy valódi gépen mozog az egér, görgetnek a dokumentumban, a böngészőnek van előzménye, a Dokumentumok mappában vannak fájlok. Egy frissen indított elemzőgépen mindez hiányzik. Van olyan dokumentum, amelyben a kód csak akkor indul, ha a felhasználó a második oldalig görget, vagy rákattint egy képre.
Időzítés
Az elemzés néhány percig tart. A kártevő ezért kivár: hosszan alszik, vagy csak a következő újraindítás után, egy adott napon aktiválódik. A sandboxok erre úgy válaszolnak, hogy felgyorsítják az alvó hívásokat, mire a minta a valódi eltelt időt méri, és észreveszi a különbséget.
A rakomány máshol van
Ha a fájl csak letöltő, a valódi kártevőt kiszolgáló szerver dönthet úgy, hogy az elemzőkörnyezet címére ártalmatlan választ küld, vagy csak egy adott ország, egy adott cég címtartományából érkező kérésre ad rakományt. Hasonló megkerülés a jelszóval védett tömörített fájl, amelynek jelszava a levél szövegében áll. Sok levélszűrő kipróbálja a levélben talált jelszavakat, de ha a rendszer nem találja meg vagy nem próbálja ki a jelszót, az archívum tartalmába nem lát bele.
Az elemzőkörnyezetek ezekre valósághű gépképpel, szimulált felhasználói tevékenységgel, hosszabb futtatással és a vendég rendszeren kívülről, a hipervizor szintjéről végzett megfigyeléssel felelnek. Egyes megoldások valódi hardveren is futtatnak, mert ott a virtualizáció nyomai hiányoznak. A versenyfutás ettől nem ér véget, ezért a sandbox ítéletét a többi jelzéssel együtt érdemes kezelni.
Visszatartás vagy azonnali kézbesítés
A dinamikus elemzés időbe telik, egy levélnél jellemzően perceket. Az üzemeltetőnek el kell döntenie, mi történjen a levéllel addig.
Visszatartás az ítéletig
A levél csak a tiszta ítélet után kerül a postafiókba. Ez a biztonságosabb mód, a felhasználó viszont késve kapja meg a mellékletet, és ha sürgős számláról vagy ajánlatról van szó, ezt hamar szóvá teszi. A késést enyhíti, hogy a már elemzett fájlok ítélete gyorsítótárban marad, így ugyanannak a fájlnak a második példánya azonnal átmegy.
Kézbesítés és utólagos visszavonás
A levél azonnal megérkezik, az elemzés a háttérben fut. Ha az ítélet rossz, a rendszer kiveszi a levelet a postafiókból, és riaszt. Ez csak akkor működik, ha a levélszűrő a beérkezés után is hozzáfér a postafiókhoz, és a riasztást valaki kezeli, mert addigra a felhasználó már meg is nyithatta a fájlt.
Tisztított másolat
Köztes megoldás a tartalom-hatástalanítás (Content Disarm and Reconstruction, CDR). A rendszer a dokumentumból eltávolítja az aktív részeket, például a makrókat és a beágyazott objektumokat, és a felhasználó azonnal megkapja az újraépített, tisztított változatot. Az eredeti a sandbox ítélete után kérhető ki.
A gyakorlatban a három mód keveredik: a futtatható fájlok és makrós dokumentumok visszatartást kapnak, a tiszta PDF-ek azonnal mennek, a pénzügyön dolgozók szigorúbb szabályt kapnak, mint a többiek. Webes letöltésnél ugyanez a kérdés: a böngésző vár az ítéletre, vagy a fájl átmegy, és az ítélet a végpontra érkezik.
Az ítélet útja: tűzfal, e-mail-védelem, végpont
Egy sandbox, amely csak jelentést ír, keveset ér. A haszna abból jön, hogy az ítélete visszajut azokra a pontokra, ahol a fájl a hálózatba léphet.
E-mail-védelem
A levélszűrő küldi be a mellékleteket, és sok megoldás a levélben szereplő hivatkozásokat is megnyitja az elemzőkörnyezetben. A hivatkozás mögötti oldal a kézbesítés után is megváltozhat, ezért hasznos a kattintáskori újraellenőrzés: a link átírt formában érkezik, és a rendszer a kattintás pillanatában újra megnézi, hová vezet. Hogy a mellékleten túl mi árulkodik egy adathalász levélről, azt az adathalászatról szóló cikk részletezi.
Tűzfal
A tűzfal a webes és fájlátviteli forgalomból emeli ki a letöltött fájlokat. A forgalom nagy része titkosított, ezért ehhez a tűzfalnak bontania kell a TLS-kapcsolatot, különben a fájlt nem látja. Rossz ítélet után a fájl hash-e tiltólistára kerül, a jelentésben szereplő irányító szerverek címét pedig a tűzfal letilthatja, így egy már fertőzött gép sem tud hazatelefonálni.
Végpont
A végpontvédelem, például egy EDR, két irányban kapcsolódik. Beküldheti a gépen megjelenő ismeretlen fájlt, és fogadja az ítéletet: karanténba teszi a fájlt, és megkeresi azokat a gépeket, ahol a fájl vagy a hozzá tartozó IoC már előfordult. Ez a lépés zárja be a kézbesítés utáni visszavonás hézagát, mert megmutatja, ki nyitotta meg a fájlt, mielőtt az ítélet megszületett.
Amit a sandbox egyszer kiértékelt, azt így a levélszűrő, a tűzfal és a végpont is ismeri, akármelyiken érkezik legközelebb. Érdemes az ítéleteket a SIEM-be is továbbítani, hogy egy incidensvizsgálatnál a fájl útja egy helyen látsszon.
A sandbox korlátai
A sandbox fájlokat és hivatkozásokat vizsgál. Ami ezen kívül esik, azt nem látja, és vannak fájlok, amelyekkel ő sem boldogul.
- A melléklet nélküli támadások. Egy hamis bejelentkezőoldalra mutató link még elkapható, de a csaló utalási kérés, amely csak szöveg, kívül esik a sandbox látókörén.
- A fájl nélküli kártevők. Ha a támadó a gépen már meglévő eszközöket használ, például parancssori szkriptet futtat közvetlenül a memóriából, nincs mit beküldeni. Ezt a végponti viselkedésfigyelés látja.
- A méret- és típuskorlátok. A nagy fájlokat és a nem támogatott formátumokat a rendszerek jellemzően elemzés nélkül engedik át vagy blokkolják. Hogy melyik történik, az beállítás kérdése, és érdemes tudni róla.
- A célzott kitérés. Egy kifejezetten egy szervezetre írt kártevő a fenti technikákkal tiszta ítéletet kaphat.
- Az adatok útja. A felhős sandbox a beküldött dokumentumot a szervezeten kívül elemzi. Szerződéseknél, személyes adatoknál el kell dönteni, mely fájltípusok és feladók mehetnek felhőbe, és hol kell helyi elemzés.
A téves riasztás is üzemeltetési teher. Egy belső fejlesztésű makró vagy egy szokatlanul viselkedő telepítő könnyen rossz ítéletet kap, és ha a kivételeket senki nem kezeli, a felhasználók megtanulják, hogyan kerüljék meg a szűrést.
Kapcsolódó szolgáltatás: Fejlett fenyegetésvédelem (sandbox) →