Intégrer Jira à Google SecOps

Ce document explique comment intégrer Jira à Google Security Operations.

Cas d'utilisation

L'intégration Jira utilise les fonctionnalités de Google SecOps pour prendre en charge les cas d'utilisation suivants :

  • Création automatique de tickets : créez automatiquement des tickets Jira à partir des alertes Google SecOps à l'aide du connecteur Jira pour simplifier le transfert entre les équipes de sécurité et d'informatique.

  • Synchronisation bidirectionnelle : assurez la cohérence entre les plates-formes en synchronisant automatiquement les commentaires et les changements d'état entre les tickets Jira et les demandes Google SecOps à l'aide de jobs de synchronisation dédiés.

  • Enrichissement des incidents : joignez des preuves, des journaux et des captures d'écran directement aux demandes Jira à l'aide de l'action Importer une pièce jointe pour fournir un contexte complet aux personnes chargées de la correction.

  • Gestion dynamique des tâches : mettez à jour, attribuez ou associez des tickets Jira associés directement depuis le playbook Google SecOps pour automatiser les procédures d'exploitation standards.

Avant de commencer

Avant de configurer l'intégration de Jira dans la plate-forme Google SecOps, vérifiez que vous disposez des éléments suivants :

  • Compatibilité des produits : accès à une instance Jira Cloud ou à un environnement Jira Data Center (sur site).

  • Méthode d'authentification : choisissez une méthode d'authentification.

    • Authentification de base (Jira Cloud) : nécessite un nom d'utilisateur (adresse e-mail) et un jeton d'API Atlassian.
    • Authentification par compte de service (Jira Cloud) : nécessite un jeton de compte de service et votre ID Cloud.
    • Authentification standard (Jira Data Center) : nécessite un nom d'utilisateur et un mot de passe valides.
  • URL racine de l'API : le format de la racine de l'API dépend de votre méthode d'authentification.

    • Standard/Basic : URL de base de votre instance Jira (par exemple, https://yourdomain.atlassian.net).
    • Compte de service : URL du proxy de l'API Atlassian, qui doit inclure votre ID Cloud (par exemple, https://api.atlassian.com/ex/jira/{cloud_id}).

Configurer l'authentification pour Jira Cloud

Pour vous connecter à Jira Cloud à l'aide d'un jeton d'API, suivez les instructions de la documentation Atlassian pour générer un jeton.

Configurer l'authentification pour les comptes de service

Pour utiliser l'authentification basée sur un jeton (jeton de support) pour Jira Cloud :

  1. Pour en savoir plus sur la création d'un compte de service à l'aide de la console d'administration Atlassian, consultez Comprendre les comptes de service.

  2. Récupérez votre ID Cloud en accédant à : https://<your_tenant>.atlassian.net/_edge/tenant_info (où <your_tenant> est le nom de votre instance Atlassian spécifique).

  3. Lors de la configuration de l'intégration, laissez le champ Username (Nom d'utilisateur) vide pour déclencher l'authentification par jeton de support.

Paramètres d'intégration

L'intégration Jira nécessite les paramètres suivants :

Paramètre Description
Api Root

Obligatoire.

URL de base de l'instance Jira.

Username

Facultatif.

Nom d'utilisateur (adresse e-mail) utilisé pour se connecter à Jira.

L'exigence de ce paramètre dépend de la méthode d'authentification choisie :

  • Si cette valeur est fournie, le système utilise l'authentification de base.
  • Si vous ne spécifiez pas de valeur, le système utilise par défaut l'authentification par jeton de support (requise pour les comptes de service).

Pour en savoir plus sur les méthodes d'authentification, consultez Avant de commencer.

Api Token

Obligatoire.

Identifiant d'authentification utilisé pour se connecter à Jira.

Ce champ accepte les jetons d'API, les jetons de compte de service ou les mots de passe standards (pour Data Center).

Verify SSL

Facultatif.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Jira.

Pour savoir comment configurer une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement si nécessaire. Après avoir configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour en savoir plus sur la configuration et la prise en charge de plusieurs instances, consultez Prendre en charge plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis votre bureau et Exécuter une action manuelle dans votre demande.

Ajouter un commentaire

Utilisez l'action Ajouter un commentaire pour rédiger et ajouter un commentaire à une demande Jira existante.

C'est un moyen efficace de documenter les résultats, de fournir des informations et de collaborer avec les membres de l'équipe directement depuis Google SecOps.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Ajouter un commentaire nécessite les paramètres suivants :

Paramètre Description
Issue Key

Obligatoire.

Identifiant unique du problème Jira (par exemple, PROJ-123).

Comment

Obligatoire.

Texte à ajouter au problème Jira.

Sorties de l'action

L'action Ajouter un commentaire fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lorsque vous utilisez l'action Ajouter un commentaire :

Nom du résultat du script Valeur
comment_id Identifiant unique du commentaire récemment créé dans Jira.

Attribuer un problème

Utilisez l'action Attribuer un problème pour attribuer un problème Jira à un utilisateur spécifique.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Attribuer un problème nécessite les paramètres suivants :

Paramètre Description
Issue Key

Obligatoire.

Identifiant unique du problème Jira (par exemple, PROJ-123).

Assignee

Obligatoire.

Nom ou adresse e-mail de l'utilisateur auquel attribuer le problème.

Jira Username

Facultatif.

Nom d'utilisateur Jira de la personne qui lance l'action d'attribution.

Sorties de l'action

L'action Attribuer un problème fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Attribuer un problème :

Nom du résultat du script Valeur
success true ou false

Créer un problème d'alerte

Utilisez l'action Créer un problème d'alerte pour créer un ticket dans Jira pour une alerte spécifique.

Cette action est principalement utilisée dans les playbooks pour transmettre les incidents de sécurité aux équipes informatiques ou d'ingénierie afin qu'elles les examinent ou les corrigent.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Créer un problème d'alerte nécessite les paramètres suivants :

Paramètre Description
Project Key

Obligatoire.

Clé abrégée unique du projet Jira dans lequel le problème est créé (par exemple, SEC).

Summary

Obligatoire.

Un titre ou un résumé bref du problème.

Issue Type

Obligatoire.

Nom du type de problème (par exemple, Task, Bug ou Incident).

Sorties de l'action

L'action Créer un problème d'alerte fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lorsque l'action crée un problème :

{
   "summary": "Sample issue",
   "description": "Create Enrich entities action using Insights API (IOC search). Write connector for alerts.",
   "project": {
      "key": "PR",
      "name": "Project 1",
      "projectTypeKey": "software"
   },
   "issuetype": {
     "name": "Task",
     "subtask": false
   },
   "status": {
      "name": "DONE",
      "statusCategory": {
         "name": "Done",
         "key": "done"
      }
   },
   "priority": {
      "name": "Medium",
      "id": "3"
   },
   "creator": {
      "displayName": "user1",
      "emailAddress": "john_doe@example.com"
   },
   "assignee": {
      "displayName": "user2",
      "emailAddress": "john_doe@example.com"
   },
   "created": "2018-06-19T15:23:13.701+0300",
   "updated": "2018-09-18T10:02:06.347+0300"
}
Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lorsque vous utilisez l'action Créer un problème d'alerte :

Nom du résultat du script Valeur
issue_key Clé abrégée unique du problème Jira nouvellement créé (par exemple, SEC-456).

Créer un problème

Utilisez l'action Créer un problème pour créer un ticket dans un projet Jira.

Cette action offre de nombreuses options de personnalisation, y compris la possibilité de spécifier des composants, des étiquettes et des champs personnalisés à l'aide de JSON, ce qui la rend adaptée aux workflows de création de tickets complexes.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Créer un problème nécessite les paramètres suivants :

Paramètre Description
Project Key

Obligatoire.

Clé abrégée unique du projet Jira dans lequel le problème est créé (par exemple, SEC).

Summary

Obligatoire.

Un titre ou un résumé bref du problème.

Description

Facultatif.

Description détaillée du problème

Issue Type

Obligatoire.

Nom du type de problème (par exemple, Task, Bug ou Incident).

Jira Username

Facultatif.

Nom d'utilisateur Jira de la personne qui lance l'action.

Assignee

Facultatif.

Identifiant de l'utilisateur auquel le problème est attribué.

Components

Facultatif.

Liste de composants Jira à associer au problème, séparés par une virgule.

Labels

Facultatif.

Liste de libellés séparés par une virgule à ajouter au problème.

Custom Fields

Facultatif.

Objet JSON contenant des champs et des valeurs supplémentaires à définir lors de la création (par exemple, {"customfield_10001": "Value"}).

Les valeurs fournies dans ce paramètre sont prioritaires et écrasent les autres mappages de champs en cas de conflit.

Sorties de l'action

L'action Créer un problème fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Créer un problème :

{
   "summary": "Sample issue",
   "description": "Create Enrich entities action using Insights API (IOC search). Write connector for alerts. In a couple of days we will have access to an instance.",
   "project": {
      "key": "PR",
      "name": "Project 1",
      "projectTypeKey": "software"
   },
   "issuetype": {
      "name": "Task",
      "description": "A task that needs to be done.",
      "subtask": false
   },
   "status": {
      "name": "DONE",
      "statusCategory": {
         "name": "Done",
         "key": "done",
         "colorName": "green"
      }
   },
   "priority": {
      "name": "Medium",
      "id": "3"
   },
   "resolution": {
      "name": "Done",
      "description": "Work has been completed on this issue."
   },
   "creator": {
      "displayName": "user1",
      "emailAddress": "john_doe@example.com",
      "active": true,
      "timeZone": "Asia/Jerusalem"
   },
   "assignee": {
      "displayName": "user2",
      "emailAddress": "john_doe@example.com",
      "active": true
   },
   "reporter": {
      "displayName": "user1",
      "emailAddress": "john_doe@example.com"
   },
   "labels": [
      "Label1"
   ],
   "attachment": [
      {
         "id": "1001",
         "filename": "file.rar",
         "mimeType": "binary/octet-stream",
         "size": 15420,
         "created": "2018-06-19T15:23:07.369+0300"
      }
   ],
   "created": "2018-06-19T15:23:13.701+0300",
   "updated": "2018-09-18T10:02:06.347+0300",
   "resolutiondate": "2018-09-18T10:02:06.340+0300",
   "watches": {
      "watchCount": 1,
      "isWatching": false
   }
}
Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lors de l'utilisation de l'action Créer un problème :

Nom du résultat du script Valeur
issue_key Clé abrégée unique du problème Jira nouvellement créé (par exemple, SEC-789).

Supprimer le problème

Utilisez l'action Supprimer le problème pour supprimer définitivement un problème de Jira.

Cette action est généralement utilisée pour nettoyer les demandes en double ou supprimer les données de test générées lors du développement du playbook.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Supprimer un problème nécessite les paramètres suivants :

Paramètre Description
Issue Key

Obligatoire.

Clé abrégée unique de la demande Jira à supprimer (par exemple, SEC-123).

Sorties de l'action

L'action Supprimer un problème fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Supprimer un problème :

Nom du résultat du script Valeur
success true ou false

Télécharger les pièces jointes

Utilisez l'action Télécharger les pièces jointes pour récupérer tous les fichiers joints à une demande Jira spécifique. Si une pièce jointe est un fichier .eml, l'action télécharge également tous les fichiers contenus dans cet e-mail.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Télécharger les pièces jointes nécessite les paramètres suivants :

Paramètre Description
Issue Key

Obligatoire.

Clé abrégée unique du problème Jira (par exemple, SEC-123).

Download Path

Facultatif.

Chemin d'accès local ou interne au dossier dans lequel l'action enregistre les pièces jointes téléchargées.

Le format requis dépend de votre type de déploiement :

  • Déploiement SaaS : le chemin d'accès est interne à la plate-forme hébergée, par exemple /attachments/.
  • Déploiement de l'agent distant : le chemin d'accès doit être un chemin d'accès absolu et valide au répertoire sur l'ordinateur local sur lequel l'agent distant est installé. Par exemple, C:\temp\attachments pour Windows ou /var/tmp/attachments/ pour Linux.
Download Attachments to the Case Wall

Facultatif.

Si cette option est sélectionnée, l'action télécharge les pièces jointes de la demande Jira directement sur le mur des cas Google SecOps actuel.

La taille des pièces jointes ajoutées au mur des cas est limitée. L'importation de fichiers volumineux peut échouer.

Désactivé par défaut

Sorties de l'action

L'action Télécharger les pièces jointes fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Télécharger les pièces jointes :

[
  {
    "download_path": "downloads/Security_Evidence.eml",
    "attachment_details": {
      "id": "10007",
      "filename": "Security_Evidence.eml",
      "author": {
        "displayName": "Security Analyst",
        "emailAddress": "analyst@example.com",
        "active": true,
        "timeZone": "Asia/Calcutta"
      },
      "created": "2024-05-25T20:27:09.066+0530",
      "size": 12049140,
      "mimeType": "message/rfc822"
    }
  },
  {
    "download_path": "downloads/Logs_Attachment.txt",
    "attachment_details": {
      "id": "10005",
      "filename": "Logs_Attachment.txt",
      "author": {
        "displayName": "System Admin",
        "emailAddress": "admin@example.com",
        "active": true,
        "timeZone": "Asia/Calcutta"
      },
      "created": "2024-05-16T11:48:24.141+0530",
      "size": 43,
      "mimeType": "text/plain"
    }
  }
]
Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lors de l'utilisation de l'action Télécharger les pièces jointes :

Nom du résultat du script Valeur
is_success true ou false

Obtenir les problèmes

Utilisez l'action Obtenir les problèmes pour récupérer tous les détails d'un ou de plusieurs problèmes Jira.

Cette action est utile pour enrichir les demandes Google SecOps avec les métadonnées actuelles du ticket (comme l'état, la personne responsable et la priorité).

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Obtenir les problèmes nécessite les paramètres suivants :

Paramètre Description
Issue Keys

Obligatoire.

Liste de clés de problème Jira à récupérer, séparées par une virgule (par exemple, SEC-123, SEC-456).

Sorties de l'action

L'action Get Issues (Obtenir les problèmes) fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Get Issues (Obtenir les problèmes) :

{
  "issues_details_list": [
    {
      "key": "TES-65",
      "summary": "New summary",
      "description": "Detailed description of the security incident.",
      "project": {
        "key": "TES",
        "name": "test-project1",
        "projectTypeKey": "software"
      },
      "issuetype": {
        "name": "Bogue",
        "subtask": false
      },
      "status": {
        "name": "Fini",
        "statusCategory": {
          "name": "Terminé",
          "key": "done"
        }
      },
      "priority": {
        "name": "Medium",
        "id": "3"
      },
      "assignee": {
        "displayName": "Vasil Daskalov",
        "emailAddress": "vasil.daskalov@siemplify.co"
      },
      "creator": {
        "displayName": "admin@siemplifylab.local",
        "emailAddress": "admin@siemplifylab.local"
      },
      "created": "2021-08-31T12:15:22.089+0000",
      "updated": "2021-11-11T13:16:50.552+0000",
      "resolution": {
        "name": "Terminé",
        "description": "Ce ticket a été traité."
      },
      "labels": [],
      "components": []
    }
  ]
}
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lors de l'utilisation de l'action Get Issues (Obtenir les problèmes) :

Nom du résultat du script Valeur
issues_details_list Liste contenant les métadonnées complètes des demandes Jira demandées.

Utilisez l'action Associer des problèmes pour établir une relation entre plusieurs problèmes Jira.

Cette action est principalement utilisée dans les playbooks pour associer des incidents de sécurité connexes ou pour suivre les dépendances entre les tickets d'investigation.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Associer des problèmes nécessite les paramètres suivants :

Paramètre Description
Inward Issue ID

Obligatoire.

Liste d'ID de problèmes entrants séparés par une virgule.

Par exemple, si Relation Type est défini sur Blocks, ce problème affiche la relation is blocked by dans l'interface utilisateur de Jira.

Outward Issue IDs

Obligatoire.

Clé abrégée du problème Jira sortant.

Par exemple, si Relation Type est défini sur Blocks, ce problème affiche la relation blocks dans l'interface utilisateur de Jira.

Relation Type

Obligatoire.

Type de lien à créer entre les problèmes.

Vous pouvez trouver la liste des types de relations disponibles en exécutant l'action Lister les types de relations.

La valeur par défaut est Blocks.

Sorties de l'action

L'action Associer des problèmes fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Messages de sortie

L'action Associer des problèmes peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully linked issue ISSUE_ID with the following issues in Jira: ISSUE_IDS.

L'action n'a pas pu trouver les problèmes de destination suivants dans Jira : ISSUE_IDS.

L'action a réussi
Error executing action "Link Issues". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lorsque vous utilisez l'action Associer des problèmes :

Nom du résultat du script Valeur
success true ou false

Lister les problèmes

Utilisez l'action Lister les problèmes pour rechercher et récupérer une liste de clés de problèmes Jira en fonction de critères de filtrage spécifiques.

Cette action est utile pour identifier les demandes existantes qui correspondent à un contexte d'alerte afin d'éviter les doublons ou d'effectuer des mises à jour groupées dans un playbook.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Lister les problèmes fournit les paramètres de filtrage facultatifs suivants. Si aucun paramètre n'est fourni, l'action renvoie tous les problèmes accessibles par l'utilisateur de l'intégration.

Paramètre Description
Project Names

Facultatif.

Liste de noms de projets dans lesquels effectuer la recherche, séparés par une virgule.

Summary

Facultatif.

Si elle est fournie, l'action filtre les problèmes en fonction du résumé ou du titre spécifique.

Description

Facultatif.

Si elle est fournie, l'action filtre les problèmes en fonction du texte contenu dans la description.

Issue Types

Facultatif.

Liste de types de problèmes séparés par une virgule (par exemple, Bug,Task).

La valeur par défaut est Bug.

Priorities

Facultatif.

Liste de niveaux de priorité séparés par une virgule (par exemple, High,Medium).

Created From

Facultatif.

Si elle est fournie, l'action filtre les problèmes créés à partir de cette date (au format YYYY/MM/DD).

Updated From

Facultatif.

Si elle est fournie, l'action filtre les problèmes mis à jour à cette date ou après (au format YYYY/MM/DD).

Assignees

Facultatif.

Liste d'identifiants de cessionnaires séparés par une virgule, à utiliser pour le filtrage.

Reporter

Facultatif.

Liste d'identifiants de rapporteurs séparés par une virgule, à utiliser pour le filtrage.

Statuses

Facultatif.

Liste d'états de problème à utiliser pour le filtrage, séparés par une virgule (par exemple, Open,In Progress).

Created Before

Facultatif.

Date de création la plus récente à utiliser pour le filtrage. Format : YYYY/MM/DD ou décalage relatif (par exemple, -24h, -7d). S'il n'est pas fourni, le filtre ne sera pas utilisé.

Custom JQL

Facultatif.

Requête JQL personnalisée. Si vous en fournissez un, tous les autres filtres seront ignorés.

Sorties de l'action

L'action Lister les problèmes fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Lister les problèmes :

[ 
  "PR-123", 
  "PR-124",
  "SEC-789"
]
Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lors de l'utilisation de l'action Lister les problèmes :

Nom du résultat du script Valeur
issues Liste contenant les clés abrégées uniques des problèmes Jira trouvés.

Lister les types de relations

Utilisez l'action Lister les types de relations pour récupérer la liste de tous les types de relations de liens disponibles configurés dans votre instance Jira.

Cette action est utile pour valider les valeurs d'entrée valides de l'action Associer des problèmes.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

L'action Lister les types de relations nécessite les paramètres suivants :

Paramètre Description
Filter Key

Facultatif.

Champ utilisé pour filtrer les types de relations.

Si la logique de filtre est définie sur Equal ou Contains, vous devez sélectionner un champ autre que Select One pour éviter une erreur d'exécution.

Les valeurs possibles sont les suivantes :

  • Name
  • Inward
  • Outward

La valeur par défaut est Select One.

Filter Logic

Facultatif.

Opérateur logique appliqué au filtre.

Les valeurs possibles sont les suivantes :

  • Not Specified
  • Equal
  • Contains

La valeur par défaut est Not Specified.

Filter Value

Facultatif.

Valeur de chaîne spécifique utilisée pour le filtrage en fonction des valeurs Filter Key et Filter Logic sélectionnées.

Si aucune valeur n'est fournie, le filtre n'est pas appliqué, même si une clé et une logique sont sélectionnées.

Max Records To Return

Facultatif.

Nombre maximal d'enregistrements à renvoyer dans les résultats.

La valeur par défaut est 50.

Sorties de l'action

L'action Lister les types de relations fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Tableau du mur des cas

L'action Lister les types de relations fournit le tableau suivant :

Nom de la table : Available Relation

Colonnes d'un tableau :

  • Nom
  • Inward
  • Outward
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Lister les types de relations :

[{
    "id": "10000",
    "name": "Blocks",
    "inward": "is blocked by",
    "outward": "blocks"
}]
Messages de sortie

L'action Lister les types de relations peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully found relation types for the provided criteria in Jira.

The filter was not applied, because parameter "Filter Value" has an empty value.

L'action a réussi.
Error executing action "List Relation types". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant liste la valeur de la sortie du résultat du script lors de l'utilisation de l'action Lister les types de relations :

Nom du résultat du script Valeur
is_success true ou false

Ping

Utilisez l'action Ping pour tester la connectivité à Jira.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

Aucune.

Sorties de l'action

L'action Ping fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Ping :

Nom du résultat du script Valeur
success true ou false

Mettre à jour un problème

Description

Mettre à jour un problème. Pour la nouvelle API Jira, l'action tente de trouver une correspondance pour le cessionnaire afin d'attribuer un problème en fonction de l'adresse e-mail de l'utilisateur, puis tente d'utiliser le champ displayName.

Paramètres

Paramètre Type Valeur par défaut Est obligatoire Description
Clé du problème Chaîne N/A Oui Clé du problème à mettre à jour.
État Chaîne N/A Non Spécifiez le nom de la transition appropriée pour faire passer cette demande au nouvel état souhaité.
Résumé Chaîne N/A Non Nouveau résumé du problème.
Description Chaîne N/A Non La nouvelle description du problème.
Type de problème Chaîne N/A Non Nouveau type de problème.
Personne responsable Chaîne N/A Non Nouvelle personne responsable du problème.
Nom d'utilisateur Jira Chaîne N/A Non Nom d'utilisateur Jira de l'initiateur de l'action.
Composants Chaîne N/A Non

Champ "components" du problème.

Ce paramètre accepte plusieurs valeurs sous forme de chaîne d'éléments séparés par une virgule.

Champs personnalisés JSON N/A Non

Spécifiez un objet JSON contenant tous les champs et valeurs utilisés lors de la création du problème.

Remarque : Ce paramètre est prioritaire, et tous les champs sont écrasés par la valeur fournie pour ce paramètre.

Exemple : {"field":"value"}

Étiquettes Chaîne N/A Non

Champ "components" du problème.

Ce paramètre accepte plusieurs valeurs sous forme de chaîne d'éléments séparés par une virgule.

Exécuter sur

Cette action s'exécute sur toutes les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
Opération réussie Vrai/Faux Success:False
Résultat JSON
{
   "comment":
     {
       "total": 0,
       "startAt": 0,
       "comments": [],
       "maxResults": 0
      },
   "creator":
     {
       "displayName": "user1",
       "name": "user1",
       "self": "",
       "avatarUrls":
          {
            "24x24": "",
            "16x16": "",
            "48x48": "",
            "32x32": ""
           },
        "emailAddress": "john_doe@example.com",
        "key": "user1user",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": "0"
       },
   "aggregatetimeestimate": null,
   "labels": ["Label1"],
   "aggregatetimespent": null,
   "watches":
      {
        "self": "",
        "watchCount": 1,
        "isWatching": false
       },
   "assignee":
      {
        "displayName": "user2",
        "name": "user2",
        "self": "",
        "avatarUrls":
           {
              "24x24": "",
              "16x16": "",
              "48x48": "",
              "32x32": ""
            },
        "emailAddress": "john_doe@example.com",
        "key": "user2",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": ""
       },
   "lastViewed": "2019-01-22T10:14:02.910+0200",
   "issuelinks": [],
   "Worklog":
      {
        "worklogs": [],
        "total": 0,
        "startAt": 0,
        "maxResults": 20
       },
   "aggregateprogress":
      {
        "progress": 0,
        "total": 0
       },
   "Priority":
      {
        "iconUrl": "",
        "self": "",
        "name": "Medium",
        "id": "3"
       },
   "votes":
       {
          "hasVoted": false,
          "self": "",
          "votes": 0
        },
   "workratio": -1,
   "fixVersions": [],
   "environment": null,
   "timespent": null,
   "attachment":
      [{
          "mimeType": "binary/octet-stream",
          "created": "2018-06-19T15:23:07.369+0300",
          "self": "",
          "author":
             {
               "displayName": "user1",
               "name": "user1",
               "self": "",
               "avatarUrls":
                  {
                     "24x24": "",
                     "16x16": "",
                     "48x48": "",
                     "32x32": ""
                   },
               "emailAddress": "john_doe@example.com",
               "key": "user1",
               "active": true,
               "timeZone": "Asia/Jerusalem",
               "accountId": "0"
              },
           "filename": "file.rar",
           "content": "",
           "id": "0",
           "size": 0
        }],
   "progress":
        {
          "progress": 0,
          "total": 0
         },
   "duedate": null,
   "status":
        {
          "statusCategory":
              {
                 "name": "Done",
                 "self": "",
                 "id": 3,
                 "key": "done",
                 "colorName": "green"
               },
          "description": "",
          "self": "",
          "iconUrl": "",
          "id": "0",
          "name": "DONE"
         },
   "updated": "2018-09-18T10:02:06.347+0300",
   "subtasks": [],
   "description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
   "reporter":
         {
           "displayName": "user1",
           "name": "user1",
           "self": "",
           "avatarUrls":
               {
                 "24x24": "",
                 "16x16": "",
                 "48x48": "",
                 "32x32": ""
               },
           "emailAddress": "john_doe@example.com",
           "key": "user1",
           "active": true,
           "timeZone": "Asia/Jerusalem",
           "accountId": "0"
          },
    "timeoriginalestimate": null,
    "aggregatetimeoriginalestimate": null,
    "created": "2018-06-19T15:23:13.701+0300",
    "versions": [],
    "resolutiondate": "2018-09-18T10:02:06.340+0300",
    "summary": "Sample issue",
    "project":
          {
             "name": "Project 1",
             "self": "",
             "projectTypeKey": "software",
             "avatarUrls":
                 {
                   "24x24": "",
                   "16x16": "",
                   "48x48": "",
                   "32x32": ""
                  },
             "key": "PR",
             "id": "0"
           },
    "timetracking": {},
    "components": [],
    "issuetype":
          {
             "name": "Task",
             "self": "",
             "iconUrl": "",
             "subtask": false,
             "avatarId": 10318,
             "id": "10002",
             "description": "A task that needs to be done."
           },
    "security": null,
    "resolution":
           {
             "id": "10000",
             "self": "",
             "description": "Work has been completed on this issue.",
              "name": "Done"
             },
    "timeestimate": null
}

Importer une pièce jointe

Description

Ajoutez une pièce jointe à un problème.

Paramètres

Paramètre Type Valeur par défaut Est obligatoire Description
Clé du problème Chaîne N/A Oui Chemins d'accès aux fichiers.
Chemins des fichiers Chaîne N/A Oui

Chemins absolus des fichiers à importer, séparés par une virgule.

Le format requis dépend de votre type de déploiement :

  • Déploiement SaaS : le chemin d'accès est interne à la plate-forme hébergée, par exemple /attachments/.
  • Déploiement de l'agent distant : le chemin d'accès doit être un chemin d'accès absolu et valide au répertoire sur l'ordinateur local sur lequel l'agent distant est installé. Par exemple, C:\temp\attachments pour Windows ou /var/tmp/attachments/ pour Linux.

Exécuter sur

Cette action s'exécute sur toutes les 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
N/A

Rechercher des utilisateurs

Recherchez des utilisateurs dans Jira.

Entités

Cette action ne s'exécute pas sur les entités.

Entrées de l'action

Pour configurer l'action, utilisez les paramètres suivants :

Paramètres
User Email Addresses Optional

Liste d'adresses e-mail séparées par une virgule pour lesquelles renvoyer les utilisateurs.

User Names Optional

Liste de noms d'utilisateurs séparés par une virgule pour lesquels renvoyer les utilisateurs.

Project Optional

Nom du projet dans lequel rechercher des adresses e-mail. Si ce paramètre est fourni, seul Project Assignable Users est renvoyé.

Sorties de l'action

Type de sortie de l'action
Pièce jointe du mur des cas N/A
Lien vers le mur des cas N/A
Tableau du mur des cas N/A
Table d'enrichissement N/A
Résultat JSON Disponible
Résultat du script Disponible
Résultat du script
Nom du résultat du script Valeur
is_success Vrai/Faux
Résultat JSON
[
 {
   "Entity": "example",
   "EntityResult": {
     "_resource": "user?accountId={0}",
     "_options": {
       "server": "https://siemplify.atlassian.net",
       "auth_url": "/rest/auth/1/session",
       "context_path": "/",
       "rest_path": "api",
       "rest_api_version": "2",
       "agile_rest_path": "agile",
       "agile_rest_api_version": "1.0",
       "verify": false,
       "resilient": true,
       "async": false,
       "async_workers": 5,
       "client_cert": null,
       "check_update": false,
       "delay_reload": 0,
       "headers": {
         "Cache-Control": "no-cache",
         "Content-Type": "application/json",
         "X-Atlassian-Token": "no-check"
       }
     },
     "_session": "<jira.resilientsession.ResilientSession object>",
     "_base_url": "{server}/rest/{rest_path}/{rest_api_version}/{path}",
     "raw": {
       "self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
       "accountId": "example-account-id",
       "accountType": "atlassian",
       "emailAddress": "example.user",
       "avatarUrls": {
         "48x48": "https://example.com"
       },
       "displayName": "Example",
       "active": true,
       "timeZone": "UTC",
       "locale": "en_US"
     },
     "self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
     "accountId": "example-account-id",
     "accountType": "atlassian",
     "emailAddress": "example.user",
     "avatarUrls": "<jira.resources.PropertyHolder object>",
     "displayName": "Example",
     "active": true,
     "timeZone": "UTC",
     "locale": "en_US"
   }
 }
]
Mur des cas

L'action fournit les messages de sortie suivants :

Message de sortie Description du message

Successfully found the following users in Jira for project PROJECT_NAME: USER_LIST

The following users were not found in Jira for project PROJECT_NAME: USER_LIST

None of the provided users were found in the project PROJECT_NAME

Action effectuée.
Error executing action "Search Users". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Configuration du mappage des motifs de fermeture

Le paramètre Closed Reason Mapping nécessite une structure JSON. Vous pouvez mapper des valeurs statiques ou transmettre des noms de champs Jira dynamiques (par exemple, resolution, customfield_10010). Si un motif dynamique extrait n'est pas valide ou est manquant, le job utilise automatiquement le mappage Fallback spécifié.

Exemple de configuration JSON :

{
  "Done": {
    "reason": "Maintenance",
    "root_cause": "Other"
  },
  "Fallback": {
    "reason": "Maintenance",
    "root_cause": "Other"
  }
}

Connecteurs

Connecteur Jira

Description

Récupérez les problèmes de Jira vers Google SecOps.

Configurer le connecteur Jira 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 :

Paramètre Description
DeviceProductField

Obligatoire.

Nom du champ utilisé pour déterminer le produit de l'appareil.

La valeur par défaut est device_product.

EventClassId

Facultatif.

Nom du champ utilisé pour déterminer le nom de l'événement (sous-type).

La valeur par défaut est name.

PythonProcessTimeout

Obligatoire.

Délai avant expiration (en secondes) du processus Python exécutant le script actuel.

La valeur par défaut est 60.

API Root

Obligatoire.

Racine de l'API de l'instance Jira.

La valeur par défaut est https://{jira_address}.

Username

Facultatif.

Nom d'utilisateur (adresse e-mail) utilisé pour se connecter à Jira.

L'exigence de ce paramètre dépend de la méthode d'authentification choisie :

  • Si cette valeur est fournie, le système utilise l'authentification de base.
  • Si vous ne spécifiez pas de valeur, le système utilise par défaut l'authentification par jeton de support (requise pour les comptes de service).

Pour en savoir plus sur les méthodes d'authentification, consultez Avant de commencer.

API Token

Obligatoire.

Identifiant d'authentification utilisé pour se connecter à Jira.

Days Backwards

Facultatif.

Nombre maximal de jours en arrière pour récupérer les alertes.

La valeur par défaut est 5.

Max Tickets Per Cycle

Facultatif.

Nombre maximal de tickets à récupérer et à traiter dans un cycle de connecteur.

La valeur par défaut est 10.

Project Names

Facultatif.

Noms de projets séparés par une virgule.

Issue Statuses

Facultatif.

États des problèmes séparés par une virgule.

Assignees

Facultatif.

Noms complets des utilisateurs, séparés par une virgule.

Issue Types

Facultatif.

Types de problèmes séparés par une virgule.

Issue Priorities

Facultatif.

Priorités des problèmes séparées par une virgule.

Issue Components

Facultatif.

Composants du problème séparés par une virgule.

Proxy Server Address

Facultatif.

Adresse du serveur proxy à utiliser.

Proxy Username

Facultatif.

Nom d'utilisateur du proxy pour l'authentification.

Proxy Password

Facultatif.

Mot de passe du proxy pour l'authentification.

Environment Field Name

Facultatif.

Nom du champ dans lequel le nom de l'environnement est stocké. Si le champ d'environnement n'est pas trouvé, l'environnement est l'environnement par défaut.

La valeur par défaut est "".

Environment Regex Pattern

Facultatif.

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ "Nom du champ d'environnement". Permet à l'utilisateur de manipuler le champ "environment" à l'aide d'une logique d'expression régulière.

La valeur par défaut est .*.

Use Jira Project as Environment

Facultatif.

Utilisez le projet Jira comme environnement ou utilisez le nom du champ d'environnement comme environnement.

Verify SSL

Obligatoire.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Jira.

Cette option est activée par défaut.

Règles du connecteur

Assistance de proxy

Le connecteur est compatible avec les proxys.

Liste dynamique et liste de blocage

Le connecteur n'est compatible avec les règles de liste d'autorisation et de liste de blocage dynamiques que pour des libellés spécifiques dans Jira.

Jobs

Tâche de fermeture de la synchronisation

Description

Fermer les tickets dans Jira si les alertes ou les demandes Google SecOps correspondantes ont été fermées, et synchroniser l'état de fermeture et les champs personnalisés de Jira vers Google SecOps.

Paramètres

Paramètre Description
API Root

Obligatoire.

URL racine de l'API de l'instance Jira.

La valeur par défaut est https://{jira_address}.

Username

Facultatif.

Nom d'utilisateur (adresse e-mail) utilisé pour se connecter à Jira.

L'exigence de ce paramètre dépend de la méthode d'authentification choisie :

  • Si cette valeur est fournie, le système utilise l'authentification de base.
  • Si vous ne spécifiez pas de valeur, le système utilise par défaut l'authentification par jeton de support (requise pour les comptes de service).
API Token

Obligatoire.

Identifiant d'authentification utilisé pour se connecter à Jira.

Project Names

Obligatoire.

Noms des projets Jira séparés par une virgule que le job doit surveiller.

La valeur par défaut est project names separated by a comma.

Environment

Facultatif.

Nom de l'environnement.

Days Backwards

Obligatoire.

Nombre maximal de jours pour synchroniser l'état des tickets en arrière.

La valeur par défaut est 1.

Job Scope

Obligatoire.

Champ d'application de la synchronisation des jobs. Options :

  • Case : synchronise les problèmes Jira au niveau de la demande. Assurez-vous que le contexte contient JIRA_ISSUE_KEY.
  • Alert : synchronise les problèmes Jira au niveau de l'alerte. Pour les demandes créées par un connecteur, la clé du ticket Jira est extraite automatiquement. Pour les cas simulés, définissez manuellement la clé de contexte sur JIRA_ISSUE_KEY.

La valeur par défaut est Alert.

Supported Closed Statuses

Obligatoire.

Liste d'états fermés Jira séparés par une virgule, traités comme fermés dans Google SecOps (par exemple, Done, Closed).

  • SecOps vers Jira : le job utilise la première valeur de la liste (par exemple, Done) comme état de résolution lors de la fermeture du ticket Jira.
  • Jira vers SecOps : l'état de clôture du ticket Jira doit figurer dans cette liste pour que la synchronisation ait lieu.

La valeur par défaut est Done.

Closed Reason Mapping

Obligatoire.

Dictionnaire JSON mappant les états fermés de Jira aux motifs de fermeture et aux causes principales de Google SecOps. Permet le mappage vers des champs personnalisés et nécessite une clé Fallback obligatoire. Pour obtenir des détails et des exemples de configuration, consultez Mappage des motifs de clôture et des champs personnalisés.

Custom Fields Mapping

Facultatif.

Objet JSON définissant les mappages entre les noms à afficher des champs personnalisés Google SecOps et les noms des champs personnalisés Jira pour la synchronisation des données de Jira vers Google SecOps. Pour obtenir des détails et des exemples de configuration, consultez Mappage des motifs de clôture et des champs personnalisés.

Mappage des motifs de clôture et des champs personnalisés

Utilisez les détails et les exemples suivants pour configurer des mappages personnalisés pour les motifs de clôture et les champs personnalisés.

Mappage des motifs de clôture

Définit la correspondance entre les états de clôture Jira et les motifs et causes principales de clôture des demandes ou des alertes Google SecOps.

  • Exemple de mappage JSON standard :

    {
      "Done": {
        "reason": "Malicious",
        "root_cause": "Other"
      },
      "Fallback": {
        "reason": "Maintenance",
        "root_cause": "Other"
      }
    }
    

    Si un ticket Jira est fermé avec l'état Done, la demande ou l'alerte Google SecOps est fermée avec le motif Malicious et la cause principale Other. Si la demande est clôturée avec un état qui n'est pas explicitement mappé (par exemple, Closed), le système utilise par défaut les paramètres Fallback.

  • Exemple de mappage de champs personnalisés :

    Si vous avez des champs personnalisés dans Jira nommés Jira reason et Jira rootcause, configurez le mappage JSON comme suit :

    {
      "Done": {
        "reason": "Jira reason",
        "root_cause": "Jira rootcause"
      },
      "Fallback": {
        "reason": "Maintenance",
        "root_cause": "Other"
      }
    }
    

    Exigences :

    • La valeur extraite du champ personnalisé Jira reason doit correspondre à l'une des chaînes exactes suivantes : Malicious, Maintenance, Inconclusive ou Not malicious. Sinon, le système rétablit les valeurs Fallback.
    • Pour le champ d'application de la tâche Case, les valeurs de cause principale doivent être configurées dans les paramètres d'administration. Pour le champ d'application de la tâche Alert, aucune configuration d'administrateur n'est requise, et toute valeur fournie dans le champ personnalisé est acceptée.

Mappage des champs personnalisés

Ce mappage sert exclusivement à synchroniser les valeurs des champs personnalisés de Jira vers Google SecOps. Spécifiez des paires clé/valeur où la clé est le nom à afficher du champ personnalisé Google SecOps et la valeur est le nom du champ personnalisé Jira :

{
  "SOAR Custom field": "Jira ticket id"
}

Dans cet exemple, la valeur du champ Jira Jira ticket id est synchronisée directement avec le champ Google SecOps SOAR Custom field.

Tâche de synchronisation des commentaires

Description

Synchronisez les commentaires entre la demande Google SecOps et le ticket Jira correspondant. La synchronisation est bidirectionnelle, c'est-à-dire de Google SecOps vers Jira et de Jira vers Google SecOps.

Lorsque le job crée un commentaire, il applique le préfixe. Si un utilisateur Google SecOps ajoute un commentaire dans la demande Google SecOps, le job crée et synchronise le commentaire de l'utilisateur dans le ticket Jira correspondant à l'aide du paramètre Chronicle Comment Prefix.

Cette fonctionnalité est ajoutée pour deux raisons :

  1. Visibilité.
  2. Empêchez les commentaires ajoutés par le job d'être à nouveau synchronisés de l'autre côté et de provoquer une boucle.

Paramètres

Paramètre Description
API Root

Obligatoire.

URL racine de l'API de l'instance Jira.

La valeur par défaut est https://{jira_address}.

Username

Facultatif.

Nom d'utilisateur (adresse e-mail) utilisé pour se connecter à Jira.

L'exigence de ce paramètre dépend de la méthode d'authentification choisie :

  • Si cette valeur est fournie, le système utilise l'authentification de base.
  • Si vous ne spécifiez pas de valeur, le système utilise par défaut l'authentification par jeton de support (requise pour les comptes de service).
API Token

Obligatoire.

Identifiant d'authentification utilisé pour se connecter à Jira.

Project Names

Obligatoire.

Noms des projets Jira séparés par une virgule que le job doit surveiller.

La valeur par défaut est project names separated by comma.

Environment

Facultatif.

Nom de l'environnement.

Siemplify Comment Prefix

Obligatoire.

Préfixe ajouté par le job de synchronisation aux commentaires créés pour les tickets Jira.

La valeur par défaut est Google SecOps:.

Jira Comment Prefix

Obligatoire.

Préfixe ajouté par le job de synchronisation aux commentaires des demandes d'alerte Google SecOps.

La valeur par défaut est Jira Comment Sync Job:.

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