Integra CSV con Google SecOps

En este documento, se describe cómo integrar CSV en Google Security Operations.

En este documento, se explica cómo integrar CSV en Google Security Operations.

Casos de uso

En Google SecOps, la integración de CSV admite los siguientes casos de uso:

  • Búsqueda de amenazas basada en archivos: Busca rápidamente en archivos de registro CSV locales o remotos cadenas específicas o entidades maliciosas para identificar amenazas registradas históricamente.

  • Generación de alertas automatizada: Transfiere automáticamente registros de sistemas heredados que generan datos en formato CSV y conviértelos en alertas reutilizables con asignación de gravedad personalizada.

  • Portabilidad de datos y generación de informes: Transforma de manera programática los resultados de JSON de otras acciones de la guía en formato CSV para exportarlos de forma optimizada a herramientas de informes externas o al almacenamiento local.

  • Enriquecimiento automatizado de entidades: Usa archivos CSV como fuente de inteligencia contra amenazas local para enriquecer automáticamente las entidades y marcarlas como sospechosas durante la ejecución de la guía.

  • Sincronización de datos entre sistemas: Procesa de forma eficiente archivos con varias codificaciones de caracteres, como los formatos heredados de Excel, para garantizar la coherencia de los datos en diferentes herramientas de seguridad.

Antes de comenzar

Antes de configurar la integración en Google SecOps, verifica que tengas lo siguiente:

  • Funciones de la plataforma interna: Esta integración proporciona funciones integradas de procesamiento de archivos y no requiere claves de API ni credenciales de terceros externas para la autenticación.

  • Permisos del sistema de archivos: Si se usa un agente remoto, la integración requiere permisos específicos para acceder a los archivos del sistema host y administrarlos. Ejecuta el siguiente comando en la máquina del agente para otorgar los permisos necesarios para tu directorio de destino: chown scripting:scripting "directory_path"

Parámetros de integración

La integración de CSV requiere los siguientes parámetros:

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Nombre de la instancia String N/A No Es el nombre de la instancia para la que deseas configurar la integración.
Descripción String N/A No Es la descripción de la instancia.
Ejecuta de forma remota Casilla de verificación Desmarcado No Marca el campo para ejecutar la integración configurada de forma remota. Una vez que se marca, aparece la opción para seleccionar el usuario remoto (agente).

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.

Guarda JSON como CSV

Guarda un objeto JSON en un archivo CSV.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Obligatorio Descripción
Objeto JSON JSON N/A Sí Especifica el objeto JSON que se guardará como CSV.
Reemplazar Booleano Falso No Si se habilita, la acción reemplaza el archivo existente.
Ruta de acceso al archivo String N/A Sí Especifica la ruta de acceso absoluta del archivo CSV recién creado. Si solo se proporciona el nombre del archivo, la acción lo almacena en una carpeta /tmp/.

Fecha de ejecución

N/A

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Valor
is_success Verdadero o falso
Resultado de JSON
{"filepath": "{file name}"}
Muro de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Se transformó correctamente el objeto JSON y se guardó en la ruta de acceso del archivo proporcionada. La acción se realizó correctamente.
No se encontró el archivo en la ruta de acceso proporcionada. El archivo no existe.
No se encontró actividad para las cuentas de servicio proporcionadas en Google Cloud Policy Intelligence La acción no pudo encontrar datos para ninguna de las cuentas de servicio de la lista.
Se produjo un error cuando se ejecutaba la acción "Guardar JSON como CSV".

La acción devolvió un error.

Verifica la conexión con el servidor, los parámetros de entrada o las credenciales.

Buscar por cadena

Busca cadenas en archivos CSV.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Ruta de acceso del archivo CSV String N/A Sí Especifica la ruta de acceso al archivo CSV o a una carpeta que contenga todos los archivos CSV. Si se proporciona una carpeta, la acción iterará en todos los archivos CSV de la carpeta.
Columna de CSV String N/A No Especifica una lista separada por comas de las columnas que pueden contener información de la entidad. Si no se proporciona nada, la acción buscará en todas las columnas.
Días hacia atrás String 10 No Especifica cuántos días hacia atrás se deben procesar los archivos CSV.
Valor de búsqueda String N/A No Especifica una cadena que se deba buscar. Si se habilita "Buscar varias cadenas", este parámetro se trata como una lista separada por comas de cadenas que se deben buscar.
Devuelve solo la primera fila. Casilla de verificación Desmarcado No Si se habilita, la acción solo devolverá 1 fila en el primer archivo que coincida con la entidad.
Tipos de codificación de archivos String utf-8, latin-1, iso-8859-1 Sí Una lista separada por comas de los tipos de codificación CSV que se usan para decodificar tus archivos CSV, p. ej., utf-8, latin-1, iso-8859-1, utf-16… El orden en el que se proporcionan los tipos de codificación establece el orden en el que se usan para decodificar archivos, p. ej., (del ejemplo anterior) utf-8 tiene la prioridad más alta y se usará principalmente para decodificar todos los archivos. Si hay un archivo CSV que usa alguna otra codificación, se usará la siguiente en el orden: codificación latin-1, y así sucesivamente, hasta que se use la última codificación.
Buscar varias cadenas Casilla de verificación Desmarcado No Si se habilita, "Valor de búsqueda" funcionará como una lista de valores separados por comas, en lugar de una sola cadena.
Campos que se mostrarán CSV N/A No Especifica una lista separada por comas de los valores que se deben devolver.

Casos de uso

Busca cadenas en archivos CSV.

Fecha de ejecución

Esta acción se ejecuta en todas las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
count_rows_csv Cualquier cantidad de filas count_rows += 1
Resultado de JSON
[
    {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        },
        "Entity": "host"
    }, {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        }, "Entity": "1.1.1.1"
    }
]
Muro de casos
Tipo de resultado Valor/Descripción Tipo
Mensaje de salida*

Para los registros que se encuentran: "Se encontró correctamente información sobre las siguientes cadenas: \n (search_string)"

Si no se encuentran registros para algunas cadenas: "La acción no pudo encontrar información sobre las siguientes cadenas:"

Si no se encuentra información para ningún registro: "No se encontró información para los elementos proporcionados".

Si todas las codificaciones no son válidas: "Error al ejecutar la acción "CSV Search by String". Las codificaciones proporcionadas no son válidas. Verifica la ortografía".

General

Buscar por entidad

Busca entidades en archivos CSV y enriquecerlas.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Ruta de acceso del archivo CSV String N/A Sí Especifica la ruta de acceso al archivo CSV o a una carpeta que contenga todos los archivos CSV. Si se proporciona una carpeta, la acción iterará en todos los archivos CSV de la carpeta.
Columna de CSV String N/A Sí Especifica una lista separada por comas de las columnas que pueden contener información de la entidad. Si no se proporciona nada, la acción buscará en todas las columnas.
Días atrás String 10 Sí Especifica cuántos días hacia atrás se deben procesar los archivos CSV.
Marcar como sospechoso Casilla de verificación Desmarcado No Si se habilita, la acción marcará la entidad como sospechosa si se encontró en el archivo.
Devuelve solo la primera fila. Casilla de verificación Desmarcado No Si se habilita, la acción solo devolverá 1 fila en el primer archivo que coincida con la entidad.
Tipos de codificación de archivos String utf-8, latin-1, iso-8859-1 Sí Una lista separada por comas de los tipos de codificación CSV que se usan para decodificar tus archivos CSV, p. ej., utf-8, latin-1, iso-8859-1, utf-16… El orden en el que se proporcionan los tipos de codificación establece el orden en el que se usan para decodificar archivos, p. ej., (del ejemplo anterior) utf-8 tiene la prioridad más alta y se usará principalmente para decodificar todos los archivos. Si hay un archivo CSV que usa alguna otra codificación, se usará la siguiente en el orden: codificación latin-1, y así sucesivamente, hasta que se use la última codificación.
Enriquece entidades Casilla de verificación Marcado No Si se habilita, la acción agregará información del archivo CSV y la agregará a la tabla de enriquecimiento de la entidad.
Crea estadísticas Casilla de verificación Marcado No Si se habilita, la acción creará una estadística si se encontró la entidad en el archivo.
Campos que se mostrarán CSV N/A No Especifica una lista de valores separados por comas que se deben devolver.

Fecha de ejecución

Esta acción se ejecuta en todas las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
count_rows_csv Cualquier cantidad de filas count_rows += 1
Resultado de JSON
[
    {
        "EntityResult": [{
            "domain": "example.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "Arcsight",
            "id": "1011",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "blocked",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "Ziv",
            "eventHostName": "WS-ZivDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }, {
            "domain": "SmartCompany.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "ESM",
            "id": "1012",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "allowed",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "GG",
            "eventHostName": "WS-GGDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }],
        "Entity": "192.168.11.11"
    }
]
Muro de casos
Tipo de resultado Valor/Descripción Tipo
Mensaje de salida*

Para las entidades que se encuentran: "Se encontró correctamente información sobre las siguientes entidades: \n (entity.identifier)"

Para las entidades que no se encuentran: "No se encontró información sobre las siguientes entidades: \n (entity.identifier)"

Si no se encuentra información para ninguna entidad: "No se encontró información para las entidades proporcionadas".

Si todas las codificaciones no son válidas: "Error executing action "CSV Search by String". Las codificaciones proporcionadas no son válidas. Verifica la ortografía".

General

Ping

Prueba la conectividad.

Parámetros

N/A

Fecha de ejecución

Esta acción se ejecuta en todas las entidades.

Resultados de la acción

Resultado de secuencia de comandos

N/A

Resultado de JSON
N/A

Conectores

Conector de CSV

Recuperar datos de archivos CSV ubicados en una carpeta específica y convertirlos en alertas en el sistema de Google SecOps

En este tema, se ilustra el mecanismo y la configuración con los que Google SecOps produce archivos CSV, junto con los flujos de trabajo admitidos y las acciones que se realizan dentro de la plataforma.

Casos de uso

Un cliente tiene archivos CSV que provienen de un sistema, y los archivos podrían tener codificaciones diferentes.

*   Add support for comma-separated encodings in the Encoding field in the
    connector.
    *   The connector should try the different encodings by their order in
        the field (first encoding - highest priority, last - lowest
        priority) with try/except. If no matching encoding was found -
        consider the file as an error and notify.
    *   Put a default value for the fields - a list of most common CSV
        encodings by priority (utf8, latin1, and iso...)

Acceso a archivos CSV

Acceso de Google SecOps a los archivos CSV: Configura una carpeta para los archivos CSV.

Reenvío de registros CSV a Google SecOps

Cómo trabajar con registros de archivos CSV

Cuando configures Google SecOps para que funcione con archivos CSV como fuente de alertas, se te solicitará que proporciones una carpeta específica de la que se recuperarán los CSV. Google SecOps recuperará cualquier registro dentro de un archivo CSV y lo reenviará para que se traduzca y se contextualice como alertas para los casos.

Cómo asignar la gravedad en el conector

Para asignar la gravedad, debes especificar qué campo se debe usar para obtener el valor de la gravedad en el parámetro "Nombre del campo de gravedad". En la respuesta, puedes obtener 3 tipos de valores: números enteros, números de punto flotante y cadenas. Para los números enteros y los números de punto flotante, no necesitas realizar ninguna configuración adicional. El conector leerá esos valores y los asignará según los estándares de Google SecOps. A continuación, se muestra un recordatorio rápido de cómo se asignan los valores enteros:

  • 100: Crítica
  • 100 > x >= 80: Alto
  • 80 > x >=60 Media
  • 60 > x >=40 Baja
  • 40 > x Informativo

Si en la respuesta trabajamos con cadenas, se requiere una configuración adicional. En la carpeta en la que se encuentran las secuencias de comandos del conector, tendrás un archivo de configuración llamado severity_map_config.json. Este archivo define las reglas de asignación para la gravedad.

Al principio, el archivo se verá de la siguiente manera: 1 2 3 { "Default": 50 }

Imagina una situación en la que los valores necesarios se encuentran en event.severity. event.severity puede contener los siguientes valores: "Malicious", "Benign", "Unknown".

Primero, debemos especificar en el parámetro "Severity Field Name" que usaremos event.severity. En segundo lugar, debemos actualizar el archivo de configuración. Después de los cambios, así es como debería verse el archivo severity_map_config.json: 1 2 3 4 5 6 7 8 { "event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default": 50 }

Ahora, cuando el conector reciba un evento con event.severity = "Malicious", le asignará una gravedad crítica.

Configura el conector de CSV en Google SecOps

Para obtener instrucciones detalladas sobre cómo configurar un conector en Google SecOps, consulta Configura el conector.

Parámetros del conector

Usa los siguientes parámetros para configurar el conector:

Nombre del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Nombre del campo del producto String device_product Sí Es el nombre del campo que se usa para determinar el producto del dispositivo.
Nombre del campo del evento String nombre No Es el nombre del campo que se usa para determinar el nombre del evento (subtipo).
Tiempo de espera de la secuencia de comandos (segundos) String 60 Sí Es el límite de tiempo de espera (en segundos) para el proceso de Python que ejecuta la secuencia de comandos actual.
Ruta de acceso a la carpeta de CSV String N/A Sí Es la ruta de la carpeta que contiene todos los archivos CSV que se deben transferir.
Límite de CSV String N/A No Es la cantidad de archivos CSV que se procesarán por iteración.
Nombre del campo del generador de reglas String N/A No Es el nombre del campo que contiene información sobre el generador de reglas.
Nombre del campo de tiempo String N/A No Es el nombre del campo que contiene información sobre la hora del evento.
El archivo CSV tiene encabezado Casilla de verificación Marcado Sí Indica si el archivo CSV tiene encabezado.
Tipo de codificación de archivo String utf-8 Sí Establece el tipo de codificación del archivo CSV, p.ej., iso-8859-1, latin1, utf-8, utf-16.
Nombre del campo de alerta String N/A No Es el nombre del campo que contiene información sobre el nombre de la alerta.
Nombre del campo de gravedad String N/A No

Es el nombre del campo que contiene información sobre la gravedad.
Nota: Puedes asignar la gravedad según los valores de la respuesta. Para ello, debes ir a la carpeta de ejecución del conector y modificar severity_mapping_config.json. Consulta la documentación como referencia.

Reglas de conector

Compatibilidad con proxy

El conector no admite proxy.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.