Rust ha ganado popularidad por su seguridad de memoria, concurrencia y alto rendimiento ya os habíamos hablado en el pasado sobre esto. Sin embargo, esas mismas virtudes añaden complejidad al análisis de malware, pues los binarios están repletos de código de librería estáticamente enlazado y abstracciones difíciles de desentrañar.
La diferencia es abismal: un programa sencillo en C++ puede ocupar menos de 20 KB y contener menos de 100 funciones; su homólogo en Rust supera los 3 MB y rozar las 10 000 funciones, lo que obliga a los analistas a filtrar manualmente la lógica maliciosa de la rutinaria de librerías.
Para enfrentarse a este reto, Microsoft Threat Intelligence Center ha desarrollado RIFT, liberando el proyecto como código abierto para la comunidad de seguridad informática.
Qué es RIFT y cómo funciona
RIFT es un conjunto de plugins de IDA Pro y scripts en Python que automatizan la detección de código malicioso en binarios Rust. Sus dos métodos de pattern matching permiten identificar funciones de librería y aislar la lógica del atacante.
Componentes principales
RIFT Static Analyzer: plugin que extrae metadata del binario (versión del compilador, dependencias, plataforma) y la guarda en JSON.
RIFT Generator: script Python que descarga el compilador y dependencias, genera firmas FLIRT y lanza el diffing.
RIFT Diff Applier: plugin para aplicar en IDA las firmas y resultados de diffing, etiquetando automáticamente las librerías.
Técnicas de identificación: FLIRT y diffing
FLIRT (Fast Library Identification and Recognition Technology): usa firmas para reconocer funciones estándar con baja tasa de falsos positivos.
Binary diffing: compara el binario objetivo con las librerías compiladas para hallar coincidencias, incluso si han sido modificadas. Aunque tarda horas, cubre los huecos que FLIRT deja abiertos.
Casos de éxito con RIFT
En pruebas con el ransomware RALord, RIFT redujo drásticamente el tiempo dedicado a filtrar funciones de librería, permitiendo a los analistas centrarse en la lógica maliciosa. En otro escenario, con el backdoor SPICA, la combinación de FLIRT y diffing localizó llamadas relevantes que de otro modo pasarían desapercibidas.