Por su descripción, esta competencia suena muy similar a CyberPatriot o algún derivado de ella. Para proporcionar un contexto para aquellos que no lo han escuchado, este es un estilo de competencia en el que a los participantes se les proporcionan máquinas virtuales que están deliberadamente plagadas de vulnerabilidades, y se les otorga puntos por corregirlas.
Listar todas las posibles vulnerabilidades que pueden estar presentes en estas máquinas es (literalmente) imposible. En cierto modo, esto refleja cómo funcionan las cosas en el mundo real: una vez que la máquina se ve comprometida, es extremadamente difícil garantizar que sea segura nuevamente sin una reinstalación completa del sistema operativo. Tratar de eliminar todas las puertas traseras que se hayan plantado es un esfuerzo bastante inútil que probablemente no se debe intentar en la realidad, pero estoy divagando ...
Con este descargo de responsabilidad fuera del camino, puedo proporcionar una lista básica de las cosas que estas competiciones a menudo quieren que arregles:
- Busque en el archivo
/etc/passwd
para buscar cuentas no autorizadas que puedan estar presentes en el sistema. Muchos de estos pueden ser cuentas legítimas del sistema, por lo que es posible que tenga que comparar con una copia del archivo de un sistema limpio.
- Verifique que
/etc/passwd
y /etc/shadow
tengan los permisos correctos (664 y 640)
- Instale actualizaciones del sistema operativo usando
sudo apt-get update
y sudo apt-get upgrade
. Asegúrese de que las fuentes de actualización de software no hayan sido alteradas o inhabilitadas.
- Use
ufw
para habilitar y configurar el firewall. Bloquee todas las conexiones entrantes, excepto en los puertos que deben seguir escuchando.
- Cambia manualmente todas las contraseñas de los usuarios. También recomiendo establecer una política de complejidad de contraseña.
- Busque los scripts de inicio y las tareas programadas ( trabajos cron ) que puede estar lanzando scripts maliciosos. Compruebe si hay algo en
/etc/rc.local
.
- Use el comando
netstat
para verificar los puertos de red en los que el sistema está escuchando. Elimine cualquier programa que esté escuchando en los puertos en los que su máquina no debería estar escuchando.
- Busca rootkits con
rkhunter
. Puede ejecutar un escaneo de malware con clamav
, pero esto consume bastante tiempo.
- Si tiene que permitir conexiones SSH, asegúrese de que SSH esté asegurado. En particular, asegúrese de que en la configuración de SSH las opciones
PermitRootLogin
, HostBasedAuthentication
y PermitEmptyPasswords
estén establecidas en no
.
- Verifique que la carpeta de inicio de cada usuario tenga una carpeta oculta
.ssh
. Elimine cualquier entrada en el archivo authorized_keys
dentro, si está presente.
- Use el comando
ps
para enumerar los procesos en ejecución. Compruebe si hay procesos maliciosos con nombre evidente.
Nuevamente, esto no es, de ninguna manera, una lista exhaustiva, y si se le pide que mantenga en ejecución determinados servicios (servidor web, servidor FTP, etc.), habrá muchas cosas que puede hacer para proteger específicamente esos servicios. Pero esto debería proporcionar un buen punto de partida.
Si no está seguro de cómo realizar alguna de las tareas enumeradas anteriormente, debería poder encontrar instrucciones más detalladas fácilmente a través de Google.