IIStealer: una amenaza del lado del servidor para las transacciones de comercio electrónico


El primero de nuestra serie sobre amenazas de IIS analiza una extensión de IIS maliciosa que intercepta las transacciones del servidor para robar información de tarjetas de crédito.

Los investigadores de ESET han descubierto y analizado un troyano previamente indocumentado que roba información de pago de los clientes de los sitios web de comercio electrónico. Las soluciones de seguridad de ESET detectan el troyano, al que llamamos IIStealer, como Win64 / BadIIS.

Esta entrada de blog es la primera entrega de nuestra serie en la que los investigadores de ESET analizan las amenazas del servidor web IIS. Para obtener una guía completa sobre cómo detectar, analizar y eliminar el malware IIS, consulte nuestro informe técnico Anatomía del malware IIS nativo, donde IIStealer aparece como una de las familias estudiadas (Grupo 5).

Resumen del ataque

IIStealer se implementa como una extensión maliciosa para Servicios de Información de Internet (IIS), software de servidor web de Microsoft. Al ser parte del servidor, IIStealer puede acceder a toda la comunicación de red que fluye a través del servidor y robar datos de interés para los atacantes, en este caso, información de pago de transacciones de comercio electrónico.

Como se ilustra en la Figura 1, IIStealer opera interceptando el tráfico regular entre el servidor comprometido y sus clientes (el vendedor y los compradores), dirigiéndose a las solicitudes HTTP POST realizadas a rutas URI específicas: /checkout/checkout.aspx o /checkout/Payment.aspx.

Siempre que un visitante legítimo del sitio web realiza una solicitud a estas páginas de pago (1), IIStealer registra el cuerpo de la solicitud HTTP en un archivo de registro (2), sin interferir de ninguna manera con la respuesta HTTP generada por los componentes del sitio web legítimo ( 3).

Los adversarios pueden entonces exfiltrar los datos recopilados haciendo una solicitud HTTP especial al servidor IIS comprometido: una vez que IIStealer detecta una solicitud realizada a un URI específico (/privacy.aspx) con una contraseña de atacante incluida en el Datos X-IIS encabezado (4), incrusta los datos recopilados en la respuesta HTTP para esa solicitud (5,6).

Figura 1. Mecanismos de extracción y extracción de IIStealer

Figura 1. IIStealer: mecanismos de recolección y exfiltración

Con estas capacidades, IIStealer puede robar información de tarjetas de crédito enviada a sitios web de comercio electrónico que no utilizan Via de pago. Tenga en cuenta que SSL / TLS y los canales de comunicación cifrados no protegen estas transacciones contra IIStealer, ya que el malware puede acceder a todos los datos manejados por el servidor, que es donde se procesa la información de la tarjeta de crédito en su estado no cifrado.

Las muestras de este malware que analizamos parecen estar diseñadas para sitios web de comercio electrónico específicos (con URI de página de pago codificadas). Según nuestra telemetría, el objetivo fue una pequeña cantidad de servidores IIS en los EE. UU., Entre septiembre de 2020 y enero de 2021, pero es probable que esto se vea afectado por nuestra visibilidad limitada en los servidores IIS; todavía es común que los administradores no usen ningún software de seguridad en estos servidores.

Análisis técnico

IIStealer se implementa como un módulo IIS nativo malicioso: una DLL de C ++ % windir% system32 inetsrv carpeta en el servidor IIS comprometido y configurado en el % windir% system32 inetsrv config ApplicationHost.config expediente. En algunos casos, IIStealer se implementa con el nombre dir.dll y, como se ve en la Figura 2, usa un recurso VERSIONINFO falsificado para imitar un módulo IIS de Windows legítimo llamado dirlist.dll.

Figura 2. El recurso VERSIONINFO de IIStealer (izquierda) imita el módulo dirlist.dll legítimo (derecha)

Figura 2. El recurso VERSIONINFO de IIStealer (izquierda) imita el módulo dirlist.dll legítimo (derecha)

Debido a que es un módulo de IIS, IIStealer se carga automáticamente mediante el proceso de trabajo de IIS (w3wp.exe), que maneja las solicitudes enviadas al servidor web IIS; así es como IIStealer logra la persistencia y cómo puede afectar el procesamiento de las solicitudes entrantes.

No tenemos información sobre cómo se propaga el software malicioso, pero sabemos que se requieren privilegios administrativos para instalarlo como un módulo IIS nativo, lo que reduce los candidatos para el compromiso inicial. Una debilidad o vulnerabilidad de la configuración en una aplicación web, o en el propio servidor, son probablemente los culpables.

En cuanto a sus características técnicas, IIStealer implementa una clase central heredada de CHttpModule (clase de módulo) y anula el CHttpModule :: OnPostBeginRequest método con su código malicioso. Como con todos los módulos nativos de IIS, IIStealer exporta una función llamada RegisterModule (ver Figura 3), donde crea una instancia de la clase del módulo y registra sus métodos para los eventos del servidor; más específicamente, se registra para el RQ_BEGIN_REQUEST notificación posterior al evento que se genera cada vez que el servidor comienza a procesar una solicitud HTTP entrante. Como resultado, el OnPostBeginRequest se llama al método con cada nueva solicitud, lo que permite que IIStealer afecte el procesamiento de la solicitud.

Figura 3. Punto de entrada RegisterModule de IIStealer

Figura 3. Punto de entrada del módulo de registro de IIStealer

En el OnPostBeginRequest controlador, IIStealer filtra las solicitudes HTTP entrantes por URI de solicitud. Todas las solicitudes POST realizadas a /checkout/checkout.aspx o /checkout/Payment.aspx se registran, junto con sus cuerpos HTTP completos, en un archivo llamado C: Windows Temp cache.txt. Estas solicitudes las realizan visitantes legítimos de los sitios web de comercio electrónico comprometidos y pueden contener información confidencial, como datos personales y números de tarjetas de crédito.

Los datos recopilados se pueden filtrar a través de una solicitud HTTP diseñada específicamente por el atacante. Esta solicitud debe tener un Datos X-IIS Encabezado HTTP configurado en una contraseña alfanumérica codificada de 32 bytes (que hemos elegido no revelar), y debe enviarse a una ruta URL especificada en la muestra de malware:

  • /privacy.aspx
  • /checkout/Payment.aspx

Una vez que el módulo malicioso detecta tal solicitud, utiliza el IHttpResponse :: Borrar método para eliminar cualquier respuesta HTTP preparada por el servidor IIS, y copia el contenido no cifrado del archivo de registro en el cuerpo de la respuesta HTTP utilizando el IHttpResponse :: WriteEntityChunks Función API, como se ve en la Figura 4.

Figura 4. IIStealer reemplaza el cuerpo de la respuesta HTTP con sus propios datos

Figura 4. IIStealer reemplaza el cuerpo de la respuesta HTTP con sus propios datos

Esto permite a los operadores de IIStealer acceder y filtrar los datos recopilados simplemente enviando una solicitud especial al servidor IIS comprometido; no es necesario que el malware implemente canales C&C adicionales o incruste dominios de servidor C&C en su configuración.

Mitigación

IIStealer es una amenaza del lado del servidor que escucha a escondidas las comunicaciones entre un sitio web de comercio electrónico comprometido y sus clientes, con el objetivo de robar información de pago confidencial, pero por supuesto, los módulos IIS maliciosos también pueden apuntar a credenciales y otra información. Aunque SSL / TLS es vital para asegurar la transmisión de datos entre el cliente y el servidor, no evita este escenario de ataque ya que IIStealer es parte del servidor. Esto debería ser perturbador para todos los portales web serios que desean proteger los datos de sus visitantes, incluida la información de autenticación y pago.

La mejor manera de fortalecer un servidor IIS contra IIStealer y otras amenazas es:

  • Utilice cuentas dedicadas con contraseñas únicas y seguras para la administración del servidor IIS.
  • Parche su sistema operativo con regularidad y considere detenidamente qué servicios están expuestos a Internet para reducir el riesgo de explotación del servidor.
  • Solo instale módulos IIS nativos de fuentes confiables.
  • Considere el uso de un firewall de aplicaciones web y / o una solución de seguridad de punto final en su servidor IIS.
  • Verifique regularmente el archivo de configuración % windir% system32 inetsrv config ApplicationHost.config, así como el % windir% system32 inetsrv y % windir% SysWOW64 inetsrv carpetas para verificar que todos los módulos nativos instalados son legítimos (firmados por un proveedor de confianza o instalados a propósito).

Para desarrolladores web: incluso si no tiene control sobre el servidor IIS donde está alojado su servicio web, aún puede tomar medidas para reducir el impacto en los usuarios de su servicio web en el caso de un compromiso, especialmente:

  • No envíe la contraseña al servidor (ni siquiera a través de SSL / TLS); utilizar un protocolo como Contraseña remota segura (SRP) para autenticar a los usuarios sin necesidad de que la contraseña sin cifrar se transmita al servidor, ni datos que puedan utilizarse para volver a autenticarse. Los infostealers de IIS son un buen ejemplo de por qué el hash del lado del servidor no es lo suficientemente bueno.
  • Evite el envío innecesario de información sensible desde la aplicación web; utilizar pasarelas de pago.
  • Si identifica un compromiso exitoso: notifique a todas las partes involucradas en cualquier violación de seguridad para que puedan tomar medidas rápidas.

Para los consumidores: desde la perspectiva del visitante, es imposible saber si un servidor IIS está comprometido, pero estos consejos lo ayudarán a reducir el riesgo:

  • Tenga cuidado con el lugar donde ingresa el número de su tarjeta de crédito. Considere el uso de pasarelas de pago de proveedores externos de confianza en sitios web de comercio electrónico cuya reputación desconozca: con las pasarelas de pago, dichos sitios web no manejarán la información de pago confidencial.
  • Esté atento a su resumen de crédito para ver si hay pagos pequeños o inusuales: a menudo se procesan pequeñas cantidades para probar si las tarjetas son válidas.
  • Si detecta algo inusual, notifique a su banco de inmediato.

Los detalles técnicos adicionales sobre el malware, los indicadores de compromiso y las reglas de YARA se pueden encontrar en nuestro completo papel blanco, y en GitHub. Para cualquier consulta o para hacer presentaciones de muestra relacionadas con el tema, contáctenos en: amenazaintel@eset.com.

Esté atento a las próximas entregas de esta serie, donde cubrimos las extensiones IIS maliciosas utilizadas para el ciberespionaje y el fraude SEO.

Indicadores de compromiso (IoC)

Nombres de detección de ESET

Win64 / BadIIS.F
Win64 / BadIIS.O

SHA-1

706EAB59C20FCC9FBC82C41BF955B5C49C644B38
7A2FA07A7DC05D50FE8E201A750A3DC7F22D6549
A1C5E7424E7C4C4C9902A5A1D97F708C6BB2F53A

Nombres de archivo y rutas

dir.dll
isapicache ___. dll
isapicache_.dll_
C: Windows Temp cache.txt

Indicadores de red

URI dirigidos

/checkout/checkout.aspx
/checkout/Payment.aspx
/privacy.aspx

Encabezado HTTP

Datos X-IIS

Técnicas MITRE ATT & CK

Nota: esta tabla fue construida usando versión 9 del marco MITRE ATT & CK.

Táctica IDENTIFICACIÓN Nombre Descripción
Desarrollo de recursos T1587.001 Desarrollar capacidades: malware IIStealer es una familia de malware a medida.
Ejecución T1569.002 Servicios del sistema: ejecución de servicios El servidor IIS (y por extensión, IIStealer) persiste como un servicio de Windows.
Persistencia T1546 Ejecución activada por evento IIStealer es cargado por IIS Worker Process (w3wp.exe) cuando el servidor IIS recibe una solicitud HTTP entrante.
Evasión de defensa T1036.005 Enmascaramiento: coincide con el nombre o la ubicación legítimos IIStealer se ha implementado con el nombre dir.dll, en un intento de imitar un módulo IIS legítimo de Microsoft llamado dirlist.dll.
T1027 Archivos o información ofuscados IIStealer usa el apilamiento de cadenas en un intento de evitar alguna detección basada en cadenas.
Acceso a credenciales T1056 Captura de entrada IIStealer intercepta el tráfico de red entre el servidor IIS y sus clientes para recopilar información confidencial, como detalles de tarjetas de crédito.
Colección T1119 Colección automatizada IIStealer recopila automáticamente información de las solicitudes HTTP entrantes, como los detalles de la tarjeta de crédito.
T1074.001 Datos escalonados: estadificación de datos locales IIStealer utiliza un archivo local para organizar la información recopilada.
Comando y control T1071.001 Protocolo de capa de aplicación: protocolos web Los adversarios envían solicitudes HTTP al servidor IIS comprometido para controlar IIStealer.
Exfiltración T1041 Exfiltración sobre canal C2 IIStealer utiliza su canal C&C para extraer los datos recopilados: el adversario envía las solicitudes HTTP al servidor IIS comprometido.



Enlace a la noticia original