Prácticas recomendadas de seguridad web
Cloud CDN y Cloud Load Balancing pueden ayudarte a cumplir las prácticas recomendadas de seguridad web, tanto si sirves contenido desde instancias de Compute Engine como desde un segmento de Cloud Storage o desde un origen externo ubicado fuera de Google Cloud.
Definir encabezados de seguridad
La especificación HTTP tiene varios encabezados que controlan lo siguiente:
- Comportamiento de los clientes
- Cómo se inserta el contenido
- Cómo se sirve el contenido en distintos dominios
- Si se debe usar siempre TLS (HTTPS) al conectarse a ese dominio
Estos controles suelen representarse como encabezados de respuesta HTTP, que puedes definir para cada backend (origen, en términos de CDN) como encabezados de respuesta personalizados para tu balanceador de carga de aplicaciones externo y tu implementación de Cloud CDN.
Si usas Cloud Storage y sirves contenido web desde tu segmento, puedes usar Cloud CDN delante de tu segmento de almacenamiento para definir encabezados de seguridad web y almacenar en caché el contenido popular.
Los encabezados de seguridad web más útiles se definen en la siguiente tabla.
Nombre del encabezado | Descripción | Ejemplo de uso |
---|---|---|
Strict-Transport-Security (HSTS) |
Asegúrate de que tus dominios tengan certificados SSL (TLS) válidos antes de definir este encabezado. Informa a los clientes de que deben conectarse a tu dominio directamente a través de HTTPS (SSL/TLS), lo que evita la necesidad de redirigir de HTTP a HTTPS, que es más lento y conlleva el riesgo de sufrir un ataque de intermediario. Una vez que se ha definido esta cabecera, no se puede deshacer. Después de almacenar en caché este encabezado, los clientes de navegadores modernos no intentan establecer conexiones no HTTPS y los usuarios no pueden acceder a ningún dominio para el que hayan recibido este encabezado, aunque SSL no funcione. Este comportamiento evita que un atacante degrade el protocolo seguro a HTTP sin protección (lo que se conoce como ataque de degradación).
Cuando sirva el encabezado |
Exige que los clientes se conecten directamente a través de HTTPS en todas las conexiones futuras y almacena en caché esta directiva durante un máximo de dos años:
|
X-Frame-Options |
Indica si un navegador puede renderizar una página en <frame>, <iframe>, <embed> u <object>. Esto ayuda a evitar ataques de clickjacking, ya que no permite que tu contenido se inserte en otros sitios. |
Denegar todos los iframes de tu sitio: X-Frame-Options: DENY
Permitir que solo tu sitio pueda insertarse en un iframe: |
Content-Security-Policy
|
Para evaluar la política de seguridad del contenido de su sitio, puede usar la herramienta CSP Evaluator de Google. | No permitas las secuencias de comandos insertadas y carga solo las secuencias de comandos a través de HTTPS:
Content-Security-Policy: default-src https:
|
Ten cuidado al introducir nuevos encabezados de seguridad en sitios web que ya tengas, ya que pueden dañar secuencias de comandos de terceros, contenido insertado (por ejemplo, en iframes) u otros aspectos de tus sitios. Antes de hacer cambios en el tráfico de producción, te recomendamos que crees una segunda instancia de tu contenedor o servicio backend y que hagas pruebas.
Puedes leer más información sobre los encabezados de seguridad web y las prácticas recomendadas en web.dev y en el sitio de seguridad de la información de Mozilla.
Gestión de TLS y certificados
Los certificados gestionados tienen las siguientes características:
- Se ofrecen sin coste
- Se puede implementar fácilmente en tus balanceadores de carga
- Renovar automáticamente
- Se distribuyen a nivel mundial en todas las ubicaciones perimetrales de Google
TLS proporciona autenticidad validando que los datos no se han modificado durante la transmisión. Los certificados TLS proporcionan confidencialidad al asegurarse de que un espía no pueda determinar qué se intercambia entre usuarios y servidores. Esto es importante para la privacidad y la seguridad de los usuarios.
Con los certificados SSL, puedes beneficiarte de protocolos de transporte modernos, como HTTP/2 y el protocolo QUIC de Google, que requieren SSL (TLS). Estos protocolos mejoran directamente el rendimiento del contenido web, la distribución de contenido multimedia (como el vídeo en streaming) y la fiabilidad en redes congestionadas.
Google Cloud Admite protocolos TLS modernos (como TLS 1.3) en los servicios Cloud Load Balancing y Cloud CDN.
Puedes usar políticas de SSL para aumentar la versión mínima de TLS. Te recomendamos que actualices la versión a TLS 1.2 si no necesitas admitir clientes antiguos, como dispositivos insertados o clientes que no sean navegadores y que tengan más de 10 años. A nivel mundial, TLS v1.0 y TLS v1.1 representan menos del 0,5% de las conexiones en Google Cloud.
Si necesitas identificar o asociar clientes específicos con versiones obsoletas de TLS, puedes usar la variable {tls_version}
en un encabezado de solicitud. Después, puedes registrar esta información.
Siguientes pasos
- Para comprobar si Cloud CDN está sirviendo respuestas desde la caché, consulta Ver registros.
- Para saber qué contenido se puede almacenar en caché y cuál no, consulta el artículo Descripción general del almacenamiento en caché.
- Para ver los puntos de presencia de Cloud CDN, consulta Ubicaciones de la caché.