Auditoría de servicios
Una gran parte de la seguridad consiste en analizar nuestros sistemas, comprender las superficies de ataque disponibles y proteger lo mejor posible los componentes.
La auditoría de servicios es un medio para saber qué servicios se ejecutan en un sistema dado, qué puertos utilizan para la comunicación y qué protocolos se aceptan. Esta información puede ayudarle a configurar los servicios que deben ser accesibles al público, los parámetros del cortafuegos, así como la supervisión y las alertas.
¿Cómo mejora la seguridad la auditoría de los servicios?
Los servidores pueden ejecutar procesos con fines internos y para atender a clientes externos. Cada servicio en ejecución, esté destinado a un uso interno o público, representa una superficie de ataque ampliada para los usuarios malintencionados. Cuantos más servicios ejecute, mayor es el riesgo de que una vulnerabilidad afecte a sus programas.
Una vez que tenga una idea clara de los servicios de red que se ejecutan en su máquina, puede empezar a analizar esos servicios. Cuando efectúe una auditoría de servicios, hágase las preguntas siguientes sobre cada servicio en ejecución:
- ¿Debe funcionar este servicio?
- ¿Se ejecuta el servicio en interfaces de red en las que no debería ejecutarse?
- ¿Debe el servicio estar vinculado a una interfaz de red pública o privada?
- ¿Están estructuradas mis reglas de cortafuegos para transmitir el tráfico legítimo a este servicio?
- ¿Bloquean mis reglas de cortafuegos el tráfico que no es legítimo?
- ¿Dispongo de un método para recibir alertas de seguridad sobre las vulnerabilidades de cada uno de estos servicios?
Este tipo de auditoría de servicios debe ser una práctica habitual en la configuración de un nuevo servidor en su infraestructura. Efectuar auditorías de servicios cada pocos meses le ayudará también a detectar todos los servicios cuyas configuraciones hayan podido modificarse de forma involuntaria.
Cómo efectuar auditorías de servicios
Para auditar los servicios de red en ejecución en su sistema, utilice el comando que enumera todos los puertos TCP y UDP en uso en un servidor. Un ejemplo de comando que muestra el nombre del programa, el PID y las direcciones utilizadas para escuchar el tráfico TCP y UDP es:
- sudo ss -plunt
Recibirá una salida similar a esta:

Las columnas principales que requieren su atención son las columnas Netid, Local Address: Port y Process name. Si la dirección local: puerto es 0.0.0.0, el servicio acepta conexiones en todas las interfaces de red IPv4. Si la dirección es [::], el servicio acepta conexiones en todas las interfaces IPv6. En el ejemplo de salida anterior, SSH y Nginx escuchan ambos en todas las interfaces públicas, en las pilas de red IPv4 e IPv6.
Con este ejemplo de salida, puede decidir si desea autorizar a SSH y a Nginx a escuchar en ambas interfaces, o únicamente en una u otra. Como regla general, debe desactivar los servicios que se ejecutan en interfaces no utilizadas. Por ejemplo, si su sitio solo debe ser accesible mediante IPv4, impediría explícitamente que un servicio escuche en las interfaces IPv6 para reducir el número de servicios expuestos.
Actualizaciones desatendidas
Mantener sus servidores al día con los parches es indispensable para garantizar un buen nivel de seguridad de base. Los servidores obsoletos y las versiones no seguras de los programas son responsables de la mayoría de los compromisos, pero unas actualizaciones periódicas pueden atenuar las vulnerabilidades e impedir que los atacantes tomen pie en sus servidores.
Las actualizaciones tradicionales exigen que un administrador compruebe e instale manualmente las actualizaciones de los distintos paquetes de su servidor; esto puede llevar mucho tiempo y es posible olvidar o pasar por alto una actualización importante. En cambio, las actualizaciones desatendidas permiten al sistema actualizar automáticamente una mayoría de paquetes.
¿Cómo mejoran la seguridad las actualizaciones desatendidas?
La implantación de actualizaciones desatendidas reduce el nivel de esfuerzo necesario para asegurar sus servidores y acorta el tiempo durante el cual sus servidores pueden ser vulnerables a fallos conocidos. En caso de una vulnerabilidad que afecte a los programas de sus servidores, sus servidores serán vulnerables durante el tiempo que tarde usted en ejecutar las actualizaciones. Unas actualizaciones diarias desatendidas garantizarán que no se le escape ningún paquete y que todo programa vulnerable se corrija en cuanto haya parches disponibles.
Junto con la auditoría de servicios mencionada anteriormente, la ejecución automática de las actualizaciones puede reducir considerablemente su exposición a los ataques y disminuir el tiempo dedicado a mantener la seguridad de su servidor.
Cómo implantar actualizaciones desatendidas
la mayoría de las distribuciones para servidor ofrecen ya actualizaciones desatendidas como opción. Por ejemplo, en Ubuntu, un administrador puede ejecutar:
sudo apt install unattended-upgrades
Observación: estos mecanismos solo actualizarán automáticamente los programas instalados mediante el gestor de paquetes de su sistema. Asegúrese de que todos los programas adicionales que ejecute, como aplicaciones web, estén configurados para actualizarse automáticamente o se verifiquen manualmente con regularidad.
Desactivar los índices de directorio
La mayoría de los servidores web están configurados por defecto para mostrar los índices de directorio cuando un usuario accede a un directorio que carece de archivo de índice. Por ejemplo, si creara un directorio llamado downloads en su servidor web sin ninguna configuración adicional, todos los archivos serían visibles para cualquier persona que recorriera el directorio. En muchos casos esto no supone un problema de seguridad, pero es muy posible que quede expuesto algo confidencial. Por ejemplo, si creara un directorio de índice en su servidor web para su sitio web, el directorio podría contener el archivo de la página de inicio de su sitio web y un archivo de configuración con las credenciales de la base de datos principal del sitio web. Sin desactivar los índices de directorio, ambos archivos de la carpeta serían visibles para cualquier persona que recorriera el directorio.
¿Cómo mejora la seguridad la desactivación de los índices de directorio?
Los índices de directorio tienen finalidades legítimas, pero a menudo exponen involuntariamente archivos a los visitantes. Desactivar los índices de directorio por defecto en su servidor web elimina el riesgo de pérdida accidental de datos, de fuga o de explotación, al hacer invisibles los archivos del directorio para los visitantes. Los visitantes pueden seguir accediendo a los archivos si existen en el directorio, pero la desactivación de la indexación hace que los archivos sean mucho más difíciles de descubrir involuntariamente.
En la mayoría de los casos, desactivar los índices de directorio consiste en añadir una línea a la configuración de su servidor web.
- Nginx desactiva los índices de directorio por defecto, de modo que, si utiliza Nginx, no debería necesitar realizar ningún cambio.
- La páginaDirectoryListings del wiki de Apache explica cómo desactivar los listados de directorios. Asegúrese de utilizar la Options -Indexes.
Realizar copias de seguridad con frecuencia
Aunque no sean estrictamente una medida de seguridad, las copias de seguridad pueden resultar cruciales para salvar los sistemas y los datos comprometidos, y para analizar cómo se comprometió el sistema. Por ejemplo, si su servidor se ve comprometido por un ransomware (una herramienta maliciosa o un virus que cifra los archivos y solo los descifra si el atacante recibe una suma de dinero), la falta de copias de seguridad puede significar que su única opción sea pagar para recuperar sus datos. Si sus sistemas y datos se copian con regularidad y de forma segura, podrá acceder a sus datos y recuperarlos sin interactuar con el sistema comprometido.
¿Cómo mejoran la seguridad las copias de seguridad frecuentes?
Unas copias de seguridad frecuentes permiten recuperar los datos en caso de borrado accidental y en caso de un ataque en el que sus datos sean borrados o dañados. En ambos casos, contribuyen a atenuar el riesgo de pérdida de datos al conservar copias de los datos anteriores a un borrado accidental o previas a que se produzca un ataque.
Además de los casos de ransomware, unas copias de seguridad periódicas pueden ayudar en el análisis forense de los ataques a largo plazo. Si no dispone de un historial de sus datos, puede resultar difícil, incluso imposible, determinar cuándo comenzó un ataque y qué datos fueron comprometidos.
Cómo implantar copias de seguridad frecuentes
Al implantar copias de seguridad para sus sistemas, considere como objetivo la recuperación de los datos comprometidos o borrados. Pregúntese: si mi servidor desaparece mañana, ¿qué medidas hay que tomar para volver a ponerlo en marcha y hacerlo funcionar de forma segura con el menor trabajo posible?
Estas son algunas otras preguntas que conviene tener en cuenta al elaborar un plan de recuperación ante desastres:
- ¿Debe utilizarse siempre la última copia de seguridad? En función de la frecuencia con la que cambian sus datos y del momento en que se produce un compromiso o un borrado, esto puede reducir el riesgo de recurrir por defecto a una copia de seguridad más antigua.
- ¿Cuál es el proceso real de restauración de la copia de seguridad?
- ¿Necesita crear un nuevo servidor o restaurar el servidor existente?
- ¿Cuánto tiempo puede sobrevivir sin ese servidor en funcionamiento?
- ¿Necesita copias de seguridad fuera del emplazamiento?
