En el artículo Comprobar si hay un compromiso de seguridad:puertas traseras e intrusos, aprendió algunas técnicas básicas para recopilar la información necesaria para identificar a los intrusos que han comprometido su servidor. Este artículo describe cómo utilizar el modo de rescate del panel de control en la nube. para echar un vistazo más de cerca a su sistema. Puede usar el modo de rescate para comprender mejor cómo se comprometió su servidor e identificar archivos no comprometidos antes de realizar una copia de seguridad de los datos.
Activar modo rescate
Debido a que el sistema operativo de su servidor en la nube también podría verse comprometido, no puede confiar en él. El intruso podría haber comprometido binarios como 'ls', 'find' y 'netstat', por lo que su salida podría confundirlo. En consecuencia, debe usar un entorno de sistema operativo diferente para investigar de manera segura el compromiso.
Puede hacerlo utilizando la función de modo de rescate proporcionada en el Panel de control de la nube. Para obtener instrucciones y más información, consulte Modo de rescate.
Mientras su servidor está en modo de rescate, puede realizar las siguientes acciones para localizar la fuente del compromiso.
Buscar rootkits
Le recomendamos que instale y utilice las siguientes herramientas para escanear su sistema en busca de rootkits.
Buscar rootkits con chkrootkit
chkrootkit
busca firmas conocidas en sistemas binarios comprometidos. Por ejemplo, algunas versiones comprometidas de ps
tener “/dev/ptyp
" dentro de ellos. Recomendamos instalar chkrootkit
usando su administrador de paquetes en lugar de compilar desde la fuente. Para obtener más opciones e información sobre el uso de chkrootkit, consulte http://www.chkrootkit.org/README.
-
Para instalarlo, ejecute el siguiente comando:
apt-get install chkrootkit
-
Ejecute
chkrootkit
contra el sistema de archivos montado del Servidor Cloud:chkrootkit -r /mnt/demo
Los siguientes mensajes son impresos por chkrootkit
durante sus pruebas:
-
INFECTED
- la prueba ha identificado un comando probablemente modificado por un rootkit conocido -
not infected
- la prueba no encontró ninguna firma de rootkit conocida -
not tested
- no se realizó la pruebaEsto podría suceder en las siguientes situaciones:
- La prueba es específica del sistema operativo
- La prueba depende de un programa externo que no está disponible
- Se dan algunas opciones de línea de comando específicas (por ejemplo,
-r
)
-
not found
- no se encuentra el comando a probar -
Vulnerable but disabled
- el comando está infectado
Para obtener más opciones e información sobre el uso de chkrootkit
, consulte https://www.chkrootkit.org/README.
Buscar rootkits con rkhunter
Cazador de rootkits (rkhunter
) compara los sistemas con una base de datos de rootkits conocidos. También puede verificar otros archivos del sistema para asegurarse de que estén en línea con las propiedades y los valores esperados.
-
Inicie sesión en su aplicación de terminal y cambie a sus
sources
directorio:cd ~/sources
-
Descarga la última versión de
rkhunter
desde el área de descarga de SourceForge:https://sourceforge.net/projects/rkhunter/files/
-
Después de instalar
rkhunter
, ejecútelo contra/mnt/demo
.rkhunter -c -r /mnt/demo
rkhunter
produce advertencias durante las pruebas que indican dónde se ha desviado un archivo de los valores predeterminados esperados. Después de la prueba, puede consultar el registro para ver información más detallada sobre qué archivos generaron la advertencia. Para obtener más opciones e información sobre el uso de rkhunter
, consulte https://rkhunter.cvs.sourceforge.net/viewvc/rkhunter/rkhunter/files/README.
Verificar últimos comandos
Para tener una idea de cómo se violó la seguridad del servidor de la nube, verifique qué usuarios ejecutaron comandos antes de que el servidor de la nube se viera comprometido.
El .bashhistory El archivo contiene los últimos comandos utilizados con el shell Bash. Debe verificar el .bashhistory archivos en el directorio de inicio de cada usuario. El .bashhistory más importante el archivo es el que pertenece a la raíz:/root/.bashhistory .
Un Cloud Server comprometido podría tener entradas como las siguientes:
wget https://malware.tar.gz
gunzip malware.tar.gz
tar xf malware.tar
Comprobar paquetes instalados
Todos los cambios en el sistema de empaquetado se almacenan en /var/log/dpkg.log Distribuciones basadas en onDebian. Verifique este archivo en busca de cualquier actividad sospechosa, como paquetes instalados o eliminados, o un bus modificado.
Ejecute el siguiente comando para mostrar las últimas 50 líneas del dpkg.log archivo:
tail 50 /mnt/demo/var/log/dpkg.log
Utilice el comando de búsqueda
El find
El comando generalmente se usa para buscar nombres de archivo con patrones específicos. Sin embargo, también puede usarlo para buscar los archivos que se modificaron o a los que se accedió dentro de un período de tiempo específico.
Por ejemplo, puede encontrar todos los archivos en /etc propiedad de root que se han modificado en los últimos dos días, de la siguiente manera:
find /mnt/demo/etc -user root -mtime -2
Las opciones disponibles son las siguientes:
-atime: when the file was last accessed
-ctime: when the file's permissions were last changed
-mtime: when the file's data was last modified
Tenga en cuenta el signo menos delante de '2' en el ejemplo anterior. Las opciones de 'tiempo' para find
comando se expresan en incrementos de 24 horas, y el símbolo que se usa delante del número puede indicar menor que o mayor que .Por lo tanto, '-2' significa que desea buscar archivos que se modificaron en los últimos dos días. Si desea buscar archivos que se modificaron hace más de 2 días, use +2
:
find /mnt/demo/etc -user root -mtime +2
También hay versiones del atime
, ctime
y mtime
argumentos que miden el tiempo en minutos:
-amin: when (in minutes) the file was last accessed
-cmin: when (in minutes) the file's permissions were last changed
-mmin: when (in minutes) the file's data was last modified
Ejemplo
Encuentre todos los archivos en su Cloud Server propiedad del demo
usuario al que se ha accedido en los últimos cinco minutos:
find /mnt/demo -user demo -amin -5
La siguiente lista de find
las opciones de comando pueden ser útiles al investigar la investigación del Servidor Cloud comprometido:
-nouser: shows output not associated with an existing userid
-nogroup: shows output not associated with an existing groupid
-links n: file has n links
-newer file: file was modified more recently than file
-perm mode: file has mode permissions
Verificar registros y archivos sospechosos
Puede encontrar un intruso comprobando si hay archivos sospechosos en /tmp ,/var/tmp , /dev/shm , /var/carrete/samba , /var/carrete/calamar y /var/spool/cron .
También puede consultar los archivos de registro en /var/log directorio. Por ejemplo, auth.log registra la información de inicio de sesión del usuario, incluidas las direcciones IP.
Resumen
En Comprobación de un compromiso de seguridad:puertas traseras e intrusos, aprendió algunas técnicas para descubrir puertas traseras y rastrear intrusos en su servidor en la nube. Esto le ayudará a evitar la situación o el error que condujo al compromiso, minimizando la posibilidad de futuros compromisos. En este artículo, aprendió cómo investigar su Servidor Cloud en modo de rescate.
Ya sea que se deba a virus, corrupción de archivos, fallas de la máquina u otros percances imprevistos, la posibilidad de pérdida de datos es real. Para evitar la interrupción que tal pérdida puede causar, haga una copia de seguridad de sus archivos con regularidad. Las siguientes son algunas opciones para ayudarlo a proteger sus archivos:
- Rackspace Cloud Backup es una buena opción para los clientes de Cloud Servers. Está completamente integrado con los servidores en la nube y es una alternativa de copia de seguridad basada en archivos a la copia de seguridad del servidor de imágenes completo.
- Para aquellos que prefieren hacerlo ellos mismos, consulte Hacer una copia de seguridad de sus archivos con rsync.