Collecter les journaux Thinkst Canary
Ce document explique comment collecter les journaux Thinkst Canary en configurant un flux Google Security Operations à l'aide de l'API tierce.
Thinkst Canary fournit une détection des menaces basée sur la tromperie : les Canaries matériels, virtuels et cloud se font passer pour des actifs réels, et les Canarytokens agissent comme des déclencheurs dans les fichiers, les identifiants et les URL. Lorsqu'un pirate informatique touche un Canary ou déclenche un jeton, la console Canary enregistre un incident. Le flux récupère ces incidents à partir de l'API de la console.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Un accès privilégié à la console Thinkst Canary
Configurer l'API REST dans Thinkst Canary
- Connectez-vous à votre console Thinkst Canary (
https://<DOMAIN_HASH>.canary.tools). - Cliquez sur l'icône en forme de roue dentée en haut à droite, puis sélectionnez Global Settings (Paramètres globaux).
- Dans le menu, cliquez sur API.
- Si l'API est désactivée, cliquez sur Enable API (Activer l'API).
Utilisez la clé API par défaut existante ou cliquez sur + Add new API key (+ Ajouter une clé API) pour en créer une dédiée :
- API key type (Type de clé API) : sélectionnez Read-Only (Lecture seule). Cela suffit pour la collecte des journaux.
- Remarque : Saisissez un nom pour la clé (par exemple,
Google SecOps Integration).
Copiez et enregistrez les éléments suivants dans un emplacement sécurisé :
- Domain Hash (Hachage de domaine) : identifiant de votre console. Le nom d'hôte de votre API est
<DOMAIN_HASH>.canary.tools. - Auth Token (Jeton d'authentification) : clé API utilisée pour authentifier les requêtes.
- Domain Hash (Hachage de domaine) : identifiant de votre console. Le nom d'hôte de votre API est
Configurer un flux dans Google SecOps pour ingérer les journaux Thinkst Canary
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configure a single feed (Configurer un seul flux).
- Dans le champ Feed name (Nom du flux), saisissez un nom pour le flux (par exemple,
Thinkst Canary Logs). - Sélectionnez Third Party API (API tierce) comme Source type (Type de source).
- Sélectionnez Thinkst Canary comme Log type (Type de journal).
- Cliquez sur Suivant.
Spécifiez des valeurs pour les paramètres d'entrée suivants :
- En-tête HTTP d'authentification : jeton généré précédemment, au format
auth_token:<TOKEN>(par exemple,auth_token:AAAABBBBCCCC111122223333). - Nom d'hôte de l'API : nom de domaine complet de votre point de terminaison d'API REST Thinkst Canary, au format
<DOMAIN_HASH>.canary.tools(par exemple,myinstance.canary.tools). - Asset namespace (Espace de noms de l'élément) : espace de noms de l'élément
- Ingestion labels (Libellés d'ingestion) : libellé à appliquer aux événements de ce flux
- En-tête HTTP d'authentification : jeton généré précédemment, au format
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux dans l'écran Finalize (Finaliser), puis cliquez sur Submit (Envoyer).
Une fois la configuration terminée, le flux commence à récupérer les journaux de l'instance Thinkst Canary par ordre chronologique.
Mises à jour et nouvelle diffusion des incidents
L'API de la console Canary renvoie un incident chaque fois qu'il est mis à jour, et pas seulement lors de sa création. Canary regroupe les événements similaires ultérieurs de la même source dans l'incident existant. Par exemple, chaque tentative d'attaque par force brute devient un événement au sein d'un seul incident. D'autres modifications d'incident peuvent également déclencher une nouvelle diffusion.
Voici le comportement attendu dans Google SecOps :
- Les incidents qui ont déjà été diffusés réapparaissent dans le flux après avoir été mis à jour.
- Un incident rediffusé peut apparaître avec un horodatage d'événement considérablement antérieur au moment où il a été rediffusé. En effet, l'analyseur dérive les horodatages des événements à partir de l'heure de création d'origine de l'incident et des heures d'occurrence des événements regroupés, et non de l'heure de mise à jour.
La rediffusion elle-même est le comportement documenté de l'API de collecte d'incidents (elle filtre sur le compteur de mises à jour de l'incident), et non une perte de données ou un défaut de l'analyseur.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
_canary_uptime_label |
additional.fields |
Fusionné |
desc_events_n_func_code_label |
additional.fields |
Fusionné |
desc_events_n_func_name_label |
additional.fields |
Fusionné |
desc_events_n_sfunc_code_label |
additional.fields |
Fusionné |
desc_events_n_sfunc_name_label |
additional.fields |
Fusionné |
desc_events_n_timestamp_std_label |
additional.fields |
Fusionné |
desc_events_n_unit_id_label |
additional.fields |
Fusionné |
description_created_std_label |
additional.fields |
Fusionné |
description_events_list_label |
additional.fields |
Fusionné |
event_data_list |
additional.fields |
Fusionné |
event_descrip_label |
additional.fields |
Fusionné |
events_url_label |
additional.fields |
Fusionné |
local_time_label |
additional.fields |
Fusionné |
locale_label |
additional.fields |
Fusionné |
lt_label |
additional.fields |
Fusionné |
offline_text_label |
additional.fields |
Fusionné |
updated_label |
additional.fields |
Fusionné |
updated_std_label |
additional.fields |
Fusionné |
_auth |
extensions.auth |
Renommé/mappé |
_metadata |
metadata |
Renommé/mappé |
_event_time |
metadata.event_timestamp |
Analysé en tant que UNIX |
_metadata_event_timestamp |
metadata.event_timestamp |
Analysé en tant que UNIX |
description.created_std |
metadata.event_timestamp |
Analysé en tant que UNIX_MS |
elem.timestamp_std |
metadata.event_timestamp |
Analysé en tant que yyyy-MM-dd HH:mm:ss ZZZ+0000 |
updated |
metadata.event_timestamp |
Analysé en tant que EEE, dd MMM yyyy HH:mm:ss ZZZ |
updated_std |
metadata.event_timestamp |
Analysé en tant que UNIX_MS |
format |
metadata.event_type |
Mappé : grok → STATUS_UPDATE, grok → GENERIC_EVENT |
has_principal_hostname |
metadata.event_type |
Mappé : true → STATUS_UPDATE |
_network |
network |
Renommé/mappé |
_observer |
observer |
Renommé/mappé |
_principal |
principal |
Renommé/mappé |
ThinkstCanary_Process |
principal.application |
Mappé directement |
ThinkstCanary_Process |
principal.asset.hostname |
Mappé directement |
ThinkstCanary_Hostname |
principal.hostname |
Mappé directement |
_md_product_event_type |
security_result |
Valeurs mappées (10 au total, par exemple, Shared File Opened → _security_result, Host Port Scan → ... |
_security_result |
security_result |
Fusionné |
format |
security_result |
Mappé : kv → _security_result, json → _security_result |
_source |
src |
Renommé/mappé |
_target |
target |
Renommé/mappé |
| N/A | metadata.event_type |
Constante : STATUS_UPDATE |
Journal des modifications
Consulter le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.