Création de règles personnalisées

Si vous disposez des autorisations requises, vous pouvez créer/supprimer vos propres règles personnalisées.

Une règle est définie à l'aide d'une arborescence d'expression JSON. Cette dernière peut se composer d'une seule expression de base ou de plusieurs expressions reliées par une opération logique (And, Or, Not). Chaque expression de base se compose d'une fonction prédéfinie et de ses paramètres (le cas échéant). Vous pouvez, soit définir la valeur du paramètre lors de la création de la règle, soit utiliser $ pour que cette valeur ne soit pas définie. Lorsqu'un paramètre n'est pas défini, l'utilisateur doit communiquer la valeur au moment d'associer la règle à une application.
Remarque : lorsque vous créez une règle qui sera utilisée par le biais de l'interface utilisateur, vous devez définir tous les paramètres, sinon il sera impossible de les associer à une application.
La création d'une règle personnalisée présente l'avantage de pouvoir coder les paramètres en dur dans la règle, afin que les utilisateurs puissent avoir recours à la règle sans systématiquement définir les paramètres. Par exemple, vous pouvez utiliser la règle de base de référence prédéfinie pour créer une série de règles personnalisées avec des dates de départ spécifiées.

Fonctions prédéfinies

Vous pouvez utiliser les fonctions prédéfinies dans vos règles :
Tableau 1. Fonctions prédéfinies
Nom Paramètres Description
StartDate Date (possibilité d'inclure l'heure) dans l'un des formats suivants :
  • "yyy-MM-dd"
  • "yyyy-MM-ddThh:mmZ" (UTC)
  • "yyyy-MM-ddThh:mm+hh:mm" (heure locale +/- décalage UTC)
Renvoie des problèmes détectés après la date (et l'heure) indiquée.
Exemples :
Date uniquement
2018-04-24
Heure UTC
2018-04-24T10:30Z
Heure locale +/- décalage UTC
2018-04-24T11:30+01:00

2018-04-24T07:30-03:00

MinSeverity Gravité au format suivant : "Information | Faible | Moyenne | Elevée | Critique" Renvoie des problèmes de gravité supérieure ou égale au paramètre indiqué.
OwaspTop10_2017 S/O Renvoie des problèmes définis par OWASP comme faisant partie des 10 principaux risques pour la sécurité.
SansTop25 S/O Renvoie des problèmes définis par SANS Institute comme faisant partie des 25 principales erreurs critiques.
EUGdpr_2016 S/O Renvoie des problèmes qui empêchent la conformité de l'application avec le RGPD.
CWE Liste des ID CWE Renvoie des problèmes qui correspondent aux ID CWE spécifiés.
architecture PCI S/O Renvoie des problèmes qui empêchent la conformité de l'application avec la norme PCI sur la sécurité des données.
HIPAA S/O Renvoie des problèmes qui empêchent la conformité de l'application avec la loi HIPAA.

Création de règles personnalisées par le biais de l'interface utilisateur

Pour créer une règle personnalisée :
  1. Sur le tableau de bord, cliquez sur Règles, puis sur Créer une règle personnalisée.
  2. Donnez un nom à la règle et définissez-la en tant qu'expression JSON.
    Remarque : Si la règle va être associée à des applications par le biais de l'interface utilisateur, vous devez définir des paramètres lorsque vous créez la règle, étant donné qu'il n'est pas possible de définir des paramètres au moment d'associer la règle. Si la règle va être associée à des applications par le biais de l'API, vous pouvez laisser les paramètres non définis et les définir au moment de l'association.

    Exemple 1 : règle de base de référence personnalisée

    {  
       "Function":"StartDate",
       "Parameters":[  
          "2017-12-31T13:50Z"
       ]
    }
    

    Exemple 2 : règle CWE personnalisée

    {  
       "Function":"CWE",
       "Parameters":[  
          89,
          90
       ]
    }
    

    Exemple 3 : règle personnalisée composite

    {  
       "Operation":"And",
       "Expressions":[  
          {  
             "Function":"StartDate",
             "Parameters":[  
                "2018-04-24T10:30Z"
             ]
          },
          {  
             "Function":"MinSeverity",
             "Parameters":[  
                "Medium"
             ]
          }
       ]
    }
    

    Exemple 4 : règle personnalisée pour exclure les CWE 89 et 90

    {
        "Operation": "Not",
        "Expressions": [
            {
                "Function": "CWE",
                "Parameters": [
                    89,
                    90
                ]
            }
        ]
    }
    

    Exemple 5 : règle OWASP Top 10 personnalisée qui exclut les CWE 89 et 90

    {
        "Operation": "And",
        "Expressions": [
            {
                "Operation": "Not",
                "Expressions": [
                    {
                        "Function": "CWE",
                        "Parameters": [
                            89,
                            90
                        ]
                    }
                ]
            },
            {
                "Function": "OwaspTop10_2017"
            }
        ]
    }
    
  3. Lorsque vous avez terminé, cliquez sur Fermer

Création de règles via l'API REST

Dans l'API REST, une règle est définie à l'aide d'une arborescence d'expression. Cette dernière peut se composer d'une seule expression de base ou de plusieurs expressions reliées par une opération logique (And, Or, Not). Chaque expression de base se compose d'une fonction prédéfinie et de ses paramètres (le cas échéant). Vous pouvez, soit définir la valeur du paramètre lors de la création de la règle, soit utiliser $ pour que cette valeur ne soit pas définie. Lorsqu'un paramètre n'est pas défini, l'utilisateur doit communiquer la valeur au moment d'associer la règle à une application.

Exemple 1 : règle de base de référence personnalisée

{
    "Name": "Baseline",
    "Predefined": true,
    "Expression": {
      "Function": "StartDate",
      "Parameters": [
        "$DATE"
      ]
    }
}

Exemple 2 : règle CWE personnalisée

{
   "Name": "CWE policy",
   "Expression": {
     "Function": "CWE",
     "Parameters": [
       89,
       90
     ]
   }
}

Exemple 3 : règle personnalisée composite

Dans cet exemple de règle composite, les fonctions StartDate et MinSeverity sont incluses avec l'opération And. Ainsi, seuls les problèmes ayant la gravité minimale définie et détectés après la date indiquée sont inclus.

  {
    "Name": "MyPolicy",
    "Predefined": false,
    "Expression": {
      "Operation": "And",
      "Expressions": [
        {
          "Function": "StartDate",
          "Parameters": [
            "2018-04-24T10:30Z"
          ]
        },
        {
          "Function": "MinSeverity",
          "Parameters": [
            "$minseverity"
          ]
        }
      ]
    }
  }