Nagy malware adatbázisban végezhető hasonlóságon alapuló keresési eljárás

OData támogatás
Konzulens:
Dr. Bencsáth Boldizsár
Hálózati Rendszerek és Szolgáltatások Tanszék

Malware minták hasonlóságának felfedezése a kétezres évek óta meghatározó kutatási irány az informatikában. A techonológia térhódítása teret nyitott a kiberbunözésnek. Az egyre szaporodó támadások serkentették a védelmi szoftverek fejlodését. A legelterjettebb a szignatúra alapú detekció. A malware készítok varinsok készítésével igyekeznek kikerülni az efféle védelmet. Ez igényt nyitott malware minták hasonlóságának felismerésére.

A minták közötti hasonlóság nagyon sokrétu. A különbség jelentkezhet csupán néhány bájtban vagy akár a bináris teljes tartalmában. Azonban a közös eredetet nehéz eltüntetni, ennek nyoma marad minden hasonló mintában. A nyomok felfedezése nehéz feladat, de koránt sem lehetetlen.

Ennek kézi vizsgálattal való megtalálása nem alkalmazható nagy mintaszám esetén, ezért szükség nyílt automatikus hasonlóság felismero eljásárokra. Nagy áteresztoképesség igény esetén statikus megoldások alkalmazottak. Ha azonban a megbízhatóbb eredmények elérése a cél, dinamikus módszerekhez érdemes folyamkodni. Mivel az én feladatom elsosorban gyorsaságot igényel, ezért csak statikus megoldásokkal foglalkozom.

Gépi tanuláson alapuló megoldások számos indikátort jelöltek ki, melyek kimutatják ha egy program kártékony szándékú. Az efféle módszerek bizonyították, hogy statikus analízissel is elérheto magas megbízhatóság. Analitikus megoldások gyakran kihasználják a fájl meghatározott formátumát. Ezek közt vannak, amik bájtsorozatokon muködnek, és vannak, amiknek szükségük van a program assembly kódjára. Ezen megoldások elsodleges célja minél nagyobb pontosság elérése, a gyors végrehajtás igénye csak második a sorban. Ez alkalmatlanná teszi oket sok mintán történo végrehajtás esetén.

Locality Sensitive Hashing (LSH) módszerek igyekeznek bájtsorozatok hasonlóságát megragadni. A legtöbb ilyen megoldást általánosan tervezték minden fájl típusra, azonban binárisokon való tesztelésükre kevés példa van. A jelenleg legelterjettebb eljárás ezek közül az SSDEEP. Azonban a tesztjeim felfedték ennek hibáit és teljesítményének határait. TLSH és LZJD algoritmusok sokkal fiatalabbak. Mindkettejük pontosabb és megbízhatóbb eredménnyel szolgál, mint az SSDEEP. Sajnos az LZJD lassú hash generálása, nagy összehasonlítási idoigénye, ahogy a hash mérete is, alkalmatlanná teszik nagy adatbázisban

történo alkalmazásra.

A feladatom egy több, mint 300 000 000 mintát tartalmazó malware adatbázis hasonlóságon alapuló keresésének implementálása. Ennek tükrében az SSDEEP-et és a TLSH-t választottam a végso megoldás alapjaként. A végso implementációm képes nagy valószínuséggel hasonló minták adatbázisból való kigyujtésére percek alatt.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.