A finales del año pasado, los creadores de Duqu y Stuxnet intentaron eliminar los rastros de sus actividades. Borraron todos los servidores que usaban desde 2009 e incluso antes. La limpieza El misterio de Duqu: Parte VI (Los servidores de comando y control) se hizo el 20 de octubre.
Desde entonces desaparecieron prácticamente todas las huellas de Duqu. Pero hace varios días, nuestros colegas de Symantec anunciaron que habían encontrado un nuevo controlador en Internet, muy similar a los controladores conocidos de Duqu. Las anteriores modificaciones de los controladores de Duqu se compilaron el 3 de noviembre de 2010 y el 17 de octubre de 2011, y el nuevo controlador se compiló en 23 de febrero de 2012.
Entonces, los autores de Duqu vuelven a la escena después de un descanso de 4 meses.
Duqu regresa
El controlador recien descubierto no incluye nuevas funcionalidades en comparación a sus versiones anteriores. El código contiene apenas unas pequeñas modificaciones, que seguramente se realizaron para evitar la detección de programas antivirus y herramientas de detección, como CrySyS Duqu Toolkit. A continuación ofrecemos una lista de los cambios realizados en relación a las versiones anteriores:
- El código se compiló con distintos parámetros de optimización y/o atributos inline de funciones.
- El tamaño del stub EXE que se inyecta con PNF DLL ha aumentado en 32 bytes.
- La rutina LoadImageNotifyRoutine compara ahora el nombre del módulo con “KERNELL32.DLL” usando una verificación de suma hash en lugar de una sencilla comparación string.
- El tamaño del bloque de configuración codificada aumentó de 428 a 574 bytes. No hay nuevos campos en el bloque, pero aumentó el tamaño del campo del valor del nombre de registro (“FIELD”). Esto ocasiona que el valor del nombre de registro se modifique fácilmente, quizás para un futuro uso.
- Ha cambiado el algoritmo de las dos subrutinas que decodifican el bloque codificado config, el valor de registro y el PNF DLL. Este es el tercer algoritmo conocido usado para codificar las subrutinas de Duqu.
- Ha cambiado el algoritmo de la función hash para los APIs. Todos los valores hash también cambiaron en consecuencia.
Antigua función hash, usada en anteriores versiones del controlador de Duqu:
Nueva función hash:
El hecho de que el nuevo controlador se encontrara en Irán confirma que la mayoría de los incidentes de Duqu tienen relación con este país.
Cantidad de incidentes
Según la información recogida por nuestras fuentes y por nuestros colegas en Symantec, existen al menos 21 incidentes vinculados con Duqu.
Durante la investigación de varios incidentes hemos descubierto más de una modificación de Duqu por incidente. Tratamos cada grupo de muestras como un caso singular.
Varios equipos infectados no contenían los principales módulos de Duqu, pero sí contenían los archivos creados por estos módulos, con nombres que empezaban con “~DQ”, “~DF”, “~DO”. Se descubrieron varios incidentes mientras se analizaban los contenidos de los servidores de control y comando capturados. Estos incidentes también están incluidos en nuestras estadísticas.
La mayoría de las víctimas de Duqu estaban localizadas en Irán.
Distribución geográfica de los incidentes de Duqu
La variedad de actividades de las compañías que cayeron víctimas de Duqu y la información que fue blanco de los troyanos indican que los atacantes buscaban cualquier tipo de información relacionada con la producción de sistemas de control para diferentes industrias en Irán, así como información sobre las relaciones comerciales de determinadas organizaciones.
Sin duda alguna se produjeron más incidentes relacionados con Duqu de los que tenemos conocimiento, pero suponemos que no sobrepasaron algunas docenas.
Modificaciones conocidas de Duqu
El siguiente cuadro contiene información sobre todos los componentes conocidos de Duqu. Los archivos en verde son los conocidos. Los archivos en rojo son los que faltan, pues no se los encontró en los equipos infectados. Sin embargo, conocemos indirectamente los nombres y tamaños de algunos de ellos.
# | Nombre del fichero | Tamano | Fecha | Pais | C&C de primer nivel | C&C de segundo nivel | Descubierto por |
a | cmi4432.sys | 29568 | 03.11.2010 | Hungria | India | Filipinas | Crysys |
cmi4432.pnf | 192512 | 17.07.2011 | |||||
cmi4463.pnf | |||||||
b | jminet7.sys | 24960 | 03.11.2010 | Hungria | India | Filipinas | Crysys |
netp191.pnf | 232448 | 04.11.2010 | |||||
netp192.pnf | |||||||
c | igdkmd16b.sys | 25088 | 03.11.2010 | Iran | Vietnam | Germany | Kaspersky |
netp794.pnf | 232448 | 16.02.2011 | |||||
netq795.pnf | |||||||
c2 | igdkmd16b.sys | 25088 | 17.10.2011 | Iran | Vietnam | Alemania | Kaspersky |
netp794.pnf | 240640 | 18.10.2011 | |||||
netq795.pnf | |||||||
d | iraid18.sys | 24960 | Iran | Kaspersky | |||
ird18.pnf | |||||||
ird182.pnf | |||||||
e | e1g61i32.sys | 24960 | 03.11.2010 | Sudan | Kaspersky | ||
e1g62i32.pnf | 192512 | ||||||
e1g61i32.pnf | |||||||
f | adp95xx.sys | 24960 | 03.11.2010 | Sudan | Paises Bajos | Corea del Sur | Kaspersky |
adp95xx.pnf | 248320 | 17.04.2011 | |||||
adp96xx.pnf | |||||||
g | bpmsg.sys | 24832 | Iran | Kaspersky | |||
main pnf unknown | |||||||
config pnf unknown | |||||||
h | allide1.sys | Europa | Belgica | ? | Symantec | ||
iddr021.pnf | 232448 | 04.11.2010 | |||||
iddr022.pnf | |||||||
i | nfrd965.sys | 24960 | 17.10.2011 | Austria/Indonesia? | Vietnam | ? | VirusTotal/Symantec |
netf1.pnf | 240640 | 18.10.2011 | |||||
netf2.pnf | |||||||
i2 | nfrd965.sys | 24960 | 03.11.2010 | Austria/Indonesia? | Symantec | ||
j | iastor451.sys | 24960 | 03.11.2010 | ?Corea del Sur? | VirusTotal | ||
main pnf unknown | |||||||
config pnf unknown | |||||||
k | adpu321.sys | 24960 | 17.10.2011 | UK | VirusTotal | ||
main pnf unknown | |||||||
config pnf unknown | |||||||
k2 | adpu321.sys | 24960 | 03.11.2010 | ? | systemexplorernet | ||
main pnf unknown | |||||||
config pnf unknown | |||||||
l | jminet1.sys | 24960 | 03.11.2010 | Iran | Kaspersky | ||
netq793.pnf | |||||||
netq794.pnf | |||||||
m | ql50xx.pnf | 24960 | 03.11.2010 | Sudan | Kaspersky | ||
main pnf unknown | |||||||
ql50xz.pnf | |||||||
n | battd.sys | 24960 | 03.11.2010 | Iran | Kaspersky | ||
battd771.pnf | |||||||
battd772.pnf | |||||||
o | mcd9x86.sys | 24320 | 23.02.2012 | Iran | Symantec | ||
main pnf unknown | |||||||
config pnf unknown |
Tenemos un total de 14 controladores, incluyendo un controlador firmado (cmi4432.sys); además, faltan otros cuatro controladores.
Existen siete versiones distintas del módulo principal de Duqu (PNF DLL) en nuestra colección. Estos módulos están diseñados para interactuar con cinco servidores de control y comando de primer nivel que han sido clausurados como resultado de las acciones realizadas por Kaspersky Lab y Symantec. También se clausuraron varios servidores de control y comando de segundo nivel.
Conclusiones
El regreso del troyano Duqu en febrero de 2012, después de cuatro meses de silencio, significa que nuestras suposiciones iniciales eran correctas. Cuando se invierte tanto dinero como se invirtió en Duqu y Stuxnet, resulta imposible simplemente suspender la operación. Por eso los ciberdelincuentes hacen lo que han aprendido con la experiencia: cambiar el código para evitar detecciones, y seguir como de costumbre. Con un total de menos de 50 víctimas en todo el mundo, Duqu sigue siendo el troyano más misterioso jamás visto en Internet. Su enfoque en Irán es signo de un atacante persistente con un objetivo sólido y claro. Su complejidad y múltiples niveles de codificación y ofuscación indican lo importante que es para el proyecto permanecer fuera del alcance de los radares. Podemos asumir que los futuros avances apuntarán en esta dirección.
El misterio de Duqu: Parte diez