Un estudio presentado [PDF] por los investigadores Zhi Wang, Chaoge Liu, y Xiang Cui han mostrado cómo esta técnica permite incluir malware en una arquitectura como AlexNet. Dicha arquitectura, una red neuronal convolucional (CNN), se compone de millones de parámetros y múltiples capas de neuronas, incluyendo capas «ocultas» totalmente conectadas. El estudio concluye que modificar algunas neuronas no tiene un gran impacto en la precisión del modelo.
Utilizando muestras reales de malware, las pruebas afirman que un modelo de AlexNet con normalización por lotes o «batch normalization» puede incluir hasta 36.9MB de malware en un fichero de modelo de 178MB, perdiendo menos del 1% de la precisión del modelo, pasando inadvertido por el usuario que lo implemente. Esto hace además que sea indetectable por motores de antivirus, aunque esto se debe también al factor de que no hay analistas que hayan desarrollado un framework de detección para este tipo de modelos.
El algoritmo desarrollado por los investigadores para incrustar el malware se basa en leer 3 bytes del mismo cada vez y convertirlos en números flotantes válidos con formato big-endian tras añadir los prefijos adecuados a los bytes. Estos números se convierten en tensores antes de ser incrustados en el modelo. Dado un modelo de red neuronal y una capa, se modifican las neuronas secuencialmente reemplazando los pesos o «weights» y el sesgo o «bias» en cada una. Se utilizan los pesos de cada neurona para almacenar los bytes de malware convertidos y el sesgo para almacenar la longitud y el hash del malware.
En el proceso inverso, para verificar la integridad del malware, el receptor necesita extraer los parámetros de la neurona en cada capa, convertir los parámetros a números flotantes, luego a bytes en formato big-endian y eliminar los prefijos de los bytes para obtener el flujo de bytes binario. Con la longitud almacenada en el «bias» de la primera neurona se puede ensamblar de nuevo el malware. Este proceso de extracción se puede verificar comparando el hash del malware con el hash almacenado en el «bias».
Escenarios de ataque
La presentación de esta técnica no supone un gran riesgo actualmente, dado que se trata más de un ejercicio de esteganografía que de un escenario real que puedan aprovechar los actores maliciosos. En el momento en el que el malware es ensamblado y ejecutado puede seguir siendo detectado mediante técnicas tradicionales como el análisis estático o dinámico.
No obstante, hay que considerar que las redes neuronales también pueden llegar a ser maliciosas. Probablemente en un futuro, con la adopción generalizada de modelos de «machine learning» en el desarrollo de aplicaciones, aparezcan nuevos vectores de ataque que empleen este tipo de técnicas.