Integra OpenSearch con Google SecOps
Versión de la integración: 1.0
En este documento, se explica cómo integrar OpenSearch en 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 automatizada de amenazas: Busca periódicamente en todos los índices de OpenSearch indicadores de compromiso (IoC) específicos o patrones sospechosos con consultas de Lucene y DSL.
Ingesta de alertas centralizada: Ingesta documentos de OpenSearch como alertas prácticas en Google SecOps, lo que garantiza que los eventos de seguridad de tu lago de datos se prioricen y se investiguen.
Recuperación de datos contextuales: Enriquecer los casos de seguridad existentes extrayendo automáticamente registros relacionados o datos históricos de OpenSearch para proporcionar a los analistas un contexto más profundo 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 en diferentes fuentes de registros.
Antes de comenzar
Antes de configurar la integración en la plataforma de SecOps de Google, verifica que tengas lo siguiente:
Archivo de certificado de CA: Es un archivo de autoridad certificadora 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 CA debe convertirse en una cadena Base64 antes de la configuración.
Para configurar la integración con un certificado de CA, 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 CA Certificate File.
- 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, incluido el protocolo y el puerto (por ejemplo, |
Username |
Es opcional. Nombre de usuario que se usa para la autenticación con 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 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 esta opción, la integración autentica la conexión al servidor de OpenSearch con las credenciales proporcionadas. |
Verify SSL |
Es opcional. Si se selecciona esta opción, 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 (CA) en formato PEM, que se usa para verificar el certificado SSL del servidor. |
Si quieres obtener instrucciones para configurar una integración en Google SecOps, consulta Configura integraciones.
Si es necesario, puedes hacer 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 Compatibilidad con varias instancias.
Acciones
Para obtener más información sobre las acciones, consulta Cómo responder a las acciones pendientes de Tu escritorio y Cómo realizar una acción manual.
Búsqueda avanzada en ES
Usa la acción Advanced ES Search 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 SecOps de Google.
Entradas de acción
La acción Advanced ES Search requiere los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
Index |
Es opcional. Es el patrón de búsqueda del índice de OpenSearch (por ejemplo, El valor predeterminado es |
Query |
Es opcional. Es la 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 en el que se realizará la búsqueda 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 registros que ocurrieron 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 registros que ocurrieron 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 Advanced ES Search proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad |
|---|---|
| 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 muestra el valor del resultado del script cuando se usa la acción Advanced ES Search:
| Nombre del resultado de la secuencia de comandos | Valor |
|---|---|
results |
RESULTS |
Búsqueda de DSL
Usa la acción DSL Search para realizar una búsqueda integral en todos los índices de OpenSearch y recuperar los resultados en formato de diccionario.
Esta acción no se ejecuta en las entidades de SecOps de Google.
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 del índice de OpenSearch (por ejemplo, El valor predeterminado es |
Query |
Es opcional. Es la 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 salida de la acción | Disponibilidad |
|---|---|
| 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 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 secuencia de comandos
En la siguiente tabla, se indica el valor del resultado de la secuencia de comandos cuando se usa la acción DSL Search:
| 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 SecOps de Google.
Entradas de acción
Ninguno
Resultados de la acción
La acción Ping proporciona los siguientes resultados:
| Tipo de salida de la acción | Disponibilidad |
|---|---|
| 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 en ES
Usa la acción Simple ES Search para realizar una búsqueda básica en todos los campos indexados de OpenSearch y recuperar los resultados en formato de diccionario.
Esta acción no se ejecuta en las entidades de SecOps de Google.
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 del índice de OpenSearch (por ejemplo, El valor predeterminado es |
Query |
Es opcional. Es la 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 salida de la acción | Disponibilidad |
|---|---|
| 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 indica el valor del resultado del script cuando se usa la acción Simple ES Search:
| 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 Ingiere tus datos (conectores).
Conector de OpenSearch
Usa el conector de OpenSearch para buscar índices de OpenSearch especificados con una consulta de Lucene proporcionada y, luego, ingiere documentos como alertas en 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. De forma predeterminada, cualquier entrada no válida para este parámetro se resuelve en un valor de resguardo. 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 y el puerto (por ejemplo, |
Username |
Es opcional. Nombre de usuario que se usa para la autenticación con la instancia de OpenSearch. |
Password |
Es opcional. Es la contraseña asociada con el nombre de usuario especificado. |
Authenticate |
Es opcional. Si se selecciona esta opción, la integración autentica la conexión al servidor de OpenSearch con las credenciales proporcionadas. |
API Token |
Es opcional. Es el token de 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 esta opción, la integración valida el certificado SSL cuando se conecta al servidor de 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 |
Es opcional. 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 búsqueda que se realizará con la sintaxis de Lucene. |
Alerts Count Limit |
Obligatorio. Es la cantidad máxima de alertas que se pueden extraer en un solo ciclo. El valor predeterminado es |
Max Days Backwards |
Obligatorio. Cantidad de días anteriores al momento actual para recuperar 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 para la marca de tiempo de un conector vencido. 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 de punto flotante), 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. Nombre de usuario que se usa para la autenticación 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 ejecutará 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. De forma predeterminada, cualquier entrada no válida para este parámetro se resuelve en un valor de resguardo. 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 dentro de la consulta. |
Index |
Obligatorio. Es el índice que se usó 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 |
Es opcional. 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 que se hayan transferido. 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 de punto flotante), 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 pueden extraer 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. Nombre de usuario que se usa para la autenticación con la instancia de OpenSearch. |
Password |
Es opcional. Es la contraseña que se usa para la autenticación 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. Nombre de usuario que se usa para la autenticación 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. 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 ejecutará 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ítico: 100
- Alto: 80 ≤ x < 100
- Medio: 60 ≤ x < 80
- Baja: 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", haz lo siguiente:
- Ingresa
event.severityen el parámetro Nombre del campo de gravedad. - 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.