Reglas de protección personalizadas

El servicio WAF permite definir y aplicar reglas de protección personalizadas de módulos de firewall de origen abiertos a las configuraciones de WAF, como módulos ModSecurity. En este tema se describe cómo crear e implementar reglas de protección personalizadas en las políticas de WAF, y cómo aplicarles formato, mediante la consola y la API de . Para obtener una lista de las reglas de protección que ya están disponibles en el servicio, consulte Reglas de protección admitidas.

Sintaxis de las reglas de protección personalizadas

Proporciona información sobre la sintaxis de la regla de protección personalizada para el servicio Web Application Firewall.

Todas las reglas de protección personalizadas se expresan con el lenguaje de reglas de ModSecurity. Para obtener más información sobre la sintaxis de ModSecurity, consulte Creación de reglas: sintaxis básica.

Además, cada regla debe incluir dos variables de marcador de posición actualizadas por el servicio WAF al publicar la regla.

ID: {id_1}}: este campo se actualiza con un ID de regla único generado mediante el servicio WAF y que identifica una SecRule. Se puede definir más de una SecRule en el campo template de una llamada CreateCustomProtectionRule. El valor de la primera SecRule debe ser id:{{id_1}} y el campo id de cada SecRule posterior debe aumentar en uno, como se muestra en el ejemplo.

ctl:ruleEngine={{mode}}: acción que se debe realizar cuando se cumplan los criterios de la SecRule, ya sea OFF, DETECT o BLOCK. Este campo se actualiza con el valor correspondiente del campo action del objeto CustomProtectionRuleSetting al utilizar la operación UpdateWafConfig.

Ejemplo de un formato de regla de protección personalizada:


SecRule REQUEST_COOKIES "regex matching SQL injection - part 1/2" \
	"phase:2,                                                 \
	msg:'Detects chained SQL injection attempts 1/2.',        \
	id:{{id_1}},                                             \
	ctl:ruleEngine={{mode}},                                  \
	deny"
	SecRule REQUEST_COOKIES "regex matching SQL injection - part 2/2" \
	"phase:2,                                                 \
	msg:'Detects chained SQL injection attempts 2/2.',        \
	id:{{id_2}},                                             \
	ctl:ruleEngine={{mode}},                                  \
	deny"

Acciones

El servicio WAF puede realizar una acción en una solicitud HTTP cuando se cumplen los criterios de una regla de protección personalizada.

  • DETECT: registra la solicitud cuando se cumplen los criterios de la regla de protección personalizada.
  • BLOCK: bloquea la solicitud cuando se cumplen los criterios de la regla de protección personalizada.
  • OFF: la regla de protección personalizada se desactiva y no se realiza ninguna acción.

Uso de la consola

Para crear una regla de protección personalizada
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en Reglas de protección personalizadas.
  3. Haga clic en Create custom protection rule.
  4. En el cuadro de diálogo Crear regla de protección personalizada, introduzca lo siguiente:
    • Nombre: un nombre único para la regla de protección.
    • Descripción: opcional. Descripción de la regla de protección personalizada.
    • Plantilla: introduzca los criterios de regla de protección en el idioma de regla ModSecurity. Cada regla debe incluir dos variables de marcador de posición: id:{{id_1}} y ctl:ruleEngine={mode}}. Para obtener más información sobre la sintaxis de ModSecurity, consulte Creación de reglas: sintaxis básica.
    • Mostrar opciones avanzadas: haga clic en este enlace para mostrar las opciones de etiquetado. Consulte Visión general del etiquetado.
  5. Seleccione una de las siguientes opciones:
Para editar una regla de protección personalizada
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en Reglas de protección personalizadas.
  3. Haga clic en el nombre de la regla de protección personalizada que desea editar.
  4. Haga clic en Editar.
  5. Haga los cambios necesarios y, a continuación, haga clic en Guardar cambios.
Para gestionar etiquetas para una regla de protección personalizada
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en Reglas de protección personalizadas.
  3. Haga clic en el nombre de la regla de protección para la que desea gestionar las etiquetas.
  4. Haga clic en el separador Etiquetas para ver o editar las etiquetas existentes. O haga clic en Agregar etiquetas para agregar nuevas.

Para obtener más información, consulte Etiquetas de recursos.

Para mover una regla de protección personalizada a otro compartimento
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en Reglas de protección personalizadas.
  3. Busque la regla de protección en la lista, haga clic en el menú Acciones (Menú Acciones) y, a continuación, haga clic en Mover recurso.
  4. Seleccione el compartimento de destino en la lista.

  5. Haga clic en Mover recurso.
Para suprimir una regla de protección personalizada
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en Reglas de protección personalizadas.
  3. Seleccione la casilla de control de la regla de protección que desea suprimir.

  4. Haga clic en Suprimir.
  5. En el cuadro de diálogo de confirmación, haga clic en Suprimir.
Para agregar una regla de protección personalizada a una política de WAF
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en el nombre de la política de WAF para la que desea configurar valores de reglas. Aparece la visión general de Política de WAF.
  3. Haga clic en Reglas de protección.
  4. Haga clic en el separador Reglas personalizadas.
  5. Haga clic en Agregar en el menú desplegable Acciones.
  6. En el cuadro de diálogo Agregar regla personalizada, seleccione una regla de protección personalizada en el menú desplegable. Si la regla de protección personalizada existe en otro compartimento, puede cambiar el compartimento donde existe la regla.
  7. Seleccione una de las siguientes acciones para aplicar a la regla:
    • Detectar: las solicitudes coincidentes generan una alerta y la solicitud pasará a ser de proxy.
    • Bloquear: se bloquean las solicitudes coincidentes.
  8. Haga clic en Agregar.
Para aplicar una nueva acción a una regla de protección personalizada en una política de WAF
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en el nombre de la política de WAF donde desea editar una regla de protección personalizada.
  3. Haga clic en Reglas de protección y, a continuación, en el separador Reglas personalizadas.
  4. Seleccione la casilla de control para la regla personalizada para la que desea cambiar la acción.
  5. Seleccione la acción en el menú desplegable Acciones .
Para suprimir una regla de protección personalizada de una política de WAF
  1. Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
  2. Haga clic en el nombre de la política de WAF en la que desea eliminar una regla de protección personalizada. Aparece la visión general de política de WAF.
  3. Haga clic en Reglas de protección.
  4. Haga clic en el separador Reglas personalizadas.
  5. Seleccione la casilla de control de la regla personalizada que desea suprimir.

  6. Seleccione Suprimir en el menú desplegable Acciones.

Uso de la API

Las reglas de protección personalizadas se pueden crear y agregar a un compartimento mediante la llamada CreateProtectionRule en la API de WAAS. Con el formato del lenguaje de reglas de ModSecurity, rellene el campo template con los criterios de la regla.

Ejemplo:

{
  "compartmentId": "ocid1.compartment.region1..<unique_ID>",
  "description": "The description text for the rule being created",
  "displayName": "Custom Protection Rule Name",
  "template": "SecRule REQUEST_URI / \"phase:2, t:none, capture, msg:'Custom (XSS) Attack. Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}', id:{{id_1}}, ctl:ruleEngine={{mode}}, tag:'Custom', severity:'2'\""
}

Adición de reglas de protección personalizadas a una configuración de WAF

Las reglas de protección personalizadas se pueden agregar a una configuración de WAF mediante la llamada UpdateWafConfig en la API de WAAS.

Agregue el OCID y la acción que desee realizar al objeto CustomProtectionRuleSetting del esquema de UpdateWafConfig.

Ejemplo:

[
  {
    "action": "BLOCK",
    "id":"ocid1.waascustomprotectionrule.oc1..aaaaaaaalxd4jrws4rbbnddzlnotu3giuzo53kopbj747mbvarttr7vyy7ja"
  },
  {
    "action": "DETECT",
    "id":"ocid1.waascustomprotectionrule.oc1..aaaaaaaamx5r72ntmmhwgeaspzpdqcwsgprpuvwsa7xoshnyo3xhtpwcobeq"
  }
]

Para ver una lista de reglas de protección personalizadas disponibles en un compartimento y sus correspondientes OCID, utilice la llamada ListCustomProtectionRules en la API de WAAS.