Puede que en un momento dado, tengas serias sospechas de que tu equipo ha sido comprometido por un malware, y sin embargo el antivirus no reporte nada raro.
Y es que poniéndonos en lo peor, es posible que dependiendo de lo sofisticado del bicho que ha infectado el ordenador, pase totalmente desapercibido para el antivirus tradicional. En este sentido una primera recomendación, es dirigirse a soluciones tipo EDR (Endpoint Detection and Response) –más info-, sobre todo si el contexto es corporativo.
Las sospechas pueden fundamentarse en diversos motivos: comportamientos anómalos del equipo, consumo anómalo de recursos (CPU, RAM, ancho de banda), o simplemente porque otros equipos de la organización o de casa se han visto comprometidos recientemente y andamos con la mosca detrás de la oreja. Incluso también vale ser precavidos si somos una celebridad, un reconocido activista, un agente especial a lo 007, o cualquier personaje similar que por naturaleza es un jugoso objetivo de ciberdelincuentes.
Sea como fuere, vamos a dar a continuación algunas pautas para tratar de quedarnos lo más tranquilos posible.
Primeros pasos:
El primer paso es probar a pasar otro antivirus en el equipo, y me explico, no hay ninguna solución de antivirus total que lo detecte todo, y puede ocurrir que un malware concreto sea detectado por un programa de antivirus y por otro no, y sin embargo para otro malware diferente ocurra lo contrario.
En este sentido opciones hay muchas, incluso Windows integra el antivirus gratuito Defender, que si no es nuestra solución habitual, puede ayudarnos directamente sin instalar nada adicional.
Otra opción es utilizar Malwarebytes, que tiene una opción gratuita en modo personal: https://es.malwarebytes.com/, éste no es un antivirus al uso, y si lo recomiendo es más bien como complemento a éste. Pero por experiencia, es bastante eficaz cuando se trata de detectar amenazas que han pasado desapercibidas para el antivirus de siempre.
Análisis forense con Sysinternals:
Si tras lo anterior, seguimos sin estar tranquilos, podemos llevar a cabo un análisis forense sencillo en el equipo, que además nos servirá un poco como práctica amateur. Para ello, vamos a usar herramientas incluidas en la suite Sysinternals.
Por ubicarnos un poco, Sysinternals es un conjunto de herramientas gratuitas de Microsoft, que ya mencionamos en el artículo “Herramientas sysadmin imprescindibles en Windows”: https://ciberseguridadtotal.com/herramientas-sysadmin-imprescindibles-en-windows/.
Podemos descargarlas de https://learn.microsoft.com/es-es/sysinternals/, e incluyen varias utilidades, todas de interés. Aunque ahora, nos centraremos en unas pocas muy concretas:
Sysinternals Autoruns:
Con Sysinternals Autoruns, podemos ver todos los programas que cargan en el inicio de Windows, una vez ejecutada la utilidad (preferiblemente con permisos de administrador), se cargará algo parecido a esto:
En la pestaña everything encontraremos todo, aunque podremos filtrar resultados por categoría, destacando las pestañas “Logon”, “Scheluded Tasks” y “Services”.
Como es lógico, Autoruns no va a indicarnos si hay malware o no en nuestro equipo, esta herramienta no se orienta a eso, pero lo que sí puede hacer es darnos información que nos permita determinar si hay algo anómalo o no. De modo que entre otras cosas podemos:
1- Verificar la firma de aplicaciones:
Windows requiere que las aplicaciones legítimas estén firmadas por el certificado de un desarrollador. De modo que podamos verificar quién ha desarrollado un programa particular, por ejemplo, la firma del navegador Chrome será la de Google. Existen no obstante, aplicaciones no firmadas, y de hecho éstas son más controladas por ejemplo por el antivirus Defender.
Una buena práctica, es verificar todas las firmas de aplicaciones, para ello nos dirigiremos al menú de Autoruns: Options -> Scan Options… -> Verify code signatures.
Tras la ejecución, nos aparecerá una columna “Publisher” en los resultados, que indicará si está Verificado el programa, y por quién. Además las filas de los programas no verificados se marcarán en rojo.
2- Enviar programas a VirusTotal:
No entraré en explicar qué es VirusTotal, que por méritos propios se ha ganado una entrada dedicada en el blog: https://ciberseguridadtotal.com/como-sacar-partido-a-virustotal/, más si cabe por nacer aquí, en España.
En todo caso, indicar que Autoruns permite enviar los binarios a VirusTotal para contrastar si son detectados como programas maliciosos. Para ello, debemos dirigirnos al menú: “Options -> Scan Options… -> Check VirusTotal.com”. Como nota adicional, si marcamos la casilla opcional “Submit Unknown Images”, enviaremos los ficheros al servicio, por tanto es probable que lo mejor sea mantenerla desactivada y verificar simplemente los hashes criptográficos, ya que una vez en VirusTotal quedan de acceso público.
En todo caso, una vez ejecutado el check de VirusTotal, tendremos que esperar un poco a que aparezcan los resultados en el listado de “Everything”. Estos resultados aparecerán en una nueva columna denominada VirusTotal, con el siguiente formato:
nº de positivos / nº de motores antivirus con los que se ha analizado
Normalmente 5 positivos o más, es señal de que indudablemente es un malware, y 1-2 de que quizá es un falso positivo. Si no salen resultados, quiere decir que el binario es la primera vez que se sube a VirusTotal y requiere una inspección adicional.
3- Comprobar las características de la aplicación:
Con Autoruns es muy fácil comprobar 3 detalles de la aplicación, que pueden ser un indicio de malware:
- Nombre: es el que el desarrollador ha querido poner, y lógicamente esa información es falsable. Pero a veces los malos son perezosos, y podemos llegar a encontrarnos nombres raros, o mal escritos: como por ejemplo: Chorme en lugar de Chrome
- Descripción: algo parecido a lo anterior. Las aplicaciones legítimas suelen tener una descripción adecuada, carecer de ella da mala espina.
- Ruta: normalmente las aplicaciones se encuentran en C:\Program Files o C:\Program Files (x86), y los servicios en C:\Windows. La instalación en estas carpetas requiere de confirmaciones y permisos adicionales, por lo que el malware habitualmente se traslada a otros sitios (normalmente colgando de la carpeta de usuario C:\Users\nombre-usuario). Que una aplicación concreta no esté dónde debe, es también sospechoso.
Sysinternals Process Explorer:
Esta herramienta no se centra en las aplicaciones que cargan al inicio, sino en los procesos en ejecución que hay en un momento dado en el sistema, ordenándolos en aspecto árbol como la captura siguiente:
Es recomendable ejecutar la utilidad como administrador del equipo para una mejor visibilidad y acceso a los recursos. Entre otras cosas, con Process Explorer podremos:
1- Verificar la firma de aplicaciones:
De un modo similar a como vimos en Autoruns. En este caso encontraremos la opción en el menú “Options -> Verify Image Signatures…”.
2- Búsqueda de scripts:
Habitualmente los ciberdelincuentes utilizan secuencias de comandos en Windows para hacer daño, hablamos por ejemplo de scripts maliciosos en PowerShell.
Este tipo de scripts también se utilizan para buenos fines, por ejemplo automatizar o configurar cosas en entornos corporativos, pero no es habitual que estén como procesos en ejecución del sistema.
Por tanto, cualquier proceso de powershell.exe y wscript.exe es sospechoso. Si localizamos un proceso de este tipo, simplemente con poner el cursor del ratón encima, nos aparecerá una ventana emergente con información adicional que permitirá ver de qué se trata y si hace cosas feas.
3- Enviar el proceso a VirusTotal:
También de un modo similar a como vimos con Autoruns, Process Explorer permite comprobar los hashes criptográficos en VirusTotal. Para ello nos dirigiremos al menú “Options -> VirusTotal.com -> Check VirusTotal.com”.
4- Revisar DLL:
Habitualmente los malos también distribuyen el malware en formato librería DLL. Estas librerías han de llamarse desde cargadores adecuados en Windows: regsvr32.exe o rundll32.exe.
Por tanto, una buena práctica es ver todos los procesos de estos cargadores en busca de anomalías. Igualmente, con posicionar el ratón sobre el proceso de turno, nos aparecerá una ventana emergente con los datos de la DLL concreta que se está ejecutando.
5- Procesos de aplicaciones no visibles:
Otra técnica de los ciberdelincuentes es tratar de camuflar el malware con una aplicación legítima y conocida, es lo que se conoce como Process Hollowing. Un ejemplo es lanzar una aplicación “buena” como Internet Explorer, y reemplazarla con código malicioso, de modo que de cara al sistema parezca que se está ejecutando algo de confianza.
El ejemplo anterior podemos catalogarlo como malware, si en el Process Explorer aparece Internet Explorer en ejecución (iexplorer.exe), pero realmente no hay una ventana del navegador abierta en Windows.
Sysinternals TCPview:
Terminamos con el repaso de utilidades incluidas en Sysinternals, para hablar de TCPview.
Con esta herramienta, podemos ver información de todas las conexiones de red establecidas en el equipo, de un modo similar a éste:
¿Y por qué es interesante ver las conexiones? Pues porque si nuestro equipo ha sido comprometido, es a través de red como se transmitirán los datos de interés para el ciberdelincuente (contraseñas, pulsaciones de teclado, documentos, capturas de webcam o pantalla…).
No obstante, nos encontraremos 2 dificultades para detectar conexiones sospechosas, la primera es que normalmente el flujo de datos no es continuo, sino que el malware envía datos con una periodicidad concreta y por tanto para detectarlo debemos pillarlo en acción. La segunda, que nos sorprenderemos la cantidad de conexiones que hay en un momento dado en el equipo, de modo que como aplica el dicho, el bosque no deja ver los árboles.
En todo caso, con paciencia TCPview puede ser una ayuda, y comparándolo a otras utilidades de referencia como Wireshark, añade la característica de que relaciona las conexiones con procesos de Windows en curso. Esto nos será de ayuda para tratar de localizar dónde se están conectando procesos sospechosos. Por ejemplo, si vemos constantemente que el proceso del navegador web trata de conectarse a una IP concreta, y además no estamos interactuando con él, pues da que pensar. Podemos además obtener la IP a la cuál se intenta conectar, y buscar información de si es legítima en: https://ipinfo.io/ o https://www.abuseipdb.com/ de ese modo saldremos de dudas.
Otras opciones:
Espero más pronto que tarde, poder hablaros de más herramientas interesantes, a parte de Sysinternals. Os adelanto algunos nombres como CrowdInspect: https://www.crowdstrike.com/resources/crowdinspect/ o Thor Lite: https://www.nextron-systems.com/thor-lite/ por si tenéis curiosidad en ir echándolas un vistazo.
Drástico pero eficaz:
Ante la duda… formatear. Y es que más vale prevenir que lamentar, un formateo es sinónimo de limpieza absoluta, y además mejorará el rendimiento de Windows, al que siempre le viene bien un lavado periódico.
El mayor pero de esta acción, el tiempo consumido en instalar, configurar y copiar datos, etc… pero gracias a herramientas de automatización (por ejemplo de paquetes: https://ciberseguridadtotal.com/tu-software-siempre-actualizado-ninite-chocolatey-y-patch-my-pc/) y de backup o copia, ya sea en cloud o local, no tenemos excusa.