HTTP v2

Ce document explique comment intégrer HTTP/2 au module SOAR de Google Security Operations et comment utiliser l'action Exécuter une requête HTTP.

Version de l'intégration : 5.0

Présentation

Utilisez HTTP/2 pour vous intégrer à des produits tiers sans écrire de code et résoudre des cas d'utilisation tels que l'exécution de requêtes d'API, l'utilisation de fichiers et la gestion de flux asynchrones.

Flux d'authentification

En fonction du produit auquel vous vous authentifiez, HTTP/2 est compatible avec les flux d'authentification suivants :

  • Flux d'authentification de base
  • Flux de clé API
  • Flux d'authentification dédié

Flux d'authentification de base

Avec le flux d'authentification de base, authentifiez-vous à l'aide des paramètres Test URL, Basic Auth Username et Basic Auth Password.

Flux de clé API

Avec le flux de clé API, authentifiez-vous à l'aide des paramètres Test URL, API Key Field Name et API Key Field Value.

Flux d'authentification dédié

Dans le flux d'authentification dédié, la validation en deux étapes suivante est utilisée :

  1. Une action génère un jeton d'accès.

    Lorsque l'action Ping ou Exécuter la requête HTTP s'exécute, l'intégration récupère les paramètres requis pour l'authentification.

  2. Une action utilise le jeton d'accès généré pour s'authentifier auprès des requêtes API.

Le flux d'authentification dédié nécessite les paramètres d'intégration suivants :

  • Dedicated Auth API Request Method
  • Dedicated Auth API Request URL
  • Dedicated Auth API Request Headers
  • Dedicated Auth API Request Body
  • Dedicated Auth API Request Token Field Name

Pour en savoir plus sur les paramètres d'intégration, consultez Intégrer HTTP v2 à Google SecOps.

Pour utiliser le jeton de la réponse, indiquez le nom de la clé dans le paramètre Dedicated Auth API Request Token Field Name. Dans l'exemple de réponse suivant, le nom de la clé est access_token :

{
   "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCIO4",
   "expires_in": 1799,
   "token_type": "bearer"
}

Pour appliquer le jeton, l'intégration nécessite l'espace réservé dédié suivant : {{integration.token}}. Lorsque vous fournissez ce espace réservé dans le payload, l'intégration utilise le jeton généré.

Si la clé access_token de la réponse JSON apparaît imbriquée, indiquez l'emplacement complet du jeton pour la valeur du paramètre Dedicated Auth API Request Token Field Name. Par exemple, au lieu de access_token, fournissez la clé data_access_token pour la réponse imbriquée, comme suit :

{
   "data": {
       "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCIZMI3DQAQsYibMpO4",
       "expires_in": 1799,
       "token_type": "bearer"
   }
}

L'exemple suivant montre la requête pour le flux d'authentification dédié à l'API Crowdstrike :

POST /falconx/entities/submissions/v1 HTTP/1.1
Host: api.crowdstrike.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6
Content-Length: 209

{
   "sandbox": [{
       "sha256": "9854c9dfded29d8442499daba01082ba5d164aa02e44",
       "environment_id": 100,
       "submit_name": "filename.pdf"
   }]
}

L'exemple utilise l'en-tête Authorization avec un jeton Bearer pour s'authentifier auprès de l'API. Pour remplir l'en-tête avec les informations correctes, l'intégration HTTP/2 nécessite les entrées suivantes : Authorization: Bearer {{integration.token}}.

Intégrer HTTP v2 à Google SecOps

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

Paramètre Description
Test URL Optional

URL de test à utiliser pour le flux d'authentification de base ou par clé API.

Basic Auth Username Optional

Paramètre à ajouter en tant qu'en-tête d'authentification de base à chaque exécution d'action, en plus du paramètre Mot de passe d'authentification de base.

Indiquez les paramètres Nom d'utilisateur pour l'authentification de base et Mot de passe pour l'authentification de base.

Basic Auth Password Optional

Paramètre à ajouter en tant qu'en-tête d'authentification de base à chaque exécution d'action, en plus du paramètre Nom d'utilisateur de l'authentification de base.

Indiquez les paramètres Nom d'utilisateur pour l'authentification de base et Mot de passe pour l'authentification de base.

API Key Field Name Optional

Nom de l'en-tête contenant la clé API.

Indiquez les paramètres Nom du champ de clé API et Secret de clé API pour les ajouter à chaque exécution d'action.

API Key Secret Optional

Valeur secrète de la clé API.

Indiquez les paramètres Nom du champ de clé API et Secret de clé API pour les ajouter à chaque exécution d'action.

Dedicated Auth API Request Method Optional

Méthode à utiliser dans le flux d'API d'authentification dédié pour générer le jeton d'accès.

La valeur par défaut est POST.

Dedicated Auth API Request URL Optional

Requête API à utiliser dans le flux d'API d'authentification dédié pour générer le jeton d'accès, tel que https://api.crowdstrike.com/oauth2/token.

Dedicated Auth API Request Headers Optional

En-têtes à utiliser dans le flux d'API d'authentification dédié pour générer le jeton d'accès.

Fournissez les en-têtes sous forme d'objet JSON, comme suit :

    {
    "Content-type": "application/x-www-form-urlencoded"
    }
    
Dedicated Auth API Request Body Optional

Corps de la requête à utiliser dans le flux d'API d'authentification dédié pour générer le jeton d'accès. Fournissez la valeur du paramètre sous la forme d'un objet JSON, comme suit :

    {
    "client_id": "CLIENT_ID",
    "client_secret": "CLIENT_SECRET"
    }
    
Dedicated Auth API Request Token Field Name
Optional

Nom du champ contenant le jeton d'accès généré. Pour utiliser le jeton d'accès dans les actions, utilisez l'espace réservé suivant : {{integration.token}}.

La réponse pour la génération de jetons utilise le trait de soulignement (_) comme délimiteur.

CA Certificate Optional

Certificat de l'autorité de certification à utiliser pour valider la connexion sécurisée.

Si vous utilisez un agent distant pour vous connecter à un produit sur site, ajoutez une couche de sécurité supplémentaire en fournissant à l'intégration le certificat de l'autorité de certification pour garantir l'intégrité de la connexion. Une fois que vous avez fourni un certificat d'autorité de certification, toutes les requêtes API l'utilisent.

Ce paramètre accepte le certificat CA sous la forme d'une chaîne encodée en base64.

Verify SSL Obligatoire

Si cette option est sélectionnée, le système vérifie que le certificat SSL de toutes les connexions d'intégration est valide.

Cette option est sélectionnée par défaut.

Il est recommandé de créer une instance distincte d'intégration HTTP/2 pour chaque produit tiers que vous intégrez dans votre environnement. Pour en savoir plus sur les instances d'intégration multiples, consultez Compatibilité avec plusieurs instances.

Utiliser l'intégration HTTP v2

Cette section explique comment utiliser l'intégration HTTP v2 en modifiant les paramètres de l'action "Exécuter une requête HTTP".

Utiliser le paramètre de charge utile du corps

Pour vous assurer que le corps est correctement construit, fournissez l'en-tête Content-Type approprié dans le paramètre Headers. L'action Exécuter la requête HTTP génère différentes charges utiles pour la même entrée de paramètre suivante :

{
  "Id": "123123",
  "sorting": "asc"
}

Pour la valeur d'en-tête "Content-Type:" "application/x-www-form-urlencoded", la charge utile générée est Id=123123&sorting=asc.

Pour la valeur d'en-tête "Content-Type": "application/json", la charge utile générée est la suivante :

{
  "Id": "123123",
  "sorting": "asc"
}

Lorsque vous utilisez XML, fournissez une entrée au format XML comme suit :

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>
   <NumberToWords xmlns="http://www.dataaccess.com/webservicesserver/">
     <ubiNum>500</ubiNum>
   </NumberToWords>
 </soap:Body>
</soap:Envelope>

Utiliser le flux asynchrone

Les flux d'API asynchrones, comme la création et l'exécution d'un job de recherche, nécessitent d'attendre la fin du traitement du résultat avant d'exécuter la requête API suivante. Par exemple, vous pouvez créer un job de recherche dans Google SecOps SIEM, attendre qu'il s'exécute, puis récupérer les résultats à l'aide du paramètre Expected Response Values.

Dans l'exemple de réponse suivant, la clé state peut contenir la valeur error, in_progress ou finished :

{
   "state": "in_progress",
   "percentage": "10"
}

Vous pouvez demander à l'action "Exécuter une requête HTTP" de s'exécuter en mode asynchrone jusqu'à ce que la réponse contienne l'état finished en définissant le paramètre Expected Response Values sur la valeur suivante :

{
   "state": "finished"
}

Pour ne pas attendre le délai avant expiration en cas d'erreur, fournissez une condition supplémentaire dans la valeur du paramètre. Dans l'exemple d'entrée suivant, l'action cesse de s'exécuter lorsque l'état est finished ou error :

{
   "state": [
       "finished",
       "error"
   ]
}

Dans l'exemple suivant, l'action cesse de s'exécuter lorsque l'état est finished et que la valeur de clé de pourcentage est 100 :

{
   "state": "finished",
   "percentage": "100"
}

Vous pouvez combiner plusieurs conditions clés dans une même entrée, par exemple :

{
   "state": [
       "finished",
       "error"
   ],
   "percentage": "100"
}

Vous pouvez configurer le paramètre Expected Response Values pour qu'il attende une sortie pour une paire clé/valeur spécifique. L'action "Exécuter une requête HTTP" recherche une clé spécifique dans l'ensemble de l'objet de réponse JSON et considère que le résultat attendu n'est atteint que lorsque vous définissez tous les noms de clé correspondants sur une valeur de clé attendue identique. Par exemple, pour que l'action recherche l'état finished dans la réponse JSON et ignore tout autre état, définissez toutes les clés state dans l'entrée du paramètre Expected Response Values sur la valeur finished :

{
"data": {
  "state": "finished"
  },
  "state": "finished"
}

Le paramètre Expected Response Values récupère la valeur requise à partir de l'objet JSON imbriqué. Pour l'exemple suivant, ne fournissez que la clé state, et non data_state ni data-state :

{
   "data": {
       "state": [
           "finished",
           "error"
       ],
       "percentage": "100"
   }
}

Travailler sur vos fichiers

Travailler avec des fichiers comprend deux workflows distincts :

  • Télécharger un fichier
  • Importer un fichier

Télécharger des fichiers

L'action "Exécuter une requête HTTP" peut renvoyer des fichiers en tant que sortie base64 dans l'objet JSON ou enregistrer des fichiers dans le mur de requêtes en tant que fichiers ZIP.

Pour renvoyer les données sous forme de résultat JSON au format base64, sélectionnez le paramètre Base64 Output. Pour enregistrer des fichiers dans le mur des dossiers, sélectionnez le paramètre Save To Case Wall.

Si vous travaillez avec des fichiers sensibles tels que des logiciels malveillants, sélectionnez le paramètre Password Protect Zip. Pour tous les fichiers ZIP protégés par mot de passe, l'action définit automatiquement le mot de passe sur infected.

Importer des fichiers

Pour importer des fichiers, convertissez-les au format Base64 et envoyez-les en tant que valeur du paramètre Body Payload. Voici un exemple de fichier image converti au format base64 :

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

Pour en savoir plus sur l'utilisation du paramètre Body Payload, consultez la section Utiliser le paramètre "Charge utile du corps" de ce document.

Blocs en tant que code

Vous pouvez utiliser l'intégration HTTP v2 et la fonctionnalité de bloc de playbook dans Google SecOps pour créer du contenu réutilisable. Par exemple, vous pouvez créer un bloc de playbook contenant une action HTTP v2 et configurer une intégration pour utiliser les résultats de l'action comme entrées de bloc. Pour en savoir plus sur les blocs de playbook, consultez Utiliser des blocs de playbook.

Créer des blocs de playbook

Pour créer un bloc de playbook, procédez comme suit :

  1. Dans Google SecOps, accédez à Réponse > Playbooks.
  2. Dans la barre de navigation de la page Playbooks, sélectionnez add Ajouter un playbook ou un bloc. La fenêtre Créer s'ouvre.
  3. Dans la fenêtre Create New (Créer), définissez le paramètre Type sur Block.
  4. Pour le paramètre Choose Folder, sélectionnez le dossier dans lequel enregistrer le nouveau bloc.
  5. Pour le paramètre Environment, sélectionnez votre environnement.
  6. Cliquez sur Créer. La page Nouveau bloc s'ouvre. Configurez le nouveau bloc de playbook pour l'utiliser dans plusieurs playbooks.

La section suivante montre comment configurer un bloc de playbook.

Exemple de configuration de bloc de playbook

L'exemple suivant est une action "Exécuter une requête HTTP" personnalisée qui envoie des commentaires à ServiceNow. L'action utilise les paramètres comment, sys_id et table_name que le bloc de playbook personnalisé a créés en tant que paramètres d'entrée. Pour configurer les paramètres de l'action, procédez comme suit :

  1. Définissez le paramètre Method sur PUT.

  2. Définissez le paramètre URL Path sur la valeur suivante :

    https://SERVICE_NOW_INSTANCE.service-now.com/api/now/table/[Input.table_name]/[Input.sys_id]
    
  3. Définissez le paramètre Headers sur la valeur suivante :

    {"Content-type": "application/json; charset=utf-8",
    "Accept": "application/json", "User-Agent": "GoogleSecops"}
    
  4. Définissez le paramètre Body Payload sur la valeur suivante :

    {
    "work_notes": "[Input.comment]"
    }
    

Pour utiliser les valeurs fournies pour les entrées de bloc en tant qu'espaces réservés pour l'action, les espaces réservés doivent contenir le préfixe Input. avant le nom du paramètre. Si l'entrée du bloc est keyname, l'espace réservé est [Input.keyname].

Actions

L'intégration HTTP v2 inclut les actions suivantes :

Exécuter une requête HTTP

Exécutez une requête HTTP à l'aide de l'intégration HTTP v2.

Utilisez cette action pour créer une requête HTTP personnalisée et renvoyer des informations à son sujet. Tous les paramètres de cette action sont modifiables.

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

Entrées d'action

L'action "Exécuter une requête HTTP" nécessite les paramètres suivants :

Paramètre Description
Method
Optional

Méthode à utiliser dans la requête.

La valeur par défaut est GET.

Les valeurs possibles sont les suivantes :
  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD
  • OPTIONS
URL Path
Optional

URL à exécuter.

URL Params Optional

Paramètres d'URL.

L'action utilise toute valeur fournie en plus de celles directement fournies dans le paramètre Chemin d'URL.

Par exemple, la chaîne ?parameter=value&sorting=asc dans le backend signifie que l'entrée est la suivante :
    {
    "parameter": "value",
    "sorting": "asc"
    }
    

Ce paramètre nécessite le format d'objet JSON comme entrée. La valeur par défaut est la suivante :

{
    "URL Field Name": "URL_FIELD_VALUE"
    }
Headers
Optional

En-têtes à utiliser dans la requête HTTP.

Par exemple, la requête HTTP avec les en-têtes Accept et User-Agent nécessite l'entrée suivante :

    {
    "Accept": "application/json",
    "User-Agent": "Google Secops"
    }
    

Ce paramètre nécessite le format d'objet JSON comme entrée. La valeur par défaut est la suivante :

{
    "Content-Type": "application/json; charset=utf-8",
    "Accept": "application/json",
    "User-Agent" : "GoogleSecOps"
    }
Cookie Optional

Paramètres à utiliser dans l'en-tête "Cookie".

Ce paramètre remplace le cookie fourni dans le paramètre Headers.

Par exemple, pour inclure un en-tête de cookie avec la valeur PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43;, la requête HTTP nécessite l'entrée suivante :

    {
    "PHPSESSID": "298zf09hf012fh2",
    "csrftoken": "u32t4o3tb3gg43"
    }
    

Ce paramètre nécessite le format d'objet JSON comme entrée. La valeur par défaut est la suivante :

{
    "Cookie_1": "COOKIE_1_VALUE"
    }
Body Payload
Optional

Corps de la requête HTTP. L'action construit différentes charges utiles en fonction de la valeur de l'en-tête Content-Type fournie dans le paramètre En-têtes.

Ce paramètre nécessite le format d'objet JSON comme entrée, sauf lorsqu'un produit tiers nécessite un contenu XML ou multipart/form-data. Si vous envoyez ou importez un fichier à l'aide de la requête API, fournissez la version encodée en base64 du fichier dans le paramètre Body Payload et définissez l'en-tête sur "Content-type": "multipart/form-data".

La valeur par défaut est la suivante :

{
    "Body Field Name": "BODY_FIELD_VALUE"
    }
Expected Response Values
Optional

Valeurs de réponse attendues.

Si ce paramètre est fourni, l'action fonctionne en mode asynchrone et s'exécute jusqu'à ce qu'elle reçoive les valeurs attendues ou jusqu'à ce qu'elle atteigne le délai d'expiration.

Save To Case Wall
Optional

Si cette option est sélectionnée, l'action enregistre le fichier et le joint au mur des cas. Le fichier est archivé avec l'extension .zip. Le fichier .zip n'est pas protégé par un mot de passe.

(non sélectionnée par défaut).

Password Protect Zip
Optional

Si cette option est sélectionnée, un mot de passe est ajouté au fichier .zip créé à l'aide du paramètre Save To Case Wall. Le mot de passe est le suivant : infected.

Utilisez ce paramètre lorsque vous travaillez avec des fichiers suspects.

Cette option est sélectionnée par défaut.

Follow Redirects Optional

Si cette option est sélectionnée, l'action suit les redirections.

Cette option est sélectionnée par défaut.

Fail on 4xx/5xx Optional

Si cette option est sélectionnée, l'action échoue si le code d'état de la réponse est une erreur 4xx ou 5xx.

Cette option est sélectionnée par défaut.

Base64 Output
Optional

Si cette option est sélectionnée, l'action convertit la réponse au format base64.

Utilisez ce paramètre lorsque vous téléchargez des fichiers.

Le résultat JSON ne peut pas dépasser 15 Mo.

(non sélectionnée par défaut).

Fields To Return Obligatoire

Champs à renvoyer. Les valeurs possibles sont les suivantes :

  • response_data
  • redirects
  • response_code
  • response_cookies
  • response_headers
  • apparent_encoding
Request Timeout Obligatoire

Délai d'attente avant que l'action échoue.

La valeur par défaut est de 120 secondes.

Sorties d'action

L'action "Exécuter une requête HTTP" fournit les sorties suivantes :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table 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 décrit le résultat JSON reçu lors de l'utilisation de l'action "Exécuter une requête HTTP" :

{
   "response_data": {
       "data": {
           "relationships": {
               "comment": [
                   {
                       "name": "item",
                       "description": "Object to which the comment belongs to."
                   },
                   {
                       "name": "author",
                       "description": "User who wrote the comment."
                   }
               ]
           }
       }
   },
   "redirects": [],
   "response_code": 200,
   "cookies": {},
   "response_headers": {
       "Content-Type": "application/json",
       "X-Cloud-Trace-Context": "1ca450b35c66634a2ae01248cca50b19",
       "Date": "Fri, 03 Nov 2023 16:14:13 GMT",
       "Server": "Google Frontend",
       "Content-Length": "36084"
   },
   "apparent_encoding": "ascii"
}
Messages de sortie

Sur un mur de cas, l'action "Exécuter une requête HTTP" fournit les messages de sortie suivants :

Message affiché Description du message

Successfully executed API request.

Successfully executed API request, but status code STATUS_CODE was in response.

Action effectuée.

Failed to execute API request. Error: ERROR_REASON

Failed to execute API request. Error: Invalid parameter "PARAMETER_NAME".

The JSON structure is invalid. Wrong value provided: VALUE

Échec de l'action.

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

Résultat du script

Le tableau suivant décrit les valeurs de la sortie du résultat du script lorsque vous utilisez l'action "Exécuter une requête HTTP" :

Nom du résultat du script Valeur
is_success True ou False

Ping

Utilisez cette action pour tester la connectivité.

Entrées d'action

Aucun

Sorties d'action

L'action "Ping" fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table 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
Messages de sortie

Sur un mur de demandes, l'action "Envoyer un ping" fournit les messages de sortie suivants :

Message affiché Description du message
Successfully tested connectivity. Action effectuée.
Failed to test connectivity.

É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 décrit les valeurs de la sortie des résultats du script lorsque vous utilisez l'action Ping :

Nom du résultat du script Valeur
is_success True ou False

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