Configuración
Esta implementación avanzada de WAF se basa en el software modsecurity y protegerá tus sitios web de una manera más efectiva.
Para activar el WAF tan sólo tienes que activar nuestra cabecera TCDN-WAF-Enabled.
Por ejemplo, si quisiéramos activar el WAF en nuestro dominio mi-dominio.es, nos bastaría con desplegar desde el panel una configuración VCL similar a la siguiente:
1
# WAF avanzado
2
sub vcl_recv {
3
if (req.http.host == "www.mi-dominio.es") {
4
set req.http.TCDN-WAF-Enabled = "true";
5
}
6
}
Copied!

Desactivación condicional

Si deseas desactivar el WAF bajo ciertas condiciones, se podría hacer simplemente un unset a la cabecera previamente asignada.
Por ejemplo, si quisiéramos activar el WAF en nuestro dominio mi-dominio.es, pero excluyendo las URLs que cuelgan de /path/sin/waf/, nos bastaría con desplegar desde el panel una configuración VCL similar a la siguiente:
1
# WAF avanzado
2
sub vcl_recv {
3
if (req.http.host == "www.mi-dominio.es") {
4
set req.http.TCDN-WAF-Enabled = "true";
5
if (req.url ~ "^/path/sin/waf/") {
6
unset req.http.TCDN-WAF-Enabled;
7
}
8
}
9
}
10
Copied!
Sin embargo, ésta dista de ser la mejor opción.
El WAF proporciona, en su lugar, la cabecera TCDN-WAF-Set-SecRuleEngine que nos permite ajustar el comportamiento del motor (engine) de modsecurity. Esta cabecera acepta tres valores:
  • #On. Se trata del comportamiento por defecto: el WAF lleva a cabo las acciones necesarias para bloquear aquellas peticiones (requests) consideradas peligrosas.
  • #Off. Desactiva temporalmente el WAF.
  • #DetectionOnly. En este caso, se llevan a cabo las acciones necesarias para identificar aquellas peticiones (requests) consideradas peligrosas pero, como contrapartida, se permite su paso a través del WAF. Este comportamiento es útil para realizar pruebas preliminares a fin de detectar posibles falsos positivos y, en consecuencia, poder incluir posteriormente las excepciones que sean necesarias, si las hubiera.
Así, volviendo al ejemplo anterior, nos bastaría con desplegar desde el panel una configuración VCL similar a la siguiente:
1
# WAF avanzado
2
sub vcl_recv {
3
if (req.http.host == "www.mi-dominio.es") {
4
set req.http.TCDN-WAF-Enabled = "true";
5
if (req.url ~ "^/path/sin/waf/") {
6
set req.http.TCDN-WAF-Set-SecRuleEngine = "#Off";
7
}
8
}
9
}
Copied!

Inclusión de excepciones

Si observas que el WAF está considerando como peligrosas ciertas peticiones (requests) que, sin embargo, son perfectamente válidas; es decir, si el WAF está presentando falsos positivos, puedes incluir excepciones ante tales casuísticas mediante la cabecera TCDN-WAF-Allow-Rule-Exceptions.
Siguiendo con el ejemplo anterior, si observamos que las peticiones (requests) contra URLs que cuelgan de /path/completamente/seguro/ están siendo bloqueadas por el WAF al interpretar que se están violando las reglas ruleID_1, ruleID_2, ruleID_3, ..., ruleID_n, podemos indicar que, en este caso, estas correspondencias sean tratadas como excepciones. Para ello, nos bastaría con desplegar desde el panel una configuración VCL similar a la siguiente:
1
# WAF avanzado
2
sub vcl_recv {
3
if (req.http.host == "www.mi-dominio.es") {
4
set req.http.TCDN-WAF-Enabled = "true";
5
if (req.url ~ "^/path/sin/waf/") {
6
set req.http.TCDN-WAF-Set-SecRuleEngine = "#Off";
7
}
8
if (req.url ~ "^/path/completamente/seguro/") {
9
set req.http.TCDN-WAF-Allow-Rule-Exceptions = "ruleID_1 ruleID_2 ruleID_3 ... ruleID_n";
10
}
11
}
12
}
Copied!
Obviamente, éstos no son más que pequeños ejemplos de casos de uso muy específicos. Si tienes cualquier duda respecto a cómo integrar esta funcionalidad en tu propio dominio, por favor, no dudes en contactarnos a través de la dirección de correo electrónico [email protected].
Última actualización 7mo ago