Integrar OpenSearch con Google SecOps
Versión de la integración: 1.0
En este documento se explica cómo integrar OpenSearch con Google Security Operations.
Casos prácticos
La integración de OpenSearch aborda los siguientes casos prácticos de orquestación e investigación de seguridad:
Búsqueda automatizada de amenazas: busca periódicamente en todos los índices de OpenSearch indicadores de compromiso (IoCs) o patrones sospechosos específicos mediante consultas de Lucene y DSL.
Ingestión de alertas centralizada: ingiere documentos de OpenSearch como alertas procesables en Google SecOps para asegurarte de que los eventos de seguridad de tu lago de datos se prioricen y se investiguen.
Recuperación de datos contextuales: enriquece los casos de seguridad actuales extrayendo automáticamente registros o datos históricos relacionados de OpenSearch para proporcionar a los analistas un contexto más profundo durante una investigación.
Asignación de datos flexible: asigna dinámicamente niveles de gravedad y etiquetas de entorno de documentos de OpenSearch a los estándares de Google SecOps para mantener la coherencia en diferentes fuentes de registros.
Antes de empezar
Antes de configurar la integración en la plataforma Google SecOps, comprueba que tienes lo siguiente:
Archivo de certificado de CA: un archivo de autoridad de certificación válido para proteger la conexión.
Versión de integración más reciente: asegúrate de que estás usando la versión más reciente de la integración de OpenSearch.
Certificado codificado en Base64: el contenido del archivo de certificado de tu AC debe convertirse en una cadena Base64 antes de la configuración.
Para configurar la integración con un certificado de CA, sigue estos pasos:
- Abre la página de parámetros de configuración de la integración.
- Pega la cadena codificada con Base64 en el campo Archivo de certificado de CA.
- Selecciona la casilla Verificar SSL.
- Haz clic en Probar para verificar que la integración se ha configurado correctamente.
Parámetros de integración
La integración de OpenSearch requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Server Address |
Obligatorio. La URL del endpoint de la instancia de OpenSearch, incluido el protocolo y el puerto (por ejemplo, |
Username |
Opcional. Nombre de usuario utilizado para autenticar la instancia de OpenSearch. |
Password |
Opcional. La contraseña asociada al nombre de usuario especificado. |
API Token |
Opcional. El token de API que se usa para la autenticación como alternativa a un nombre de usuario y una contraseña. |
Authenticate |
Opcional. Si se selecciona esta opción, la integración autenticará la conexión con el servidor de OpenSearch mediante las credenciales proporcionadas. |
Verify SSL |
Opcional. Si se selecciona, la integración valida el certificado SSL al conectarse al servidor OpenSearch. |
CA Certificate File |
Opcional. El contenido del archivo de certificado de la autoridad de certificación (CA) en formato PEM, que se usa para verificar el certificado SSL del servidor. |
Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta Configurar integraciones.
Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en los cuadernos de estrategias. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Admitir varias instancias.
Acciones
Para obtener más información sobre las acciones, consulta Responder a acciones pendientes desde Tu espacio de trabajo y Realizar una acción manual.
Búsqueda avanzada en ES
Usa la acción Búsqueda avanzada de ES para ejecutar una consulta de búsqueda preconfigurada en el servidor de OpenSearch y obtener los resultados en formato de diccionario.
Esta acción no se ejecuta en entidades de Google SecOps.
Entradas de acciones
La acción Búsqueda avanzada de ES requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Opcional. El patrón de búsqueda del índice de OpenSearch (por ejemplo, El valor predeterminado es |
Query |
Opcional. La consulta de búsqueda que se va a realizar con la sintaxis de Lucene (por ejemplo, El valor predeterminado es |
Limit |
Opcional. Número máximo de documentos que se devolverán. Asigne el valor El valor predeterminado es |
Display Field |
Opcional. Lista separada por comas de campos específicos que se devolverán. El valor predeterminado es |
Search Field |
Opcional. El campo específico en el que se buscará cuando El valor predeterminado es |
Timestamp Field |
Opcional. Nombre del campo que se usa para el filtro basado en la hora. Si El valor predeterminado es |
Oldest Date |
Opcional. Fecha de inicio de la búsqueda. La acción devuelve los registros que se produjeron en esta marca de tiempo o después. Puedes proporcionar una marca de tiempo UTC exacta ( El valor predeterminado es |
Earliest Date |
Opcional. Fecha de finalización de la búsqueda. La acción devuelve registros que se produjeron en esta marca de tiempo o antes. Puedes proporcionar una marca de tiempo UTC exacta ( El valor predeterminado es |
Resultados de la acción
La acción Búsqueda avanzada de ES proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | No disponible |
| Mensajes de salida | Disponible |
| Resultado de la secuencia de comandos | Disponible |
Resultado de la secuencia de comandos
En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos cuando se usa la acción Búsqueda avanzada de ES:
| Nombre del resultado del script | Valor |
|---|---|
results |
RESULTS |
Búsqueda de DSL
Usa la acción Búsqueda DSL para realizar una búsqueda exhaustiva en todos los índices de OpenSearch y obtener los resultados en formato de diccionario.
Esta acción no se ejecuta en entidades de Google SecOps.
Entradas de acciones
La acción Búsqueda de DSL requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Opcional. El patrón de búsqueda del índice de OpenSearch (por ejemplo, El valor predeterminado es |
Query |
Opcional. La consulta de búsqueda que se va a realizar con la sintaxis de Lucene (por ejemplo, El valor predeterminado es |
Limit |
Opcional. Número máximo de documentos que se devolverán. Asigne el valor El valor predeterminado es |
Resultados de la acción
La acción Búsqueda de DSL proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | Disponible |
| Mensajes de salida | Disponible |
| Resultado de la secuencia de comandos | Disponible |
Resultado de JSON
En el siguiente ejemplo se muestra la salida del resultado JSON recibida al usar la acción Búsqueda con DSL:
[
{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source": {
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
}, {
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
Resultado de la secuencia de comandos
En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Búsqueda de DSL:
| Nombre del resultado del script | Valor |
|---|---|
results |
RESULTS |
Ping
Usa la acción Ping para probar la conectividad con OpenSearch.
Esta acción no se ejecuta en entidades de Google SecOps.
Entradas de acciones
Ninguno
Resultados de la acción
La acción Ping proporciona las siguientes salidas:
| Tipo de salida de la acción | Disponibilidad |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | No disponible |
| Mensajes de salida | Disponible |
| Resultado de la secuencia de comandos | Disponible |
Resultado de la secuencia de comandos
En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Ping:
| Nombre del resultado del script | Valor |
|---|---|
| is_success | true o false |
Búsqueda sencilla de ES
Usa la acción Búsqueda simple en ES para realizar una búsqueda básica en todos los campos indexados de OpenSearch y obtener los resultados en formato de diccionario.
Esta acción no se ejecuta en entidades de Google SecOps.
Entradas de acciones
La acción Búsqueda simple en ES requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Opcional. El patrón de búsqueda del índice de OpenSearch (por ejemplo, El valor predeterminado es |
Query |
Opcional. La consulta de búsqueda que se va a realizar con la sintaxis de Lucene (por ejemplo, El valor predeterminado es |
Limit |
Opcional. Número máximo de documentos que se devolverán. Asigne el valor El valor predeterminado es |
Resultados de la acción
La acción Búsqueda simple en ES proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad |
|---|---|
| Adjunto del panel de casos | No disponible |
| Enlace del panel de casos | No disponible |
| Tabla del panel de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | Disponible |
| Mensajes de salida | Disponible |
| Resultado de la secuencia de comandos | Disponible |
Resultado de JSON
En el siguiente ejemplo se muestra la salida de resultados JSON recibida al usar la acción Búsqueda simple en ES:
[{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source":
{
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
},
{
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
Resultado de la secuencia de comandos
En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Búsqueda simple en ES:
| Nombre del resultado del script | Valor |
|---|---|
results |
RESULTS |
Conectores
Para obtener más información sobre cómo configurar conectores en Google SecOps, consulta el artículo Ingerir datos (conectores).
Conector OpenSearch
Usa el conector OpenSearch para buscar en los índices de OpenSearch especificados con una consulta de Lucene proporcionada e ingerir documentos como alertas en Google SecOps.
Entradas de conectores
El conector OpenSearch requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Product Field Name |
Obligatorio. Nombre del campo en el que se almacena el nombre del producto. El nombre del producto influye principalmente en la asignación. Para optimizar y mejorar el proceso de asignación del conector, el valor predeterminado se resuelve en un valor de reserva al que se hace referencia desde el código. Cualquier entrada no válida de este parámetro se resuelve en un valor de reserva de forma predeterminada. El valor predeterminado es |
Event Field Name |
Obligatorio. Nombre del campo que determina el nombre del evento (subtipo). El valor predeterminado es |
Script Timeout (Seconds) |
Obligatorio. El límite de tiempo de espera, en segundos, del proceso de Python que ejecuta la secuencia de comandos actual. El valor predeterminado es |
Server Address |
Obligatorio. La URL del endpoint de la instancia de OpenSearch, incluido el protocolo y el puerto (por ejemplo, |
Username |
Opcional. Nombre de usuario utilizado para autenticar la instancia de OpenSearch. |
Password |
Opcional. La contraseña asociada al nombre de usuario especificado. |
Authenticate |
Opcional. Si se selecciona esta opción, la integración autenticará la conexión con el servidor de OpenSearch mediante las credenciales proporcionadas. |
API Token |
Opcional. El token de API que se usa para la autenticación como alternativa a un nombre de usuario y una contraseña. |
Verify SSL |
Opcional. Si se selecciona, la integración valida el certificado SSL al conectarse al servidor OpenSearch. |
Alert Name Field |
Obligatorio. Nombre del campo que contiene el nombre de la alerta (por ejemplo, |
Timestamp Field |
Obligatorio. Nombre del campo que contiene la marca de tiempo (por ejemplo, |
Environment Field Name |
Opcional. Nombre del campo en el que se almacena el nombre del entorno. Si falta el campo de entorno, el conector usa el valor predeterminado. El valor predeterminado es |
Indexes |
Opcional. El patrón de índice que se va a buscar. Usa |
Query |
Opcional. La consulta de búsqueda que se va a realizar con la sintaxis de Lucene. |
Alerts Count Limit |
Obligatorio. Número máximo de alertas que se pueden obtener en un solo ciclo. El valor predeterminado es |
Max Days Backwards |
Obligatorio. Número de días anteriores a la fecha actual para obtener alertas. Este parámetro se puede aplicar a la iteración inicial del conector después de habilitarlo por primera vez o al valor de reserva de una marca de tiempo de conector caducada. El valor predeterminado es |
Severity Field Name |
Opcional. Nombre del campo que se usa para extraer el valor de gravedad de la alerta. Si el campo contiene valores numéricos (números enteros o decimales), el conector los asigna automáticamente a los niveles de gravedad de Google SecOps (por ejemplo, |
Proxy Server Address |
Opcional. Dirección del servidor proxy que se va a usar. |
Proxy Username |
Opcional. Nombre de usuario utilizado para autenticarse en el servidor proxy. |
Proxy Password |
Opcional. Contraseña utilizada para autenticarse en el servidor proxy. |
Environment Regex Pattern |
Opcional. Patrón de expresión regular que se va a ejecutar en el valor encontrado en el campo Usa el valor predeterminado Si el patrón de expresión regular es nulo o está vacío, o si el valor del entorno es nulo, el resultado final del entorno es el entorno predeterminado. |
Conector DSL de OpenSearch
Usa el conector DSL de OpenSearch para ingerir documentos como alertas en Google SecOps haciendo llamadas a la API REST con consultas de lenguaje específico de dominio (DSL).
Entradas de conectores
El conector DSL de OpenSearch requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Product Field Name |
Obligatorio. Nombre del campo en el que se almacena el nombre del producto. El nombre del producto influye principalmente en la asignación. Para optimizar y mejorar el proceso de asignación del conector, el valor predeterminado se resuelve en un valor de reserva al que se hace referencia desde el código. Cualquier entrada no válida de este parámetro se resuelve en un valor de reserva de forma predeterminada. El valor predeterminado es El valor predeterminado es |
Event Field Name |
Obligatorio. Nombre del campo que determina el nombre del evento (subtipo). El valor predeterminado es |
Script Timeout (Seconds) |
Obligatorio. El límite de tiempo de espera, en segundos, del proceso de Python que ejecuta la secuencia de comandos actual. El valor predeterminado es |
Server Address |
Obligatorio. La URL del endpoint de la instancia de OpenSearch, incluido el protocolo (por ejemplo, |
Port |
Obligatorio. Puerto utilizado para conectarse al servidor de la API OpenSearch. |
Query |
Obligatorio. La consulta DSL utilizada para la búsqueda en formato JSON. Para mejorar la estabilidad del conector, se recomienda incluir una clave de marca de tiempo de ordenación en orden ascendente en la consulta. |
Index |
Obligatorio. El índice usado para la búsqueda. Usa |
Timestamp Field |
Obligatorio. Nombre del campo que contiene la marca de tiempo (por ejemplo, |
Alert Field Name |
Obligatorio. Nombre del campo que contiene el nombre de la alerta (por ejemplo, |
Description Field |
Opcional. Nombre del campo que contiene la descripción de la alerta (por ejemplo, |
Severity |
Obligatorio. Nivel de gravedad estático que se asignará a todas las alertas insertadas. Este parámetro se usa si El valor predeterminado es |
Alert Severity |
Opcional. La gravedad que se asignará a las alertas. Este parámetro tiene prioridad sobre
Si quieres usar la asignación dinámica con el |
Severity Field Name |
Opcional. Nombre del campo que se usa para extraer el valor de gravedad de la alerta. Si el campo contiene valores numéricos (enteros o flotantes), el conector los asigna automáticamente a los niveles de gravedad de Google SecOps (por ejemplo, |
Alerts Count Limit |
Opcional. Número máximo de alertas que se pueden obtener en un solo ciclo. El valor predeterminado es |
Authenticate |
Opcional. Si se selecciona esta opción, el conector autentica la conexión mediante las credenciales proporcionadas. |
Username |
Opcional. Nombre de usuario utilizado para autenticar la instancia de OpenSearch. |
Password |
Opcional. Contraseña usada para autenticarse en la instancia de OpenSearch. |
Use SSL |
Opcional. Si se selecciona esta opción, el conector habilita una conexión SSL/TLS al servidor. |
Proxy Server Address |
Opcional. La dirección del servidor proxy que se va a usar para la conexión. |
Proxy Username |
Opcional. Nombre de usuario utilizado para autenticarse en el servidor proxy. |
Proxy Password |
Opcional. Contraseña utilizada para autenticarse en el servidor proxy. |
Environment Field Name |
Opcional. Nombre del campo en el que se almacena el nombre del entorno. Si falta el campo de entorno, el conector usa el valor predeterminado. El valor predeterminado es |
Environment Regex Pattern |
Opcional. Patrón de expresión regular que se va a ejecutar en el valor encontrado en el campo Usa el valor predeterminado Si el patrón de expresión regular es nulo o está vacío, o si el valor del entorno es nulo, el resultado final del entorno es el entorno predeterminado. El valor predeterminado es |
Compatibilidad con notaciones
El conector admite tres notaciones diferentes para la asignación de campos. Por ejemplo, para asignar event.type, puedes proporcionar _source_event_type, event_type o event.type.
Esto se aplica a los siguientes parámetros:
Product Field NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription Field(solo con el conector DSL)
Cómo asignar la gravedad en el conector
Si Severity Field Name contiene valores numéricos (enteros o flotantes), el conector los asigna de la siguiente manera:
- Crítico: 100
- Alto: 80 ≤ x < 100
- Medio: 60 ≤ x < 80
- Bajo: 40 ≤ x < 60
- Informativo: x < 40
En el caso de los valores de cadena, debes actualizar el archivo severity_map_config.json en la carpeta de secuencias de comandos del conector.
Configuración de ejemplo
Para asignar un campo event.severity que contenga "Malicious", "Unknown" o "Benign", sigue estos pasos:
- Introduce
event.severityen el parámetro Nombre del campo de gravedad. - Actualización de
severity_map_config.json:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.