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
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- Haga clic en Reglas de protección personalizadas.
- Haga clic en Create custom protection rule.
- 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.
-
Seleccione una de las siguientes opciones:
- Para crear la regla, haga clic en Crear.
- Para crear la regla más tarde mediante Resource Manager, consulte Creación de una pila a partir de una página de creación de recursos.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- Haga clic en Reglas de protección personalizadas.
- Haga clic en el nombre de la regla de protección personalizada que desea editar.
- Haga clic en Editar.
- Haga los cambios necesarios y, a continuación, haga clic en Guardar cambios.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- Haga clic en Reglas de protección personalizadas.
- Busque la regla de protección en la lista, haga clic en el menú y, a continuación, haga clic en Mover recurso.
-
Seleccione el compartimento de destino en la lista.
- Haga clic en Mover recurso.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- Haga clic en Reglas de protección personalizadas.
-
Seleccione la casilla de control de la regla de protección que desea suprimir.
- Haga clic en Suprimir.
- En el cuadro de diálogo de confirmación, haga clic en Suprimir.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- 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.
- Haga clic en Reglas de protección.
- Haga clic en el separador Reglas personalizadas.
- Haga clic en Agregar en el menú desplegable Acciones.
- 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.
- 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.
- Haga clic en Agregar.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- Haga clic en el nombre de la política de WAF donde desea editar una regla de protección personalizada.
- Haga clic en Reglas de protección y, a continuación, en el separador Reglas personalizadas.
- Seleccione la casilla de control para la regla personalizada para la que desea cambiar la acción.
- Seleccione la acción en el menú desplegable Acciones .
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicación web, seleccione Políticas.
- 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.
- Haga clic en Reglas de protección.
- Haga clic en el separador Reglas personalizadas.
-
Seleccione la casilla de control de la regla personalizada que desea suprimir.
- 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.