La idea de infectar firmware no es nueva. Los expertos han explorado esta posibilidad durante años, y las novedades en relación a la NSA haciéndose un festín con los discos duros no hace otra cosa más que confirmar todo lo que habíamos sospechado hasta aquí. Obviamente estamos de acuerdo en que no son rutas de ataque «sencillas», pero los recursos técnicos existen, y el interés es cada vez más amplio. Quien no esté convencido de eso sólo debe hacer una visita a GitHub para descubrir dos nuevas pruebas de concepto. La primera, que reclama prioridad en nuestro título, se llama Jellyfish. En términos sencillos, se trata de un rootkit capaz de infectar el GPU de un ordenador, y permanecer allí aún después de ser apagado. ¿Por qué alguien decidiría infectar a un GPU? En realidad, las razones son bastante buenas.
Además de mantenerse intacto en el hardware, Jellyfish
puede espiar la memoria del CPU a través de DMA, y aprovechar los
recursos del GPU disponibles para operaciones matemáticas. Como si eso
fuera poco, no existe ninguna herramienta de análisis que
verifique la presencia de código malicioso en un GPU. Hasta ahora, las
variantes de malware que buscaban extraer algo del GPU lo hacían
pensando en la minería de criptomonedas,
pero Jellyfish trabaja a un nivel más profundo. Sus requerimientos
técnicos nos hablan de controladores OpenCL, y hardware Nvidia o AMD,
con un soporte limitado para chips Intel con ayuda del SDK de AMD. El
desarrollo de Jellyfish no está completo, y una de sus misiones a futuro
será incorporar un «client listener», que mantendrá los buffers almacenados en el GPU hasta que el servidor de control envíe un paquete para liberarlos.
El segundo malware es un keylogger conocido como Demon, inspirado en un estudio que la Universidad Columbia publicó en el año 2013. La idea aquí es que Demon vigile el buffer del teclado desde el GPU vía DMA, sin depender de clásicos «ganchos» o modificaciones agresivas sobre el código del kernel. Los responsables de Demon y Jellyfish insisten en que no tienen relación con los creadores del estudio de Columbia, y a decir verdad, no es necesario que la tengan para causar ruido. ¿Un GPU espiando y registrando todo lo que escribimos? En mi manual, eso es una pesadilla. Por otro lado, existe la función IOMMU (input/output memory management unit), que entre otras cosas protege a la memoria de acciones extrañas en DMA, aunque no está presente en todo el hardware. Implementar un ataque basado en Jellyfish probablemente sea muy difícil, sin embargo… el código está en GitHub.
Jellyfish: https://github.com/x0r1/jellyfish
Demosn: https://github.com/x0r1/Demon
____________________________________________________
Tomado de: http://www.neoteo.com/jellyfish-un-rootkit-que-infecta-tu-gpu/
Se respetan Derechos de Autor.