Integrar CSV con Google SecOps

Este documento describe cómo integrar archivos CSV con las Operaciones de Seguridad de Google.

Este documento explica cómo integrar archivos CSV con las Operaciones de Seguridad de Google.

Casos de uso

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

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

  • Generación automática de alertas: Ingiere automáticamente registros de sistemas heredados que generan datos en formato CSV, convirtiéndolos en alertas procesables con asignación de gravedad personalizada.

  • Portabilidad de datos e informes: Transforme programáticamente los resultados JSON de otras acciones del playbook en formato CSV para una exportación optimizada a herramientas de informes externas o almacenamiento local.

  • Enriquecimiento automatizado de entidades: Utilice archivos CSV como fuente local de inteligencia sobre amenazas para enriquecer automáticamente las entidades y marcarlas como sospechosas durante la ejecución del playbook.

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

Antes de comenzar

Antes de configurar la integración en Google SecOps, verifique que dispone de lo siguiente:

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

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

Parámetros de integración

La integración 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 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.
Ejecutar de forma remota Casilla de verificación Desmarcado No Marca la casilla para ejecutar la integración configurada de forma remota. Una vez que se marca, aparece la opción para seleccionar al usuario remoto (agente).

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 los playbooks. 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 desde Tu escritorio y Cómo realizar una acción manual.

Guardar JSON en CSV

Guarda un objeto JSON en formato 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 está habilitada, la acción sobrescribe el archivo existente.
Ruta de acceso al archivo String N/A Sí Especifica la ruta de archivo absoluta para el archivo CSV recién creado. Si solo se proporciona el nombre del archivo, la acción guarda el archivo en una carpeta /tmp/.

Ejecutar en

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 al archivo proporcionada. La acción se realizó correctamente.
No se encontró el archivo en la ruta 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 enumeradas.
Se produjo un error al ejecutar la acción "Save JSON To CSV".

La acción devolvió un error.

Verifica la conexión al 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 al CSV String N/A Sí Especifica la ruta de acceso al archivo CSV o la ruta de acceso a la carpeta que contiene todos los archivos CSV. Si se proporciona una carpeta, la acción iterará sobre todos los archivos CSV de la carpeta.
Columna CSV String N/A No Especifique una lista de columnas separadas por comas que pueden contener información de la entidad. Si no se proporciona ningún dato, la acción buscará en todas las columnas.
Días hacia atrás String 10 No Especifique cuántos días hacia atrás se deben procesar los archivos CSV.
Valor de búsqueda String N/A No Especifique la cadena de texto que se desea buscar. Si la opción "Buscar varias cadenas" está habilitada, este parámetro se trata como una lista de cadenas separadas por comas que deben buscarse.
Devuelve solo la primera fila. Casilla de verificación Desmarcado No Si está habilitada, 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 utilizan para decodificar sus archivos CSV, por ejemplo, utf-8, latin-1, iso-8859-1, utf-16... El orden en que se especifican los tipos de codificación determina el orden en que se utilizan para decodificar archivos.Por ejemplo (como se muestra en el ejemplo anterior), utf-8 tiene la máxima prioridad y se utilizará principalmente para decodificar todos los archivos. Si hay un archivo CSV que utiliza otra codificación, se utilizará la siguiente en el orden: la codificación latin-1, y así sucesivamente, hasta que se utilice la última codificación.
Buscar varias cadenas Casilla de verificación Desmarcado No Si está habilitada, la opción "Buscar valor" funcionará como una lista de valores separados por comas, en lugar de una sola cadena de texto.
Campos a devolver CSV N/A No Especifique una lista de valores separados por comas que deben devolverse.

Casos de uso

Busca cadenas en archivos CSV.

Ejecutar en

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 número de filas recuento_filas += 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 encontrados: "Se encontró con éxito información sobre las siguientes cadenas: \n (cadena_de_búsqueda)"

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

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

Si todas las codificaciones son inválidas: "Error al ejecutar la acción "Búsqueda CSV por cadena". Las codificaciones proporcionadas no son válidas. Verifica la ortografía".

General

Búsqueda por entidad

Busque entidades en archivos CSV y enriquézcalas.

Parámetros

Nombre del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Ruta de acceso al CSV String N/A Sí Especifica la ruta de acceso al archivo CSV o la ruta de acceso a la carpeta que contiene todos los archivos CSV. Si se proporciona una carpeta, la acción iterará sobre todos los archivos CSV de la carpeta.
Columna CSV String N/A Sí Especifique una lista de columnas separadas por comas que pueden contener información de la entidad. Si no se proporciona ningún dato, la acción buscará en todas las columnas.
Hace días String 10 Sí Especifique cuántos días hacia atrás se deben procesar los archivos CSV.
Marcar como sospechoso Casilla de verificación Desmarcado No Si está habilitada, esta acción marcará la entidad como sospechosa si se encuentra en el archivo.
Devuelve solo la primera fila. Casilla de verificación Desmarcado No Si está habilitada, 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 utilizan para decodificar sus archivos CSV, por ejemplo, utf-8, latin-1, iso-8859-1, utf-16... El orden en que se especifican los tipos de codificación determina el orden en que se utilizan para decodificar archivos.Por ejemplo (como se muestra en el ejemplo anterior), utf-8 tiene la máxima prioridad y se utilizará principalmente para decodificar todos los archivos. Si hay un archivo CSV que utiliza otra codificación, se utilizará la siguiente en el orden: la codificación latin-1, y así sucesivamente, hasta que se utilice la última codificación.
Enriquece entidades Casilla de verificación Marcado No Si está habilitada, la acción agregará información del archivo CSV y la añadirá a la tabla de enriquecimiento de la entidad.
Crear estadística Casilla de verificación Marcado No Si está habilitada, la acción generará una sugerencia si se encuentra la entidad en el archivo.
Campos a devolver CSV N/A No Especifique una lista de valores separados por comas que deben devolverse.

Ejecutar en

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 número de filas recuento_filas += 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 encontradas: "Se encontró con éxito información sobre las siguientes entidades: \n (entidad.identificador)"

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 son inválidas: "Error al ejecutar la acción "Búsqueda CSV por cadena". Las codificaciones proporcionadas no son válidas. Verifica la ortografía".

General

Ping

Prueba la conectividad.

Parámetros

N/A

Ejecutar en

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 CSV

Extrae datos de archivos CSV ubicados en una carpeta específica y convierte estos datos en alertas en el sistema Google SecOps.

Este tema ilustra el mecanismo y la configuración mediante los cuales Google SecOps genera archivos CSV, junto con los flujos de trabajo compatibles y las acciones que se realizan dentro de la plataforma.

Casos de uso

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

*   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 archivos CSV: configure una carpeta para los archivos CSV.

Envío de registros CSV a Google SecOps

Trabajando con registros de archivos CSV

Al configurar Google SecOps para que funcione con archivos CSV como fuente de alertas, se le solicitará que proporcione una carpeta específica desde donde se obtendrán los archivos CSV. Google SecOps recuperará cualquier registro dentro de un archivo CSV y lo reenviará para que sea traducido y contextualizado como alertas para los casos.

Cómo asignar la gravedad en el conector

Para asignar la gravedad, debe especificar qué campo se debe usar para obtener el valor de gravedad en el parámetro "Nombre del campo de gravedad". En la respuesta se pueden obtener 3 tipos de valores: enteros, números de coma flotante y cadenas de texto. Para números enteros y de coma flotante, no es necesario realizar ninguna configuración adicional. El conector leerá esos valores y los asignará de acuerdo con los estándares SecOps de Google. Un breve recordatorio de cómo se asignan los valores enteros:

  • 100 - Crítico
  • 100 > x >= 80 Alto
  • 80 > x >=60 Medio
  • 60 > x >=40 Bajo
  • 40 > x Informativo

Si en la respuesta estamos trabajando con cadenas de texto, entonces se requiere una configuración adicional. En la carpeta donde se encuentran los scripts del conector, encontrará un archivo de configuración llamado severity_map_config.json. Este archivo define las reglas de mapeo para la gravedad.

Inicialmente, el archivo tendrá este aspecto: 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: "Malicioso", "Benigno", "Desconocido".

Primero, debemos especificar en el parámetro "Nombre del campo de gravedad" que utilizaremos event.severity. En segundo lugar, tenemos que 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 = "Malicioso", le dará una gravedad Crítica.

Configurar el conector CSV en Google SecOps

Si quieres obtener instrucciones detalladas para configurar un conector en Google SecOps, consulta Cómo configurar 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í El nombre del campo utilizado 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í El límite de tiempo de espera (en segundos) para el proceso de Python que ejecuta el script actual.
Ruta de la carpeta CSV String N/A Sí Ruta de la carpeta que contiene todos los archivos CSV que deben ser procesados.
Límite de CSV String N/A No ¿Cuántos archivos CSV procesar 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 Nombre del campo que contiene información sobre la hora del evento.
CSV Has Header 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 CSV, p.ej., iso-8859-1, latin1, utf-8, utf-16.
Nombre del campo de alerta String N/A No Nombre del campo que contiene información sobre el nombre de la alerta.
Nombre del campo de gravedad String N/A No

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 del conector

Soporte de proxy

El conector no admite Proxy.

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