Intégrer Armis à Google SecOps
Ce document explique comment intégrer Armis à Google Security Operations.
Cas d'utilisation
- Effectuer des actions d'enrichissement
- Ingérer les alertes.
- Effectuer une action de tri (mettre à jour l'état de l'alerte).
Paramètres d'intégration
Utilisez les paramètres suivants pour configurer l'intégration :
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| Racine de l'API | Chaîne | Oui | Racine de l'API Armis | |
| Code secret de l'API | Mot de passe | N/A | Oui | Code secret de l'API Armis |
| 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 au serveur Armis est valide. |
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.
Ping
Testez la connectivité à Armis.
Paramètres
N/A
Exécution
L'action n'utilise pas d'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 |
Mur des cas
| Type de résultat | Description | Type |
|---|---|---|
| Message de sortie* | L'action ne doit pas échouer ni arrêter l'exécution d'un playbook : En cas de réussite : "Connexion au serveur Armis établie avec les paramètres de connexion fournis." L'action doit échouer et arrêter l'exécution d'un playbook : En cas d'échec : "Failed to connect to the Armis server! Error is {0}".format(exception.stacktrace) |
Général |
Enrichir les entités
Enrichissez les entités à l'aide des informations d'Armis. Entités compatibles : IP, adresse MAC.
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| Créer un insight sur un point de terminaison | Case à cocher | Cochée | Oui | Si cette option est activée, l'action crée un insight contenant des informations sur les points de terminaison. |
Exécution
Cette action s'exécute sur les entités suivantes :
- Adresse IP
- Adresse MAC
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
{
"accessSwitch": null,
"category": "Computers",
"dataSources": [
{
"firstSeen": "2021-03-07T04:04:22.562873+00:00",
"lastSeen": "2021-03-07T04:04:22.562873+00:00",
"name": "Example",
"types": [
"Asset & System Management",
"Virtualization"
]
},
{
"firstSeen": "2021-03-07T04:04:22.562873+00:00",
"lastSeen": "2021-03-07T04:04:22.562873+00:00",
"name": "Armis Smart Scanner",
"types": [
"Vulnerability Management"
]
}
],
"firstSeen": "2021-03-07T04:04:22.562873+00:00",
"id": 1616,
"ipAddress": "192.0.2.120",
"ipv6": null,
"lastSeen": "2021-03-21T08:05:40.244960+00:00",
"macAddress": "01:23:45:ab:cd:ef",
"manufacturer": "VMware",
"model": "VMware Virtual Platform",
"name": "Example",
"operatingSystem": "CentOS",
"operatingSystemVersion": "6.6",
"purdueLevel": 4.0,
"riskLevel": 5,
"sensor": {
"name": "North conference room",
"type": "Physical Sensor"
},
"site": {
"location": "Palo Alto",
"name": "Palo Alto Offices"
},
"tags": [
"Discover",
"Example"
],
"type": "Virtual Machines",
"user": "",
"visibility": "Full"
}
Enrichissement d'entités
| Nom du champ d'enrichissement | Logique : quand les utiliser ? |
|---|---|
| catégorie | Lorsqu'il est disponible au format JSON |
| id | Lorsqu'il est disponible au format JSON |
| ipAddress | Lorsqu'il est disponible au format JSON |
| macAddress | Lorsqu'il est disponible au format JSON |
| nom | Lorsqu'il est disponible au format JSON |
| os | Lorsqu'il est disponible au format JSON |
| purdue_level | Lorsqu'il est disponible au format JSON |
| risk_level | Lorsqu'il est disponible au format JSON |
| tags | Lorsqu'il est disponible au format JSON |
| type | Lorsqu'il est disponible au format JSON |
| utilisateur | Lorsqu'il est disponible au format JSON |
| visibility | Lorsqu'il est disponible au format JSON |
| site | Lorsqu'il est disponible au format JSON |
| lien | Lorsqu'il est disponible au format JSON |
Mur des cas
| Type de résultat | Description | Type |
|---|---|---|
| Message de sortie* | L'action ne doit pas échouer ni arrêter l'exécution d'un playbook : if enriched some(is_success = true): "Successfully enriched the following entities using Armis:\n".format(entity.identifier) Si l'enrichissement n'a pas été effectué pour certaines entités (is_success = true) : "Action wasn't able to enriche the following entities using Armis:\n".format(entity.identifier) Si l'enrichissement n'a pas été effectué pour toutes les entités (is_success = false) : "Aucune entité n'a été enrichie". L'action doit échouer et arrêter l'exécution d'un playbook : |
Général |
| Tableau des entités | Entité |
Lister les connexions d'alerte
Répertoriez les connexions liées à l'alerte dans Armis.
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| ID d'alerte | Integer | Oui | Spécifiez l'ID de l'alerte pour laquelle vous souhaitez extraire les données de connexion. | |
| Gravité la plus faible à récupérer | LDD | Moyenne Valeurs possibles :
|
Non | Spécifiez le niveau de gravité le plus faible des connexions à utiliser lors de leur récupération. |
| Nombre maximal de connexions à renvoyer | Integer | 50 | Non | Spécifiez le nombre de connexions à renvoyer. |
Exécution
Cette action ne s'exécute pas sur 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
{
"band": null,
"channel": null,
"dhcpAuthenticationDuration": null,
"duration": 12339,
"endTimestamp": "2021-03-18T20:19:31.562873+00:00",
"id": 33355,
"inboundTraffic": 12412512,
"outboundTraffic": 19626489,
"protocol": "Bluetooth",
"radiusAuthenticationDuration": null,
"risk": "Medium",
"rssi": null,
"sensor": {
"name": "EXAMPLE",
"type": "Switch"
},
"site": {
"location": "Location",
"name": "Location HQ"
},
"snr": null,
"sourceId": 2097,
"startTimestamp": "2021-03-18T16:53:52.562873+00:00",
"targetId": 217,
"title": "Connection between Example and user's iPhone",
"totalAssociationDuration": null,
"traffic": 32039001,
"wlanAssociationDuration": null
}
Mur des cas
| Type de résultat | Description | Type |
|---|---|---|
| Message de sortie* | L'action ne doit pas échouer ni arrêter l'exécution d'un playbook : Si le code est 200 et que des données sont disponibles (is_success = true) : "Successfully returned connections related to the alert {alertId} based on the provided criteria in Armis." Si le code 200 est renvoyé et qu'aucune donnée n'est disponible (is_success=false) : "No connections were found related to the alert {alertId} based on the provided criteria in Armis." (Aucune connexion n'a été trouvée pour l'alerte {alertId} en fonction des critères fournis dans Armis.) L'action doit échouer et arrêter l'exécution d'un playbook : if fatal error, like wrong credentials, no connection to server, other: "Error executing action "List Alert Connections". Reason: {0}''.format(error.Stacktrace) |
Général |
| Tableau du mur des cas | Nom : Communications disponibles Colonnes :
|
Général |
Mettre à jour l'état de l'alerte
Mettez à jour l'état de l'alerte dans Armis.
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| ID d'alerte | Integer | Oui | Spécifiez l'ID de l'alerte dont vous souhaitez mettre à jour l'état. | |
| État | LDD | Non géré Valeurs possibles :
|
Non | Spécifiez l'état à définir pour l'alerte. |
Exécution
Cette action ne s'exécute pas sur 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 |
Mur des cas
| Type de résultat | Description | Type |
|---|---|---|
| Message de sortie* | L'action ne doit pas échouer ni arrêter l'exécution d'un playbook : if 200 (is_success = true): "Successfully updated status of the alert "{alert id}" to "{status}" in Armis.". Si 400 (is_success=true) : "Alert "{alert id}" already has status "{status}" in Armis. " L'action doit échouer et arrêter l'exécution d'un playbook : if fatal error, like wrong credentials, no connection to server, other: "Error executing action "Update Alert Status". Reason: {0}''.format(error.Stacktrace) Si l'erreur 404 s'affiche : "Error executing action "Update Alert Status". Motif : l'alerte "{alert id}" est introuvable dans Armis.' |
Général |
Connecteur
Pour en savoir plus sur la configuration des connecteurs dans Google SecOps, consultez Ingérer vos données (connecteurs).
Armis – Connecteur d'alertes
Extraire les alertes avec les activités associées d'Armis.
Paramètres du connecteur
Utilisez les paramètres suivants pour configurer le connecteur :
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| Nom du champ de produit | Chaîne | alert_type | Oui | Nom du champ dans lequel le nom du produit est stocké. La valeur par défaut est Le nom du produit a principalement un impact sur le mappage. Pour simplifier et améliorer le processus de mappage du connecteur, la valeur par défaut |
| Nom du champ d'événement | Chaîne | type | Oui | Nom du champ qui détermine le nom de l'événement (sous-type). |
| Nom du champ d'environnement | Chaîne | "" | Non | Nom du champ dans lequel le nom de l'environnement est stocké. Si le champ "environment" n'est pas renseigné, le connecteur utilise la valeur par défaut. |
Environment Regex Pattern |
Chaîne | .* | Non |
Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ Utilisez la valeur par défaut Si le modèle d'expression régulière est nul ou vide, ou si la valeur de l'environnement est nulle, le résultat final de l'environnement est l'environnement par défaut. |
| Délai avant expiration du script (en secondes) | Entier | 180 | Oui | Délai avant expiration, en secondes, du processus Python qui exécute le script actuel. |
| Racine de l'API | Chaîne | https:// | Oui | Racine de l'API de l'instance Armis. |
| Code secret de l'API | Mot de passe | N/A | Oui | Code secret de l'API du compte Armis. |
| Gravité la plus faible à récupérer | Faible | Faible | Non | Niveau de gravité le plus faible utilisé pour récupérer les alertes. Valeurs possibles : Low, Medium, High. |
| Nombre maximal d'heures en arrière | Entier | 1 | Non | Nombre d'heures avant la première itération du connecteur pour récupérer les alertes. Ce paramètre peut s'appliquer à l'itération initiale du connecteur après sa première activation, ou à la valeur de remplacement d'un code temporel de connecteur expiré. |
| Nombre maximal d'alertes à récupérer | Integer | 10 | Non | Nombre d'alertes à traiter par itération de connecteur. La valeur maximale est de 1000. |
Use whitelist as a blacklist |
Case à cocher | Cochée | Oui | Si cette option est sélectionnée, le connecteur utilise la liste dynamique comme liste de blocage. |
| Vérifier le protocole SSL | Case à cocher | Décochée | Oui | Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Armis. |
| Adresse du serveur proxy | Chaîne | Non | Adresse du serveur proxy à utiliser. | |
| Nom d'utilisateur du proxy | Chaîne | Non | Nom d'utilisateur du proxy pour l'authentification. | |
| Mot de passe du proxy | Mot de passe | Non | Mot de passe du proxy pour l'authentification. |
Règles du connecteur
Le connecteur est compatible avec les proxys.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.