Intégrer Anomali à Google SecOps
Ce document explique comment intégrer Anomali à Google Security Operations (Google SecOps).
Avant de commencer
Pour obtenir votre clé API personnelle, procédez comme suit :
Connectez-vous à votre compte Anomali ThreatStream.
Cliquez sur My API Keys (Mes clés API).
Copiez la valeur de la clé API et collez-la dans le champ du paramètre "Clé API" de la boîte de dialogue Configurer l'instance dans Google SecOps.
Réseau
| Fonction | Port par défaut | Direction | Protocole |
|---|---|---|---|
| API | Multivalues | Sortant | apikey |
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 |
|---|---|---|---|---|
| Nom de l'instance | Chaîne | N/A | Non | Nom de l'instance pour laquelle vous souhaitez configurer l'intégration. |
| Description | Chaîne | N/A | Non | Description de l'instance. |
| Racine de l'API | Chaîne | https://api.threatstream.com/api | Oui | Adresse de l'instance Anomali. |
| Nom d'utilisateur | Chaîne | user@domain.com |
Oui | Adresse e-mail de l'utilisateur à utiliser pour se connecter à Anomali. |
| Mot de passe | Mot de passe | N/A | Oui | Mot de passe de l'utilisateur correspondant. |
| Clé API | Chaîne | N/A | Oui | Clé API générée dans la console AlienVault. |
| Exécuter à distance | Case à cocher | Décochée | Non | Cochez le champ pour exécuter l'intégration configurée à distance. Une fois cette option cochée, l'option permettant de sélectionner l'utilisateur distant (agent) s'affiche. |
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.
Obtenir des informations sur les menaces
Enrichissez les entités à l'aide des informations d'Anomali ThreatStream. Entités compatibles : IP, URL, hachage, adresses e-mail (entités utilisateur correspondant à l'expression régulière d'adresse e-mail).
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| Limite | Chaîne | 10 | Oui | Spécifiez le nombre d'enregistrements à renvoyer par entité. |
| Seuil de gravité | LDD | Moyenne Valeurs possibles :
|
Non | Spécifiez le seuil de gravité de l'entité pour qu'elle soit marquée comme suspecte. Si plusieurs enregistrements sont trouvés pour la même entité, l'action prendra en compte la gravité la plus élevée parmi tous les enregistrements disponibles. |
| Seuil de confiance | Integer | 50 | Non | Spécifiez le seuil de confiance pour l'entité, afin de la marquer comme suspecte. Remarque : La valeur maximale est de 100. Si plusieurs enregistrements sont trouvés pour l'entité, l'action prendra la moyenne. Les enregistrements actifs sont prioritaires. Valeur par défaut : 50. |
| Ignorer l'état "Faux positif" | Case à cocher | Décochée | Non | Si cette option est activée, l'action ignorera l'état de faux positif et marquera l'entité comme suspecte en fonction du seuil de gravité et du seuil de confiance. Si cette option est désactivée, l'action ne marquera jamais les entités faux positifs comme suspectes, qu'elles remplissent ou non les conditions de seuil de gravité et de seuil de confiance. |
Exécution
Cette action s'exécute sur les entités suivantes :
- Adresse IP
- URL
- Hash
- Adresses e-mail (entités utilisateur correspondant à l'expression régulière d'adresse e-mail)
Résultats de l'action
Enrichissement d'entités
| Nom | Logique : quand les utiliser ? |
|---|---|
| id | Renvoie s'il existe dans le résultat JSON |
| état | Renvoie s'il existe dans le résultat JSON |
| itype | Renvoie s'il existe dans le résultat JSON |
| expiration_time | Renvoie s'il existe dans le résultat JSON |
| ip | Renvoie s'il existe dans le résultat JSON |
| feed_id | Renvoie s'il existe dans le résultat JSON |
| confiance | Renvoie s'il existe dans le résultat JSON |
| uuid | Renvoie s'il existe dans le résultat JSON |
| retina_confidence | Renvoie s'il existe dans le résultat JSON |
| trusted_circle_ids | Renvoie s'il existe dans le résultat JSON |
| source | Renvoie s'il existe dans le résultat JSON |
| latitude | Renvoie s'il existe dans le résultat JSON |
| type | Renvoie s'il existe dans le résultat JSON |
| description | Renvoie s'il existe dans le résultat JSON |
| tags | Renvoie s'il existe dans le résultat JSON |
| threat_score | Renvoie s'il existe dans le résultat JSON |
| source_confidence | Renvoie s'il existe dans le résultat JSON |
| modification_time | Renvoie s'il existe dans le résultat JSON |
| org_name | Renvoie s'il existe dans le résultat JSON |
| asn | Renvoie s'il existe dans le résultat JSON |
| creation_time | Renvoie s'il existe dans le résultat JSON |
| tlp | Renvoie s'il existe dans le résultat JSON |
| pays | Renvoie s'il existe dans le résultat JSON |
| longitude | Renvoie s'il existe dans le résultat JSON |
| de gravité, | Renvoie s'il existe dans le résultat JSON |
| subtype | Renvoie s'il existe dans le résultat JSON |
Résultat du script
| Nom du résultat du script | Options de valeur | Exemple |
|---|---|---|
| success | Vrai ou faux | success:False |
Résultat JSON
{
"Entity": "ENTITY_ID",
"EntityResult": {
"Info": [{
"source_created": null,
"status": "inactive",
"itype": "mal_domain",
"expiration_ts": "2020-11-28T13:29:57.000Z",
"ip": "192.0.2.1",
"is_editable": false,
"feed_id": 1111111,
"update_id": 1111111111,
"longitude": -0.1223454,
"is_public": true,
"threat_type": "malware",
"workgroups": [],
"rdns": null,
"confidence": 11111,
"uuid": "UUID",
"retina_confidence": 1111111,
"trusted_circle_ids": null,
"id": 111111111111111110000,
"source": "COVID19 Cyber Threat Coalition Blocklist - Domains",
"owner_organization_id": 111,
"import_session_id": null,
"source_modified": null,
"type": "domain",
"sort": [1607193157800, "56224953198"],
"description": null,
"tags": [{
"id": "wu6",
"name": "Blocklist"
}, {
"id": "pvj",
"name": "Coronavirus"
}, {
"id": "01i",
"name": "COVID-19"
}, {
"id": "o70",
"name": "Malicious"
}, {
"id": "fk0",
"name": "Source:COVID19-Cyber-Threat-Coalition"
}],
"threatscore": 11111,
"source_reported_confidence": 11111,
"modified_ts": "2020-12-05T18:32:37.800Z",
"org": "Namecheap",
"asn": "11111111",
"created_ts": "2020-10-29T13:33:24.904Z",
"tlp": null,
"is_anonymous": false,
"latitude": 51.4964,
"country": "GB",
"can_add_public_tags": false,
"value": "VALUE",
"subtype": null,
"meta": {
"registration_updated": "2020-10-24T22:16:59+00:00",
"detail2": "bifocals_deactivated_on_2020-12-05_18:30:00.085789",
"severity": "high",
"registration_created": "2020-10-24T22:16:42+00:00"
},
"resource_uri": "/api/v2/intelligence/"
}],
"Campaigns": [{
"association_info": [{
"comment": null,
"created": "2020-10-29T13:33:29.200283",
"from_id": "ID"
}],
"can_add_public_tags": true,
"circles": [],
"created_ts": "2020-03-15T04:24:55.428496",
"end_date": "2020-03-23T16:05:00.761000",
"feed_id": 0,
"id": "ID",
"is_anonymous": true,
"is_cloneable": "yes",
"is_public": true,
"modified_ts": "2021-02-02T02:38:19.892072",
"name": "Coronavirus (COVID-19)",
"objective": null,
"organization": {
"id": 0,
"name": "Analyst",
"title": "Analyst"
},
"publication_status": "published",
"published_ts": "2020-04-06T21:40:24.452312",
"resource_uri": "/api/v1/campaign/",
"source_created": null,
"source_modified": null,
"start_date": "2020-01-30T13:10:00.070000",
"status": {
"display_name": "Ongoing",
"id": 1,
"resource_uri": "/api/v1/campaignstatus/1/"
},
"tags": ["Malware", "Fraud", "Phishing", "COVID-19", "Coronavirus", "Scams"],
"tags_v2": [{
"id": "wqe",
"name": "Coronavirus"
}, {
"id": "hlg",
"name": "COVID-19"
}, {
"id": "74i",
"name": "Phishing"
}, {
"id": "0y2",
"name": "Malware"
}, {
"id": "u63",
"name": "Scams"
}, {
"id": "1er",
"name": "Fraud"
}],
"tlp": "white",
"uuid": "UUID",
"workgroups": []
}],
"Tip": [{
"all_circles_visible": true,
"association_info": [{
"comment": null,
"created": "2020-10-29T13:33:29.212118",
"from_id": "ID"
}],
"body_content_type": "richtext",
"campaign": null,
"can_add_public_tags": true,
"circles": [],
"created_ts": "2020-03-19T04:23:35.714929",
"feed_id": 0,
"id": "ID",
"is_anonymous": true,
"is_cloneable": "yes",
"is_editable": true,
"is_email": false,
"is_public": true,
"modified_ts": "2021-02-02T02:38:20.061912",
"name": "Coronavirus (COVID-19) Cyber Threats",
"original_source": null,
"original_source_id": null,
"owner_org": {
"id": 0,
"name": "Analyst",
"title": "Analyst"
},
"parent": null,
"published_ts": "2020-05-25T18:39:36.890647",
"resource_uri": "/api/v1/ID/",
"source_created": null,
"source_modified": null,
"starred_by_me": false,
"starred_total_count": 5,
"status": "published",
"tags": ["Scams", "HCL-", "Malware"],
"tags_v2": [{
"id": "ID",
"name": "Coronavirus"
}, {
"id": "ID",
"name": "COVID-19"
}, {
"id": "ID",
"name": "Phishing"
}],
"threat_actor": null,
"tlp": "white",
"ttp": null,
"uuid": "UUID",
"votes": {
"me": null,
"total": 0
},
"watched_by_me": false,
"watched_total_count": 11111,
"workgroups": []
}],
"Actors": [],
"Incidents": [],
"TTP": []
}
}
Mur des cas
| Type de résultat | Description | Type |
|---|---|---|
| Message de sortie* | Si des données sont disponibles pour une entité (is_success=true) : "Successfully returned information about the following entities from Anomali ThreatStream: {entity.identifier}" Si aucune donnée n'est disponible pour une entité (is_success=true) : "L'action n'a pas pu renvoyer d'informations sur les entités suivantes à partir d'Anomali ThreatStream : {entity.identifier}" Si l'enrichissement n'est disponible pour aucune entité (is_success=false) : "Aucune entité n'a été enrichie. Erreur critique (échec) : erreur lors de l'exécution de l'action "Get Threat Info". Motif : {error traceback}" |
Général |
Ping
Testez la connectivité à Anomali ThreatStream.
Paramètres
N/A
Exécution
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 |
|---|---|---|
| success | Vrai ou faux | success:False |
Obtenir les associations associées
Récupérez les associations liées à l'entité à partir d'Anomali ThreatStream.
Paramètres
| Nom du paramètre | Type | Valeur par défaut | Est obligatoire | Description |
|---|---|---|---|---|
| Campagnes de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupérera les campagnes associées et les détails les concernant. |
| Renvoyer les bulletins de menaces | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les bulletins de menace associés et les détails les concernant. |
| Acteurs de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les acteurs associés et les détails les concernant. |
| Renvoyer les modèles d'attaque | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les modèles d'attaque associés et les détails les concernant. |
| Renvoyer les plans d'action | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les plans d'action associés et les détails les concernant. |
| Identités de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les identités associées et les détails les concernant. |
| Incidents de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les incidents associés et les détails les concernant. |
| Infrastructure de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère l'infrastructure associée et les détails la concernant. |
| Renvoyer les ensembles d'intrusion | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les ensembles d'intrusion associés et les détails les concernant. |
| renvoi de logiciel malveillant | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les logiciels malveillants associés et les détails les concernant. |
| Signatures de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les signatures associées et les détails les concernant. |
| Outils de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupérera les outils associés et les détails les concernant. |
| TTP de retour | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les TTP associés et les détails les concernant. |
| Renvoyer les failles | Case à cocher | Cochée | Non | Si cette option est activée, l'action récupère les failles associées et les détails les concernant. |
| Créer une entité de campagne | Case à cocher | Décochée | Non | Si cette option est activée, l'action crée une entité à partir des associations de campagnes disponibles. |
| Créer l'entité "Actors" | Case à cocher | Décochée | Non | Si cette option est activée, l'action crée une entité à partir des associations d'acteurs disponibles. |
| Créer une entité de signature | Case à cocher | Décochée | Non | Si cette option est activée, l'action crée une entité à partir des associations de signatures disponibles. |
| Créer une entité de faille | Case à cocher | Décochée | Non | Si cette option est activée, l'action crée une entité à partir des associations de failles disponibles. |
| Nombre maximal d'associations à renvoyer | Integer | 5 | Non | Spécifiez le nombre d'associations à renvoyer par type. |
Exécution
Cette action s'exécute sur les entités suivantes :
- Hash
- Adresse IP
- URL
Résultats de l'action
Résultat du script
| Nom du résultat du script | Options de valeur | Exemple |
|---|---|---|
| success | Vrai ou faux | success:False |
Résultat JSON
{
"campaign": [
{
"name": "Example 1",
"id": 1
},
{
"name": "Example 2",
"id": 2
}
],
"actor": [
{
"name": "Actor 1",
"id": 1
},
{
"name": "Actor 2",
"id": 2
}
],
"attackpattern": [
{
"name": "Pattern 1",
"id": 1
},
{
"name": "Pattern 2",
"id": 2
}
],
"courseofaction": [
{
"name": "Course of Action 1",
"id": 1
},
{
"name": "Course Of Action 2",
"id": 2
}
],
"identity": [
{
"name": "Identity 1",
"id": 1
},
{
"name": "Identity 2",
"id": 2
}
],
"incident": [
{
"name": "Incident 1",
"id": 1
},
{
"name": "Incident 2",
"id": 2
}
],
"infrastructure": [
{
"name": "Infrustructure 1",
"id": 1
},
{
"name": "Infrustructure 2",
"id": 2
}
],
"intrusionset": [
{
"name": "Intrusion set 1",
"id": 1
},
{
"name": "Intrusion set 2",
"id": 2
}
],
"malware": [
{
"name": "Malware 1",
"id": 1
},
{
"name": "Malware 2",
"id": 2
}
],
"signature": [
{
"name": "Signature 1",
"id": 1
},
{
"name": "Signature 2",
"id": 2
}
],
"tool": [
{
"name": "Tool 1",
"id": 1
},
{
"name": "Tool 2",
"id": 2
}
],
"ttp": [
{
"name": "TTP 1",
"id": 1
},
{
"name": "TTP 2",
"id": 2
}
],
"vulnerability": [
{
"name": "Vulnerability 1",
"id": 1
},
{
"name": "Vulnerability 2",
"id": 2
}
],
}
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 l'opération réussit et qu'au moins une association entre les entités est trouvée (is_success=true) : "Successfully retrieved related associations from Anomali" (Associations associées récupérées depuis Anomali) Si aucune association n'est trouvée (is_success=false) : "Aucune association associée n'a été trouvée." Message asynchrone : "En attente de la récupération de tous les détails de l'association" 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, etc.) : "Erreur lors de l'exécution de l'action "Obtenir l'association associée". Reason: {0}''.format(error.Stacktrace) |
Général |
| Tableau du mur des cas | Nom du tableau : "Associations associées" Colonnes du tableau :
|
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.