Recopila datos de la CMDB de ServiceNow
En este documento, se explica cómo recopilar datos de la CMDB de ServiceNow configurando un feed de Google Security Operations con la API de terceros.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Acceso con privilegios a la instancia de ServiceNow con acceso a la Consola del administrador
- Cuenta de usuario de ServiceNow con el rol de
cmdb_read(requisito mínimo para el acceso de lectura) - La API de REST está habilitada en tu instancia de ServiceNow (está habilitada de forma predeterminada).
Configura la lista de IP permitidas
Antes de crear el feed, debes incluir los rangos de IP de Google SecOps en la lista de entidades permitidas de la configuración de red o del firewall de ServiceNow.
Obtén los rangos de IP de Google SecOps
- Recupera los rangos de IP del archivo JSON de rangos de direcciones IP de Google.
Agrega rangos de IP a ServiceNow
- Accede a tu instancia de ServiceNow como administrador.
- Ve a Todos > Seguridad del sistema > Control de acceso a direcciones IP.
- Haz clic en Nuevo.
- Proporciona los siguientes detalles de configuración:
- Tipo: Selecciona Permitir.
- Dirección IP: Ingresa un rango de IP de Google SecOps en notación CIDR (por ejemplo,
192.0.2.0/24). - Nombre: Ingresa un nombre descriptivo (por ejemplo,
GGoogle SecOps IP Range 1). - Activa: Selecciona la casilla de verificación para habilitar la regla.
- Haz clic en Enviar.
- Repite los pasos del 3 al 5 para cada rango de IP adicional de Google SecOps.
Configura el acceso a la API de ServiceNow
Para permitir que Google SecOps extraiga datos de la CMDB, debes crear un usuario de ServiceNow con los permisos adecuados.
Crea un usuario de integración exclusivo (recomendado)
- Accede a la Consola del administrador de ServiceNow.
- Ve a Todos > Administración de usuarios > Usuarios.
- Haz clic en Nuevo.
- Proporciona los siguientes detalles de configuración:
- ID de usuario: Ingresa un nombre de usuario descriptivo (por ejemplo,
google_secops_integration). - Nombre: Ingresa
Google. - Apellido: Ingresa
SecOps Integration. - Correo electrónico: Ingresa una dirección de correo electrónico válida para recibir notificaciones.
- Contraseña: Haz clic en Establecer contraseña y crea una contraseña segura.
- Activo: Selecciona la casilla de verificación.
- Web service access only: Selecciona la casilla de verificación (recomendado para el acceso solo a la API).
- ID de usuario: Ingresa un nombre de usuario descriptivo (por ejemplo,
- Haz clic en Enviar.
Asigna los permisos necesarios
- Después de crear el usuario, abre su registro.
- Ve a la sección Roles.
- Haz clic en Editar.
- En la lista Colección, busca y agrega el siguiente rol:
- cmdb_read: Proporciona acceso de lectura a las tablas de CMDB.
- Haz clic en Guardar.
Registra las credenciales de la API
Después de crear el usuario, registra las siguientes credenciales:
- Nombre de usuario: Es el ID de usuario que creaste (por ejemplo,
google_secops_integration). - Contraseña: La contraseña que estableciste para el usuario
- Nombre de host de la API: FQDN de tu instancia de ServiceNow (por ejemplo,
myinstance.servicenow.com)- No incluyas
https://ni ninguna ruta de acceso. - No incluyas la barra final.
- No incluyas
- Nombre de la tabla: Es la tabla de CMDB que se consultará (por ejemplo,
cmdb_ci,cmdb_ci_server,cmdb_ci_computer).
Información sobre las tablas de CMDB de ServiceNow
La CMDB de ServiceNow se organiza en una estructura jerárquica de tablas. Las tablas más comunes para la transferencia de datos de activos incluyen las siguientes:
| Nombre de la tabla | Descripción | Caso de uso |
|---|---|---|
cmdb_ci |
Tabla de elementos de configuración base (elemento principal de todas las tablas de CI) | Todos los elementos de configuración |
cmdb_ci_server |
Elementos de configuración del servidor | Servidores físicos y virtuales |
cmdb_ci_computer |
Elementos de configuración de la computadora | Estaciones de trabajo, laptops y computadoras de escritorio |
cmdb_ci_linux_server |
Elementos de configuración del servidor Linux | Servidores Linux específicamente |
cmdb_ci_win_server |
Elementos de configuración del servidor de Windows | Servidores de Windows específicamente |
cmdb_ci_vm_instance |
Instancias de máquina virtual | Máquinas virtuales |
cmdb_ci_network_adapter |
Adaptadores de red | Tarjetas de interfaz de red |
cmdb_ci_ip_address |
Direcciones IP | Registros de direcciones IP |
cmdb_ci_service |
Servicios para empresas | Artículos del catálogo de servicios |
cmdb_ci_appl |
Aplicaciones | Elementos de configuración de la aplicación |
Verifica el acceso a la API de REST
Antes de crear el feed, verifica que tus credenciales de la API de ServiceNow funcionen correctamente.
Prueba con el Explorador de la API de REST (opcional)
- Accede a tu instancia de ServiceNow como el usuario de integración.
- Ve a All > System Web Services > REST > REST API Explorer.
- Selecciona Table API en el menú desplegable del espacio de nombres.
- Selecciona Retrieve records from a table (GET).
- En Parámetros de ruta, ingresa el nombre de la tabla (por ejemplo,
cmdb_ci). - Haz clic en Enviar.
- Verifica que el estado de la respuesta sea 200 OK y que se devuelvan registros.
Realiza pruebas con curl (opcional)
Como alternativa, prueba la API con 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'- Reemplaza:
your-instance.service-now.com: Nombre de host de tu instancia de ServiceNowyour-username: Nombre de usuario de tu usuario de integraciónyour-password: La contraseña del usuario de integración
- Reemplaza:
Una respuesta correcta devolverá datos JSON con elementos de configuración.
Configura feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
ServiceNow CMDB - All CIsoServiceNow CMDB - Servers). - Selecciona API de terceros como el Tipo de origen.
- Selecciona ServiceNow CMDB como el Tipo de registro.
- Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
- Nombre de usuario: Ingresa el ID de usuario de ServiceNow (por ejemplo,
google_secops_integration). - Secreto: Ingresa la contraseña del usuario de ServiceNow. Importante: Este es un campo sensible. La contraseña está encriptada y no se puede ver después de guardarla.
- Nombre de host de la API: Ingresa el nombre de dominio completamente calificado de tu instancia de ServiceNow.
- Ejemplo:
myinstance.servicenow.com - No incluyas lo siguiente:
- Protocolo (
https://) - Rutas (
/api/now/table/) - Barra final
- Protocolo (
- Ejemplo:
- Instancias regionales: Si tu instancia de ServiceNow se encuentra en una región específica, usa el formato de nombre de host correcto:
- Estándar:
instance.service-now.com - Unión Europea:
instance.service-now.eu - Otras regiones: Verifica con tu administrador de ServiceNow
- Estándar:
- Nombre de la tabla: Ingresa la tabla de CMDB de ServiceNow que se consultará.
- Ejemplos:
cmdb_ci(todos los elementos de configuración)cmdb_ci_server(todos los servidores)cmdb_ci_computer(estaciones de trabajo y computadoras)cmdb_ci_linux_server(solo para servidores Linux)cmdb_ci_win_server(solo para servidores de Windows) Nota: El nombre de la tabla distingue mayúsculas de minúsculas y debe coincidir exactamente. Solo puedes consultar una tabla por feed. Para transferir varias tablas, crea feeds separados para cada una.
- Ejemplos:
- Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transmisión: Es la etiqueta que se aplicará a los eventos de este feed.
- Nombre de usuario: Ingresa el ID de usuario de ServiceNow (por ejemplo,
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Después de la configuración, el feed comienza a recuperar registros de la CMDB de la instancia de ServiceNow. La sincronización inicial puede tardar varios minutos, según la cantidad de registros de la tabla.
Cómo transferir varias tablas de la CMDB
Para transferir datos desde varias tablas de la CMDB, crea feeds separados para cada tabla:
- Crea el primer feed siguiendo los pasos anteriores (por ejemplo, para
cmdb_ci_server). - Haz clic en Agregar feed nuevo para crear feeds adicionales.
- Usa las mismas credenciales de ServiceNow, pero especifica nombres de tablas diferentes.
Ejemplo de configuración:
| Nombre del feed | Nombre de la tabla | Objetivo |
|---|---|---|
| CMDB de ServiceNow: Servidores | cmdb_ci_server |
Todas las CIs del servidor |
| CMDB de ServiceNow: Computadoras | cmdb_ci_computer |
CIs de la estación de trabajo |
| CMDB de ServiceNow: Adaptadores de red | cmdb_ci_network_adapter |
CIs de interfaz de red |
| CMDB de ServiceNow: Aplicaciones | cmdb_ci_appl |
CIs de la aplicación |
Permisos de API necesarios
El usuario de integración requiere los siguientes permisos de ServiceNow:
| Permiso o rol | Nivel de acceso | Objetivo |
|---|---|---|
| cmdb_read | Leer | Recupera datos de elementos de configuración de la CMDB |
Roles adicionales (opcional):
- itil: Se requiere si necesitas acceso de escritura para crear o actualizar CIs (no se requiere para la transferencia de datos de Google SecOps).
- rest_api_explorer: Útil para probar el acceso a la API durante la configuración
Tabla de asignación de UDM
| Campo de ServiceNow | Asignación de UDM | Lógica |
|---|---|---|
name |
entity.asset.hostname |
Nombre de host principal del activo |
ip_address |
entity.asset.ip |
Dirección IP principal del activo |
mac_address |
entity.asset.mac |
Dirección MAC del activo |
serial_number |
entity.asset.hardware.serial_number |
Número de serie del hardware |
asset_tag |
entity.asset.asset_id |
Etiqueta o identificador del activo |
sys_class_name |
entity.asset.asset_type |
Clase de CI (servidor, computadora, etc.) |
os |
entity.asset.platform_software.platform |
Sistema operativo |
sys_created_on |
entity.asset.first_seen_time |
Marca de tiempo de creación del activo |
sys_updated_on |
entity.asset.last_seen_time |
Marca de tiempo de la última actualización |
location |
entity.asset.location.name |
Ubicación física |
company |
entity.asset.attribute.labels.value |
Empresa u organización propietaria |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.