Llegamos a ustedes gracias a:



Reportajes y análisis

Stuxnet: El hito en la ciberguerra

[11/09/2012] Mucho se ha dicho sobre la ciberguerra, pero hasta que se produjo el ataque de Stuxnet no teníamos en claro lo realmente destructiva que podía llegar a ser. Efectivamente, Stuxnet se encuentra en camino de convertirse en el hito que podría ejemplificar lo que se puede hacer a un país adversario, sin soltar una sola bomba y sin disparar una sola bala siquiera.
En el 2010 se supo que este malware pudo retrasar el programa de enriquecimiento de uranio de Irán al infectar los sistemas informáticos que lo controlaban. Para hacerlo, se valió de una serie de recursos informáticos y no informáticos que dieron como resultado una exitosa operación de ciberguerra. Mauricio Velazco, application security leader for Latin America de Equifax, expuso detalladamente el desarrollo de esta operación en la pasada conferencia Cyber Security.
El ataque
Stuxnet es un malware creado por Estados Unidos e Israel para atacar la central nuclear de Natanz en Irán. En el 2006 se inició con el nombre código de Olympic Games; la administración Bush inició la creación de este malware y la de Obama la mantuvo, sostuvo Velazco al inicio de su conferencia.
Lo anecdótico, señala el ejecutivo, es que la intención de estos gobiernos no fue -quizás- dejar que se conociera el malware que habían creado pero, como muchas cosas en la Red, no pudieron controlar que se diseminara más allá de sus objetivos iniciales.
En julio del 2010 el malware fue detectado gracias a que una casa antivirus (VirusBlokada) de Bielorrusia se dio cuenta de su presencia en las máquinas de sus clientes. Stuxnet había infectado a más de 130 mil máquinas en el mundo, aunque el 60% de ellas se encontraban en Irán. Lo particular de este malware era que fue el primer caso en el que se infectaban sistemas industriales.
Cuando se analiza el malware se descubre que éste está explotando una vulnerabilidad cero day, algo no muy común. Esta vulnerabilidad fue la que posteriormente se conoció como MS10-046, que es el código con el Microsoft reconoce esta vulnerabilidad. Ésta afecta a Microsoft Shell (shell32.dll), que es básicamente el explorador de Windows que todos utilizamos.
Esta es una vulnerabilidad de diseño que afecta la manera en que el explorador de Windows carga los accesos directos. Éstos son los que se hacen al presionar el botón derecho del mouse y hacer clic en crear acceso directo que es un archivo lnk o link, detalla Velazco.
El analista señaló que la vulnerabilidad se encuentra en la parte del archivo en la que se determina de dónde Microsoft Shell tiene que tomar el ícono, es decir, en la ruta que debe seguir para llegar a este archivo. La vulnerabilidad consiste en que si se crea un archivo lnk malicioso que tenga una ruta maliciosa, eventualmente lo que ocurre es que un usuario ejecutará un código malicioso jalado por la ruta maliciosa. Es una vulnerabilidad de diseño que siempre va a funcionar y en todos los sistemas operativos Windows.
Pero para que esto funcione se tiene que crear una carpeta en la víctima. Para ello fue necesario el uso de un USB. Si en un USB se coloca un archivo lnk malicioso, y ese USB se deja en algún lugar de la empresa, alguien podría tomarlo y usarlo, e infectar su máquina. Esta es la forma en que Stuxnet se introdujo.
En una central nuclear un par de espías en algún lugar dejan un par de un USB o hacen contacto con una secretaria o conserje y le dan un USB. Esa es la manera en que Stuxnet llegó a la central nuclear, explicó el expositor.
En el USB se tenía cuatro archivos lnk, no solo uno. Tenia cuatro porque los creadores deseaban asegurarse que la maquina se infectara y por ello crearon un lnk por cada distinto sistema operativo (XP, Vista, Windows 7 o 2008). Ellos sabían que se estaban enfrentando a un entorno en donde habían distintos sistemas operativos y utilizaron cuatro lnks para asegurarse que la maquina se infectaría.
La instalación
Una vez que Stuxnet detectaba la vulnerabilidad y podía correr código en la máquina, lo siguiente era asegurarse de correr con privilegios de administrador. Entonces, si un usuario conectaba el USB infectado en su maquina y ejecutaba el código maligno Stuxnet, detectaba si éste tenía privilegios de administrador o no; sin no los tenía, el siguiente paso era escalar privilegios y para eso explotaba otras dos vulnerabilidades cero day, no conocidas hasta ese momento.
Una vez más, los creadores del malware sabían que se iban a enfrentar a un escenario con distintos sistemas operativos y por ello crearon un exploit que se aprovecharía de la vulnerabilidad en cualquiera de los sistemas. Entonces si la maquina tenía Windows 2003 o XP explotaba la vulnerabilidad MS10-073, y con ello elevaba los privilegios a administrador. Si la maquina era Vista, 7 o 2008, explotaba la vulnerabilidad MS10-092 y hacía lo mismo.
Una vez que ya tenía privilegios de administrador se instalaban dos drivers, firmados digitalmente, algo que nunca antes había hecho un malware. El primero de ellos era el Mrxnet.sys que básicamente es un rootkit que infecta nuevos USB y oculta archivos, y el segundo era el Mrxcls.sys, que es el módulo principal.
La propagación
Stuxnet se propagaba explotando otra vulnerabilidad cero day, la MS10-061, una vulnerabilidad en el servicio de impresión de Windows; y también explotaba una vulnerabilidad, la MS08-067, un poco antigua, del 2008, que también fue explotada por Conficker. Con ellas se copiaba a través de los recursos compartidos y también a través de los USB.
Sin embargo, una de las características más interesantes de Stuxnet era que cuando la maquina quedaba infectada, si esta no cumplía una serie de condiciones no le ocurría nada. En cambio, si cumplía las condiciones ejecutaba su payload.
Las condiciones eran que tenga instalado el Siemens Simatic WinCC y el Step7. Este software es parte de la suite de Siemens para la programación de sistemas industriales SCADA que trabajaban con el PLC. Evidentemente, lo que quería era afectar el sistema industrial de enriquecimiento de uranio en la central nuclear, sostuvo Velazco.
El PLC (programmable logic controller) es un dispositivo electrónico utilizado para la automatización de los procesos electromecánicos, como el del enriquecimiento de uranio.
Una vez encontrada una máquina con estas características el malware ejecutaba su payload.
Los efectos
Lo que hacía Stuxnet era interceptar la comunicación entre el Windows y el PLC, lo hacía sobrescribiendo un dll (s7otbxdx.dll) que era el encargado de esto. Y lo único que hacía era chancar 16 de las 109 funciones del dll, las relacionadas a guardar, leer, etc. Con esto se lograba instalar un rootkit en el PLC, algo que nunca antes se había hecho.
Así, cuando el usuario se encontraba en su maquina Windows escribiendo código para el PLC con Step7 e intentaba cargar el código, Stuxnet interceptaba esa comunicación, y en lugar de cargar el código que el programador había escrito cargaba otro código.
Cuando el programador quería ver lo que había en el PLC, Stuxnet interceptaba la comunicación y le mostraba solo lo que Stuxnet quería que el programador vea.
No se tenía control del PLC porque Stuxnet estaba en el medio, entonces según el programador el código estaba bien, pero en verdad no lo estaba. Esto es lo principal, afirmó Velazco.
Los PLC estaban conectados a las centrífugas. El uranio en el ambiente natural no tiene el peso suficiente para ser utilizado en armas nucleares o energía nuclear, entonces debe ser pasado por centrífugas para separar el uranio pesado del no pesado, ya que el pesado es el que se puede utilizar.
Lo que hacía Stuxnet era modificar el código del PLC para que las centrífugas cambien de velocidad cada cierto tiempo, y este cambio en la velocidad modificaba completamente el funcionamiento de la centrífuga de tal forma que no se pudiera enriquecer el uranio de manera correcta e incluso se estropeara la máquina.
Stuxnet realizó un exitoso sabotaje en el enriquecimiento de Uranio. Se descubrió que unas dos mil centrífugas tuvieron que ser cambiadas y se estima que se retrasó el enriquecimiento de uranio de la planta en alrededor de 1,5 a 2 años, finalizó Velazco.
Y todo sin lanzar un solo proyectil.
Jose Antonio Trujillo, CIO Perú