Collecter des données ServiceNow CMDB
Ce document explique comment collecter des données ServiceNow CMDB en configurant un flux Google Security Operations à l'aide de l'API tierce.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Une instance Google SecOps
- Accès privilégié à l'instance ServiceNow avec accès à la console d'administration
- Compte utilisateur ServiceNow avec le rôle
cmdb_read(exigence minimale pour l'accès en lecture) - API REST activée dans votre instance ServiceNow (activée par défaut)
Configurer la liste d'autorisation d'adresses IP
Avant de créer le flux, vous devez ajouter les plages d'adresses IP Google SecOps à la liste d'autorisation dans les paramètres de pare-feu ou de réseau ServiceNow.
Obtenir les plages d'adresses IP Google SecOps
- Récupérez les plages d'adresses IP à partir du fichier JSON des plages d'adresses IP de Google.
Ajouter des plages d'adresses IP à ServiceNow
- Connectez-vous à votre instance ServiceNow en tant qu'administrateur.
- Accédez à Tous> Sécurité système> Contrôle des accès par adresse IP.
- Cliquez sur New (Nouveau).
- Fournissez les informations de configuration suivantes :
- Type : sélectionnez Autoriser.
- Adresse IP : saisissez une plage d'adresses IP Google SecOps au format CIDR (par exemple,
192.0.2.0/24). - Nom : saisissez un nom descriptif (par exemple,
GGoogle SecOps IP Range 1). - Active : cochez la case pour activer la règle.
- Cliquez sur Envoyer.
- Répétez les étapes 3 à 5 pour chaque plage d'adresses IP Google SecOps supplémentaire.
Configurer l'accès à l'API ServiceNow
Pour permettre à Google SecOps d'extraire les données CMDB, vous devez créer un utilisateur ServiceNow disposant des autorisations appropriées.
Créer un utilisateur d'intégration dédié (recommandé)
- Connectez-vous à la console d'administration ServiceNow.
- Accédez à Tous > Administration des utilisateurs > Utilisateurs.
- Cliquez sur New (Nouveau).
- Fournissez les informations de configuration suivantes :
- ID utilisateur : saisissez un nom d'utilisateur descriptif (par exemple,
google_secops_integration). - Prénom : saisissez
Google. - Nom : saisissez
SecOps Integration. - Adresse e-mail : saisissez une adresse e-mail valide pour les notifications.
- Mot de passe : cliquez sur Définir un mot de passe et créez un mot de passe sécurisé.
- Actif : cochez la case.
- Web service access only (Accès au service Web uniquement) : cochez la case (recommandé pour un accès à l'API uniquement).
- ID utilisateur : saisissez un nom d'utilisateur descriptif (par exemple,
- Cliquez sur Envoyer.
Attribuer les autorisations requises
- Une fois l'utilisateur créé, ouvrez sa fiche.
- Accédez à la section Rôles.
- Cliquez sur Modifier.
- Dans la liste Collection, recherchez et ajoutez le rôle suivant :
- cmdb_read : fournit un accès en lecture aux tables CMDB.
- Cliquez sur Enregistrer.
Enregistrer les identifiants de l'API
Après avoir créé l'utilisateur, enregistrez les identifiants suivants :
- Nom d'utilisateur : ID utilisateur que vous avez créé (par exemple,
google_secops_integration) - Mot de passe : mot de passe que vous avez défini pour l'utilisateur
- Nom d'hôte de l'API : nom de domaine complet de votre instance ServiceNow (par exemple,
myinstance.servicenow.com)- N'incluez pas
https://ni aucun chemin d'accès. - N'incluez pas de barre oblique finale.
- N'incluez pas
- Nom de la table : table CMDB à interroger (par exemple,
cmdb_ci,cmdb_ci_server,cmdb_ci_computer)
Comprendre les tables CMDB ServiceNow
La CMDB ServiceNow est organisée dans une structure hiérarchique de tables. Voici les tables les plus courantes pour l'ingestion de données d'éléments :
| Nom de la table | Description | Cas d'utilisation |
|---|---|---|
cmdb_ci |
Table des éléments de configuration de base (parent de toutes les tables CI) | Tous les éléments de configuration |
cmdb_ci_server |
Éléments de configuration du serveur | Serveurs physiques et virtuels |
cmdb_ci_computer |
Éléments de configuration de l'ordinateur | Stations de travail, ordinateurs portables, ordinateurs de bureau |
cmdb_ci_linux_server |
Éléments de configuration du serveur Linux | Serveurs Linux en particulier |
cmdb_ci_win_server |
Éléments de configuration Windows Server | Serveurs Windows |
cmdb_ci_vm_instance |
Instances de machines virtuelles | Machines virtuelles |
cmdb_ci_network_adapter |
Adaptateurs réseau | Cartes d'interface réseau |
cmdb_ci_ip_address |
Adresses IP | Enregistrements d'adresses IP |
cmdb_ci_service |
Services aux entreprises | Éléments du catalogue de services |
cmdb_ci_appl |
Applications | Éléments de configuration de l'application |
Vérifier l'accès à l'API REST
Avant de créer le flux, vérifiez que vos identifiants d'API ServiceNow fonctionnent correctement.
Tester à l'aide de l'explorateur d'API REST (facultatif)
- Connectez-vous à votre instance ServiceNow en tant qu'utilisateur de l'intégration.
- Accédez à Tous les services Web système> REST> Explorateur d'API REST>.
- Sélectionnez Table API dans le menu déroulant de l'espace de noms.
- Sélectionnez Récupérer des enregistrements à partir d'une table (GET).
- Dans Paramètres du chemin d'accès, saisissez le nom de la table (par exemple,
cmdb_ci). - Cliquez sur Envoyer.
- Vérifiez que l'état de la réponse est 200 OK et que des enregistrements sont renvoyés.
Tester avec curl (facultatif)
Vous pouvez également tester l'API à l'aide de curl :
curl "https://your-instance.service-now.com/api/now/table/cmdb_ci?sysparm_limit=10" \ --request GET \ --header "Accept: application/json" \ --user 'your-username':'your-password'- Remplacez :
your-instance.service-now.com: nom d'hôte de votre instance ServiceNowyour-username: nom d'utilisateur de votre utilisateur d'intégrationyour-password: mot de passe de votre utilisateur d'intégration
- Remplacez :
Une réponse réussie renvoie des données JSON avec des éléments de configuration.
Configurer des flux
Pour configurer un flux, procédez comme suit :
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
ServiceNow CMDB - All CIsouServiceNow CMDB - Servers). - Sélectionnez API tierce comme type de source.
- Sélectionnez ServiceNow CMDB comme Type de journal.
- Cliquez sur Suivant.
Spécifiez les valeurs des paramètres d'entrée suivants :
- Nom d'utilisateur : saisissez l'ID utilisateur ServiceNow (par exemple,
google_secops_integration). - Code secret : saisissez le mot de passe de l'utilisateur ServiceNow. Important : Il s'agit d'un champ sensible. Le mot de passe est chiffré et ne peut pas être consulté après l'enregistrement.
- Nom d'hôte de l'API : saisissez le nom de domaine complet de votre instance ServiceNow.
- Exemple :
myinstance.servicenow.com - À ne pas inclure :
- Protocole (
https://) - Chemins (
/api/now/table/) - Barre oblique de fin
- Protocole (
- Exemple :
- Instances régionales : si votre instance ServiceNow se trouve dans une région spécifique, utilisez le format de nom d'hôte approprié :
- Standard :
instance.service-now.com - Union européenne :
instance.service-now.eu - Autres régions : contactez votre administrateur ServiceNow
- Standard :
- Nom de la table : saisissez la table ServiceNow CMDB à interroger.
- Exemples :
cmdb_ci(tous les éléments de configuration)cmdb_ci_server(tous les serveurs)cmdb_ci_computer(stations de travail et ordinateurs)cmdb_ci_linux_server(serveurs Linux uniquement)cmdb_ci_win_server(serveurs Windows uniquement) Remarque : Le nom de la table est sensible à la casse et doit correspondre exactement. Vous ne pouvez interroger qu'une seule table par flux. Pour ingérer plusieurs tables, créez des flux distincts pour chacune d'elles.
- Exemples :
- Espace de noms de l'élément : espace de noms de l'élément.
- Libellés d'ingestion : libellé à appliquer aux événements de ce flux.
- Nom d'utilisateur : saisissez l'ID utilisateur ServiceNow (par exemple,
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.
Une fois la configuration terminée, le flux commence à récupérer les enregistrements CMDB de l'instance ServiceNow. La synchronisation initiale peut prendre plusieurs minutes en fonction du nombre d'enregistrements dans le tableau.
Ingérer plusieurs tables CMDB
Pour ingérer des données provenant de plusieurs tables CMDB, créez des flux distincts pour chaque table :
- Créez le premier flux en suivant les étapes ci-dessus (par exemple, pour
cmdb_ci_server). - Cliquez sur Ajouter un flux pour créer d'autres flux.
- Utilisez les mêmes identifiants ServiceNow, mais spécifiez des noms de tables différents.
Exemple de configuration :
| Nom du flux | Nom de la table | Objectif |
|---|---|---|
| CMDB ServiceNow : serveurs | cmdb_ci_server |
Toutes les CI de serveur |
| CMDB ServiceNow : ordinateurs | cmdb_ci_computer |
CI de station de travail |
| CMDB ServiceNow : adaptateurs réseau | cmdb_ci_network_adapter |
CI d'interface réseau |
| CMDB ServiceNow : applications | cmdb_ci_appl |
CI d'application |
Autorisations d'API requises
L'utilisateur de l'intégration doit disposer des autorisations ServiceNow suivantes :
| Autorisation/Rôle | Niveau d'accès | Objectif |
|---|---|---|
| cmdb_read | Lire | Récupérer les données des éléments de configuration de la CMDB |
Rôles supplémentaires (facultatif) :
- itil : obligatoire si vous avez besoin d'un accès en écriture pour créer ou mettre à jour des CI (non obligatoire pour l'ingestion Google SecOps)
- rest_api_explorer : utile pour tester l'accès à l'API lors de la configuration
Table de mappage UDM
| Champ ServiceNow | Mappage UDM | Logique |
|---|---|---|
name |
entity.asset.hostname |
Nom d'hôte principal du composant |
ip_address |
entity.asset.ip |
Adresse IP principale de l'élément |
mac_address |
entity.asset.mac |
Adresse MAC du composant |
serial_number |
entity.asset.hardware.serial_number |
Numéro de série du matériel |
asset_tag |
entity.asset.asset_id |
Identifiant ou étiquette de l'appareil |
sys_class_name |
entity.asset.asset_type |
Classe de CI (serveur, ordinateur, etc.) |
os |
entity.asset.platform_software.platform |
Système d'exploitation |
sys_created_on |
entity.asset.first_seen_time |
Code temporel de création de l'élément |
sys_updated_on |
entity.asset.last_seen_time |
Code temporel de la dernière mise à jour |
location |
entity.asset.location.name |
Emplacement physique |
company |
entity.asset.attribute.labels.value |
Entreprise/organisation propriétaire |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.