A YARA halott, éljen a YARA-X!
A Yet Another Ridiculous Acronym (YARA) több mint 15 éve nélkülözhetetlen eszköz a rosszindulatú szoftverek kutatói számára, számos frissítéssel és új funkcióval fejlődik. A YARA egy nyílt forráskódú eszköz, amelyet arra terveztek, hogy segítse a rosszindulatú programok kutatóit a rosszindulatú minták azonosításában és osztályozásában. A YARA lehetővé teszi, hogy szöveges és/vagy bináris minták alapján leírásokat (vagy szabályokat) hozzon létre a rosszindulatú szoftvercsaládok számára. A YARA platformokon átívelő, Linuxon, Windowson és Mac OS X-en fut. Használható parancssori felületén keresztül vagy Python szkriptekből a YARA-Python kiterjesztéssel.
Ez az eszköz a kiberbiztonság világában szabványos eszközzé vált, amelyet a rosszindulatú programok és egyéb fenyegetések jellemzésére és felderítésére használnak. Az eszköz megalkotója, Víctor M. Álvarez, aki jelenleg a Google VirusTotal csapatában dolgozik, elmondta, hogy az eszköz újraírása mellett azért döntöttek, mert jelentős fejlesztéseket kellett végrehajtani, ami mélyreható tervezési változtatásokat igényelt. A Rustot a könnyű karbantarthatóság és az erős megbízhatósági garanciák miatt választották, ahogyan azt az eszköz új fázisáról szóló bejegyzésében kifejti.
A YARA-X a YARA teljesen új implementációja Rust nyelven, és a következő célokat tűzte ki maga elé:
Jobb felhasználói élmény: Az új parancssori felület modernebb és színesebb, a hibajelentések pedig mostantól magyarázatosabbak. A jövőben további, a felhasználói élmény javítását célzó funkciók kerülnek beépítésre.
Szabályszintű kompatibilitás: Bár a 100%-os kompatibilitás elérése nehéz, célunk, hogy a YARA-X 99%-ban kompatibilis legyen a YARA-val szabályszinten. Az inkompatibilitásoknak minimálisnak és alaposan dokumentáltnak kell lenniük.
Javított teljesítmény: A YARA a sebességéről ismert, de bizonyos szabályok, különösen a reguláris kifejezéseket vagy összetett ciklusokat használó szabályok lelassíthatják a rendszert. A YARA-X kiválóan kezeli ezeket a szabályokat, és gyakran jelentősen gyorsabb eredményeket ad. A végső célunk az, hogy a YARA-X minden tekintetben felülmúlja a YARA-t.
Fokozott megbízhatóság és biztonság: A YARA összetettsége a C kódban hibákhoz és biztonsági résekhez vezethet. A YARA-X a Rust segítségével készült, ami nagyobb megbízhatóságot és biztonságot nyújt.
Fejlesztőbarát: Prioritásként kezeljük a más projektekbe való könnyű integrálhatóságot és az egyszerűsített karbantartást. A Python, Golang és C nyelvekhez hivatalos API-kat biztosítunk a zökkenőmentes integráció megkönnyítése érdekében. A YARA-X továbbá kiküszöböli azokat a tervezési hibákat, amelyek miatt a YARA-t kihívást jelentett a karbantartás és a bővítés.
Miért az újraírás?
Szükség volt-e a teljes átírásra az ilyen célok eléréséhez? Ez a kérdés sokáig motoszkált a fejemben, mielőtt a YARA újraírása mellett döntöttem. Az újraírás kockázatos, új hibákat és visszafelé kompatibilitási problémákat okoz, és megduplázza a karbantartási erőfeszítéseket, mivel a régi kód nem tűnik el az új rendszer elindítása után. Valójában a régi rendszer még évekig, ha nem évtizedekig használatban lehet.