Cómo gestionar un fallo de seguridad en su servidor
Los servidores modernos suelen ejecutar una multitud de aplicaciones de software.
En nuestro caso, utilizamos Docker en el servidor para ejecutar múltiples servicios.
Uno de estos servicios, Gitlab, tenía un problema de seguridad (gitlab workhorse más concretamente).
Lo que llevó a una infección de troyanos. (En nuestro caso, los binarios se llamaban "wate" por si esto le importa a alguien - aunque también podrían haber sido nombres puramente aleatorios).
Nos dimos cuenta de esto debido a que nuestro hoster, Hetzner, cerró nuestra IP (y envió varios mensajes de advertencia). El troyano había sido utilizado como parte de un ataque DDoS a una IP china y estaba generando cantidades sospechosas de paquetes.
Tomamos medidas y, gracias a esta situación, surgieron algunos conocimientos útiles.
Por suerte, el servidor era accesible a través de una IP diferente (y por cierto - Hetzner también le permitirá a la lista blanca de una IP durante 2 horas para que pueda incluso trabajar con un servidor con una sola IP).
A continuación, algunos consejos clave para diagnosticar una violación de seguridad de este tipo
- No te asustes. Asegure primero los registros de Docker (y posiblemente cree una copia de seguridad) antes de apagar el servidor - podría necesitar estos registros para diagnosticar el problema.
- comprobar qué usuarios se han conectado por última vez / si se han creado nuevas cuentas
- Utilice un escáner de virus en su servidor (en el sistema operativo anfitrión para Docker). Nosotros utilizamos clamav para encontrar los troyanos.
- Nota: si también tiene un servidor de correo (como nosotros), el antivirus probablemente también detectará muchos correos sospechosos.
- Utilice un escáner de rootkits - hay dos que utilizamos, rkhunter y chkrootkit
- Utilice htop para averiguar qué procesos están cargando el servidor
- Utilizar una utilidad de monitorización del tráfico de red
- revise la salida de ps -aux para ver cualquier proceso sospechoso
Mi recomendación es que antes de Al apagar el contenedor se creará un volcado de ps -aux | grep wate (en nuestro caso) para ver los procesos del troyano que se están ejecutando, y después se volverá a apagar.
De esta manera, podrá confirmar que la brecha de seguridad ha sido contenida, y que los procesos no se propagaron fuera del contenedor Docker.
Problemas de rendimiento de WordPress
También experimentamos algunos problemas de rendimiento de WordPress durante esta situación, mientras la IP principal del servidor estaba bloqueada.
Después de que Hetzner desbloqueara nuestra IP, los problemas de rendimiento desaparecieron. (Nuestra sospecha inicial era que la brecha había sido en un contenedor de WordPress)
Acciones para evitar la situación en el futuro
- Vamos a configurar las actualizaciones automáticas de los contenedores. El novio de mi hermana me recomendó el contenedor Docker "Watchtower".
- Existe una herramienta llamada Lynis que es una herramienta de auditoría de seguridad que estudiaremos
- Utilice la autenticación de clave pública/privada en el servidor para SSH. Limitar específicamente las cuentas que pueden iniciar sesión
- Utilizar un servicio de auditoría SaaS / escáner - estamos planeando ejecutarlo de forma regular
- Empiece a crear copias de seguridad continuas, si aún no lo hace, para poder volver a una fecha pasada
No hay que avergonzarse de un error: la informática moderna es una empresa compleja. Mientras sigas aprendiendo de las situaciones, y utilizando diferentes enfoques para los problemas de TI (y la vida en general), habrá crecimiento y movimiento hacia adelante. La vida.
Por suerte, la mayoría de las situaciones se pueden gestionar y revertir. Esperamos que tengas copias de seguridad y puedas recuperarte de tu situación.
Mucha suerte y gracias por leer esto.