Création de règles personnalisées

Si vous disposez des droits requis, vous pouvez créer et supprimer vos propres stratégies personnalisées.

Une stratégie personnalisée 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 son paramètre (s'il est requis). Vous pouvez définir la valeur du paramètre lors de la création de la stratégie ou 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 stratégie de référence prédéfinie pour créer une série de stratégies personnalisées avec des dates de début spécifiées.

Fonctions prédéfinies

Vous pouvez utiliser les fonctions prédéfinies suivantes dans vos stratégies :
Fonction 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 :
  • Informations
  • Faible
  • Moyen
  • Elevé
  • Critique
Renvoie des problèmes de gravité supérieure ou égale au paramètre indiqué.
OwaspTop10_2017 N/A Renvoie des problèmes définis par OWASP comme faisant partie des 10 principaux risques pour la sécurité.
SansTop25 N/A Renvoie des problèmes définis par SANS Institute comme faisant partie des 25 principales erreurs critiques.
EUGdpr_2016 N/A 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.
PCI N/A Renvoie des problèmes qui empêchent la conformité de l'application avec la norme PCI sur la sécurité des données.
HIPAA N/A 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 stratégie va être associée à des applications par le biais de l'interface, vous devez définir des paramètres lorsque vous créez cette stratégie. Il n'est pas possible de définir des paramètres au moment d'associer la stratégie. Si la stratégie 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 stratégies personnalisées par le biais de 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 son paramètre (s'il est requis). Vous pouvez définir la valeur du paramètre lors de la création de la stratégie ou 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 stratégie à 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 stratégie personnalisée, 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"
          ]
        }
      ]
    }
  }