El ataque a SolarWinds finalmente desvela dos pesadillas: qué se ha hecho bien y qué mal

Sergio De Los Santos    22 diciembre, 2020
El ataque a FireEye finalmente desvela dos pesadillas: qué se ha hecho bien y qué mal

A estas alturas, todos los profesionales de la ciberseguridad saben al menos una parte de lo que, en principio, se creía “solo” un ataque a SolarWinds, pero que ha desembocado en una de las operaciones más interesantes de los últimos años. Nos detendremos en los detalles más curiosos del incidente pero también vamos a poner en foco en la gestión de esta crisis. Qué se ha hecho bien y qué mal para calibrar la madurez de una industria que sufrirá más y peores golpes que este en el futuro.

FireEye levanta la voz de alarma el martes 8 de diciembre. Han sido atacados. Pero la industria no culpa a FireEye por ello, sino que los respalda y apoya en general, su respuesta es ejemplar. A muchos les ha pasado y a todos nos puede pasar, así que lo importante es cómo se responda y ser resiliente.

Puesto que los atacantes tienen acceso a herramientas delicadas internas de su compañía, FireEye hace algo que les honra por la industria: publican las reglas Yara necesarias para detectar si alguien está usando esas herramientas robadas del equipo ofensivo de FireEye contra una compañía. Un buen gesto que de nuevo es reconocido públicamente. No se sabe mucho más del incidente y se sigue investigando.

Pero luego todo se complica, y de qué manera. Comienzan las noticias: el departamento del Tesoro de EEUU y otros muchos departamentos gubernamentales también reconocen un ataque. El mismo día 13, FireEye ofrece un detalle muy importante: el problema radica en la troyanización del software Orion de SolarWinds. Un paquete de actualización, firmado por la propia SolarWinds, contenía una puerta trasera. Se calcula que unas 18.000 compañías utilizan este sistema. Se destapa la caja de Pandora por las características propias del ataque y porque es un software usado en muchas grandes empresas y gobiernos. Y puesto que a problemas globales hacen falta reacciones globales y coordinadas, aquí es donde parece que algo no funcionó.

¿Falló la coordinación?

El día siguiente, 14 de diciembre, con la información necesaria para apuntar a la “zona cero” del ataque, todavía los métodos reactivos no funcionaron. En concreto:

  • Los motores antivirus seguían sin detectar el malware (que se ha dado a conocer como SUNBURST). El mismo lunes no se encontraba en las firmas estáticas de los motores populares.
  • El certificado con el que los atacantes firmaron el software, seguía sin estar revocado. Independientemente de que consiguieran acceso a la clave privada o no (no se sabe), ese certificado debía ser revocado por si el atacante era capaz de firmar otro software en nombre de SolarWinds.

Aquí solo podemos elucubrar por qué falló este elemento “reactivo” en cadena. ¿Llegó tarde SolarWinds al ataque? ¿Publicó FireEye los detalles para ejercer presión sobre SolarWindws cuando ya se comenzaba a vislumbrar que el ataque escondía una ofensiva mucho más compleja?  Desde luego, la bolsa ha “castigado” de forma diferente a ambas compañías, si es que se puede usar como un método rápido de valoración del mercado de las reacciones ante un compromiso grave. FireEye ha resultado ser el héroe. SolarWinds, el malo de la película.

Sin embargo, ha habido reacciones que sí han funcionado, como Microsoft secuestrando el dominio bajo el que se fundamenta todo el ataque (avsavmcloud.com). Que por cierto, fue enviado desde España a urlscan.io de forma manual el 8 de julio. Alguien quizás se percató de algo extraño. La campaña llevaba activa desde marzo.

El malware en sí y la comunidad

Lo “bueno” de SUNBURST es que está creado en lenguaje .NET, con lo que resulta relativamente sencillo decompilar y conocer qué ha programado el atacante. Y así, la comunidad comenzó a analizar el software de arriba a abajo y programar herramientas para entenderlo mejor.

El malware es extremadamente discreto. No se ponía en marcha hasta más o menos dos semanas después de encontrarse en la víctima. Modificaba tareas programadas del sistema para lanzarse y luego las devolvía a su estado original. Pero una de las características más interesantes del malware es la capacidad para ocultar los dominios que utiliza y que requerían fuerza bruta para desvelarlos (eran hashes). Además, contenía el hash de otros dominios a los que no quería infectar. ¿Cuáles? Costin Riau de Kasperksy los expone:

Todos, muy probablemente, internos de la red de SolarWinds, para pasar desapercibidos en su red interna. Un indicio de que la víctima inicial era SolarWinds y que para conseguirlo, los atacantes tenían que conocer bien a su víctima. Se publicó un código para sacar toda lista de herramientas (cuyos nombres estaban también hasheados) para saber qué es lo que no quería ver el troyano en la máquina. Se consiguió desvelar muchas de las herramientas y dominios hasheados en tiempo récord y reconocer qué tenían en mente estos atacantes. Se ha publicado otra una herramienta para descifrar los DGA (Domain Generator Algorithm) donde intentaba contactar el malware. Uno de los puntos fuertes del algoritmo era el DGA precisamente, pero también su punto débil (el dominio de primer nivel era siempre el mismo).

Al final, el malware acababa componiendo URLs como esta:

  • hxxps://3mu76044hgf7shjf[.]appsync-api[.]eu-west-1[.]avsvmcloud[.]com /swip/upd/Orion[.]Wireless[.]xml

Donde “exfiltraba” la información y se comunicaba con el Command and Control. Bien pensado desde el punto de vista del atacante porque pasa desapercibido a la vista por su “normalidad”, pero mal pensado desde el punto la perspectiva de la persistencia.

Otro punto muy interesante que parece que ha pasado desapercibido, es que los atacantes parecieron “inflar” durante 2019 el módulo troyanizado de 500 a 900k, sin inyectar código relevante pero aumentando el tamaño de la DLL. En febrero 2020 introdujeron en esa misma DLL la carga que realizaba el espionaje, con lo que consiguieron un extra de invisibilidad sin levantar sospechas por el aumento de tamaño.

No se vayan todavía, aún hay más

Más recientemente, parece que Orion de SolarWinds no solo estaba troyanizado con SUNBURST sino también con lo que se ha dado en llamar SUPERNOVA. Quizás otro actor también tuvo la posibilidad de entrar en la red y desplegó un troyano diferente en la herramienta. Aunque todavía no se tienen muchos detalles de su funcionamiento, esta es la segunda pesadilla que todavía puede dar que hablar.

Conclusiones

Nos encontramos ante uno de los ataques más sofisticados de los últimos tiempos que no solo ha puesto en jaque a una compañía que se dedica a defender a otras compañías, sino a gobiernos, grandes como Microsoft y otros que ni podemos imaginar. Han dado un paso más allá con una campaña casi perfecta por su impacto y ejecución. En otras ocasiones (la RSA, Kaspersky, Bit9, Operación Aurora…), grandes compañías han sido atacadas y también a veces solo como efecto secundario para conseguir llegar hasta a un tercero, pero en esta ocasión se ha dado un paso más allá en la discreción, precisión y “buen hacer” de los atacantes. Y todos gracias a un solo fallo, cómo no: al punto más débil que han sabido detectar en la cadena de suministro de la que dependen grandes actores. Y sí, SolarWinds parecía un eslabón muy débil. En su web recomendaban desactivar el antivirus (aunque esto lamentablemente es habitual para cierto tipo de herramientas) y han demostrado utilizar contraseñas débiles en su operativa, además de que existen indicios de que llevaban más de un año comprometidos… por dos veces.

¿Nos debemos sorprender ante eslabones tan débiles en la cadena de ciberseguridad de la que depende tanto? Dependemos de un panorama ciertamente irregular en cuestión de habilidades en ciberseguridad. Asimétrico en capacidades de respuesta, defensa y prevención, tanto de las víctimas como de atacantes… pero muy democrático en la importancia de cada pieza en la industria. No queda más remedio que responder coordinados y en conjunto para mitigar el riesgo. No es difícil encontrar similitudes fuera del ámbito de la ciberseguridad. En cualquier caso, y afortunadamente, de nuevo, la industria se ha mostrado madura y con capacidad de respuesta conjunta, no solo de la comunidad, sino de los grandes actores. Quizás es el mensaje positivo que podemos llevarnos de una historia que todavía parece no haber acabado del todo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *