Los servidores en la nube pueden verse comprometidos por varios factores:contraseñas débiles, tablas de ip débiles, versiones de software antiguas con vulnerabilidades conocidas, etc.
Si su servidor en la nube se ha visto comprometido, no entre en pánico. El pánico conduce a malas decisiones, lo que podría empeorar la situación. En su lugar, intente comprender qué sucedió y asegúrese de que su servidor en la nube no se vea comprometido nuevamente de la misma manera. El objetivo de este artículo es ayudarte a aprender de tus errores y evitar repetir los mismos errores.
Este artículo describe algunas técnicas y herramientas que puede utilizar para investigar sus servidores si sospecha que se han visto comprometidos. Debe usar estas herramientas antes de pasar al modo de rescate (consulte Comprobación de un compromiso de seguridad:Investigación del modo de rescate para obtener más información sobre el modo de rescate). El servidor en la nube utilizado para este artículo ejecutaba Ubuntu® 8.10. Sin embargo, los pasos que se muestran son similares para otras distribuciones de Linux®.
Advertencia importante
Antes de continuar, debe tomar una decisión importante. ¿Planea involucrar a la policía y enjuiciar al atacante? Si lo hace, deje el sistema comprometido en paz y no realice cambios en él. Cualquier cambio que realice después del ataque podría contaminar la evidencia y complicar la investigación. Por eso, una política común es apagar un sistema después de que se detecta un compromiso y dejarlo así hasta que la policía esté lista para investigar.
Verificar conexiones de red
Comience su investigación comprobando las conexiones de red de su servidor en la nube.
Usa el netstat -an
comando, que produce un resultado similar al siguiente ejemplo, para verificar si hay puertas traseras abiertas en su servidor en la nube.
netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 284 1.2.3.4:6697 5.6.7.8:34506 ESTABLISHED
En este ejemplo, el puerto 6697 está abierto. Este puerto es comúnmente utilizado por los servidores de Internet Relay Chat (IRC). A menos que esté ejecutando su propio servidor de chat, esto no es una buena señal. Puede descubrir cualquier conexión a ese puerto usando el siguiente tcpdump
comando:
tcpdump src port 6697
Este comando captura todos los paquetes con el puerto de destino 6697.
Usar lsof
Muchos sistemas basados en UNIX® utilizan la lista de archivos abiertos (lsof
) utilidad de línea de comandos para informar una lista de todos los archivos abiertos y los procesos que los abrieron. De forma predeterminada, Linux trata todo, incluidos los dispositivos, como un archivo. Esto hace que lsof
una herramienta muy poderosa.
No todas las máquinas virtuales (VM) tienen lsof
instalado de forma predeterminada, por lo que es posible que deba instalarlo usando yum
o apt-get
si ve la siguiente respuesta:
-bash: lsof: command not found
Por ejemplo, puede usar lsof
para ver qué usuario tiene abierto un archivo en particular:
sudo lsof /etc/passwd
Si descubre el nombre de usuario bajo el control del intruso, puede usar lsof
para mostrar todos los procesos en ejecución del intruso:
sudo lsof -u hisUserName
lsof
también le ayuda a comprobar sus conexiones de red. Es importante investigar varios aspectos de su servidor en la nube con múltiples herramientas porque si sospecha que el sistema está comprometido, no puede estar seguro de qué comandos proporcionarán resultados confiables. Además, lsof
proporciona algunas opciones que netstat
no lo hace.
Para enumerar todos los sockets de Protocolo de Internet (IP) abiertos asociados con el servidor Secure Shell (SSH) de su servidor en la nube, ejecute el siguiente comando:
sudo lsof -i:22
Resumen
En este artículo, aprendió algunas técnicas para descubrir puertas traseras y rastrear intrusos en su servidor. Estas técnicas lo ayudan a evitar repetir cualquier situación o error que condujo al compromiso, por lo que es menos probable que lo pirateen nuevamente de la misma manera. En el siguiente artículo, Comprobación de un compromiso de seguridad:investigación en modo de rescate, aprenderá a investigar su servidor en la nube en modo de rescate.