Saltar al contenido

Entendemos que la seguridad absoluta no existe, sin embargo, comencemos a dar pasos para mejorar nuestros productos agregando capas de seguridad para reducir el riesgo y tomar mayor conciencia de la ciberseguridad, lo que redundará positivamente en un robustecimiento de nuestros desarrollos y un aumento en la calidad de nuestro trabajo. 

En esta entrada os dejaré una serie de cabeceras de seguridad que se configuran a nivel del servidor, lo que nos dará una capa extra de seguridad en nuestras aplicaciones, evitando ataques del estilo clickjacking, XSS, Inyección de código, entre otros.

Habilitar la Cabecera Strict-Transport-Security

El uso de esta cabecera va a impedir que se degrade la navegación a HTTP sin el cifrado correspondiente, obligando por el tiempo definido a que siempre se navegue a través de HTTPS.

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.

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







 

Configuración en el Servidor Apache, agregue la siguiente entrada en httpd.conf y reinicie el servidor web para verificar los resultados.
 

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"


Configuración en el Servidor Nginx, agregue la siguiente entrada en nginx.conf bajo el bloque SSL del servidor y reinicie el servidor para verificar los resultados.

 

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';


 Habilitar la Cabecera Content-Security-Policy

Esta cabecera ayuda a prevenir y mitigar ataques de tipo Cross Site Scripting (XSS). Estos ataques se aprovechan de la confianza del navegador en el contenido que recibe del servidor. El navegador de la víctima ejecutará los scripts maliciosos por lo que este encabezado determina que recursos deben ejecutarse mediante una lista blanca de fuentes de contenido aprobadas, pudiendo denegar este tipo de acciones.

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.

El valor “default-src, self” obliga a que todo el contenido provenga del mismo origen que el del sitio (esto excluye subdominios).





Configuración en el Servidor Apache, agregue la siguiente línea en httpd.conf y reinicie el servidor web para verificar los resultados.

 

Header set Content-Security-Policy "default-src 'self';"

 

Configuración en el Servidor Nginx, agregue lo siguiente en nginx.conf bajo el bloque del servidor y reinicie el servidor para verificar los resultados.

 

add_header Content-Security-Policy "default-src 'self';";

 
Habilitar la Cabecera X-Frame-Options.

Se utiliza para proteger a sus visitantes contra ataques de Clickjacking, los cuales consisten en la invocación de un iframe transparente cargado desde un dominio externo en la Web; de este modo, si se superponen falsos botones se puede engañar a la víctima para que realice acciones administrativas sin percatarse de ello (ingeniería social).

Los valores válidos: DENY lo que significa que su sitio no se puede enmarcar, SAMEORIGIN que le permite enmarcar su propio sitio y ALLOW-FROM permite especificar que sitios pueden enmarcar su propio sitio.

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.





Configuración en el Servidor Apache, agregue la siguiente línea en httpd.conf y reinicie el servidor web para verificar los resultados.

 

​Header always append X-Frame-Options DENY



Configuración en el Servidor Nginx, agregue lo siguiente en nginx.conf bajo el bloque del servidor y reinicie el servidor para verificar los resultados.

 

add_header X-Frame-Options “DENY”;

 

Habilitar la Cabecera X-XSS-Protection.

Esta cabecera obliga al navegador del usuario a habilitar sus filtros anti XSS, siempre que el navegador sea compatible con esta cabecera.

Los valores válidos: 0, que deshabilita la protección, 1 que habilita la protección y 1; mode=block que le dice al navegador que bloquee la respuesta si detecta un ataque en lugar de desinfectar el script.

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.





Configuración en el Servidor Apache, agregue la siguiente entrada en httpd.conf y reinicie el servidor web para verificar los resultados.

 

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

 

Configuración en el Servidor Nginx, agregue lo siguiente en nginx.conf bajo el bloque HTTP y reinicie el servidor para verificar los resultados.

 

add_header X-XSS-Protection "1; modo = bloque";

 

Habilitar la Cabecera X-Content-Type-Options

Esta cabecera sólo tiene un valor válido, nosniff. Ayuda a reducir el riesgo de que se produzca un ataque basado en confusión de tipos mime y la exposición a descargas no autorizadas. En general evita que se carguen hojas de estilo o scripts maliciosos.

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.





Configuración en el Servidor Apache, agregue la siguiente entrada en httpd.conf y reinicie el servidor web para verificar los resultados.

 

Header set X-Content-Type-Options nosniff

 

Configuración en el Servidor Nginx, agregue lo siguiente en nginx.conf bajo el bloque del servidor y reinicie el servidor para verificar los resultados.

 

add_header X-Content-Type-Options nosniff;

 

Habilitar la Cabecera Referrer-Policy

La definición de una política de seguridad Referrer-Policy. Esta cabecera permite controlar que información se envía en la cabecera Referrer cuál es utilizada por el navegador para indicar al servidor desde que enlace se ha llegado a la página.

Los valores adecuados a cada aplicación “same-origin”, “strict-origin” y “no-referrer”.

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.





Configuración en el Servidor Apache, agregue la siguiente entrada en httpd.conf y reinicie el servidor web para verificar los resultados.

 

Header set Referrer-Policy "no-referrer"

 

Si desea establecer no aceptar referencias.

Configuración en el Servidor Nginx, agregue lo siguiente en nginx.conf bajo el bloque del servidor y reinicie el servidor para verificar los resultados.

 

add_header Referrer-Policy same-origin;

 

Si desea establecer las referencias del mismo origen.
 
Habilitar la Cabecera Cache-Control

Se usa para especificar directivas para mecanismos de almacenamiento en caché tanto en solicitudes como en respuestas. Las directivas de almacenamiento en caché son unidireccionales, lo que significa que una directiva dada en una solicitud no implica que se deba dar la misma directiva en la respuesta. Sin el uso de esta cabecera el contenido cacheado quedará almacenado en el navegador del usuario, por lo que es posible obtener información sensible, por ejemplo, tarjetas de crédito, direcciones, usuarios, etc.

El valor “no-cache” obliga a los cachés a enviar la solicitud al servidor de origen para su validación antes de liberar una copia en caché.

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.





En el cuadro de diálogo establecer encabezados de respuesta HTTP comunes, marque la casilla para que caduque el contenido web inmediatamente y luego haga clic en Aceptar.





Configuración en el Servidor Apache, agregue la siguiente entrada en httpd.conf y reinicie el servidor web para verificar los resultados.

 

Header set Cache-Control "private, no-cache, no-store, max-age=0” 

 

Configuración en el Servidor Nginx, agregue lo siguiente en nginx.conf bajo el bloque del servidor y reinicie el servidor para verificar los resultados.

 

add_header Cache-Control "private, no-cache, no-store, max-age=0";

 

Una vez configurada las cabeceras de seguridad necesarias, os dejo el siguiente enlace https://securityheaders.com/ en el cual se puede comprobar si poseen o no las cabeceras de seguridad. Si desean profundizar sobre el uso de las cabeceras os dejo el siguiente enlace:

https://developer.mozilla.org/es/docs/Web/HTTP/Headers

Antonio Claret
Antonio Claret

Responsable de Ciberseguridad y perito informático judicial en BABEL.

logo linkedin compartir en Linkedin Contacto

Otros artículos destacados