La técnica conocida como «fuzzing» es extremadamente útil para evaluar la integridad de un programa, pero su aplicación en Windows presenta varias dificultades a los expertos. En casos extremos es necesaria la creación de entornos virtuales completos, sin embargo, Tavis Ormandy del Project Zero de Google desarrolló a la herramienta «loadlibrary», que permite a programas nativos de Linux cargar un DLL de Windows y usar sus funciones. A modo de demostración, Ormandy preparó un port del motor de protección integrado a Windows Defender.
Los investigadores de seguridad están peleando una batalla perdida. La falta de auditorías sobre el código sumada a un pésimo control de calidad por parte de las principales compañías del mercado, y la constante amenaza del malware presentan un panorama pesimista. La pregunta no es «cuándo» aparecerá la siguiente vulnerabilidad, sino «cuánto daño» va a causar. WannaCry enseñó una muy dura lección, y honestamente no estamos listos para lo que sigue. Pero esos investigadores no bajan los brazos. Están cada vez más preparados, y crean herramientas con el objetivo de simplificar su trabajo y lograr un mayor alcance. Dentro del Project Zero de Google, el «fuzzing» es muy popular a la hora de evaluar programas, aunquea Windows no hace las cosas muy sencillas que digamos, y Linux cuenta con herramientas más pulidas para implementar esta técnica. Dicho eso, ¿cómo se pueden cargar recursos de Windows dentro de Linux sin preparar un entorno virtual completo?
Tavis Ormandy tiene una respuesta con su flamante «loadlibrary». Tal y como lo sugiere el nombre, loadlibrary permite a programas nativos de Linux cargar e invocar funciones de archivos DLL. Su página oficial en GitHub entrega una amplia cantidad de información explicando su funcionamiento, pero una de las cosas que Ormandy aclara es que loadlibrary no es un reemplazo de Wine o Winelib. Wine ejecuta aplicaciones de Windows completas, y Winelib sirve para hacer ports a Linux de proyectos escritos en C++. Loadlibrary se enfoca de manera exclusiva sobre archivos DLL, y como prueba, Ormandy hizo un port de Windows Defender, o siendo más precisos, su motor de protección.
La efectividad de loadlibrary ya quedó comprobada con el descubrimiento del bug crítico en Windows Defender que Microsoft corrigió a principios de este mes, y básicamente, la idea es que ingenieros y/o expertos en seguridad informática tomen su código para llevar a cabo sus propias «sesiones de tortura» en antivirus y otras herramientas.
La entrada Ingeniero de Google crea port de Windows Defender para Linux se publicó primero en NeoTeo.