Imagine que todos los que tienen un altavoz inteligente Amazon Echo en casa (Yandex Alice, Maroussia, sustituya por uno adecuado) sabrían que durante los últimos 6 meses ella ha estado desbloqueando su casa y dejando entrar a los ladrones. ¿Cómo puede sentirse seguro ahora si los intrusos pudieran hacer copias de sus llaves, documentos, medios de almacenamiento o, por ejemplo, envenenar el sistema de suministro de agua?
Aquí es donde las miles de organizaciones afectadas por el malware Sunburst pirateado la cadena de suministro de software de SolarWinds se encuentran ahora en esta posición. Las empresas afectadas están buscando desesperadamente signos de compromiso, realizando una auditoría de seguridad de infraestructura no programada, y algunas incluso pueden suspender una serie de servicios en espera de una investigación.
El 8 de diciembre, FireEye anunció que había sido pirateado y lanzó una investigación que involucró al gobierno de EE. UU. Y Microsoft.
El 13 de diciembre, FireEye publicó un informe detallado del compromiso , que describe cómo se distribuye el código malicioso a través del software Orion de SolarWinds.
El 17 de diciembre, la Agencia de Seguridad Cibernética e Infraestructura (CISA) emitió un anuncio de emergencia, que pidió a todas las empresas que utilizan el software SolarWinds que actualicen o incluso desconecten SolarWinds Orion de la red (en el paso 2 de la publicación anterior). Desde entonces, el Servicio de Investigación de Incidentes de Seguridad de Varonis ha notado un aumento en las investigaciones forenses relacionadas con la campaña y ha identificado varios ataques activos.
Si bien gran parte del material hasta la fecha se ha centrado en la reparación de versiones comprometidas de la solución SolarWinds Orion, según CISA , hay evidencia de vectores de intrusión adicionales asociados con esta campaña.
Los ataques a la cadena de suministro son difíciles de defender
En un ataque a la cadena de suministro, el atacante se dirige a un proveedor o producto confiable en lugar de atacar directamente a sus objetivos. En este caso, los atacantes inyectaron una puerta trasera preparada ("puerta trasera") en un producto de software confiable (SolarWinds Orion), que luego se envió automáticamente a miles de clientes, disfrazado como una actualización regular.
Las malas noticias no terminan ahí: los atacantes resultaron ser lo suficientemente sofisticados como para pasar desapercibidos durante meses. Tuvieron tiempo para dejar puertas traseras adicionales y obtener acceso a una variedad de sistemas y datos. Actualmente, las organizaciones que han recibido una actualización maliciosa se ven obligadas a investigar absolutamente todo: comenzando con los sistemas y cuentas que están directamente asociados con SolarWinds y continuando la investigación más adelante en la cadena.
Detección primaria
Tanto si es cliente de Varonis como si no, el primer paso es comprobar si hay una versión vulnerable del software SolarWinds. SolarWinds ha identificado versiones vulnerables y, a partir del 16 de diciembre de 2020, ha publicado actualizaciones y parches para reemplazar los componentes comprometidos.
Si su versión es vulnerable, estos son los pasos que debe seguir:
- avsvmcloud [.] com ,
DNS avsvmcloud [.] com, , (C2) SolarWinds Sunburst.
Varonis , , Varonis Edge .
- , SolarWinds
Varonis , SolarWinds, . , Active Directory, SolarWinds , .
Varonis SolarWinds – :
- , ( , SolarWinds)
() , , (Azure Active Directory).
, , Varonis DatAlert.
APT- ( )
Este ataque se llevó a cabo sin explotar una vulnerabilidad de día cero (al menos la misma vulnerabilidad que conocemos en este momento). La teoría predominante, aún no validada por SolarWinds, es que los atacantes utilizaron credenciales de servidor FTP público descubiertas en GitHub en 2018 para obtener acceso a la infraestructura de actualización de software de la empresa.
El atacante pudo modificar el paquete de actualización de software y agregar una puerta trasera maliciosa a uno de los complementos DLL de SolarWinds Orion, SolarWinds.Orion.Core.BusinessLayer.dll.
Los atacantes firmaron su versión DLL maliciosa con la clave privada de SolarWinds. El certificado fue emitido por Symantec.
Suponemos que el atacante pudo firmar la DLL de una de estas dos formas:
- El atacante irrumpió en el proceso de desarrollo, agregó una puerta trasera y permitió que SolarWinds lo firmara como parte de un proceso legítimo de creación e implementación de software.
- El atacante robó la clave privada del certificado, firmó las DLL ellos mismos y reemplazó la DLL oficial con su versión maliciosa. Esto es menos probable.
Cualquier organización que utilice el software SolarWinds y reciba actualizaciones de sus servidores ha descargado y ejecutado una DLL maliciosa. Dado que la DLL se firmó y se entregó a través de los servidores de actualización oficiales de SolarWinds, fue extremadamente difícil detectar contenido malicioso.
Análisis de la puerta trasera SolarWinds SUNBURST (BusinessLayer.dll)
Cuando miramos dentro de la DLL maliciosa, vemos que los atacantes han confiado en el sigilo. Hicieron todo lo posible para escribir un código que armonizara con el resto del código fuente de Orion, utilizando argumentos bien escritos y nombres genéricos y desprevenidos de clases y métodos como "Initialize" o "Job".
La puerta trasera SolarWinds Sunburst funciona en varias etapas:
-
12-14 (C2). .
-
C2 ( , IP-, , ), , . -
(DGA) IP- (C2). C2 — SolarWinds OIP (Orion Improvement Program).
-
, .
-
, , (), TEARDROP, .
Durante la primera sesión de comunicación, la puerta trasera envía información sobre el dispositivo y su entorno, cifrada en paquetes DNS.
Inusualmente, la dirección IP en el paquete DNS de respuesta determina el siguiente salto de la puerta trasera. Dependiendo del rango en el que se encuentre la dirección IP, el proceso SUNBURST finaliza o activa una funcionalidad adicional , por ejemplo, deshabilitando el antivirus o descargando y lanzando nuevo malware.
Echemos un vistazo más de cerca al comienzo de la comunicación de puerta trasera con C2.
- Una vez que se carga la DLL, SUNBURST realiza una serie de comprobaciones para asegurarse de que se esté ejecutando en la red corporativa y no en una máquina aislada.
- , « ». . .
- FQDN C2, . (domain1 domain2) + , (domain3):
:
Domain1 = ‘avsvmcloud[.]com’
Domain2 = ‘appsync-api’
Domain3 = [‘eu-west-1’, ‘us-west-2’, ‘us-east-1’, ‘us-east-2’]
GetStatus :
- (. 2) (. 3) DNS . , DNS , .
4 :
«GetCurrentString» «GetPreviousString» GUID / .
«GetNextString» «GetNextStringEx» GUID.
DNS-, C2 , .
, SUNBURST:
Prevasio , DNS, .
- , IP- DNS- SUNBURST. «IPAddressHelper» IP-, IP-, DNS-:
, IP- , SUNBURST , HTTP .
- IP- DNS- C2, CNAME. , :
- , SUNBURST DNS- , / , 120 .
- SUNBURST HTTP- C2 URL- , HTTP JSON.
URI:
hxxps://3mu76044hgf7shjf[.]appsync-api[.]eu-west-[.]avsvmcloud[.]com /swip/upd/Orion[.]Wireless[.]xml
, SUNBURST, / , . .:
DLL
, SolarWinds (EDR), . , «» .
SolarWinds Sunburst , TEARDROP, «gracious_truth.jpg» Cobalt Strike Beacon, «» .
— , , .
FireEye CISA , (IOC), . , . , , , , — , , (« ») FireEye.
« » . DLL SolarWinds Orion . , . , , . , , , , .
CASA , :
« , , , , . , , ».