Los datos de los usuarios, desde contraseñas para servicios de entretenimiento hasta copias electrónicas de documentos, son muy deseados por los delincuentes. La razón es sabida: es posible monetizar casi cualquier información. Por ejemplo, se pueden usar datos robados para transferir dinero a las cuentas de los ciberpiratas, ordenar bienes o servicios, y si no hay ningún deseo u oportunidad de hacerlo personalmente, siempre existe la posibilidad de venderlos a otros ciberdelincuentes.
Las estadísticas confirman la demanda de datos robados: en el primer semestre de 2019, más de 940,000 de usuarios de los productos de Kaspersky Lab se enfrentaron un software malicioso diseñado para recopilar diversos datos. A modo de comparación, en el mismo período de 2018, un poco menos de 600,000 usuarios se enfrentaron a ataques similares. Nos referimos a los así llamados “troyanos ladrones” o Password Stealing Ware (PSW): este tipo de malware está diseñado para robar contraseñas, archivos y otros datos en la computadora de la víctima.
Distribución geográfica de usuarios atacados por troyanos ladrones, primer semestre de 2019
En los últimos seis meses, detectamos este tipo de malware en los equipos de usuarios de Rusia, Alemania, India, Brasil y Estados Unidos.
¿Qué datos se roban?
En los foros clandestinos, donde se reúnen vendedores y compradores de malware, se puede encontrar muchas ofertas de venta de troyanos ladrones. Cada vendedor anuncia su producto como el de más funciones y mejor calidad, describiendo la amplia gama de sus capacidades.
Nuestra experiencia con esta amenaza nos dice que el troyano ladrón promedio puede:
- Recopilar los siguientes datos de los navegadores:
- Contraseñas
- Datos de autorrelleno
- Tarjetas de pago
- Archivos cookies
- Copiar los siguientes tipos de archivos:
- Todos los archivos de un directorio específico (por ejemplo, del Escritorio)
- Archivos con una extensión específica (.txt, .docx)
- Archivos de aplicaciones específicas (archivos de criptobilleteras, sesiones de software de mensajería)
- Transferir datos del sistema:
- Nombre y versión del sistema operativo
- Nombre del usuario
- Dirección IP
- Y mucho más:
- Robar cuentas de varias aplicaciones (clientes FTP, VPN, RDP y otras)
- Hacer capturas de pantalla
- Descargar archivos de Internet
Las copias más versátiles, por ejemplo, Azorult, hacen una “copia” completa de la computadora de la víctima y sus datos:
- información completa del sistema (lista de programas instalados, procesos en ejecución, nombre de usuario, computadora, versión del sistema);
- características técnicas del hardware (información sobre la tarjeta de video, el procesador central, el monitor conectado);
- contraseñas, tarjetas de pago, cookies, historial de visitas guardados de casi todos los navegadores conocidos (más de 30);
- contraseñas de clientes de correo, clientes FTP, clientes de mensajería instantánea;
- archivos de mensajería instantánea (Skype, Telegram);
- archivos del cliente de juegos Steam;
- archivos de más de 30 programas de criptobilleteras;
- capturas de pantalla;
- archivos arbitrarios especificados por el operador por “máscara” (“%USERPROFILE%\Desktop\ *.txt,*.jpg,*.png,*.zip,*.rar,*.doc” significa que debe enviar desde la computadora de la víctima todos los archivos del escritorio que tengan las extensiones especificadas).
Este último punto lo analizaremos con más detalle. ¿Por qué recopilar algunos archivos de texto o, en especial, todos los archivos del escritorio? Porque los archivos importantes y relevantes para el usuario se suelen almacenar en esta carpeta. Entre ellos también podría encontrarse un archivo de texto que contenga las contraseñas que deban estar siempre a mano. O, por ejemplo, documentos de trabajo que contienen datos confidenciales de la organización en la que trabaja la víctima.
Distribución geográfica de los usuarios atacados por Trojan-PSW.Win32.Azorult, primer semestre de 2019
Las características enumeradas permitieron que Azorult se convirtiera en uno de los troyanos ladrones más comunes: se encontró este troyano en los equipos de más del 25 % de los usuarios afectados por el malware del tipo Trojan-PSW.
Después de comprar (o crear) un malware, el atacante procede a propagarlo. En la mayoría de los casos, lo hace enviando correos electrónicos con archivos adjuntos maliciosos (por ejemplo, documentos de oficina con macros maliciosas que descargan directamente el troyano). Además, los troyanos ladrones se pueden distribuir mediante botnets cuando éstas reciben un comando para descargarlos y ejecutarlos.
Cómo roban contraseñas de los navegadores
Cuando se trata de robar datos de los navegadores (contraseñas, información de tarjetas bancarias, datos de autorrelleno), todos los diseñadores de troyanos ladrones actúan prácticamente de la misma manera.
Google Chrome y navegadores basados en Chromium
En los navegadores creados con el código abierto de Chromium, las contraseñas guardadas se protegen mediante DPAPI (Data Protection API). Para hacerlo, se usa el propio almacenamiento del navegador, en forma de una base de datos SQLite. Solo el usuario del sistema operativo que los creó puede extraer contraseñas de la base de datos, y solo en la computadora en la que se los cifró. Esto queda garantizado por las características de la implementación del cifrado: la clave de cifrado incluye determinada información sobre la computadora y el usuario del sistema. Para el usuario común, fuera del navegador y sin utilidades especiales, estos datos no están disponibles.
Pero todo esto no es un obstáculo para el troyano ladrón que ya ha penetrado en la computadora y que se está ejecutando con los derechos del usuario. En este caso, el proceso para obtener todos los datos guardados en el navegador es el siguiente:
- Obtención del archivo de base de datos. Los navegadores Chromium almacenan este archivo en una ruta de acceso estándar y que siempre es la misma. Para evitar problemas con el acceso al archivo (por ejemplo, si el navegador lo está utilizando en un momento dado), los troyanos ladrones pueden copiar el archivo en otra ubicación o finalizar todos los procesos del navegador.
- Lectura de los datos cifrados. Como se mencionó más arriba, los navegadores utilizan la base de datos SQLite, cuyos datos se pueden leer utilizando herramientas estándar.
- Descifrado de los datos. Tomando en cuenta el principio de protección de datos descrito anteriormente, robar el archivo de base de datos no ayuda a obtener datos, ya que se los debe descifrar en la computadora del usuario. Pero esto no es un problema: el descifrado se realiza directamente en la computadora de la víctima, haciendo un llamado a la función CryptUnprotectData. El atacante no necesita ningún dato adicional: DPAPI se encarga de todo, ya que la llamada se realizó en nombre del usuario del sistema. Como resultado, la función devuelve las contraseñas en una forma “clara” y legible.
¡Listo! Las contraseñas, datos de tarjetas bancarias e historial de visitas guardados, caen en manos de los delincuentes y están listos para enviarse al servidor del atacante.
Firefox y navegadores basados en su motor
En los navegadores basados en Firefox, el cifrado de contraseñas no es exactamente el mismo que en Chromium, pero para el troyano ladrón el proceso de obtención de las mismas es igual de simple.
Para el cifrado, los navegadores Firefox utilizan Network Security Services, un conjunto de bibliotecas de Mozilla para desarrollar aplicaciones seguras, en particular nss3.dll.
Como en el caso de los navegadores basados en Chromium, obtener datos de un almacenamiento cifrado se reduce a los mismos pasos simples, pero con algunas salvedades:
- Obtención del archivo de base de datos. Los navegadores Firefox, a diferencia de los navegadores basados en Chromium, recurren a un nombre de perfil de usuario generado aleatoriamente, lo que hace que la ubicación del archivo con los datos cifrados no se sepa con antelación. Sin embargo, debido a que el atacante conoce la ruta de acceso a las carpetas con perfiles de usuario, no le será difícil recorrerlas, “mirar lo que hay adentro” y verificar la presencia de un archivo con un nombre determinado (el nombre del archivo con datos cifrados, por el contrario, no depende del usuario y siempre es el mismo). Al mismo tiempo, los datos pueden quedar en el sistema incluso si el usuario ha eliminado el navegador, lo cual es aprovechado por algunos troyanos ladrones (por ejemplo, KPOT).
- Lectura de los datos cifrados. Los datos se pueden almacenar de la misma forma que en Chromium, en formato SQLite o como JSON con campos que contienen datos cifrados.
- Descifrado de los datos. Para descifrar los datos, el troyano ladrón necesita cargar la biblioteca nss3.dll y después llamar a varias funciones para obtener los datos descifrados en una forma legible. Algunos troyanos ladrones tienen funciones para trabajar directamente con los archivos del navegador, lo que permite no depender de esta biblioteca y trabajar incluso si se ha desinstalado el navegador. Pero vale decir que si el usuario usó la función de protección de datos mediante una contraseña principal, es imposible realizar el descifrado si no se sabe (o averigua) esta contraseña. Desafortunadamente, esta función está deshabilitada de forma predeterminada, y para habilitarla, hay que aventurarse en las profundidades del menú de configuración.
¡Y de nuevo, listo! Los datos están listos para ser enviados al atacante.
Internet Explorer y Microsoft Edge
En las versiones de Internet Explorer 4.x – 6.0, las contraseñas y los datos de autorrelleno guardados se almacenaban en el denominado Almacenamiento protegido. Para obtenerlos (no solo los datos de IE, sino también de otras aplicaciones que utilizan este almacenamiento), el troyano ladrón necesita cargar la biblioteca pstorec.dll para recibir una lista simple de todos los datos.
En sus versiones 7 y 8, el navegador Internet Explorer aplica un enfoque ligeramente diferente: para el almacenamiento se usa el Almacén de credenciales y el cifrado se realiza utilizando la “sal”. Desafortunadamente, esta “sal” es la misma y bien conocida, y por lo tanto, el troyano ladrón también puede llamar a la consabida función CryptUnprotectData para obtener todas las contraseñas guardadas.
Internet Explorer 9 y Microsoft Edge utilizan un nuevo tipo de almacenamiento: Vault. Éste tampoco promete nada nuevo desde el punto de vista de la obtención de datos: el troyano ladrón carga vaultcli.dll, llama a varias funciones desde allí y obtiene todos los datos guardados.
Por lo tanto, ni siquiera una serie de cambios en el método de almacenamiento de datos impide que los troyanos ladrones lean los datos.
He aquí algunos hechos
Préstamo o reutilización de código
Al analizar ejemplares de las nuevas familias de troyanos ladrones que son anunciadas activamente por los creadores de virus en foros especializados, encontramos constantemente un código familiar que ya hemos visto en especímenes de otras familias. Esto puede deberse al hecho de que algunos troyanos ladrones pertenecen al mismo autor, que cerró un proyecto y desarrolló otro sobre su base. Por ejemplo, Arkei y Nocturnal son desarrollados por el mismo autor, como lo señalan sus vendedores.
Otra razón para esta similitud puede estar en el código prestado. El código fuente de Arkei fue vendido por su autor en los mismos foros, y puede haberse convertido en la base de otro troyano ladrón, Vidar. Estos troyanos tienen mucho en común, desde los detalles específicos de la recopilación de información y el formato de los comandos recibidos, hasta la estructura de los datos enviados al centro de comando.
Los especialistas están en demanda
A pesar de la abundancia de troyanos ladrones multifuncionales, los troyanos diseñados para robar información específica tienen una cierta demanda. Por ejemplo, el malware Trojan-PSW.MSIL.Cordis está destinado únicamente a robar datos de sesión de Discord Messenger, popular entre los jugadores de videojuegos. El código fuente de este troyano es muy sencillo y sirve para buscar y enviar un solo archivo al centro de comando.
Tales troyanos a menudo no están en venta, sino que se presentan en forma de códigos fuente que cualquiera puede compilar, y por lo tanto gozan de cierta difusión.
Distribución geográfica de usuarios atacados por Trojan-PSW.MSIL.Cordis, primer semestre de 2019
Uso de diferentes lenguajes de programación
A pesar de que los troyanos ladrones más famosos están escritos en los populares lenguajes de programación C/C++ o C#, periódicamente se encuentran ejemplares escritos en lenguajes menos populares, por ejemplo, Golang. Uno de estos troyanos es detectado por los productos de Kaspersky Lab como Trojan-PSW.Win32.Gox. Entre sus funciones se puede resaltar el robo de contraseñas y tarjetas de pago guardadas en navegadores basados en Chromium, archivos de programas de criptobilleteras y archivos de Telegram.
Distribución geográfica de los usuarios atacados por Trojan-PSW.Win32.Gox, primer semestre de 2019
Conclusiones
Los usuarios a menudo confían todos sus datos de importancia crítica al navegador, porque les resulta cómodo que las contraseñas y los datos de la tarjeta bancaria se inserten automáticamente en los campos requeridos. Pero no recomendamos confiar información tan importante a los navegadores, porque los métodos de protección que utilizan no son un obstáculo para los programas maliciosos.
La popularidad de los programas maliciosos que apuntan a los datos de los navegadores no disminuye. Los actuales troyanos ladrones cuentan con asistencia técnica activa, se actualizan y se complementan con nuevas características (por ejemplo, aparecen funciones para robar datos de aplicaciones para la autenticación de dos factores, que genera códigos de acceso únicos).
Recomendamos el uso de software especializado para almacenar contraseñas para cuentas web y datos de tarjetas bancarias, o soluciones de seguridad con tecnologías apropiadas. No descargue ni ejecute archivos sospechosos, no siga los enlaces de correos electrónicos sospechosos: en general, tome las precauciones necesarias.
Cómo robarle un millón de datos