Como su nombre lo indica, un Indicador de Compromiso (IoC, por sus siglas en inglés) es un dato que surge producto de cierta actividad en nuestro sistema y que nos aporta información sobre el comportamiento, característica o descripción de una amenaza. En este sentido, un IoC funciona como evidencia que nos permite confirmar que nuestro equipo fue comprometido con malware, pero también es información que puede ser utilizada para prevenir futuros ataques. Dicho esto, un indicador de compromiso puede venir dado bajo la forma de un nombre de archivo, el nombre de un proceso en el administrador de tareas, una URL o dirección IP, comportamiento anómalo en el tráfico web, intentos de inicio de sesión fallidos, entre otros tantos más.
Un poco de contexto sobre el papel de los IoC en la industria
Para comprender cómo funciona un malware y cuál es su objetivo final, una de las tareas que realizan los investigadores en el campo de la seguridad es el análisis y seguimiento de distintas amenazas que forman parte de campañas activas operadas por un actor malicioso. Estas amenazas pueden ser nuevas o ya conocidas. En caso de ser nuevas, el objetivo será comprender cómo funcionan, y en el caso de que hayan sido reportadas anteriormente, el objetivo será monitorear su evolución y posibles cambios. Para realizar esta tarea se suelen utilizar los indicadores de compromiso.
En el caso de los laboratorios de ESET, nuestros sistemas y soluciones de protección contra amenazas informáticas recopilan constantemente información y muestras de distintas campañas de malware alrededor del mundo. Muchas de estas muestras son conocidas y otras corresponden a archivos sospechosos que son analizados en detalle para averiguar si se trata de una detección falso-positiva o si se trata de malware. En caso de que sea lo último, nos enfocaremos en conocer:
- Qué recursos del sistema utiliza
- Cómo manipula y qué cambia del sistema para poder llevar a cabo sus acciones
- Cuál es la finalidad del malware y sus componentes si los hay
Indicadores de compromiso como evidencia de actividad maliciosa
Dado que el malware necesita realizar varias tareas en un sistema para poder llevar a cabo su objetivo, es raro que esto suceda sin dejar evidencia de su existencia ni indicios que nos ayuden a detectar que hubo o hay actividad sospechosa en el sistema, lo cual indicaría que hemos sido víctimas de una infección. Estos rastros o evidencia que deja una amenaza en el sistema son los indicadores de compromiso. Estos IoC son utilizados por las compañías de seguridad para desarrollar perfiles para que soluciones automatizadas, como puede ser un producto de antimalware, puedan detectar una infección en su etapa más temprana.
Sin embargo, algunas veces todos hemos sido investigadores. ¿Alguna vez te sucedió que tu PC funcionaba de manera extraña y buscaste en el Administrador de Tareas algún proceso con un nombre que te resultara poco familiar o que estuviera consumiendo demasiados recursos y sospechaste que podías ser víctima de malware? ¡Clásico! ¿Alguna vez leíste en un sitio de seguridad información sobre la descripción de una amenaza en la que figuraban archivos con el mismo nombre de ese extraño proceso? ¡Entonces tú también has estado haciendo uso de un IoC para detectar una amenaza en tu sistema.
¿Cómo generamos indicadores de compromiso para nuestros reportes?
Como mencionábamos anteriormente, esto se hace a través de un cuidadoso análisis de la funcionalidad y el comportamiento de la muestra de malware. La muestra en sí es un IOC: una práctica estándar en la industria es generar de cada muestra un identificador único por medio de algoritmos de hashing. Este identificador (hash) es único y no existen dos muestras de malware con diferentes datos y con el mismo identificador.
Los hashes como indicadores de compromiso
Los algoritmos de hashing no son un secreto exclusivo de las empresas de seguridad. Cualquier investigador o usuario con cierto grado de conocimiento puede generar con alguna herramienta un hash a partir de una muestra y utilizarlo para buscar información de la misma en bases de datos o plataformas de análisis online de amenazas, como VirusTotal o similares, que están abiertas al público.
Estos hashes son un recurso extremadamente valioso para la comunidad y para toda la industria. Por eso es tan común ver que al final de cada artículo técnico y white paper que publicamos en WeLiveSecurity, y en los cuales análizamos una amenaza y/o campaña en particular, se detallan los distintos tipos de indicadores de compromiso para cada caso. En cada análisis publicado se suele incluir los hashes de las muestras analizadas para el reporte. De esta manera, otras entidades pueden nutrirse de estos indicadores de compromiso para incorporarlos a sus sistemas y realizar sus propias investigaciones, lo cual a menudo aporta nuevos datos sobre una campaña que distribuye algún malware en particular.
Esto último forma parte de un proceso de análisis de información que se conoce como Inteligencia de amenazas, en inglés Threat Intelligence. Este cruce y análisis de información es importante para detectar, mitigar, y realizar informes estadísticos de una campaña maliciosa en proceso, lo cual ayuda a la comunidad a mantenerse al tanto de las actividades de un actor malicioso durante un período de tiempo. Además, provee de información actualizada a los esfuerzos que se llevan adelante para detener a estas organizaciones y bandas criminales.
Algunos ejemplos de campañas maliciosas que hemos analizado en las últimas semanas:
- Vadokrist: análisis de este malware bancario que apunta a Brasil
- Operación Spalax: Ataques de malware dirigidos en Colombia
- Operation SignSight: ataque de cadena de suministro a una autoridad de certificación
Adicionalmente, desde ESET mantenemos un repositorio en GitHub con IOCs correspondientes a diferentes campañas de malware que se desprenden de nuestras investigaciones.
Es importante mencionar que en una misma campaña de malware pueden detectarse docenas, cientos y hasta miles de variaciones del mismo malware. Por ejemplo, la variación más común es la adición de una nueva dirección para comunicarse con el servidor C&C, lo que produce un cambio en el hash resultante de la muestra. Por esto es que resulta tan importante y se recomienda siempre al usuario mantener sus soluciones antimalware actualizadas, y en completo funcionamiento.
Tráfico de datos y direcciones IP como indicadores de compromiso
No es inusual que la actividad maliciosa se detecte en alguna red por medio del monitoreo de tráfico y sistemas de detección de intrusos. En algunos casos se encienden las alarmas de estos sistemas cuando hay un importante tráfico de datos hacia afuera de la red, ya sea a servidores externos o pertenecientes a la organización. También puede suceder que esto ocurra entre equipos conectados en una red local. Este extraño movimiento de datos junto con el acceso a páginas web inusuales, también son posibles indicadores de compromiso.
Por otra parte, cuando analizamos un malware queremos saber cuál es la dirección IP del servidor de Comando y Control (C&C) con el que se comunica. Estos servidores son utilizados por los atacantes para distintos fines. Por ejemplo: para enviar comandos a un equipo comprometido y de esta manera controlar el malware de forma remota; para recibir informes detallados de los sistemas infectados; para exfiltrar información útil del equipo o sistema comprometido (incluyendo contraseñas, documentos con información sensible, etc), o incluso para descargar otra amenaza en el sistema comprometido (como suele hacer el troyano Emotet).
Por eso es muy importante encontrar las respectivas direcciones IP de estos servidores. Las mismas son luego agregadas a listas negras de bases de datos de sitios para que sistemas automatizados detecten un posible intento de conexión a estos sitios y nos alerten. Por lo tanto, estas direcciones también forman parte de indicadores de compromiso.
Indicadores de compromiso a partir de cambios en el Registro de Windows
Otra tarea del análisis de malware es comprender qué cambios realiza el código malicioso en el sistema y de qué forma lo manipula. Un ejemplo de los cambios que puede provocar el malware es la manipulación del Registro de Windows. Este registro es una base de datos que contiene valores de configuración para el funcionamiento del sistema, así también como los programas que lo componen y los software instalados por el usuario. Windows posee una herramienta para explorar el registro, llamada “Editor del Registro”, también conocido por su nombre de archivo: regedit.exe.
Muchos programas maliciosos crean entradas en el registro para almacenar su propia configuración, así como también componentes enteros para evitar guardarlos en el sistema de archivos, ya que puede ser fácilmente explorado por el usuario (por ejemplo: en C:\Windows). Algunas entradas del registro poseen un valor estratégico importante para el malware, ya que necesita persistir una vez que el equipo es apagado o reiniciado, pero también necesita poder iniciarse con el sistema para continuar con su actividad. A este tipo de entradas les llamamos “AutoRuns”, y allí es donde casi siempre podemos hallar la presencia de malware y de un indicador que nos confirme que nuestro sistema ha sido comprometido.
Otros tipos de indicadores de compromiso
Existen muchos otros tipos de IoC que se pueden reconocer, aunque algunos requieren un poco más de especialización por parte del usuario o una buena intuición, así como también del uso de algunas herramientas, pero no por eso podemos dejar de mencionar los más comunes:
- Trafico de red inusual hacia páginas web desconocidas, movimiento de grandes volúmenes de datos hacia páginas web, servidores externos, o entre equipos en la misma red.
- Cambios en la configuración del sistema, nuevas entradas en el registro que condicen con alguna actividad de actualización o instalación de programas legítimos.
- Intentos de acceso a equipos en la misma red, sobre todo con intentos fallidos.
- Archivos sospechosos no reconocidos en ejecución o en el disco o archivos de gran tamaño en lugares poco comunes.
- Actividad inusual que incrementa acceso al disco en algún/os procesos.
- Actividad sospechosa de la cuenta de administrador o de otros usuarios con privilegios, así como también cuentas no reconocidas o inicios de sesión sospechosos.
Recomendaciones de Seguridad
No existe un IoC infalible para detectar una amenaza, algunas veces por simple intuición o pericia somos capaces de observar que hay algo fuera de lugar ocurriendo en nuestros sistemas. Pero siempre debemos recordar que la primera línea de defensa somos nosotros: debemos prevenir este tipo de ataques tomando los recaudos necesarios, instalando, configurando y manteniendo actualizada la solución de seguridad que tengamos instalada. También tomando precaución necesaria a la hora de abrir, leer y responder correos de desconocidos que prometen algo demasiado bueno para ser cierto. Lo mejor que podemos hacer con estos correos es marcarlos como spam y eliminarlos.