Skip to main content

Implementación de cabeceras de seguridad

Las cabeceras de seguridad son una forma de agregar capas adicionales de seguridad a los sitios web y aplicaciones web. Son metadatos enviados por el servidor web junto con las respuestas a las solicitudes del cliente, y que proporcionan información adicional sobre cómo se debe manejar la respuesta y cómo se debe proteger la sesión del usuario.

Las cabeceras de seguridad se utilizan para implementar políticas de seguridad adicionales en la comunicación entre el cliente y el servidor web, y se pueden utilizar para mitigar una variedad de vulnerabilidades de seguridad, como ataques de inyección de código, cross-site scripting (XSS), clickjacking, sniffing de paquetes y otros.

Entre las cabeceras de seguridad más comunes se incluyen:

  • Content-Security-Policy (CSP): Esta cabecera permite a los sitios web especificar qué tipos de contenido (como scripts, fuentes, imágenes, etc.) se pueden cargar y desde qué orígenes se pueden cargar. Esto puede prevenir los ataques XSS, ya que limita el alcance de los scripts maliciosos.
  • Strict-Transport-Security (HSTS): Esta cabecera obliga a los navegadores web a utilizar HTTPS para todas las solicitudes al servidor. Esto protege contra ataques de sniffing de paquetes y garantiza que la comunicación entre el cliente y el servidor se realice de forma segura.
  • X-Frame-Options: Esta cabecera permite a los sitios web controlar si su contenido se puede cargar en un iframe de otro dominio, lo que ayuda a prevenir ataques de clickjacking.
  • X-XSS-Protection: Esta cabecera activa el filtro anti-XSS del navegador y previene ataques XSS.
  • X-Content-Type-Options: Esta cabecera ayuda a prevenir ataques de sniffing de contenido, especificando el tipo de contenido que el servidor web debe enviar.

Implementación  de cabeceras de seguridad en servidores Apache

Implementación realizada en apache 2.4 y Debian se requieren que el usuario tenga permisos de administrador (sudo):

Habilitar las cabeceras de seguridad:

# a2enmod headers

Configurar del archivo security.conf:

# nano /etc/apache2/conf-enabled/security.conf

Modificar los siguientes valores:

Header set X-Content-Type-Options: "nosniff"

Header always set X-Frame-Options: "SAMEORIGIN"

Header always set Referrer-Policy: "no-referrer"

Header set X-XSS-Protection: "1; mode=block"

Finalmente reiniciar el servidor:

systemctl restart apache2

Implementación  de cabeceras de seguridad en servidores Nginx

Implementación realizada en Nginx y Debian

Ir al directorio /etc/nginx/conf.d/ e ingresar al archivo de configuración .conf que este utilizando.

Abrir el archivo de configuración y agregar las siguientes líneas al bloque server:

# Configuración de cabeceras de seguridad
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "SAMEORIGIN";
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'";

 Reiniciar el servidor nginx:

sudo systemctl restart nginx

Implementación  de cabeceras de seguridad en servidores IIS

Configuración en el Servidor IIS, para su configuración, en la ventana encabezados de respuesta HTTP, haga clic en agregar en el panel derecho de acciones y luego ingrese los detalles del encabezado como se muestra a continuación.

EncabezadosIIS.png

Strict-Transport-Security

El valor “max-age=63072000” es el número de segundos que se establece para que la navegación haga uso del encabezado.

maxageIIS.png

X-Frame-Options

xframeoptionsIIS.png

X-Content-Type-Options

xcontentypeoptionsIIS.png

Content-Security-Policiy

CSPIIS.png