Reglas de protección personalizadas
Descubra cómo las reglas de protección hacen coincidir el tráfico web con las condiciones de regla y determine la acción que se debe realizar cuando se cumplan las condiciones.
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 dar formato, crear e implantar normas de protección personalizadas en las políticas de WAF mediante la consola y la la API deWAAS. 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 ModSecurity, consulte la documentación de ModSecurity.
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 un 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 aumentarse 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 aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Seleccione Reglas de protección personalizadas.
- Seleccione Crear regla de protección personalizada.
- 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 de 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 ModSecurity, consulte la documentación de ModSecurity.
- Mostrar opciones avanzadas: seleccione este enlace para mostrar las opciones de etiquetado. Consulte Visión general de Tagging.
-
Seleccione una de las siguientes opciones:
- Para crear la regla, seleccione 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 aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Seleccione Reglas de protección personalizadas.
- Seleccione el nombre de la regla de protección personalizada que desea editar.
- Seleccione Editar.
- Realice los cambios necesarios y, a continuación, seleccione Guardar cambios.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Seleccione Reglas de protección personalizadas.
- Busque la regla de protección en la lista, seleccione el menú y, a continuación, seleccione Mover recurso.
-
Seleccione el compartimento de destino en la lista.
- Seleccione Mover recurso.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Seleccione Reglas de Protección Personalizadas.
-
Seleccione la casilla de control de la regla de protección que desea suprimir.
- Seleccione Suprimir.
- En el recuadro de diálogo de confirmación, seleccione Suprimir.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Firewall de aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Select the name of the WAF Policy you want to configure rule settings for. The WAF Policy overview appears.
- Seleccione Reglas de protección.
- Seleccione el separador Reglas personalizadas.
- Seleccione 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 aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Seleccione el nombre de la directiva de WAF donde desea editar una regla de protección personalizada.
- Seleccione Reglas de protección y, a continuación, seleccione 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 aplicaciones web, seleccione Recursos de política de perímetro.
Se abre la lista Políticas. Todas las políticas de perímetro se muestran en una tabla.
- Seleccione el nombre de la directiva de WAF en el que desea eliminar una norma de protección personalizada. Aparecerá la visión general de la política WAF.
- Seleccione Reglas de protección.
- Seleccione 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.