Ausencia de Cabeceras de Seguridad ¿Cómo afectan a la protección de servicios web y móviles?

Las cabeceras de seguridad son un factor clave para la protección de los servicios web y móviles. Permiten configurar el comportamiento del navegador y otros clientes HTTP para mejorar la seguridad. Aquí se mencionan algunas de las más importantes:

HTTP Strict Transport Security (HSTS):

Permite a la aplicación web forzar al navegador a acceder al sitio solo mediante el protocolo HTTPS, restringiendo la conexión con HTTP por considerarse insegura.

  • Beneficio: Asegura que las comunicaciones sean cifradas, protegiendo contra ataques de interceptación y manipulación de datos en tránsito.

Content-Security-Policy (CSP):

Es una capa de seguridad adicional que ayuda a prevenir y mitigar algunos tipos de ataque, incluyendo Cross Site Scripting (XSS) e inyección de datos.

  • Beneficio: Protege contra la ejecución de scripts maliciosos y la inyección de contenido no autorizado, salvaguardando tanto a los usuarios como a la integridad del sitio.

X-Content-Type-Options:

Controla cómo se interpreta el tipo de contenido (Content-Type) de una respuesta HTTP, previniendo que el navegador adivine el tipo de contenido.

  • Beneficio: Evita ataques basados en el MIME type, como ciertos tipos de inyección de código que explotan interpretaciones incorrectas del contenido.

En servicios móviles, además de CSP y HSTS, se utiliza:

Referrer Policy:

Controla la información que se envía en el encabezado Referer de HTTP.

  • Beneficio: Protege la privacidad de los usuarios al limitar la cantidad de información sobre la navegación previa que se comparte con terceros.

Impacto y su implementación.

La implementación de cabeceras de seguridad es crucial para proteger los servicios web y móviles contra una variedad de amenazas. La ausencia de estas cabeceras puede exponer a los usuarios y a la infraestructura a ataques graves, comprometiendo la integridad, confidencialidad y disponibilidad de los datos.

A continuación, se presentan ejemplos específicos de cómo la falta de estas cabeceras puede tener consecuencias significativas y cómo su implementación puede mitigar estos riesgos:

  • Impacto de Tener HSTS Activado: Un sitio sin HSTS puede ser vulnerable a ataques MITM, donde un atacante intercepta y modifica la comunicación entre el usuario y el sitio. Con HSTS activado, el navegador rechaza cualquier conexión no segura, evitando estos ataques.
  • Impacto de Tener CSP Activado:Un sitio sin CSP puede permitir que scripts maliciosos se ejecuten, robando datos de usuarios o manipulando el contenido del sitio. Con CSP activado, solo los scripts de fuentes confiables se ejecutan, mitigando estos riesgos.
  • Impacto de Tener X-Content-Type-Options Activado: Un sitio sin esta cabecera puede permitir que el navegador ejecute scripts en lugar de tratarlos como archivos de texto, explotando vulnerabilidades MIME. Con la cabecera activada, el navegador trata el contenido estrictamente según lo especificado, eliminando este vector de ataque.
  • Impacto de Tener Referrer Policy Activado en Servicios Móviles: Sin una política de referer adecuada, un sitio móvil puede compartir información sensible con terceros, exponiendo datos de navegación. Con Referrer Policy, se puede limitar o eliminar la información compartida, protegiendo la privacidad del usuario.

Reflexión Empresarial:

Nuestra experiencia como empresa ha mostrado que, aunque estas vulnerabilidades a menudo se reportan con severidad informativa, son recurrentes y pueden ser explotadas fácilmente si no se abordan. La implementación de estas cabeceras de seguridad ha sido una de las prácticas más efectivas para reducir la superficie de ataque y mejorar la resiliencia de nuestros servicios.

Mitigación

La mitigación es distinta en cada caso.

Strict-Transport-Security (HSTS)
Esta cabecera hay que configurarla con mucha precaución ya que si no queda bien configurada o si hay un problema con el certificado SSL/TLS, usuarios legitimos podrían tener problemas para acceder al sitio web.
Una configuración básica podría ser la siguiente:


Ejemplo: Strict-Transport-Security: max-age=31536000; includeSubDomains


Con esta configuración el sitio será accesible por 3153600 segundos (1 año) y se aplicará para todos los subdominios.

Content-Security-Policy (CSP)
La implementación de esta cabecera es compleja, ya que depende del origen desde el que se llamará el contenido, una directiva básica de esta cabecera, podría ser la siguiente:

Ejemplo: Content-Security-Policy: default-src ‘self’ *.nivel4.com; frame-ancestors ‘none’;

Con esta configuración, la política default-src solo se permitirá el contenido de un dominio de confianza (nivel4.com) y todos sus subdominios. Por otro lado con la política frame-ancestors no permite ningún tipo de iframe o similar en el sitio web.

Referencia: https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Content-Security-Policy

X-Content-Type-Options
Implementar la cabecera con las siguiente directiva:


Ejemplo: X-Content-Type-Options: nosniff


Con esta configuración se le indica al navegador que no trate de adivinar el MIME type de un archivo.

Implementación de Referrer Policy para móviles:

Configurar la cabecera Referrer-Policy según la política deseada.


Ejemplo: Referrer-Policy: no-referrer