Integra OpenSearch con Google SecOps
En este documento, se explica cómo integrar OpenSearch con Google Security Operations.
Casos de uso
La integración de OpenSearch aborda los siguientes casos de uso de investigación y organización de la seguridad:
Búsqueda de amenazas automatizada: Busca de forma periódica en todos los índices de OpenSearch indicadores de compromiso (IoC) específicos o patrones sospechosos con consultas de Lucene y DSL.
Transferencia centralizada de alertas: Transfiere documentos de OpenSearch como alertas prácticas a Google SecOps, lo que garantiza que se prioricen y se investiguen los eventos de seguridad de tu data lake.
Recuperación de datos contextuales: Enriquece los casos de seguridad existentes extrayendo automáticamente los registros relacionados o los datos históricos de OpenSearch para proporcionar a los analistas un contexto más detallado durante una investigación.
Asignación de datos flexible: Asigna de forma dinámica los niveles de gravedad y las etiquetas de entorno de los documentos de OpenSearch a los estándares de Google SecOps para mantener la coherencia entre las diferentes fuentes de registro.
Antes de comenzar
Antes de configurar la integración en la plataforma de Google SecOps, verifica que tengas lo siguiente:
Archivo de certificado de la AC: Es un archivo de autoridad certificada válido para proteger la conexión.
Versión de integración más reciente: Asegúrate de usar la versión más reciente de la integración de OpenSearch.
Certificado codificado en Base64: El contenido del archivo de certificado de la AC debe convertirse en una cadena Base64 antes de la configuración.
Para configurar la integración con un certificado de la AC, completa los siguientes pasos:
- Abre la página de parámetros de configuración de la integración.
- Pega la cadena codificada en Base64 en el campo Archivo de certificado de la AC.
- Selecciona la casilla de verificación Verificar SSL.
- Haz clic en Probar para verificar que la integración se haya configurado correctamente.
Parámetros de integración
La integración de OpenSearch requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Server Address |
Obligatorio. Es la URL del extremo de la instancia de OpenSearch, incluidos el protocolo y
el puerto (por ejemplo, |
Username |
Es opcional. Es el nombre de usuario que se usa para autenticarse en la instancia de OpenSearch. |
Password |
Es opcional. Es la contraseña asociada con el nombre de usuario especificado. |
API Token |
Es opcional. Es el token de la API que se usa para la autenticación como alternativa a un nombre de usuario y una contraseña. |
Authenticate |
Es opcional. Si se selecciona, la integración autentica la conexión con el servidor de OpenSearch con las credenciales proporcionadas. |
Verify SSL |
Es opcional. Si se selecciona, la integración valida el certificado SSL cuando se conecta al servidor de OpenSearch. |
CA Certificate File |
Es opcional. Es el contenido del archivo de certificado de la autoridad certificadora (AC) 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 Configura integraciones.
Si es necesario, puedes realizar cambios más adelante. Después de configurar una instancia de integración, puedes usarla en las guías. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Cómo admitir varias instancias.
Acciones
Para obtener más información sobre las acciones, consulta Responde a las acciones pendientes desde tu escritorio y Ejecuta una acción manual en tu caso.
Búsqueda avanzada de ES
Usa la acción Búsqueda avanzada de ES para ejecutar una consulta de búsqueda preconfigurada en el servidor de OpenSearch y recuperar los resultados en formato de diccionario.
Esta acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
La acción Búsqueda avanzada de ES requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Es opcional. Es el patrón de búsqueda para el índice de OpenSearch (por ejemplo,
El valor predeterminado es |
Query |
Es opcional. Es la consulta de búsqueda que se realizará con la sintaxis de Lucene (por ejemplo,
El valor predeterminado es |
Limit |
Es opcional. Es la cantidad máxima de documentos que se devolverán. Establece este valor en El valor predeterminado es |
Display Field |
Es opcional. Es una lista separada por comas de los campos específicos que se deben devolver. El valor predeterminado es |
Search Field |
Es opcional. Es el campo específico que se debe buscar cuando El valor predeterminado es |
Timestamp Field |
Es opcional. Es el nombre del campo que se usa para el filtrado basado en el tiempo. Si El valor predeterminado es |
Oldest Date |
Es opcional. Es la fecha de inicio de la búsqueda. La acción devuelve los registros que se produjeron en esta marca de tiempo o después de ella. Puedes proporcionar una marca de tiempo UTC exacta
( El valor predeterminado es |
Earliest Date |
Es opcional. Es la fecha de finalización de la búsqueda. La acción devuelve los registros que se produjeron en esta marca de tiempo o antes de ella. 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 resultado de la acción | Disponibilidad |
|---|---|
| Archivo adjunto del muro de casos | No disponible |
| Vínculo al muro de casos | No disponible |
| Tabla del muro de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | No disponible |
| Mensajes de salida | Disponible |
| Resultado de secuencia de comandos | Disponible |
Resultado de secuencia de comandos
En la siguiente tabla, se indica el valor del resultado de la secuencia de comandos cuando se usa la acción Búsqueda avanzada de ES:
| Nombre del resultado de la secuencia de comandos | Valor |
|---|---|
results |
RESULTS |
Búsqueda de DSL
Usa la acción Búsqueda de DSL para realizar una búsqueda exhaustiva en todos los índices de OpenSearch y recuperar los resultados en formato de diccionario.
Esta acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
La acción DSL Search requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Es opcional. Es el patrón de búsqueda para el índice de OpenSearch (por ejemplo,
El valor predeterminado es |
Query |
Es opcional. Es la consulta de búsqueda que se realizará con la sintaxis de Lucene (por ejemplo,
El valor predeterminado es |
Limit |
Es opcional. Es la cantidad máxima de documentos que se devolverán. Establece este valor en El valor predeterminado es |
Resultados de la acción
La acción DSL Search proporciona los siguientes resultados:
| Tipo de resultado de la acción | Disponibilidad |
|---|---|
| Archivo adjunto del muro de casos | No disponible |
| Vínculo al muro de casos | No disponible |
| Tabla del muro de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | Disponible |
| Mensajes de salida | Disponible |
| Resultado de secuencia de comandos | Disponible |
Resultado de JSON
En el siguiente ejemplo, se muestra el resultado JSON que se recibe cuando se usa la acción Búsqueda de 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 secuencia de comandos
En la siguiente tabla, se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Búsqueda de DSL:
| Nombre del resultado de la secuencia de comandos | Valor |
|---|---|
results |
RESULTS |
Ping
Usa la acción Ping para probar la conectividad a OpenSearch.
Esta acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
Ninguno
Resultados de la acción
La acción Ping proporciona los siguientes resultados:
| Tipo de resultado de la acción | Disponibilidad |
|---|---|
| Archivo adjunto del muro de casos | No disponible |
| Vínculo al muro de casos | No disponible |
| Tabla del muro de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | No disponible |
| Mensajes de salida | Disponible |
| Resultado de secuencia de comandos | Disponible |
Resultado de secuencia de comandos
En la siguiente tabla, se indica el valor del resultado de la secuencia de comandos cuando se usa la acción Ping:
| Nombre del resultado de la secuencia de comandos | Valor |
|---|---|
| is_success | true o false |
Búsqueda simple de ES
Usa la acción Simple ES Search para realizar una búsqueda básica en todos los campos indexados en OpenSearch y recuperar los resultados en un formato de diccionario.
Esta acción no se ejecuta en las entidades de Google SecOps.
Entradas de acción
La acción Simple ES Search requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Es opcional. Es el patrón de búsqueda para el índice de OpenSearch (por ejemplo,
El valor predeterminado es |
Query |
Es opcional. Es la consulta de búsqueda que se realizará con la sintaxis de Lucene (por ejemplo,
El valor predeterminado es |
Limit |
Es opcional. Es la cantidad máxima de documentos que se devolverán. Establece este valor en El valor predeterminado es |
Resultados de la acción
La acción Simple ES Search proporciona los siguientes resultados:
| Tipo de resultado de la acción | Disponibilidad |
|---|---|
| Archivo adjunto del muro de casos | No disponible |
| Vínculo al muro de casos | No disponible |
| Tabla del muro de casos | No disponible |
| Tabla de enriquecimiento | No disponible |
| Resultado de JSON | Disponible |
| Mensajes de salida | Disponible |
| Resultado de secuencia de comandos | Disponible |
Resultado de JSON
En el siguiente ejemplo, se muestra el resultado JSON que se recibe cuando se usa la acción Simple ES Search:
[{
"_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 secuencia de comandos
En la siguiente tabla, se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Búsqueda simple de ES:
| Nombre del resultado de la secuencia de comandos | Valor |
|---|---|
results |
RESULTS |
Conectores
Para obtener más información sobre cómo configurar conectores en Google SecOps, consulta Transferir tus datos (conectores).
Conector de OpenSearch
Usa el conector de OpenSearch para buscar índices de OpenSearch especificados con una consulta de Lucene proporcionada y transferir documentos como alertas a Google SecOps.
Entradas del conector
El conector de OpenSearch requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Product Field Name |
Obligatorio. Es el nombre del campo en el que se almacena el nombre del producto. El nombre del producto afecta principalmente la asignación. Para optimizar y mejorar el proceso de asignación del conector, el valor predeterminado se resuelve en un valor de resguardo al que se hace referencia desde el código. Cualquier entrada no válida para este parámetro se resuelve en un valor de resguardo de forma predeterminada. El valor predeterminado es |
Event Field Name |
Obligatorio. Es el nombre del campo que determina el nombre del evento (subtipo). El valor predeterminado es |
Script Timeout (Seconds) |
Obligatorio. Es el límite de tiempo de espera, en segundos, para el proceso de Python que ejecuta la secuencia de comandos actual. El valor predeterminado es |
Server Address |
Obligatorio. Es la URL del extremo de la instancia de OpenSearch, incluidos el protocolo y
el puerto (por ejemplo, |
Username |
Es opcional. Es el nombre de usuario que se usa para autenticarse en la instancia de OpenSearch. |
Password |
Es opcional. Es la contraseña asociada con el nombre de usuario especificado. |
Authenticate |
Es opcional. Si se selecciona, la integración autentica la conexión con el servidor de OpenSearch con las credenciales proporcionadas. |
API Token |
Es opcional. Es el token de la API que se usa para la autenticación como alternativa a un nombre de usuario y una contraseña. |
Verify SSL |
Es opcional. Si se selecciona, la integración valida el certificado SSL cuando se conecta al servidor de OpenSearch. |
Alert Name Field |
Obligatorio. Es el nombre del campo que contiene el nombre de la alerta (por ejemplo,
|
Timestamp Field |
Obligatorio. Es el nombre del campo que contiene la marca de tiempo (por ejemplo,
|
Environment Field Name |
Es opcional. Es el nombre del campo en el que se almacena el nombre del entorno. Si falta el campo environment, el conector usa el valor predeterminado. El valor predeterminado es |
Indexes |
Es opcional. Es el patrón de índice que se buscará. Usa |
Query |
Es opcional. Es la consulta de búsqueda que se realizará con la sintaxis de Lucene. |
Alerts Count Limit |
Obligatorio. Es la cantidad máxima de alertas que se extraerán en un solo ciclo. El valor predeterminado es |
Max Days Backwards |
Obligatorio. Es la cantidad de días anteriores al momento actual para recuperar las alertas. Este parámetro se puede aplicar a la iteración inicial del conector después de que lo habilites por primera vez o al valor de resguardo de una marca de tiempo de conector vencida. El valor predeterminado es |
Severity Field Name |
Es opcional. Es el 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 flotantes), el conector
los asigna automáticamente a los niveles de gravedad de Google SecOps (por
ejemplo, |
Proxy Server Address |
Es opcional. Es la dirección del servidor proxy que se usará. |
Proxy Username |
Es opcional. Es el nombre de usuario que se usa para autenticarse con el servidor proxy. |
Proxy Password |
Es opcional. Es la contraseña que se usa para autenticarse con el servidor proxy. |
Environment Regex Pattern |
Es opcional. Es un patrón de expresión regular que se ejecuta en el valor que se encuentra 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 de DSL de OpenSearch
Usa el conector de DSL de OpenSearch para transferir documentos como alertas a Google SecOps realizando llamadas a la API de REST con consultas de lenguaje específico del dominio (DSL).
Entradas del conector
El conector de DSL de OpenSearch requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Product Field Name |
Obligatorio. Es el nombre del campo en el que se almacena el nombre del producto. El nombre del producto afecta principalmente la asignación. Para optimizar y mejorar el proceso de asignación del conector, el valor predeterminado se resuelve en un valor de resguardo al que se hace referencia desde el código. Cualquier entrada no válida para este parámetro se resuelve en un valor de resguardo de forma predeterminada. El valor predeterminado es El valor predeterminado es |
Event Field Name |
Obligatorio. Es el nombre del campo que determina el nombre del evento (subtipo). El valor predeterminado es |
Script Timeout (Seconds) |
Obligatorio. Es el límite de tiempo de espera, en segundos, para el proceso de Python que ejecuta la secuencia de comandos actual. El valor predeterminado es |
Server Address |
Obligatorio. Es la URL del extremo de la instancia de OpenSearch, incluido el protocolo (por
ejemplo, |
Port |
Obligatorio. Es el puerto que se usa para conectarse al servidor de la API de OpenSearch. |
Query |
Obligatorio. Es la consulta de DSL que se usa para la búsqueda en formato JSON. Para mejorar la estabilidad del conector, se recomienda incluir una clave de marca de tiempo de ordenamiento en orden ascendente en tu consulta. |
Index |
Obligatorio. Es el índice que se usa para la búsqueda. Usa |
Timestamp Field |
Obligatorio. Es el nombre del campo que contiene la marca de tiempo (por ejemplo,
|
Alert Field Name |
Obligatorio. Es el nombre del campo que contiene el nombre de la alerta (por ejemplo,
|
Description Field |
Es opcional. Es el nombre del campo que contiene la descripción de la alerta (por ejemplo,
|
Severity |
Obligatorio. Es el nivel de gravedad estático que se asignará a todas las alertas transferidas. Este
parámetro se usa si El valor predeterminado es |
Alert Severity |
Es opcional. Es la gravedad que se asignará a las alertas. Este parámetro tiene prioridad sobre
Si deseas usar la asignación dinámica con |
Severity Field Name |
Es opcional. Es el 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 flotantes), el conector
los asigna automáticamente a los niveles de gravedad de Google SecOps
(por ejemplo, |
Alerts Count Limit |
Es opcional. Es la cantidad máxima de alertas que se extraerán en un solo ciclo. El valor predeterminado es |
Authenticate |
Es opcional. Si se selecciona, el conector autentica la conexión con las credenciales proporcionadas. |
Username |
Es opcional. Es el nombre de usuario que se usa para autenticarse en la instancia de OpenSearch. |
Password |
Es opcional. Es la contraseña que se usa para autenticar con la instancia de OpenSearch. |
Use SSL |
Es opcional. Si se selecciona, el conector habilita una conexión SSL/TLS al servidor. |
Proxy Server Address |
Es opcional. Es la dirección del servidor proxy que se usará para la conexión. |
Proxy Username |
Es opcional. Es el nombre de usuario que se usa para autenticarse con el servidor proxy. |
Proxy Password |
Es opcional. Es la contraseña que se usa para autenticarse con el servidor proxy. |
Environment Field Name |
Es opcional. Es el nombre del campo en el que se almacena el nombre del entorno. Si falta el campo environment, el conector usa el valor predeterminado. El valor predeterminado es |
Environment Regex Pattern |
Es opcional. Es un patrón de expresión regular que se ejecuta en el valor que se encuentra 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 la notación
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 conector DSL)
Cómo asignar la gravedad en el conector
Si el Severity Field Name contiene valores numéricos (números enteros o de punto flotante), el
conector los asigna de la siguiente manera:
- Crítica: 100
- Alto: 80 ≤ x < 100
- Medio: 60 ≤ x < 80
- Bajo: 40 ≤ x < 60
- Informativo: x < 40
Para 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 "Malicioso", "Desconocido" o "Inofensivo", haz lo siguiente:
- Ingresa
event.severityen el parámetro Severity Field Name. - Actualiza
severity_map_config.jsoncon este comando:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.