ModSecurity - Anatomie d'une règle
Alasta 2 Juillet 2014 security Apache ModSecurity Open Source Reverse Proxy Security
Description : Nous allons voir la syntaxe d'une règle dans ModSecurity.
Anatomie d'une règle :
SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]
VARIABLES
les plus utilisées sont ARGS (paramètre de la requête), REQUEST_BODY ,REQUEST_HEADER, REQUEST_URI (contenu de la requête).
La liste complète des VARIABLES est disponible ICI.
OPERATOR (optionnel) :
Opérateurs de chaîne | Description |
---|---|
@beginsWith | Commence par |
@contains | Contient |
@endsWith | Fini par |
@rx | Expression régulière |
@pm | Permet de tester plusieurs valeurs |
@streq | Chaîne égale à, ex : recherche de FR dans une base de Géolocalisation |
@within | La chaîne est |
Opérateurs numérique | Description |
---|---|
@eq | Egale |
@ge | Plus grand ou égale |
@gt | Plus grand que |
@le | Inférieure ou égale |
@lt | Inférieure ) |
D'autres opérateurs existent, comme la validation de schéma XML, d'encodage UTF8 ou URL, Géolocalisation, RBL, ...
La liste complète est disponible ICI
TRANSFORMATION_FUNCTIONS :
Les fonctions de transformations permettent de formater la chaîne avant son évaluation, par exemple mettre la chaîne en minuscule, supprimer les espaces, ou calculer le md5.
ICI vous trouverez la liste officielle des fonctions.
ACTIONS (optionnel) :
Il y a 5 types d'actions :
- Disruptive actions : les actions perturbatrices/primaires ont un effet direct sur le devenir de la requête. Il ne peut en y avoir qu'une par règle.
- Non-disruptive actions : les actions secondaires n'ont pas d'effet sur le processing des règles, on initialise des variables, on change leur contenu, ...
- Flow actions : actions sur le flux.
- Meta-data actions : actions qui permet d'ajouter des méga données.
- Data actions : ce n'est pas vraiment une action mais des données pour d'autres actions.
Les différentes actions :
A la vue du nombre d'actions, il est préférable de voir la documentation officielle ICI