FortiAnalyzer
Version de l'intégration : 5.0
Avant de commencer
Avant de configurer l'intégration FortiAnalyzer dans Google SecOps, vous devez créer un profil d'administrateur dédié avec les autorisations suivantes :
| Catégorie | Niveau d'autorisation |
|---|---|
| Paramètres système | Aucun |
| Domaine administratif | Aucun |
| Gestionnaire d'appareils | Lecture seule |
| Ajouter/Supprimer/Modifier des appareils/groupes | Lecture seule |
| Affichage des journaux/FortiView | Lecture seule |
| Incidents et événements | Lecture/Écriture |
| Créer et mettre à jour des incidents | Lecture/Écriture |
| Événement de tri | Aucun |
| Exécuter le playbook | Aucun |
| Rapports | Aucun |
| Générer le rapport | Aucun |
| Vue Fabric | Aucun |
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://{ip address} | Oui | Racine de l'API de l'instance FortiAnalyzer. |
| Nom d'utilisateur | Chaîne | N/A | Oui | Nom d'utilisateur du compte FortiAnalyzer. Assurez-vous que les identifiants fournis appartiennent à un compte utilisateur attribué au profil défini dans Avant de commencer. |
| Mot de passe | Mot de passe | N/A | Oui | Mot de passe du compte FortiAnalyzer. Assurez-vous que les identifiants fournis appartiennent à un compte utilisateur attribué au profil défini dans Avant de commencer. |
| Vérifier le protocole SSL | Case à cocher | Cochée | Oui | Si cette option est activée, elle vérifie que le certificat SSL de la connexion à FortiAnalyzer est valide. |
Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.
Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.
Actions
Ajouter un commentaire à une alerte
Description
Ajoutez un commentaire à l'alerte dans FortiAnalyzer.
Paramètres
| Nom à afficher du paramètre | Type | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| ID d'alerte | Chaîne | N/A | Oui | Spécifiez l'ID de l'alerte à modifier. |
| Commentaire | Chaîne | N/A | Oui | Spécifiez le commentaire pour l'alerte. |
Date d'exécution
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
{
"jsonrpc": "2.0",
"id": "string",
"result": {
"status": "done"
}
}
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 les informations renvoyées sont les suivantes (is_success=true) : "Commentaire ajouté à l'alerte avec l'ID {id} dans FortiAnalyzer." 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 autre) : "Erreur lors de l'exécution de l'action "Ajouter un commentaire à l'alerte". Raison : {0}''.format(error.Stacktrace)" Si l'alerte n'est pas trouvée : "Erreur lors de l'exécution de l'action "Ajouter un commentaire à l'alerte". Motif : L'alerte portant l'ID {alert id} est introuvable dans FortiAnalyzer. Veuillez vérifier l'orthographe." |
Général |
Enrichir les entités
Description
Enrichissez les entités à l'aide des informations de FortiAnalyzer. Entités acceptées : nom d'hôte, adresse IP.
Paramètres
N/A
Date d'exécution
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
{
"adm_pass": [
"ENC",
"FLP+Dq8f3t2/S+GQ6DfPL2iRhtmk1CEZzEeH8+nVkRkFd72IUbBZM6uDyw0fQ1j1i28H1wtfqf6HlGEK2ubxs0rXE4L+Uqj433si+AmEF9gEB5gLw/4P5YYRkw/aOYF74k8/8bincoa31jBe0u0HWRNdWYQSyG7IWgvZGsPK4at0gwZI"
],
"adm_usr": "admin",
"app_ver": "",
"av_ver": "",
"beta": -1,
"branch_pt": 1255,
"build": 1255,
"checksum": "",
"conf_status": 0,
"conn_mode": 0,
"conn_status": 0,
"db_status": 0,
"desc": "",
"dev_status": 0,
"eip": "",
"fap_cnt": 0,
"faz.full_act": 0,
"faz.perm": 15,
"faz.quota": 0,
"faz.used": 0,
"fex_cnt": 0,
"first_tunnel_up": 0,
"flags": 2097152,
"foslic_cpu": 0,
"foslic_dr_site": 0,
"foslic_inst_time": 0,
"foslic_last_sync": 0,
"foslic_ram": 0,
"foslic_type": 0,
"foslic_utm": 0,
"fsw_cnt": 0,
"ha_group_id": 0,
"ha_group_name": "",
"ha_mode": 0,
"ha_slave": null,
"hdisk_size": 0,
"hostname": "",
"hw_rev_major": 0,
"hw_rev_minor": 0,
"hyperscale": 0,
"ip": "172.30.203.248",
"ips_ext": 0,
"ips_ver": "",
"last_checked": 1665664693,
"last_resync": 0,
"latitude": "0.0",
"lic_flags": 0,
"lic_region": "",
"location_from": "",
"logdisk_size": 0,
"longitude": "0.0",
"maxvdom": 10,
"mgmt.__data[0]": 0,
"mgmt.__data[1]": 0,
"mgmt.__data[2]": 0,
"mgmt.__data[3]": 0,
"mgmt.__data[4]": 0,
"mgmt.__data[5]": 0,
"mgmt.__data[6]": 0,
"mgmt.__data[7]": 0,
"mgmt_if": "",
"mgmt_mode": 2,
"mgmt_uuid": "1841991674",
"mgt_vdom": "",
"module_sn": "",
"mr": 2,
"name": "FGVMEV2YKQ61YQD5",
"node_flags": 0,
"nsxt_service_name": "",
"oid": 181,
"onboard_rule": null,
"opts": 0,
"os_type": 0,
"os_ver": 7,
"patch": 2,
"platform_str": "FortiGate-VM64",
"prefer_img_ver": "",
"prio": 0,
"private_key": "",
"private_key_status": 0,
"psk": "",
"role": 0,
"sn": "FGVMEV2YKQ61YQD5",
"source": 2,
"tab_status": "",
"tunnel_cookie": "",
"tunnel_ip": "",
"vdom": [
{
"comments": null,
"devid": "FGVMEV2YKQ61YQD5",
"ext_flags": 0,
"flags": 0,
"name": "root",
"node_flags": 0,
"oid": 3,
"opmode": 1,
"rtm_prof_id": 0,
"status": null,
"tab_status": null,
"vdom_type": 1,
"vpn_id": 0
}
],
"version": 700,
"vm_cpu": 0,
"vm_cpu_limit": 0,
"vm_lic_expire": 0,
"vm_mem": 0,
"vm_mem_limit": 0,
"vm_status": 0
}
Enrichissement d'entités : préfixe FortiAn_
| Nom du champ d'enrichissement | Source (clé JSON) | Logique : quand l'appliquer ? |
|---|---|---|
| adm_usr | adm_usr | Lorsqu'il est disponible au format JSON |
| build | build | Lorsqu'il est disponible au format JSON |
| ip | ip | Lorsqu'il est disponible au format JSON |
| last_checked | last_checked | Lorsqu'il est disponible au format JSON |
| last_resync | last_resync | Lorsqu'il est disponible au format JSON |
| nom | nom | Lorsqu'il est disponible au format JSON |
| sn | sn | Lorsqu'il est disponible au format JSON |
| os_type | os_type | Lorsqu'il est disponible au format JSON |
| os_ver | os_ver | Lorsqu'il est disponible au format JSON |
| patch | patch | Lorsqu'il est disponible au format JSON |
| platform\_str | platform\_str | Lorsqu'il est disponible au format JSON |
| version | version | Lorsqu'il est disponible au format JSON |
| décroiss. | décroiss. | Lorsqu'il est disponible au format JSON |
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 FortiAnalyzer : {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 FortiAnalyzer : {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, l'absence de connexion au serveur ou autre) : "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 : {entity.identifier} Columns: Clé-valeur |
Entité |
Ping
Description
Testez la connectivité à FortiAnalyzer 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
Date d'exécution
Cette 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
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 au serveur BitSight a été établie avec succès à l'aide des paramètres de connexion fournis !" L'action doit échouer et arrêter l'exécution d'un playbook : Si l'opération échoue : "Échec de la connexion au serveur BitSight. Error is {0}".format(exception.stacktrace) |
Général |
Journaux sur les recherches
Description
Recherchez des journaux dans FortiAnalyzer.
Paramètres
| Nom à afficher du paramètre | Type | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| Type de journal | LDD | Trafic Valeurs possibles :
|
Non | Spécifiez le type de journal à rechercher. |
| Filtre sensible à la casse | Case à cocher | (décoché) | Non | Si cette option est activée, le filtre est sensible à la casse. |
| Filtre de requête | Chaîne | N/A | Non | Spécifiez le filtre de requête pour la recherche. |
| ID de l'appareil | Chaîne | All\_Fortigate | Non | Spécifiez l'ID de l'appareil à rechercher. Si rien n'est fourni, l'action effectue une recherche dans All_Fortigate. Exemples de valeurs : All_FortiGate, All_FortiMail, All_FortiWeb, All_FortiManager, All_Syslog, All_FortiClient, All_FortiCache, All_FortiProxy, All_FortiAnalyzer, All_FortiSandbox, All_FortiAuthenticator, All_FortiDDoS |
| Période | LDD | Le mois dernier 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 "Personnalisé" est sélectionné pour le paramètre "Période". Format : ISO 8601 |
| Heure de fin | Chaîne | N/A | Non | Spécifiez l'heure de fin des résultats. Format : ISO 8601. 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. |
| Ordre chronologique | LDD | DESC Valeurs possibles :
|
Non | Spécifiez l'ordre chronologique dans la recherche. |
| Nombre maximal de journaux à renvoyer | Nombre entier | 20 | Non | Spécifiez le nombre de journaux à renvoyer. Par défaut : 20. Maximum : 1 000. |
Date d'exécution
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
{
"sessionid": "29658",
"srcip": "172.30.201.188",
"dstip": "173.243.138.210",
"srcport": "17453",
"dstport": "443",
"trandisp": "noop",
"duration": "1",
"proto": "6",
"sentbyte": "216",
"rcvdbyte": "112",
"sentpkt": "4",
"rcvdpkt": "2",
"logid": "0001000014",
"service": "HTTPS",
"app": "HTTPS",
"appcat": "unscanned",
"srcintfrole": "undefined",
"dstintfrole": "undefined",
"eventtime": "1665752066921638736",
"srccountry": "Reserved",
"dstcountry": "Canada",
"srcintf": "root",
"dstintf": "port1",
"dstowner": "540",
"tz": "-0700",
"devid": "FGVMEV2YKQ61YQD5",
"vd": "root",
"csf": "FortiNetFabric",
"dtime": "2022-10-14 05:54:27",
"itime_t": "1665752069",
"devname": "FGVMEV2YKQ61YQD5"
}{
"date": "2022-10-14",
"time": "05:54:27",
"id": "7154350659607724033",
"itime": "2022-10-14 05:54:29",
"euid": "102",
"epid": "102",
"dsteuid": "102",
"dstepid": "102",
"logver": "702021255",
"type": "traffic",
"subtype": "local",
"level": "notice",
"action": "close",
"policyid": "0"
}
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 les informations renvoyées sont les suivantes (is_success=true) : "Les journaux correspondant aux critères fournis dans FortiAnalyzer ont été récupérés." Si aucune information n'est renvoyée (is_success=true) : "Aucun journal n'a été trouvé pour les critères fournis dans FortiAnalyzer." 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 autre), le message suivant s'affiche : "Erreur lors de l'exécution de l'action "Rechercher dans les journaux". Raison : {0}''.format(error.Stacktrace)" Si une erreur est signalée dans la réponse : "Erreur lors de l'exécution de l'action "Rechercher dans les journaux". Reason: {0}''.format(error/message)" |
Général |
Mettre à jour l'alerte
Description
Mettez à jour une alerte dans FortiAnalyzer.
Paramètres
| Nom à afficher du paramètre | Type | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| ID d'alerte | Chaîne | N/A | Oui | Spécifiez l'ID de l'alerte à modifier. |
| État de confirmation | LDD | Sélectionnez un élément Valeurs possibles :
|
Non | Spécifiez l'état d'accusé de réception de l'alerte. |
| Marquer comme lu | Case à cocher | (décoché) | Non | Si cette option est activée, l'action marque l'alerte comme lue. |
| Attribuer à | Chaîne | N/A | Non | Indiquez à qui l'alerte doit être attribuée. |
Date d'exécution
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
{
"alerttime": "1665653864",
"logcount": "17",
"alertid": "202210131000040003",
"adom": "root",
"epid": "1",
"epname": "not implemented dev type",
"subject": "desc:Trim local db",
"euid": "1",
"euname": "N/A",
"devname": "fortianalyzer",
"logtype": "event",
"devtype": "FortiAnalyzer",
"devid": "FAZ-VMTM22013516",
"vdom": "_self_locallog_",
"groupby1": "desc:Trim local db",
"triggername": "Local Device Event",
"tag": "Default,System,Local",
"eventtype": "event",
"severity": "medium",
"extrainfo": "{ \"msg\": \"Requested to trim database tables older than 60 days to enforce the retention policy of Adom FortiAuthenticator.\" }",
"ackflag": "no",
"readflag": "yes",
"filterkey": "3377053565526629289",
"firstlogtime": "1665653864",
"multiflag": "",
"lastlogtime": "1665653887",
"updatetime": "1665747977",
"filtercksum": "2072153473",
"filterid": "1",
"assignto": "api_user",
"ackby": "admin",
"acktime": "1665747892"
}
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 les informations renvoyées sont les suivantes (is_success=true) : "L'alerte portant l'ID {alert id} a bien été mise à jour dans FortiAnalyzer." 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, l'absence de connexion au serveur ou autre) : "Erreur lors de l'exécution de l'action "Mettre à jour l'alerte". Raison : {0}''.format(error.Stacktrace) Si l'alerte est introuvable : "Erreur lors de l'exécution de l'action "Mettre à jour l'alerte". Motif : L'alerte portant l'ID {alert id} est introuvable dans FortiAnalyzer. Veuillez vérifier l'orthographe." Si le paramètre "Acknowledge Status" (Accuser réception de l'état) est défini sur "Select One" (Sélectionner), le paramètre "Mark as Read" (Marquer comme lu) est défini sur "False" (Faux) et rien n'est fourni dans le paramètre "Assign To" (Attribuer à) : "Error executing action "Update Alert". Raison : au moins l'un des paramètres "Acknowledge Status", "Mark As Read" ou "Assign To" doit avoir une valeur ." |
Général |
Connecteurs
Connecteur d'alertes FortiAnalyzer
Description
Extraire des informations sur les alertes de FortiAnalyzer
Configurer le connecteur d'alertes FortiAnalyzer dans Google SecOps
Pour obtenir des instructions détaillées sur la configuration d'un connecteur dans Google SecOps, consultez Configurer le connecteur.
Paramètres du connecteur
Utilisez les paramètres suivants pour configurer le connecteur :
| Nom à afficher du paramètre | Type | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| Nom du champ de produit | Chaîne | siemplify_type | Oui | Saisissez le nom du champ source pour récupérer le nom du champ produit. |
| Nom du champ d'événement | Chaîne | event_type | Oui | Saisissez le nom du champ source pour récupérer le nom du champ d'événement. |
| Nom du champ d'environnement | Chaîne | "" | Non | Décrit le nom du champ dans lequel le nom de l'environnement est stocké. Si le champ d'environnement n'est pas trouvé, l'environnement est celui par défaut. |
| Modèle d'expression régulière de l'environnement | Chaîne | .* | Non | Modèle d'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 récupérer et renvoyer la valeur inchangée. Permet à l'utilisateur de manipuler le champ "environment" à l'aide d'une logique d'expression régulière. Si le modèle d'expression régulière est nul ou vide, ou si la valeur de l'environnement est nulle, l'environnement par défaut est sélectionné. |
| Délai avant expiration du script (en secondes) | Entier | 180 | Oui | Délai avant expiration du processus Python exécutant le script actuel. |
| Racine de l'API | Chaîne | https://{ip address} | Oui | Racine de l'API de l'instance FortiAnalyzer. |
| Nom d'utilisateur | Chaîne | N/A | Oui | Nom d'utilisateur du compte FortiAnalyzer. |
| Mot de passe | Mot de passe | N/A | Oui | Mot de passe du compte FortiAnalyzer. |
| Gravité la plus faible à récupérer | Chaîne | Moyenne | Non | Niveau de gravité le plus faible à utiliser pour récupérer les alertes. Valeurs possibles : faible, moyenne, élevée, critique. Si rien n'est spécifié, le connecteur ingère les alertes de tous les niveaux de gravité. |
| Nombre maximal d'heures en arrière | Entier | 1 | Non | Nombre d'heures dans le passé à partir desquelles récupérer les alertes. |
| Nombre maximal d'alertes à récupérer | Nombre entier | 20 | Non | Nombre d'alertes par type à traiter par itération de connecteur. |
| Utiliser une liste dynamique comme liste noire | Case à cocher | (décoché) | Oui | Si cette option est activée, la liste dynamique est utilisée comme liste noire. |
| Vérifier le protocole SSL | Case à cocher | Cochée | Oui | Si cette option est activée, le connecteur vérifie que le certificat SSL de la connexion au serveur FortiAnalyzer est valide. |
| Adresse du serveur proxy | Chaîne | N/A | Non | Adresse du serveur proxy à utiliser. |
| Nom d'utilisateur du proxy | Chaîne | N/A | Non | Nom d'utilisateur du proxy pour l'authentification. |
| Mot de passe du proxy | Mot de passe | N/A | Non | 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.