Fortinet FortiSIEM

Version de l'intégration : 5.0

Configurer l'intégration de Fortinet FortiSIEM dans Google Security Operations

Pour obtenir des instructions détaillées sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Paramètres d'intégration

Utilisez les paramètres suivants pour configurer l'intégration :

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Racine de l'API Chaîne https://x.x.x.x:port Oui Spécifiez la racine de l'API pour l'installation FortiSIEM cible.
Nom d'utilisateur Chaîne N/A Oui Spécifiez le nom d'utilisateur à utiliser pour l'installation FortiSIEM cible.
Mot de passe Mot de passe N/A Oui Spécifiez le mot de passe à utiliser pour l'installation FortiSIEM cible.
Vérifier le protocole SSL Case à cocher Cochée Non Si cette option est activée, le serveur Google SecOps vérifie que le certificat est configuré pour la racine de l'API.

Cas d'utilisation des produits

  1. Ingérez les alertes du SIEM dans Google SecOps.
  2. Utilisez les données du SIEM pour enrichir les alertes Google SecOps.
  3. Synchronisez les états des alertes traitées avec Google SecOps côté SIEM.

Actions

Ping

Description

Testez la connectivité à FortiSIEM avec les paramètres fournis sur la page de configuration de l'intégration dans l'onglet "Google Security Operations Marketplace".

Paramètres

N/A

Exécuter sur

L'action ne s'exécute pas sur les entités et ne comporte pas de paramètres d'entrée obligatoires.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success=False
Résultat JSON
N/A
Enrichissement d'entités

N/A

Insights

N/A

Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si l'opération réussit : "La connexion à l'installation FortiSIEM avec les paramètres de connexion fournis a bien été établie !"

L'action doit échouer et arrêter l'exécution d'un playbook :

>Si l'opération échoue : "Échec de la connexion à l'installation FortiSIEM ! Error is {0}".format(exception.stacktrace)"

Général

Enrichir les entités

Description

Enrichissez les entités à l'aide des informations de la CMDB Fortinet FortiSIEM. Entités acceptées : nom d'hôte, adresse IP.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Organisation cible Chaîne N/A Non Spécifiez le nom de l'organisation cible facultatif pour rechercher des informations d'enrichissement uniquement dans cette organisation.

Exécuter sur

Cette action s'applique aux entités suivantes :

  • Nom d'hôte
  • Adresse IP

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success=False
Résultat JSON
[
  {
    "Entity": "centos-xxx",
    "EntityResult": {
      "device": {
        "organization": {
          "@id": "1xx",
          "@name": "Super"
        },
        "accessIp": "172.30.xxx.xxx",
        "approved": "true",
        "components": null,
        "creationMethod": "LOG",
        "deviceType": {
          "accessProtocols": "TELNET,SSH",
          "jobWeight": "10",
          "model": "Unix",
          "vendor": "Generic",
          "version": "ANY"
        },
        "discoverMethod": "LOG",
        "discoverTime": "1640008485000",
        "eventParserList": null,
        "interfaces": null,
        "ipToHostNames": null,
        "luns": null,
        "name": "centos-xxx",
        "naturalId": "centos%2dxxx",
        "processors": null,
        "properties": {
          "customproperty": [
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Importance",
                "groupKey": "false",
                "propertyName": "importance",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "importance",
              "propertyValue": "Normal",
              "updated": "false"
            },
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Location Name",
                "groupKey": "false",
                "propertyName": "locationName",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "locationName",
              "updated": "false"
            }
          ]
        },
        "raidGroups": null,
        "sanControllerPorts": null,
        "softwarePatches": null,
        "softwareServices": null,
        "status": "2",
        "storageGroups": null,
        "storages": null,
        "unmanaged": "false",
        "updateMethod": "LOG",
        "version": "ANY",
        "winMachineGuid": null
      }
    }
  },
  {
    "Entity": "172.30.xxx.xxx",
    "EntityResult": {
      "device": {
        "organization": {
          "@id": "1xx",
          "@name": "Super"
        },
        "accessIp": "172.30.xxx.xxx",
        "applications": null,
        "approved": "true",
        "components": null,
        "creationMethod": "LOG",
        "deviceType": {
          "accessProtocols": "TELNET,SSH",
          "jobWeight": "10",
          "model": "Unix",
          "vendor": "Generic",
          "version": "ANY"
        },
        "discoverMethod": "LOG",
        "discoverTime": "1640070721000",
        "eventParserList": {
          "eventparser": {
            "deviceType": {
              "category": "Appliance",
              "jobWeight": "10",
              "model": "Generic",
              "vendor": "Generic",
              "version": "ANY"
            },
            "enabled": "true",
            "name": "SyslogNGParser",
            "parserXml": "<patternDefinitions><pattern>..."
          }
        },
        "interfaces": null,
        "ipToHostNames": null,
        "luns": null,
        "name": "centos-xxx",
        "naturalId": "centos",
        "primaryContactUser": "0",
        "processors": null,
        "properties": {
          "customproperty": [
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Importance",
                "groupKey": "false",
                "propertyName": "importance",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "importance",
              "propertyValue": "Mission Critical",
              "updated": "false"
            },
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Location Name",
                "groupKey": "false",
                "propertyName": "locationName",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "locationName",
              "updated": "false"
            }
          ]
        },
        "raidGroups": null,
        "sanControllerPorts": null,
        "secondaryContactUser": "0",
        "softwarePatches": null,
        "softwareServices": null,
        "status": "2",
        "storageGroups": null,
        "storages": null,
        "unmanaged": "false",
        "updateMethod": "MANUAL",
        "version": "ANY",
        "winMachineGuid": null
      }
    }
  }
]
Enrichissement d'entités
Nom du champ d'enrichissement Source (clé JSON) Logique : quand les utiliser ?
accessIp accessIp Lorsqu'ils sont disponibles au format XML
nom nom Lorsqu'ils sont disponibles au format XML
applications CSV de "applications/name" Lorsqu'ils sont disponibles au format XML
creationMethod creationMethod Lorsqu'ils sont disponibles au format XML
deviceType_model deviceType_model Lorsqu'ils sont disponibles au format XML

deviceType_accessProtocols

deviceType_vendor

deviceType_accessProtocols

deviceType_vendor

Lorsqu'ils sont disponibles au format XML
discoverMethod discoverMethod Lorsqu'ils sont disponibles au format XML
discoverTime discoverTime Lorsqu'ils sont disponibles au format XML
Insights

N/A

Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si des données sont disponibles pour une entité (is_success=true) : "Les entités suivantes ont été enrichies avec succès à l'aide des informations de FortiSIEM : {entity.identifier}."

Si les données ne sont pas disponibles pour une entité (is_success=true) : "L'action n'a pas pu enrichir les entités suivantes à l'aide des informations de FortiSIEM : {entity.identifier}."

Si les données ne sont pas disponibles pour toutes les entités (is_success=false) : "Aucune des entités fournies n'a été enrichie."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale est signalée (par exemple, des identifiants incorrects, une absence de connexion au serveur ou une autre erreur), le message suivant s'affiche : "Erreur lors de l'exécution de l'action "Enrichir les entités". Raison : {0}''.format(error.Stacktrace)

Général
Tableau du mur des cas

Titre du tableau : {entity.identifier}

Colonnes du tableau :

  • Clé
  • Valeur
Entité

Exécuter une requête simple

Description

Exécutez la requête d'événements FortiSIEM en fonction des paramètres fournis.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Types d'événements CSV N/A Non

Spécifiez les types d'événements que la requête doit récupérer.

Le paramètre accepte plusieurs valeurs sous forme de chaîne séparée par une virgule.

Gravité minimale à récupérer Integer N/A Non

Spécifiez la gravité minimale des événements à extraire dans Google SecOps sous forme numérique.

Exemple : 5 ou 7

Catégorie d'événement CSV N/A Non

Spécifiez la catégorie d'événement que la requête doit récupérer.

Le paramètre accepte plusieurs valeurs sous forme de chaîne séparée par une virgule.

ID d'événement CSV N/A Non

Spécifiez les ID d'événement exacts que la requête doit récupérer (facultatif).

Le paramètre accepte plusieurs valeurs sous forme de chaîne séparée par une virgule.

Champs à renvoyer CSV N/A Non

Spécifiez les champs à renvoyer.

Si aucune valeur n'est fournie, l'action renvoie tous les champs.

Champ de tri Chaîne phRecvTime Non Spécifiez le paramètre à utiliser pour le tri.
Ordre de tri LDD

DESC

Valeurs possibles :

  • ASC
  • DESC
Non Spécifiez l'ordre de tri.
Période LDD

La dernière heure

Valeurs possibles :

  • La dernière heure
  • Les 6 dernières heures
  • Dernières 24 heures
  • La semaine dernière
  • Le mois dernier
  • Personnalisé
Non

Spécifiez une période pour les résultats.

Si vous sélectionnez "Personnalisé", vous devez également fournir le paramètre "Heure de début".

Heure de début Chaîne N/A Non

Spécifiez l'heure de début des résultats.

Ce paramètre est obligatoire si l'option "Personnalisé" est sélectionnée pour le paramètre "Période".

Format : ISO 8601

Exemple : 2021-04-23T12:38Z

Heure de fin Chaîne N/A Non

Spécifiez l'heure de fin des résultats.

Si aucune valeur n'est fournie et que "Personnalisée" est sélectionné pour le paramètre "Période", ce paramètre utilise l'heure actuelle.

Format : ISO 8601

Nombre maximal de résultats à renvoyer Integer 50 Non Spécifiez le nombre de résultats à renvoyer.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success=False
Résultat JSON
[
  {
    "custId": "1",
    "attributes": {
      "eventType": "Unknown_EventType",
      "eventSeverity": "3",
      "eventAction": "0 (Permit)",
      "phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
      "relayDevIpAddr": "172.30.20xxx",
      "reptDevIpAddr": "172.30.20xxx",
      "destIpAddr": "172.30.20xxx",
      "destName": "HOST-172.30.20xxx",
      "reptDevName": "centos-xxx",
      "reptVendor": "Unknown",
      "customer": "Super",
      "reptModel": "Unknown",
      "rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
      "collectorId": "1",
      "eventId": "4242813061460978xxx",
      "phEventCategory": "0 (External)",
      "count": "1",
      "eventName": "Unknown event type",
      "eventParsedOk": "0",
      "parserName": "SyslogNGParser"
    },
    "dataStr": null,
    "eventType": "Unknown_EventType",
    "id": "4242813061460978xxx",
    "index": "0",
    "nid": "4242813061460978xxx",
    "receiveTime": "2021-12-29T00:36:55+02:00"
  }
]
Enrichissement d'entités

N/A

Insights

N/A

Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si des données ont été trouvées (is_success=true) : "Les résultats de la requête "{query}" construite dans FortiSIEM ont été récupérés."

Si aucun résultat n'est trouvé (is_success=false) : "Aucun résultat n'a été trouvé pour la requête "{Query}" dans FortiSIEM."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale est signalée (par exemple, des identifiants incorrects, une absence de connexion au serveur ou une autre erreur) : "Erreur lors de l'exécution de l'action "Requête simple". Raison : {0}''.format(error.Stacktrace)

Si le paramètre "Heure de début" est vide et que le paramètre "Période" est défini sur "Personnalisée" (échec) : "Erreur lors de l'exécution de l'action "". Raison : l'heure de début doit être indiquée lorsque "Personnalisée" est sélectionné dans le paramètre "Période"."

Si la valeur du paramètre "Heure de début" est supérieure à celle du paramètre "Heure de fin" (échec) : "Erreur lors de l'exécution de l'action "". Raison : "Heure de fin" doit être postérieure à "Heure de début".

Général
Table

Nom de la table : résultats de requête simple

Colonnes du tableau : toutes les colonnes de la réponse

Général

Exécuter une requête personnalisée

Description

Exécutez une requête personnalisée dans FortiSIEM.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Requête Champ de saisie multiligne pour les chaînes (Attribut = Valeur OU Valeur) ET (Valeur de l'attribut OU Valeur) Oui

Spécifiez une requête permettant de récupérer des informations sur les événements.

Exemple : (relayDevIpAddr = 172.30.202.1 OR 172.30.202.2) AND (reptDevName = HOST1)

Champs à renvoyer CSV Non

Spécifiez les champs à renvoyer.

Si aucune valeur n'est fournie, l'action renvoie tous les champs.

Champ de tri Chaîne phRecvTime Non Spécifiez le paramètre à utiliser pour le tri.
Ordre de tri LDD

DESC

Valeurs possibles :

  • ASC
  • DESC
Non Spécifiez l'ordre de tri.
Période LDD

La dernière heure

Valeurs possibles :

  • La dernière heure
  • Les 6 dernières heures
  • Dernières 24 heures
  • La semaine dernière
  • Le mois dernier
  • Personnalisé
Non

Spécifiez une période pour les résultats.

Si vous sélectionnez "Personnalisé", vous devez également fournir le paramètre "Heure de début".

Heure de début Chaîne N/A Non

Spécifiez l'heure de début des résultats.

Ce paramètre est obligatoire si l'option "Personnalisé" est sélectionnée pour le paramètre "Période".

Format : ISO 8601

Exemple : 2021-04-23T12:38Z

Heure de fin Chaîne N/A Non

Spécifiez l'heure de fin des résultats.

Si aucune valeur n'est fournie et que "Personnalisée" est sélectionné pour le paramètre "Période", ce paramètre utilise l'heure actuelle.

Nombre maximal de résultats à renvoyer Integer 50 Non Spécifiez le nombre de résultats à renvoyer.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success=False
Résultat JSON
[
  {
    "custId": "1",
    "attributes": {
      "eventType": "Unknown_EventType",
      "eventSeverity": "3",
      "eventAction": "0 (Permit)",
      "phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
      "relayDevIpAddr": "172.30.20xxx",
      "reptDevIpAddr": "172.30.20xxx",
      "destIpAddr": "172.30.20xxx",
      "destName": "HOST-172.30.20xxx",
      "reptDevName": "centos-xxx",
      "reptVendor": "Unknown",
      "customer": "Super",
      "reptModel": "Unknown",
      "rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
      "collectorId": "1",
      "eventId": "4242813061460978xxx",
      "phEventCategory": "0 (External)",
      "count": "1",
      "eventName": "Unknown event type",
      "eventParsedOk": "0",
      "parserName": "SyslogNGParser"
    },
    "dataStr": null,
    "eventType": "Unknown_EventType",
    "id": "4242813061460978xxx",
    "index": "0",
    "nid": "4242813061460978xxx",
    "receiveTime": "2021-12-29T00:36:55+02:00"
  }
]
Enrichissement d'entités

N/A

Insights

N/A

Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si des données ont été trouvées (is_success=true) : "Les résultats de la requête "{query}" fournie ont été récupérés avec succès dans FortiSIEM."

Si aucun résultat n'est trouvé (is_success=false) : "Aucun résultat n'a été trouvé pour la requête "{Query}" dans FortiSIEM."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur fatale est signalée (par exemple, des identifiants incorrects, une absence de connexion au serveur ou une autre erreur) : "Erreur lors de l'exécution de l'action "Requête simple". Raison : {0}''.format(error.Stacktrace)

Si le paramètre "Heure de début" est vide et que le paramètre "Période" est défini sur "Personnalisée" (échec) : "Erreur lors de l'exécution de l'action "". Raison : l'heure de début doit être indiquée lorsque "Personnalisée" est sélectionné dans le paramètre "Période"."

Si la valeur du paramètre "Heure de début" est supérieure à celle du paramètre "Heure de fin" (échec) : "Erreur lors de l'exécution de l'action "". Raison : "Heure de fin" doit être postérieure à "Heure de début".

Général
Table

Nom de la table : résultats de la requête personnalisée

Colonnes du tableau : toutes les colonnes de la réponse

Général

Connecteurs

Connecteur d'incidents FortiSIEM

Description du connecteur

Le connecteur peut être utilisé pour récupérer les incidents FortiSIEM. La liste d'autorisation des connecteurs peut être utilisée pour ingérer uniquement des types d'incidents spécifiques en fonction de la valeur de l'attribut "eventType" de l'incident. L'identifiant SourceGroupIdentifier du connecteur peut être utilisé pour regrouper les alertes Google SecOps en fonction de l'ID d'incident. Le connecteur nécessite FortiSIEM version 6.3 ou ultérieure.

Paramètres du connecteur

Nom à afficher du paramètre Type Valeur par défaut Obligatoire Description
Nom du champ de produit Chaîne deviceProduct Oui Saisissez le nom du champ source pour récupérer le nom du champ produit.
Nom du champ d'événement Chaîne eventType Oui Saisissez le nom du champ source pour récupérer le nom du champ d'événement.
Nom du champ "Environnement" Chaîne Non

Décrit le nom du champ dans lequel le nom de l'environnement est stocké.

Si le champ "environment" (environnement) est introuvable, l'environnement est celui par défaut.

Modèle d'expression régulière de l'environnement Chaîne .* Non

Expression régulière à exécuter sur la valeur trouvée dans le champ "Nom du champ d'environnement".

La valeur par défaut est ".*" pour tout capturer et renvoyer la valeur inchangée.

Permet à l'utilisateur de manipuler le champ "environnement" à l'aide de la logique des expressions régulières.

Si le modèle d'expression régulière est nul ou vide, ou si la valeur d'environnement est nulle, l'environnement par défaut est utilisé comme résultat final.

Délai avant expiration du script Integer 300 Oui Spécifiez le délai avant expiration pour l'exécution du connecteur.
Racine de l'API Chaîne https:/x.x.x.x:port Oui Spécifiez la racine de l'API pour l'installation FortiSIEM cible.
Nom d'utilisateur Chaîne N/A Oui Spécifiez le nom d'utilisateur à utiliser pour l'installation FortiSIEM cible.
Mot de passe Mot de passe N/A Oui Spécifiez le mot de passe à utiliser pour l'installation FortiSIEM cible.
Vérifier le protocole SSL Case à cocher Cochée Non Si elle est activée, le serveur Google SecOps vérifie le certificat configuré pour la racine de l'API.
Organisation cible CSV N/A Non

Spécifiez les organisations pour lesquelles le connecteur doit récupérer les incidents.

Les paramètres acceptent plusieurs valeurs sous forme de chaîne séparée par une virgule.

Nombre maximal d'heures en arrière Integer 24 Oui Spécifiez le délai pour récupérer les incidents (X heures en arrière).
Nombre maximal d'incidents par cycle Integer 10 Oui Spécifiez le nombre d'incidents à traiter lors d'une exécution du connecteur.
Nombre maximal d'événements par incident Integer 100 Oui

Spécifiez le nombre maximal d'événements que le connecteur doit suivre pour l'incident.

Une fois la limite atteinte, les nouveaux événements ne sont pas ajoutés à Google SecOps.

États des incidents à récupérer CSV 0 Non

Spécifiez les états des incidents à récupérer dans Google SecOps.

Le paramètre accepte plusieurs valeurs sous forme de chaîne séparée par une virgule.

0 correspond aux incidents ouverts.

Gravité minimale à récupérer Integer N/A Non Spécifiez la gravité minimale des événements d'incident à extraire dans Google SecOps (par exemple, 5 ou 7).
Utiliser la liste blanche comme liste noire Case à cocher Décochée Oui Si cette option est activée, la liste blanche est utilisée comme liste noire.
Suivre les nouveaux événements ajoutés aux incidents déjà ingérés Case à cocher Cochée Oui Si cette option est activée, et que de nouveaux événements sont ajoutés à un incident FortiSIEM déjà ingéré, une nouvelle alerte est créée dans Google SecOps et contient ces nouveaux événements.
Seuil de suivi des nouveaux événements (heures) Integer 24 Oui

Si la case "Suivre les nouveaux événements ajoutés aux incidents déjà ingérés" est cochée, spécifiez le nombre maximal d'heures pendant lesquelles le connecteur doit suivre les incidents déjà ingérés pour les nouveaux événements.

Une fois la limite atteinte, les nouveaux événements ne sont pas ajoutés à Google SecOps.

Adresse du serveur proxy Chaîne N/A Non Spécifiez l'adresse du serveur proxy à utiliser.
Nom d'utilisateur du proxy Chaîne N/A Non Spécifiez le nom d'utilisateur du proxy pour l'authentification.
Mot de passe du proxy Mot de passe N/A Non Spécifiez le mot de passe du proxy pour l'authentification.

Règles du connecteur

Assistance de proxy

Le connecteur est compatible avec le proxy.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.