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
- Ingérez les alertes du SIEM dans Google SecOps.
- Utilisez les données du SIEM pour enrichir les alertes Google SecOps.
- 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 :
|
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 :
|
Non | Spécifiez l'ordre de tri. |
| Période | LDD | La dernière heure Valeurs possibles :
|
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 :
|
Non | Spécifiez l'ordre de tri. |
| Période | LDD | La dernière heure Valeurs possibles :
|
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.