Reglas de seguridad

En esta página, se explican las reglas de seguridad de la puerta de enlace y cómo crearlas.

Secure Web Proxy te permite definir varios tipos de reglas de seguridad dentro de tus políticas de seguridad de la puerta de enlace para proteger el tráfico web saliente. Puedes usar estas reglas para controlar con precisión la seguridad de tu tráfico a través de detalles específicos de las solicitudes, como encabezados y patrones de URL, y asegurarte de que solo el tráfico HTTP/S aprobado salga de tu red.

Las reglas de seguridad de la puerta de enlace tienen las siguientes características:

  • Cada regla es una instrucción if-then que verifica una solicitud web según los siguientes parámetros:

    • Identidad de origen: Quién realiza la solicitud, como una máquina virtual (VM) específica o una cuenta de servicio.

    • Destino: A dónde va la solicitud, como una URL de destino o un dominio, como trusted-partner.com.

    • Acción: Es la decisión de permitir o rechazar el tráfico.

  • Las reglas de seguridad de la puerta de enlace proporcionan un control detallado. Estas reglas te permiten aplicar diferentes estándares de seguridad en toda tu organización con definiciones claras y estructuradas.

Reglas de coincidencia de host

Secure Web Proxy usa la coincidencia de nombres de host para verificar el dominio de destino. El proceso de verificación varía según cómo se implemente tu proxy, como se muestra en la siguiente tabla.

Modo de implementación Proceso de verificación del anfitrión
Modo de proxy explícito Para el tráfico sin encriptar, el proxy verifica el nombre de host con el encabezado de conexión HTTP. Si usas [atributos de Application Matcher](/secure-web-proxy/docs/cel-matcher-language-reference#attributes-available-only-to-applicationmatcher) para la inspección de TLS, el proxy primero verifica el nombre de host a nivel de la conexión y, luego, a nivel de la aplicación.
Modo de próximo salto En el caso del tráfico encriptado, el proxy verifica el nombre de host de destino con el campo de indicación del nombre del servidor (SNI) en la solicitud saliente. Este campo es visible incluso en las conexiones seguras.

Configura reglas de coincidencia de host para el modo de proxy explícito

Cuando implementes Secure Web Proxy como un proxy explícito, configura reglas de coincidencia de host para verificar que la información del host que envía el cliente se extraiga correctamente y se verifique con las reglas de seguridad que definiste. En el modo de proxy explícito, los clientes se configuran de forma activa para enviar su tráfico directamente a la instancia de Secure Web Proxy.

La coincidencia de host en el modo de proxy explícito funciona para diferentes tipos de tráfico web de la siguiente manera:

Tipo de tráfico Mecanismo de correlación Configuración de la regla
HTTP sin encriptar Secure Web Proxy verifica el nombre de host de destino con el campo host en el encabezado CONNECT estándar de la solicitud HTTP. En el campo sessionMatcher, usa host() == "example.com".
HTTPS encriptado (sin inspección de seguridad de la capa de transporte [TLS]) La coincidencia de host tampoco es posible a nivel de la aplicación ni de la sesión. Esto se debe a que los detalles de la solicitud están encriptados y el atributo destination.ip no es compatible. Debes usar controles de políticas más amplios, como la coincidencia de identidad de origen, o habilitar la inspección de TLS para el filtrado basado en el host. Para usar Application Matcher, usa la correlación de identidades de origen, como las cuentas de servicio, o habilita la inspección de TLS.
HTTPS encriptado (con inspección de TLS) Para inspeccionar la solicitud completa, debes usar el Session Matcher y el Application Matcher. 1. Establece una regla general de Session Matcher que devuelva true o que coincida con el host de destino, como host() == "example.com".

2. En el campo applicationMatcher, agrega una regla de host específica, como request.host() == "example.com".

Configura reglas de coincidencia de host para el modo de siguiente salto

Cuando implementes Secure Web Proxy como próximo salto, debes configurar reglas de coincidencia de host. El tráfico se redirecciona al proxy a través de una ruta de nube privada virtual (VPC) basada en los rangos de direcciones IP que definas. Las reglas de coincidencia de host garantizan que el proxy identifique correctamente el host de destino verificando varios campos del tráfico, como el encabezado de indicación del nombre del servidor (SNI).

La coincidencia de host en el modo de próximo salto funciona para diferentes tipos de tráfico web de la siguiente manera:

Tipo de tráfico Mecanismo de correlación Configuración de la regla
HTTP sin encriptar Secure Web Proxy verifica el nombre de host de destino en el campo host del encabezado de la solicitud HTTP estándar. En el campo sessionMatcher, usa host() == "example.com".
HTTPS encriptado (sin inspección de TLS) Secure Web Proxy verifica el nombre de host con el encabezado SNI en la solicitud saliente, que es visible incluso si el resto del tráfico está encriptado. En el campo sessionMatcher, usa host() == "example.com".
HTTPS encriptado (con inspección de TLS) Para inspeccionar la solicitud completa, debes usar el Session Matcher y el Application Matcher. 1. Establece una regla general de Session Matcher que devuelva true o que coincida con el host de destino, como host() == "example.com".

2. En el campo applicationMatcher, agrega una regla de host específica, como request.host() == "example.com".

Reglas de proxy TCP

Las reglas de proxy del Protocolo de control de transmisión (TCP) te permiten controlar el tráfico que no es tráfico web estándar, como HTTP (puerto 80) o HTTPS (puerto 443). Si configuras reglas de proxy de TCP, puedes permitir o bloquear el tráfico en cualquier otro puerto TCP. Estas reglas te ayudan a bloquear el tráfico malicioso y a administrar las aplicaciones que no son web y que usan TCP.

Si tu carga de trabajo (como tus aplicaciones y servicios) usa el Secure Web Proxy como siguiente salto, es beneficioso aplicar reglas de proxy TCP. El redireccionamiento basado en rutas dirige el tráfico que no es web ni de HTTP(S) a tu instancia de Secure Web Proxy. De esta manera, puedes bloquear el tráfico saliente para que no llegue a sitios externos maliciosos y administrar los servicios externos a los que se pueden conectar las cargas de trabajo de tu red.

Configura reglas de proxy TCP

Puedes configurar reglas de proxy TCP para tu aplicación y proteger el tráfico que no es web, además de aplicar políticas de seguridad para las aplicaciones que no usan HTTP/S estándar, como los puertos 80 y 443.

Si aplicas estas reglas, puedes evitar el uso no autorizado de otros puertos TCP para la transferencia de datos o la actividad maliciosa. Esto es particularmente útil cuando tus cargas de trabajo usan Secure Web Proxy como próximo salto para protocolos que no son web.

Para implementar reglas de proxy TCP y crear una regla de permiso o bloqueo de tráfico para tu aplicación, debes especificar el puerto de destino. De manera opcional, puedes incluir cualquiera de los siguientes atributos del Session Matcher para definir mejor los criterios de la regla de bloqueo o permiso.

En la siguiente tabla, se proporciona más información sobre los distintos atributos que puedes usar en una regla de proxy TCP:

Atributo Tipo de atributo Descripción
source.ip cadena Dirección IP del cliente que envió la solicitud.
source.port cadena Es el puerto del cliente que envió la solicitud.
destination.port cadena Es el puerto upstream al que tu instancia de Secure Web Proxy envía el tráfico.
source.matchTag(SECURE_TAG) booleano

True, si la fuente está asociada con SECURE_TAG.

El argumento es el ID permanente de la etiqueta segura, como source.matchTag('tagValues/123456').

source.matchServiceAccount(SERVICE_ACCOUNT) booleano True, si la fuente está asociada con SERVICE_ACCOUNT, como source.matchServiceAccount('x@my-project.iam.gserviceaccount.com').
inIpRange(IP_ADDRESS,
IP_RANGE)
booleano True, si IP_ADDRESS se incluye en IP_RANGE, como inIpRange(source.ip, '1.2.3.0/24'). Las máscaras de subred para direcciones IPv6 no pueden ser mayores que "/64".

Ejemplo de regla de proxy TCP

En este ejemplo, se muestra cómo definir un gatewaySecurityPolicyRule de Secure Web Proxy con una expresión CEL para permitir todo el tráfico de TCP al puerto 22. Puedes usar esta configuración cuando apliques las capacidades de proxy TCP de Secure Web Proxy.

En el siguiente muestra de código, se muestra cómo definir una regla de proxy TCP:

name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
enabled: true
priority: 100 # Lower numbers have higher priority
description: "Allow TCP proxy traffic to port 22 - such as, for SSH"
basicProfile: