Introducción a la seguridad Informática 3 - (5-8)

Detectar si hemos sido infectados con un malware

Cuando un equipo está infectado por un malware empiezan a darse una serie de comportamientos sospechosos. A continuación listamos los síntomas más comunes:

Demora en el arranque del sistema operativo: la mayoría de los malware agregan una entrada al registro de Windows para iniciarse junto al mismo. De este modo el atacante se asegura de que el equipo siga infectado aun si es apagado o reiniciado.

Disminución en el rendimiento: los malware consumen recursos del sistema, por lo que es un síntoma muy común notar una ralentización en todas las actividades que se intentan llevar a cabo.

Cuelgues y pantallazos azules: esto puede deberse a conflictos entre el malware y el hardware, el software o las aplicaciones de seguridad instaladas.

Las aplicaciones instaladas dejaron de funcionar correctamente: puede que el malware instale o elimine componentes que modifican o afectan negativamente a los otros programas, por eso dejan de funcionar como antes.

Desaparecen carpetas y/o se desactivan funciones: cuando el malware intenta ocultar su presencia algunas carpetas dejan de estar visibles y/o acciones de ciertos menús desaparecen. Hasta incluso puede suceder que se deshabilite el administrador de tareas, el firewall y las soluciones antimalware instaladas.

Aparición de archivos inesperados: los malware suelen realizar copias de sí mismo en un sistema infectado o crear otros archivos de control.

Disminución del ancho de banda de conexión a Internet: puede notarse cierta demora al navegar por sitios web, descargar archivos, enviar y recibir correos, etcétera. También pueden ocurrir repentinas desconexiones a internet sin causa aparente.

Más allá de que notemos o no algunos de los síntomas citados anteriormente, podemos sacarnos la duda realizando ciertas verificaciones técnicas en nuestro equipo.

Mirar los procesos

Un paso rápido y sencillo es revisar los procesos que se están ejecutando en nuestro sistema. Para eso abrimos el administrador de tareas ejecutando CTRL + ALT + SUPR o click derecho del mouse sobre la barra de Windows y seleccionamos el ítem: Iniciar administrador de tareas.


Administrador de tareas de Windows.

En la pestaña de procesos encontraremos muchos de ellos que son nativos de Windows. Por ejemplo:

  • smss.exe: encargado de manejar las sesiones de usuario en el sistema.
  • csrss.exe: utilizado por las aplicaciones para interactuar con el núcleo (kernel) del sistema y ejecutar las API Win32.
  • winlogon.exe: utilizado por el sistema operativo durante la fase de autenticación.
  • services.exe: encargado de iniciar y detener los servicios del sistema operativo.
  • svchost.exe: se encarga de ejecutar todos aquellos servicios que utilizan las Librerías de Enlaces Dinámicos (DLL). Básicamente realiza un chequeo del registro para identificar los servicios que el sistema necesita cargar.
  • alg.exe: se trata de un servicio que posibilita la conexión de diferentes protocolos a través de Internet Connection Sharing (ICS) e Internet Connection Firewall (ICF).
  • lsass.exe: se trata de un proceso netamente relacionado con la seguridad en Windows, encargándose de los mecanismos de autenticación como parte de la capa de seguridad a nivel local.
  • explorer.exe: representa al explorador (Shell gráfica) de Windows.
  • ctfmon.exe: es un proceso que forma parte de la Suite de Ofimática de Microsoft y se activa cada vez que se ejecuta una de sus aplicaciones (Word, Excel, PowerPoint, etc.).


Aparte de estos y otros procesos más, propios del sistema operativo, encontraremos aquellos que son creados por las aplicaciones que instalamos. Por ejemplo, una base de datos MySQL tiene su proceso mysqld.exe o, algo más simple, un navegador web al ser ejecutado crea su proceso (ej.: firefox.exe).

Entonces, si cada aplicación que se ejecuta en nuestro sistema crea su propio proceso, es correcto pensar que si estamos infectados por un malware el suyo aparezca en la lista. Aquí radica la importancia de conocer todos los procesos que se ejecutan en nuestra máquina; si desconocemos alguno de ellos, rápidamente localizaremos el ejecutable del mismo y buscaremos información en internet para saber si es propio del sistema operativo, está asociado a alguna aplicación benigna o definitivamente puede ser un malware.

Ahora bien, con revisar los procesos no es suficiente para saber si estamos infectados, ya que pueden suceder al menos tres cosas:

  1. Que el proceso del malware lleve el nombre de una aplicación benigna (por ejemplo adobereader.exe) y nos engañe
  2. Que el código malicioso se haya inyectado dentro de un proceso propio del sistema (como explorer.exe) o de alguna aplicación ya instalada, como el navegador web
  3. Que el malware esté acompañado por un rootkit y su proceso no pueda verse desde el administrador de tareas. 


Con esto en mente, si no encontramos algún proceso sospechoso pero dudamos de que el sistema esté realmente limpio, será mejor que continuemos realizando otras verificaciones.

Revisar las conexiones

Como sabemos, la gran mayoría de subtipos de malware realiza conexiones hacia afuera para enviar la información recopilada sobre el equipo víctima del ataque. Es por eso que, analizar las conexiones activas del sistema es un paso importante al momento de determinar si estamos infectados.
Una forma fácil y rápida de ver las conexiones de nuestro equipo es haciendo uso del intérprete de comandos de Windows (CMD). Nos dirigimos al Menú Inicio Todos los programas Accesorios Símbolo del sistema.

Dentro de la terminal, ejecutamos el comando: netstat –a. El parámetro –a le indica a netstat que debe mostrar todas las conexiones y puertos a la escucha en nuestro equipo; se pueden consultar los parámetros disponibles ejecutando netstat –h.

La salida del comando ejecutado nos mostrará el protocolo, la dirección local, la dirección remota y el estado de cada conexión del sistema. Aun así, puede que no logremos identificar cuál de todas esas conexiones podría estar vinculada a un malware, es por eso que en este caso nos será de mayor utilidad usar el comando netstat seguido del parámetro –b.


Ejemplo de salida del comando netstat –b con el navegador Firefox en ejecución.

A diferencia del parámetro –a, con netstat –b podremos saber cuál es el ejecutable que está abriendo la conexión en nuestro sistema. Es importante que antes de ejecutar este comando cerremos todas las aplicaciones que hagan conexiones externas (navegadores webs, mensajería instantánea, software P2P, etcétera) si todo está cerrado, netstat –b no debería mostrar conexiones activas. En caso de que lo haga, tendremos que identificar cuál es el ejecutable que efectivamente está abriendo la conexión ya que podría tratarse de un malware.

Verificar las entradas en el registro

Además de realizar conexiones, los malware añaden una entrada en el registro de Windows para iniciarse junto al mismo. Así que el próximo paso será entrar al registro y asegurarnos que ningún programa de los que se inician al arrancar el sistema es un malware.

Ahora bien, el registro de Windows está conformado por una gran cantidad de claves y valores, ¿por dónde debemos revisar? Los programas que quieren o necesitan iniciarse junto al sistema se añaden en las siguientes rutas del registro:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run


Para ver las entradas existentes en estas rutas utilizaremos el editor del registro que nos proporciona Windows. Nos dirigimos al Menú Inicio y en el campo de “Buscar programas y archivos” escribimos regedit.exe y presionamos ENTER.


Editor del registro de Windows.

Dentro del registro, iremos navegando entre clave y subclaves hasta llegar a las rutas que hemos mencionado anteriormente.

En la clave de HKCU (HKEY_CURRENT_USER) es posible que no encontremos nada, tal como se ve en la figura 6. De hecho, cuanto más limpias estén estas rutas ¡mejor! Ya que el sistema podrá iniciarse sin demoras.

En la otra clave, HKLM (HKEY_LOCAL_MACHINE), puede que encontremos entradas de controladores gráficos, entre otros elementos que pudieran ser necesarios para el correcto inicio del sistema operativo. Lo importante es, justamente, que sean sólo esas entradas necesarias las que se encuentren en dicha ruta.

Publicar un comentario

0 Comentarios