Terrance DeJesusEric Forte

Google Cloud para el análisis de datos cibernéticos

Navega por los mares de datos de amenazas cibernéticas con Google Cloud

Google Cloud para el análisis de datos cibernéticos

Introducción

En la era digital actual, el gran volumen de datos generados por dispositivos y sistemas puede ser tanto un desafío como una oportunidad para los profesionales de la seguridad. El análisis de una gran magnitud de datos para crear información valiosa o procesable sobre las tendencias de los ciberataques requiere herramientas y metodologías precisas.

Antes de profundizar en la tarea del análisis de datos, es posible que te preguntes:

  • ¿Qué preguntas específicas pretendo responder y poseo los datos necesarios?
  • ¿Dónde se encuentran todos los datos pertinentes?
  • ¿Cómo puedo acceder a estos datos?
  • Al acceder a los datos, ¿qué pasos hay que seguir para entenderlos y organizarlos?
  • ¿Qué herramientas son más efectivas para extraer, interpretar o visualizar los datos?
  • ¿Debo analizar los datos brutos inmediatamente o esperar hasta que se procesaron?
  • Y lo que es más importante, ¿qué información procesable se puede derivar de los datos?

Si estas preguntas resuenan contigo, estás en el camino correcto. Te damos la bienvenida al mundo de Google Cloud, donde abordaremos estas consultas y te guiaremos a través del proceso de creación de un reporte completo.

Nuestro enfoque incluirá varios pasos en el siguiente orden:

Exploración: Comenzamos por comprender a fondo los datos de los que disponemos. Esta fase implica la identificación de los posibles conocimientos que pretendemos descubrir y la verificación de la disponibilidad de los datos necesarios.

Extracción: Aquí, recopilamos los datos necesarios, centrándonos en la información más relevante y actual para nuestro análisis.

Preprocesamiento y transformación: En esta etapa, preparamos los datos para el análisis. Esto implica normalizar (limpiar, organizar y estructurar) los datos para garantizar su preparación para el procesamiento posterior.

Análisis de tendencias: La mayoría de nuestros hallazgos y observaciones de amenazas se derivan de este esfuerzo. Analizamos los datos procesados en busca de patrones, tendencias y anomalías. Se emplean técnicas como el análisis de seriales temporales y la agregación para comprender la evolución de las amenazas a lo largo del tiempo y para destacar los ciberataques significativos en diversas plataformas.

Reducción: En este paso, destilamos los datos a sus elementos más relevantes, centrándonos en los aspectos más significativos y perspicaces.

Presentación: El paso final consiste en presentar nuestros hallazgos. Empleando las herramientas de Google Workspace, nuestro objetivo es mostrar nuestros conocimientos de una manera clara, concisa y visualmente atractiva.

Conclusión: Reflexionando sobre este viaje, hablaremos de la importancia de contar con las herramientas analíticas adecuadas. Destacaremos cómo Google Cloud Platform (GCP) proporciona un entorno ideal para analizar datos de amenazas cibernéticas, lo que nos permite transformar los datos sin procesar en información significativa.

Exploración: Determinación de los datos disponibles

Antes de sumergir en cualquier análisis sofisticado, es necesario preparar estableciendo una comprensión del panorama de datos que pretendemos estudiar.

Este es nuestro enfoque:

  1. Identificación de los datos disponibles: El primer paso es determinar qué datos son accesibles. Esto podría incluir fenómenos de malware, anomalías en los endpoints, señales en la nube, etc. Es esencial confirmar la disponibilidad de estos tipos de datos.
  2. Ubicación de los almacenes de datos: Determinar la ubicación exacta de nuestros datos. Saber dónde residen nuestros datos, ya sea en bases de datos, lagos de datos u otras soluciones de almacenamiento, ayuda a agilizar el proceso de análisis posterior.
  3. Acceso a los datos: Es importante cerciorarnos de que tenemos las licencias o credenciales necesarios para acceder a los conjuntos de datos que necesitamos. Si no lo hacemos, es necesario intentar identificar y aplicar acceso al propietario del recurso.
  4. Descripción del esquema de datos: Comprender la estructura de nuestros datos es vital. Conocer el esquema ayuda a planear el proceso de análisis de forma eficaz.
  5. Evaluación de la calidad de los datos: Al igual que cualquier análisis exhaustivo, evaluar la calidad de los datos es crucial. Comprobamos si los datos están segmentados y detallados lo suficiente como para realizar un análisis de tendencias significativo.

Esta fase consiste en garantizar que nuestro análisis se base en bases estables y realistas. Para un reporte como el Reporte de Amenazas Globales, nos basamos en conjuntos de datos ricos y pertinentes, como:

Cada conjunto de datos se categoriza y enriquece para contextualizarlo con marcos como MITRE ATT&CK, detalles del Elastic Stack e información de los clientes. Las soluciones de almacenamiento de Google Cloud Platform, como los buckets de BigQuery y Google Cloud Storage (GCS), proporcionan una infraestructura estable para nuestro análisis.

También es importante establecer un umbral de "actualización" de los datos, excluyendo los datos que no tengan más de 365 días de antigüedad para un reporte anual, para garantizar la relevancia y la precisión.

Por último, recuerde elegir datos que ofrezcan una perspectiva imparcial. Excluir o incluir datos internos debe ser una decisión intencional y estratégica basada en su relevancia para su visibilidad.

En resumen, seleccionar las herramientas y los conjuntos de datos adecuados es fundamental para crear un análisis exhaustivo y perspicaz. Cada elección contribuye de manera única a la eficacia general del análisis de datos, lo que garantiza que los conocimientos finales sean valiosos e impactantes.

Extracción: el primer paso en el análisis de datos

Una vez identificados y localizados los datos necesarios, el siguiente paso en nuestro viaje analítico es extraer estos datos de nuestras soluciones de almacenamiento. Esta fase es crítica, ya que prepara el escenario para el análisis en profundidad que sigue.

Herramientas y técnicas de extracción de datos

Se pueden emplear varias herramientas y lenguajes de programación para la extracción de datos, incluidos Python, R, Go, Jupyter Notebooks y Looker Studio. Cada herramienta ofrece beneficios únicos, y la elección depende de las necesidades específicas de su análisis.

En nuestros esfuerzos de extracción de datos, encontramos el mayor éxito de una combinación de BigQuery, Colab Notebooks, buckets y Google Workspace para extraer los datos necesarios. Los Colab Notebooks, similares a los Jupyter Notebooks, operan dentro del entorno en la nube de Google, lo que proporciona una integración perfecta con otros servicios de Google Cloud.

BigQuery para la preparación y consulta de datos

En el proceso de análisis, un paso clave es "preparar" nuestros conjuntos de datos con BigQuery. Esto implica emplear consultas de BigQuery para crear y almacenar objetos, lo que los hace reutilizables y compartibles en todo nuestro equipo. Logramos esto empleando la instrucción CREATE TABLE , que nos permite combinar múltiples conjuntos de datos , como alertas de comportamiento de puntos finales, datos de clientes y datos de reglas, en un único conjunto de datos completo.

Luego, este conjunto de datos consolidado se almacena en una tabla de BigQuery designada específicamente para este propósito, para este ejemplo, nos referiremos a él como el conjunto de datos "Informe de amenazas globales". Este enfoque se aplica de forma coherente en diferentes tipos de datos, incluidas las señales en la nube y los conjuntos de datos de malware.

La tabla de datos recién creada, por ejemplo, podría denominar elastic.global_threat_report.ep_behavior_raw. Esta convención de nomenclatura, definida por BigQuery, ayuda a organizar y ubicar los conjuntos de datos de manera efectiva, lo cual es crucial para las etapas posteriores del proceso de extracción.

Un ejemplo de una consulta de BigQuery que se usa en este proceso podría ser el siguiente:

CREATE TABLE elastic.global_threat_report.ep_behavior_raw AS
SELECT * FROM ...

Diagrama para una consulta de BigQuery a una tabla de conjunto de datos exportada

También usamos la instrucción EXPORT DATA en BigQuery para transferir tablas a otros servicios de GCP, como exportarlas a depósitos de Google Cloud Storage (GCS) en formato de archivo de parquet.

EXPORT DATA
  OPTIONS (
    uri = 'gs://**/ep_behavior/*.parquet',
    format = 'parquet',
    overwrite = true
  )
AS (
SELECT * FROM `project.global_threat_report.2023_pre_norm_ep_behavior`
)

Colab Notebooks para cargar conjuntos de datos preconfigurados

Los cuadernos de Colab son fundamentales para organizar nuestro proceso de extracción de datos. Permiten un fácil acceso y gestión de scripts de datos almacenados en plataformas como GitHub y Google Drive.

Para la autenticación y la autorización, empleamos las credenciales de Google Workspace, lo que simplifica el acceso a varios servicios de Google Cloud, incluidos BigQuery y Colab Notebooks. Este es un ejemplo básico de cómo se maneja la autenticación:

Diagrama de autenticación y autorización entre los servicios de Google Cloud

Para aquellos que no están familiarizados con Jupyter Notebooks o dataframes, es beneficioso dedicar tiempo a familiarizar con estas herramientas. Son fundamentales en el conjunto de herramientas de cualquier analista de datos, ya que permiten una gestión eficiente del código, el análisis de datos y la estructuración. El dominio de estas herramientas es clave para un análisis de datos eficaz.

Al crear un bloc de notas en Google Colab, estamos listos para extraer nuestras tablas personalizadas (como project.global_threat_report.ep_behavior_raw) de BigQuery. Estos datos se cargan en Pandas Dataframes, una biblioteca de Python que facilita la manipulación y el análisis de datos. Si bien el manejo de grandes conjuntos de datos con Python puede ser un desafío, Google Colab proporciona recursos de computación virtual estables. Si es necesario, estos recursos se pueden ampliar a través de Google Cloud Marketplace o Google Cloud Console, lo que garantiza que incluso los grandes conjuntos de datos se puedan procesar de manera eficiente.

Bibliotecas de Python esenciales para el análisis de datos

En nuestro proceso de análisis de datos, empleamos varias bibliotecas de Python, cada una de las cuales tiene un propósito específico:

BibliotecaDescripción
FechaHoraEsencial para manejar todas las operaciones relacionadas con la fecha y la hora en sus datos. Le permite manipular y dar formato a la información de fecha y hora para el análisis.
google.authGestiona la autenticación y las licencias de acceso, lo que garantiza un acceso seguro a los servicios de Google Cloud. Es clave para controlar quién puede acceder a tus datos y servicios.
google.colab.authProporciona autenticación para acceder a los servicios de Google Cloud dentro de los blocs de notas de Google Colab, lo que permite una conexión segura a tus recursos basados en la nube.
google.cloud.bigqueryUna herramienta para gestionar grandes conjuntos de datos en el servicio BigQuery de Google Cloud. Permite el procesamiento y análisis eficiente de cantidades masivas de datos.
google.cloud.storageSe emplea para almacenar y recuperar datos en Google Cloud Storage. Es una solución ideal para manejar varios archivos de datos en la nube.
gspreadFacilita la interacción con las hojas de cálculo de Google, lo que permite una fácil manipulación y análisis de los datos de las hojas de cálculo.
gspread.dataframe.set_with_dataframeSincroniza datos entre los marcos de datos de Pandas y las hojas de cálculo de Google, lo que permite una transferencia de datos y una actualización fluidas entre estos formatos.
matplotlib.pyplot.pltUn módulo en la biblioteca Matplotlib para crear tablas y gráficos. Ayuda a visualizar datos en formato gráfico, lo que facilita la comprensión de patrones y tendencias.
pandasUna herramienta fundamental para la manipulación y análisis de datos en Python. Ofrece estructuras de datos y operaciones para manipular tablas numéricas y seriales temporales.
pandas.gbq.to_gbqPermite la transferencia de datos de los marcos de datos de Pandas directamente a Google BigQuery, lo que agiliza el proceso de traslado de datos a esta plataforma de análisis basada en la nube.
flecha.parquet.pqPermite el almacenamiento y la recuperación eficientes de datos en formato Parquet, un formato de archivo de almacenamiento en columnas optimizado para su uso con grandes conjuntos de datos.
Nacido en el marUna biblioteca de visualización de Python basada en Matplotlib que proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos e informativos.

A continuación, nos autenticamos con BigQuery y recibimos autorización para acceder a nuestros conjuntos de datos, como se demostró anteriormente. Mediante el uso de las credenciales de Google Workspace, podemos acceder fácilmente a BigQuery y otros servicios de Google Cloud. El proceso suele implicar un fragmento de código simple para la autenticación:

from google.colab import auth
from google.cloud import bigquery

auth.authenticate_user()
project_id = "PROJECT_FROM_GCP"
client = bigquery.Client(project=project_id)

Una vez completada la autenticación, podemos proceder a acceder y manipular nuestros datos. La integración de Google Colab con los servicios de Google Cloud simplifica este proceso, haciéndolo eficiente y seguro.

Organización de los cuadernos de Colab antes del análisis

Al trabajar con Jupyter Notebooks, es mejor organizar el bloc de notas de antemano. Se requerirán varias etapas de manejo y manipulación de datos, y mantener organizado lo ayudará a crear un proceso completo y repetible.

En nuestros cuadernos, usamos encabezados de Jupyter Notebook para organizar el código de manera sistemática. Esta estructura permite una compartimentación clara y la creación de secciones plegables, lo que es especialmente beneficioso cuando se trata de operaciones de datos complejas que requieren varios pasos. Esta organización metódica ayuda a navegar por el cuaderno de manera eficiente, cerciorando que cada paso en el proceso de extracción y análisis de datos sea fácilmente accesible y manejable.

Además, aunque el flujo de trabajo de un cuaderno puede parecer lineal, suele ser más dinámico. Los analistas de datos suelen realizar varias tareas a la vez, saltando entre diferentes secciones según sea necesario en función de los datos o los resultados que encuentran. Además, los nuevos conocimientos descubiertos en un paso pueden influir en el proceso de otro paso, lo que lleva a algunas idas y venidas antes de terminar el cuaderno. |

Extracción de nuestros conjuntos de datos de BigQuery en marcos de datos

Luego de establecer la estructura de nuestro bloc de notas y autenticarnos correctamente con BigQuery, el siguiente paso es recuperar los conjuntos de datos necesarios. Este proceso sienta las bases para el resto del reporte, ya que la información de estas fuentes formará la base de nuestro análisis, de forma similar a la selección de los componentes clave necesarios para un estudio exhaustivo.

A continuación, se muestra un ejemplo de cómo podemos obtener datos de BigQuery:

import datetime

current_year = datetime.datetime.now().year
reb_dataset_id = f'project.global_threat_report.{current_year}_raw_ep_behavior'
reb_table = client.list_rows(reb_dataset_id)
reb_df = reb_table.to_dataframe()

Este fragmento de código muestra un proceso típico de recuperación de datos. Primero definimos el conjunto de datos que nos interesa (con el Reporte Global de Amenazas, project.global_threat_report.ep_behavior_raw para el año en curso). Luego, usamos una consulta de BigQuery para seleccionar los datos de este conjunto de datos y cargarlos en un DataFrame de Pandas. Este DataFrame servirá como base para nuestros siguientes pasos de análisis de datos.

Fragmento de Colab Notebook para la extracción de datos de BigQuery en el marco de datos de Pandas

Este proceso marca la finalización de la fase de extracción. Navegamos con éxito por BigQuery para seleccionar y recuperar los conjuntos de datos necesarios y cargarlos en nuestros cuadernos dentro de los marcos de datos. La fase de extracción es fundamental, ya que no solo implica recopilar los datos, sino también establecer la base para un análisis más profundo. Es el paso inicial de un viaje más amplio de descubrimiento, que conduce a la fase de transformación, en la que descubriremos información más detallada a partir de los datos.

En resumen, esta parte de nuestro viaje de datos va más allá de la simple recopilación de conjuntos de datos; Se trata de prepararlos estructuralmente para el análisis en profundidad que sigue. Este enfoque meticuloso para organizar y ejecutar la fase de extracción prepara el escenario para los conocimientos transformadores que pretendemos derivar en las etapas posteriores de nuestro análisis de datos.

Preprocesamiento y transformación: la fase crítica del análisis de datos

La transición de los datos sin procesar a la información procesable implica un serial de pasos cruciales en el procesamiento de datos. Luego de extraer los datos, nos centramos en refinarlos para su análisis. Los conjuntos de datos de ciberseguridad suelen incluir diversas formas de ruido, como falsos positivos y anomalías, que deben abordar para garantizar un análisis preciso y relevante.

Etapas clave en el preprocesamiento y la transformación de datos:

  • Limpieza de datos: Esta etapa implica rellenar valores NULL, corregir las desalineaciones de los datos y validar los tipos de datos para garantizar la integridad del conjunto de datos.
  • Enriquecimiento de datos: En este paso, se agrega contexto adicional al conjunto de datos. Por ejemplo, la incorporación de datos de terceros, como reputaciones de malware de fuentes como VirusTotal, mejora la profundidad del análisis.
  • Normalización: Este proceso estandariza los datos para garantizar la coherencia, lo que es particularmente importante para conjuntos de datos variados, como las alertas de malware de punto final.
  • Detección de anomalías: Identificar y rectificar los valores atípicos o los falsos positivos es fundamental para mantener la precisión del conjunto de datos.
  • Extracción de características: El proceso de identificar puntos de datos significativos y coherentes que se pueden extraer más para su análisis.

Adoptando el arte de la limpieza de datos

La limpieza de datos es un paso fundamental en la preparación de conjuntos de datos para un análisis exhaustivo, especialmente en ciberseguridad. Este proceso implica un serial de comprobaciones técnicas para garantizar la integridad y fiabilidad de los datos. Estos son los pasos específicos:

  • Mapeo al marco MITRE ATT&CK: Verifique que todas las reglas de detección y respuesta del conjunto de datos estén asignadas con precisión a las tácticas y técnicas correspondientes en el marco MITRE ATT&CK. Esta comprobación incluye la búsqueda de valores NULL o cualquier incoherencia en la forma en que los datos se alinean con el marco.

  • Validación del tipo de datos: Confirme que los tipos de datos del conjunto de datos son adecuados y coherentes. Por ejemplo, las marcas de tiempo deben estar en un formato de fecha y hora estandarizado. Este paso puede implicar la conversión de formatos de cadena en objetos de fecha y hora o la comprobación de que los valores numéricos están en el formato correcto.

  • Integridad de los datos críticos: Cerciorar de que no falte información vital en el conjunto de datos. Esto incluye la comprobación de la presencia de elementos esenciales como hashes SHA256 o nombres ejecutables en los registros de comportamiento de los endpoints. La ausencia de estos datos puede dar lugar a un análisis incompleto o sesgado.

  • Estandarización en todos los formatos de datos: Evalúe e implemente la estandarización de los formatos de datos en todo el conjunto de datos para garantizar la uniformidad. Esto puede implicar la normalización de los formatos de texto, garantizar la coherencia de las mayúsculas o estandarizar las representaciones de fecha y hora.

  • Identificación de entrada duplicada: Identifique y elimine las entradas duplicadas examinando identificadores únicos, como los ID de agente XDR o los ID de clúster. Este proceso puede implicar el uso de funciones para detectar y eliminar duplicados, cerciorando la unicidad de cada entrada de datos.

  • Exclusión de datos internos irrelevantes: Localice y elimine cualquier dato interno que pueda haber incluido inadvertidamente en el conjunto de datos. Este paso es crucial para evitar que los sesgos internos o la información irrelevante afecten al análisis.

Es importante tener en cuenta que la limpieza de datos o "depuración de los datos" es un esfuerzo continuo a lo largo de nuestro flujo de trabajo. A medida que continuamos despegando las capas de nuestros datos y los buscamos para obtener información diversa, se espera que identifiquemos cambios adicionales.

Utilización de Pandas para la limpieza de datos

La biblioteca Pandas en Python ofrece varias funcionalidades que son particularmente útiles para la limpieza de datos en contextos de ciberseguridad. Algunos de estos métodos incluyen:

  • DataFrame.isnull() o DataFrame.notnull() para identificar los valores que faltan.
  • DataFrame.drop_duplicates() para eliminar filas duplicadas.
  • Métodos de conversión de tipos de datos como pd.to_datetime() para estandarizar formatos de marca de tiempo.
  • Emplear la indexación booleana para filtrar datos irrelevantes en función de criterios específicos.

Una comprensión profunda del conjunto de datos es esencial para determinar los métodos de limpieza adecuados. Puede ser necesario explorar el conjunto de datos de manera preliminar para identificar áreas específicas que requieren limpieza o transformación. Se pueden encontrar métodos y flujos de trabajo útiles adicionales enumerados en este blog de Real Python.

Extracción y enriquecimiento de características

La extracción y el enriquecimiento de características son pasos fundamentales en el análisis de datos, especialmente en el contexto de la ciberseguridad. Estos procesos implican transformar y aumentar el conjunto de datos para mejorar su utilidad para el análisis.

  • Cree nuevos datos a partir de los existentes: Aquí es donde modificamos o usamos los datos existentes para agregar columnas o filas adicionales.
  • Agregue nuevos datos de terceros: Aquí, usamos los datos existentes como referencia de consulta para las API RESTful de terceros que responden con datos adicionales que podemos agregar a los conjuntos de datos.

Extracción de características

Profundicemos en un ejemplo tangible. Imagina que se nos presenta una gran cantidad de firmas de YARA disponibles públicamente que Elastic comparte con su comunidad. Estas firmas activan algunas de las alertas de malware de endpoints en nuestro conjunto de datos. Se observó una convención de nomenclatura coherente basada en el nombre de la regla que, por supuesto, aparece en los datos sin procesar: OperationsSystem_MalwareCategory_MalwareFamily. Estos nombres se pueden deconstruir para proporcionar información más específica. Aprovechando Pandas, podemos segmentar los datos de manera experta. Para aquellos que prefieren hacer esto durante la fase de preparación del conjunto de datos con BigQuery, la combinación de cláusulas SPLIT y OFFSET puede producir resultados similares:

df[['OperatingSystem', 'MalwareCategory', 'MalwareFamily']] = df['yara_rule_name'].str.split('_', expand=True)

Extracción de características con nuestros datos YARA

Existen enfoques, métodos y procesos adicionales para la extracción de características en el análisis de datos. Le recomendamos que consulte los deseos/necesidades de su parte interesada y explore sus datos para ayudar a determinar qué es necesario para la extracción y cómo.

Enriquecimiento de datos

El enriquecimiento de datos mejora la profundidad y el contexto de los conjuntos de datos de ciberseguridad. Un enfoque eficaz consiste en integrar fuentes de datos externas para proporcionar perspectivas adicionales sobre los datos existentes. Esto puede ser particularmente valioso para comprender e interpretar las alertas de ciberseguridad.

Ejemplo de enriquecimiento de datos: Integración de datos de reputación de VirusTotal Un método común de enriquecimiento de datos en ciberseguridad implica incorporar puntajes de reputación de servicios de inteligencia de amenazas externos como VirusTotal (VT). Este proceso suele incluir:

  1. Obtención de datos de reputación: Con una clave API de VT, podemos consultar datos de reputación basados en identificadores únicos en nuestro conjunto de datos, como hashes SHA256 de binarios.
import requests

def get_reputation(sha256, API_KEY, URL):
    params = {'apikey': API_KEY, 'resource': sha256}
    response = requests.get(URL, params=params)
    json_response = response.json()
    
    if json_response.get("response_code") == 1:
        positives = json_response.get("positives", 0)
        return classify_positives(positives)
    else:
        return "unknown"

En esta función, classify_positives es una función personalizada que clasifica la reputación en función del número de motores antivirus que marcaron el archivo como malicioso.

  1. Adición de datos de reputación al conjunto de datos: A continuación, los datos de reputación obtenidos de VirusTotal se integran en el conjunto de datos existente. Esto se hace aplicando la función get_reputation a cada entrada relevante en el DataFrame.
df['reputation'] = df['sha256'].apply(lambda x: get_reputation(x, API_KEY, URL))

Aquí, se agrega una nueva columna denominada reputation a la trama de datos, que proporciona una capa adicional de información sobre cada binario en función de su tasa de detección en VirusTotal.

Este método de enriquecimiento de datos es solo una de las muchas opciones disponibles para mejorar los datos de amenazas de ciberseguridad. Al emplear estables funciones auxiliares y aprovechar los repositorios de datos externos, los analistas pueden enriquecer significativamente sus conjuntos de datos. Este enriquecimiento permite una comprensión más completa de los datos, lo que conduce a un análisis más informado y matizado. Las técnicas demostradas aquí forman parte de una gama más amplia de métodos avanzados de manipulación de datos que pueden refinar aún más el análisis de datos de ciberseguridad.

Normalización

Especialmente cuando se trata de conjuntos de datos variados en ciberseguridad, como alertas de endpoints y notificaciones SIEM en la nube, es posible que se requiera la normalización para aprovechar al máximo sus datos.

Descripción de la normalización: En esencia, la normalización consiste en ajustar los valores medidos en diferentes escalas a una escala común, garantizando que estén representados proporcionalmente y reduciendo la redundancia. En el contexto de la ciberseguridad, esto significa representar eventos o alertas de una manera que no amplifique o reduzca involuntariamente su importancia.

Considere nuestro conjunto de datos de malware para endpoints. Al analizar tendencias, por ejemplo, infecciones basadas en familias o categorías de malware, nuestro objetivo es obtener una representación precisa. Sin embargo, una sola infección de malware en un endpoint podría generar múltiples alertas dependiendo del sistema de Detección y Respuesta Extendida (XDR). Si no se controla, esto podría sesgar significativamente nuestra comprensión del panorama de amenazas. Para contrarrestar esto, consideramos los agentes de Elastic, que se despliegan como parte de la solución XDR. Cada endpoint tiene un agente único, que representa una única instancia de infección si se detecta malware. Por lo tanto, para normalizar este conjunto de datos, lo "aplanaríamos" o ajustaríamos en función de los ID de agente únicos. Esto significa que, para nuestro análisis, consideraríamos el número de ID de agente únicos afectados por una familia o categoría de malware específica en lugar del número bruto de alertas.

Ejemplo de visualización de la normalización de alertas de malware por agentes únicos

Como se muestra en la imagen de arriba, si elegimos no normalizar los datos de malware en preparación para el análisis de tendencias, nuestros hallazgos clave mostrarían información inexacta. Esta inexactitud podría deber a una gran cantidad de incoherencias de datos, como reglas YARA genéricas, operaciones programáticas que se marcaron repetidamente en un único punto de conexión, y muchas más.

Diversificar el enfoque: Por otro lado, cuando se trata de alertas de comportamiento de endpoints o alertas en la nube (de plataformas como AWS, GCP, Azure, Google Workspace y O365), nuestro enfoque de normalización puede diferir. Estos conjuntos de datos podrían tener sus propios matices y es posible que no requieran la misma técnica de "aplanamiento" que se emplea para las alertas de malware.

Conceptualización de las opciones de normalización: Recuerde que el objetivo de la normalización es reducir la redundancia en los datos. Cerciorar de mantener sus operaciones lo más atómicas posible en caso de que necesite volver atrás y modificarlas más adelante. Esto es especialmente cierto cuando se realizan tanto la normalización como la estandarización. A veces, puede ser difícil separarlos y es posible que tenga que ir y venir entre los dos. Los analistas tienen una gran cantidad de opciones para estos. Desde el escalado mínimo-máximo , en el que los valores se desplazan y se reescalan para oscilar entre 0 y 1, hasta la normalización (o estandarización) del puntaje Z , en la que los valores se centran en cero y las desviaciones estándar de la media. La elección de la técnica depende de la naturaleza de los datos y de los requisitos específicos del análisis.

En esencia, la normalización garantiza que nuestro análisis de ciberseguridad se base en la igualdad de condiciones, lo que brinda a las partes interesadas una visión precisa del entorno de amenazas sin distorsiones indebidas. Este es un paso crítico antes del análisis de tendencias.

Detección de anomalías: refinamiento del proceso de análisis de datos

En el ámbito de la analítica de ciberseguridad, no existe un enfoque único para la detección de anomalías. El proceso depende en gran medida de las características específicas de los datos en cuestión. El objetivo principal es identificar y abordar los valores atípicos que podrían distorsionar el análisis. Esto requiere una metodología dinámica y adaptable, en la que la comprensión de los matices del conjunto de datos es crucial.

La detección de anomalías en ciberseguridad implica explorar varias técnicas y metodologías, cada una adecuada para diferentes tipos de irregularidades de datos. La estrategia no consiste en aplicar rígidamente un único método, sino en emplear un conocimiento profundo de los datos para seleccionar la técnica más adecuada para cada situación. Se hace hincapié en la flexibilidad y la adaptabilidad, lo que garantiza que el enfoque elegido proporcione la información más clara y precisa sobre los datos.

Métodos estadísticos: columna vertebral del análisis:

El análisis estadístico es siempre un enfoque opcional para la detección de anomalías, especialmente para los datos de seguridad cibernética. Al comprender la distribución inherente y las tendencias centrales de nuestros datos, podemos resaltar los valores que se desvían de la norma. Un método simple pero poderoso, el puntaje Z, mide la distancia de un punto de datos a la media en términos de desviaciones estándar.

import numpy as np

# Derive Z-scores for data points in a feature
z_scores = np.abs((df['mitre_technique'] - df['mitre_technique'].mean()) / df['mitre_technique'].std())

outliers = df[z_scores > 3]  # Conventionally, a Z-score above 3 signals an outlier

Por qué esto es importante: Este método nos permite medir cuantitativamente la importancia de la desviación de un punto de datos. Estos valores atípicos pueden sesgar en gran medida las métricas agregadas, como la media, o incluso influir negativamente en el entrenamiento del modelo de aprendizaje automático. Recuerde que los valores atípicos no siempre deben eliminar; ¡Todo es cuestión de contexto! A veces, incluso puede estar buscando los valores atípicos específicamente.

Biblioteca de claves: Si bien empleamos NumPy arriba, SciPy también se puede emplear para operaciones estadísticas complejas.

Agregaciones y clasificación: desentrañar capas:

Los datos a menudo se presentan en capas. Al comenzar con una vista de alto nivel y sumergirnos gradualmente en los detalles, podemos localizar inconsistencias o anomalías. Cuando agregamos por categorías, como la táctica MITRE ATT&CK, y luego profundizamos, descubrimos gradualmente los detalles más finos y las posibles anomalías a medida que pasamos de la técnica a la lógica de reglas y al contexto de alerta.

# Aggregating by tactics first
tactic_agg = df.groupby('mitre_tactic').size().sort_values(ascending=False)

A partir de aquí, podemos identificar las tácticas más comunes y elegir la táctica con el mayor recuento. A continuación, filtramos nuestros datos para esta táctica para identificar la técnica más común asociada con la táctica más común. Las técnicas a menudo son más específicas que las tácticas y, por lo tanto, agregan más explicación sobre lo que podemos estar observando. Siguiendo el mismo enfoque, podemos filtrar por esta técnica específica, agregar por regla y revisar esa regla de detección para obtener más contexto. El objetivo aquí es encontrar reglas "ruidosas" que puedan estar sesgando nuestro conjunto de datos y, por lo tanto, las alertas relacionadas deben eliminar. Este ciclo se puede repetir hasta que se eliminen los valores atípicos y los porcentajes parezcan más precisos.

Por qué esto es importante: Este enfoque de análisis por capas garantiza que no se deje piedra sin remover. Al navegar de lo general a lo específico, eliminamos sistemáticamente las inconsistencias.

Biblioteca de claves: Pandas sigue siendo el héroe, equipado para manejar las tareas de manipulación de datos con delicadeza.

Visualización – La lente de la claridad:

A veces, el ojo humano, cuando cuenta con la ayuda de la representación visual adecuada, puede detectar intuitivamente lo que incluso los algoritmos más complejos podrían pasar por alto. Un diagrama de caja, por ejemplo, no solo muestra la tendencia central y la dispersión de los datos, sino que también marca claramente los valores atípicos.

import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(12, 8))
sns.boxplot(x='Malware Family', y='Malware Score', data=df)
plt.title('Distribution of Malware Scores by Family')
plt.show()

Ejemplo de visualización de los puntajes de distribución de malware por familia a partir de un conjunto de datos de ejemplo

Por qué esto es importante: La visualización transforma los datos abstractos en información tangible. Ofrece una perspectiva que es a la vez holística y granular, dependiendo de la necesidad.

Biblioteca de claves: Seaborn, construido sobre Matplotlib, sobresale en convertir los datos en historias visuales.

Aprendizaje automático: la guardia avanzada:

Cuando los métodos tradicionales son insuficientes, el aprendizaje automático interviene, ofreciendo una lente predictiva a las anomalías. Si bien muchos algoritmos están diseñados para clasificar patrones conocidos, algunos, como los autocodificadores en el aprendizaje profundo, aprenden a recrear datos "normales", marcando cualquier desviación como una anomalía.

Por qué esto es importante: A medida que crece la complejidad de los datos, los límites de lo que constituye una anomalía se vuelven más borrosos. El aprendizaje automático ofrece soluciones adaptativas que evolucionan con los datos.

Bibliotecas clave: Scikit-learn es un tesoro para técnicas de aprendizaje automático tradicionales y fáciles de usar, mientras que PyTorch pone sobre la mesa el poder del aprendizaje profundo.

Perfeccionar la detección de anomalías en el análisis de datos es similar a refinar una habilidad compleja a través de la práctica y la iteración. El proceso a menudo implica prueba y error, y cada iteración mejora la familiaridad del analista con el conjunto de datos. Esta comprensión progresiva es clave para garantizar que el análisis final sea estable y perspicaz. En el análisis de datos, el viaje de exploración y refinamiento es tan valioso como el resultado final en sí.

Antes de proceder a un análisis de tendencias en profundidad, es muy importante cerciorar de que los datos se preprocesan y transforman a fondo. Al igual que la precisión y la fiabilidad son esenciales en cualquier tarea meticulosa, son igualmente críticas en el análisis de datos. Los pasos de limpieza, normalización, enriquecimiento y eliminación de anomalías del trabajo preliminar para obtener información significativa. Sin estos cuidadosos preparativos, el análisis podría variar desde ligeramente inexacto hasta significativamente engañoso. Solo cuando los datos se refinan adecuadamente y están libres de distorsiones, pueden revelar su verdadero valor, lo que conduce a información confiable y procesable en el análisis de tendencias.

Análisis de tendencias: Revelando patrones en los datos

En el dinámico campo de la ciberseguridad, donde los actores de amenazas evolucionan continuamente sus tácticas, técnicas y procedimientos (TTP), es fundamental adelantar a las amenazas emergentes. El análisis de tendencias sirve como una herramienta vital en este sentido, ya que ofrece una forma de identificar y comprender patrones y comportamientos en las amenazas cibernéticas a lo largo del tiempo.

Al emplear el marco MITRE ATT&CK, los profesionales de la ciberseguridad tienen un enfoque estructurado y estandarizado para analizar y categorizar estas amenazas en evolución. Este marco ayuda a identificar sistemáticamente patrones en las metodologías de ataque, lo que permite a los defensores anticipar y responder a los cambios en los comportamientos de los adversarios de manera efectiva.

El análisis de tendencias, a través de la lente del marco MITRE ATT&CK, transforma la telemetría de ciberseguridad en bruto en inteligencia procesable. Permite a los analistas seguir la evolución de las estrategias de ataque y adaptar sus mecanismos de defensa en consecuencia, garantizando una postura proactiva en la gestión de la ciberseguridad.

Comenzando con una visión general: Agregación y clasificación

Comenzar nuestro análisis a vista de pájaro es primordial. Esta perspectiva panorámica nos permite identificar primero las tácticas más amplias en juego antes de profundizar en las técnicas más granulares y las reglas de detección subyacentes.

Tácticas principales: Al agregar nuestros datos en función de las tácticas de MITRE ATT&CK, podemos discernir las estrategias generales hacia las que se inclinan los adversarios. Esto pinta una imagen de sus objetivos principales, ya sea el acceso inicial, la ejecución o la exfiltración.

top_tactics = df.groupby('mitre_tactic').size()
 .sort_values(ascending=False)

Haciendo zoom en las técnicas: Una vez que identificamos una táctica destacada, podemos canalizar nuestra atención a las técnicas vinculadas a esa táctica. Esto revela el modus operandi específico de los adversarios.

chosen_tactic = 'Execution'

techniques_under_tactic = df[df['mitre_tactic'] == chosen_tactic]
top_techniques = techniques_under_tactic.groupby('mitre_technique').size()
 .sort_values(ascending=False)

Reglas y lógica de detección: Con nuestro enfoque en una técnica específica, es hora de profundizar en la identificación de las reglas de detección que activaron las alertas. Esto no solo muestra lo que se detectó, sino que, al revisar la lógica de detección, también obtenemos una comprensión de los comportamientos y patrones precisos que se marcaron.

chosen_technique = 'Scripting'

rules_for_technique = techniques_under_tactic[techniques_under_tactic['mitre_technique'] == chosen_technique]

top_rules = rules_for_technique
 .groupby('detection_rule').size().sort_values(ascending=False)

Este enfoque jerárquico y en cascada es similar a pelar una cebolla. Con cada capa, exponemos detalles más intrincados, refinando nuestra perspectiva y agudizando nuestras percepciones.

El poder del tiempo: análisis de seriales temporales

En el ámbito de la ciberseguridad, el tiempo no es solo una métrica; Es una narrativa. Las marcas de tiempo, que a menudo se pasan por alto, son minas de oro de información. El análisis de seriales temporales nos permite trazar eventos a lo largo del tiempo, revelando patrones, picos o pausas que podrían ser indicativos de campañas de adversarios, oleadas de ataque específicas o periodos de latencia.

Por ejemplo, el trazado de las alertas de malware de endpoints a lo largo del tiempo puede revelar las horas de funcionamiento de un adversario o destacar un ataque multivectorial sincronizado:

import matplotlib.pyplot as plt

# Extract and plot endpoint alerts over time
df.set_index('timestamp')['endpoint_alert'].resample('D').count().plot()
plt.title('Endpoint Malware Alerts Over Time')
plt.xlabel('Time')
plt.ylabel('Alert Count')
plt.show()

El análisis de seriales temporales no solo destaca el "cuándo", sino que a menudo proporciona información sobre el "por qué" detrás de ciertos picos o anomalías. Ayuda a correlacionar eventos externos (como el lanzamiento de un nuevo exploit) con las tendencias de datos internos.

Análisis de correlación

Comprender las relaciones entre diferentes conjuntos de datos puede ofrecer información valiosa. Por ejemplo, un pico en un tipo de alerta podría correlacionar con otro tipo de actividad en el sistema, lo que arroja luz sobre campañas de ataque de varias etapas o estrategias de desvío.

# Finding correlation between an increase in login attempts and data exfiltration activities
correlation_value = df['login_attempts'].corr(df['data_exfil_activity'])

Este análisis, con la ayuda de pandas corr, puede ayudar a discernir si múltiples actividades aparentemente aisladas son parte de una cadena de ataque coordinada.

La correlación tampoco tiene por qué basar en métricas. Al analizar las amenazas, es fácil encontrar valor y nuevos conocimientos comparando los hallazgos antiguos con los nuevos.

Aprendizaje automático y detección de anomalías

Con el gran volumen de datos, el análisis manual se vuelve poco práctico. El aprendizaje automático puede ayudar a identificar patrones y anomalías que podrían escapar al ojo humano. Algoritmos como Isolation Forest o K-nearest neighbor(KNN) se emplean comúnmente para detectar desviaciones o grupos de datos comúnmente relacionados.

from sklearn.ensemble import IsolationForest

# Assuming 'feature_set' contains relevant metrics for analysis
clf = IsolationForest(contamination=0.05)
anomalies = clf.fit_predict(feature_set)

Aquí, la variable de anomalías marcará los puntos de datos que se desvíen de la norma, lo que ayudará a los analistas a identificar rápidamente un comportamiento inusual.

Patrones de comportamiento y análisis de datos de endpoints

El análisis de los datos de comportamiento de los endpoints recopilados de las reglas de detección nos permite descubrir patrones y tendencias generales que pueden ser indicativos de panoramas de amenazas más amplios, campañas cibernéticas o TTP de atacantes en evolución.

Patrones de progresión táctica: Al monitorear la secuencia de comportamientos detectados a lo largo del tiempo, podemos detectar patrones en la forma en que los adversarios se mueven a través de su cadena de ataque. Por ejemplo, si hay una tendencia constante en la que las técnicas de acceso inicial son seguidas por la ejecución y luego el movimiento lateral, es indicativo de que se está empleando un libro de jugadas común del atacante.

Análisis de tendencias de línea de comandos: Incluso dentro de argumentos maliciosos de línea de comandos, pueden surgir ciertos patrones o secuencias. La supervisión de los argumentos maliciosos detectados con más frecuencia puede proporcionar información sobre las herramientas o scripts de ataque favoritos.

Ejemplo:

# Most frequently detected malicious command lines
top_malicious_commands = df.groupby('malicious_command_line').size()
 .sort_values(ascending=False).head(10)

Tendencias de interacción de procesos: Si bien las relaciones individuales entre los procesos primarios y secundarios pueden ser maliciosas, la detección de tendencias en estas interacciones puede insinuar campañas de malware generalizadas o TTP de atacantes. Por ejemplo, si un gran subconjunto de puntos de conexión muestra la misma interacción de proceso inusual, podría sugerir una amenaza común.

Patrones de comportamiento temporal: Al igual que con otros tipos de datos, el aspecto temporal de los datos de comportamiento de los puntos finales puede ser esclarecedor. El análisis de la frecuencia y el momento de ciertos comportamientos maliciosos puede insinuar las horas de funcionamiento de los atacantes o la duración de las campañas.

Ejemplo:

# Analyzing frequency of a specific malicious behavior over time
monthly_data = df.pivot_table(index='timestamp', columns='tactic', values='count', aggfunc='sum').resample('M').sum()

ax = monthly_data[['execution', 'defense-evasion']].plot(kind='bar', stacked=False, figsize=(12,6))

plt.title("Frequency of 'execution' and 'defense-evasion' Tactics Over Time")

plt.ylabel("Count")
ax.set_xticklabels([x.strftime('%B-%Y') for x in monthly_data.index])
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

Nota: Esta imagen proviene de datos de ejemplo y no del Reporte Global de Amenazas

Al agregar y analizar los datos de comportamiento de los endpoints a nivel macro, no solo identificamos amenazas aisladas, sino que también podemos detectar olas, tendencias y patrones emergentes. Esta perspectiva más amplia permite a los equipos de ciberseguridad anticipar, preparar y contrarrestar las amenazas cibernéticas a gran escala de manera más efectiva.

Si bien estos son algunos ejemplos de cómo realizar un análisis de tendencias, no existe un enfoque correcto o incorrecto. Cada analista tiene su propia preferencia o conjunto de preguntas que ellos o las partes interesadas pueden querer hacer. Estas son algunas preguntas o consultas adicionales que los analistas pueden tener sobre los datos de ciberseguridad al realizar análisis de tendencias.

  • ¿Cuáles son las tres tácticas principales que están empleando los adversarios este trimestre?
  • ¿Qué reglas de detección se activan más y hay un hilo conductor?
  • ¿Hay algún patrón basado en el tiempo en las alertas de punto final, que posiblemente insinúe la zona horaria de un adversario?
  • ¿Cómo evolucionaron las alertas en la nube con la migración de más servicios a la nube?
  • ¿Qué familias de malware son cada vez más frecuentes y cuál podría ser la causa?
  • ¿Los patrones de los datos sugieren alguna estacionalidad, como un aumento de las actividades hacia fin de año?
  • ¿Existen correlaciones entre los eventos externos y los picos de actividades cibernéticas?
  • ¿En qué se diferencian los datos de los días laborables de los fines de semana en cuanto a alertas y ataques?
  • ¿Qué activos de la organización son los más atacados y sus defensas están actualizadas?
  • ¿Hay signos de amenazas internas o comportamientos inusuales entre las cuentas privilegiadas?

El análisis de tendencias en ciberseguridad es un proceso dinámico. Si bien establecimos algunas técnicas y preguntas fundamentales, hay innumerables formas de abordar este vasto dominio. Cada analista puede tener sus preferencias, herramientas y metodologías, y eso está perfectamente bien. La esencia radica en evolucionar y adaptar continuamente a nuestro enfoque, al tiempo que somos conscientes del panorama de amenazas en constante cambio para cada ecosistema expuesto a amenazas.

Reducción: Racionalización para mayor claridad

Luego de avanzar en las etapas iniciales de nuestro análisis de datos, ahora entramos en la siguiente fase: la reducción. Este paso consiste en refinar y concentrar nuestros datos completos en un formato más digerible y centrado.

Resumen del viaje de análisis hasta ahora:

  • Extracción: La fase inicial implicó la configuración de nuestro entorno de Google Cloud y la selección de conjuntos de datos relevantes para nuestro análisis.
  • Preprocesamiento y transformación: En esta etapa, los datos se extrajeron, procesaron y transformaron dentro de nuestros cuadernos Colab, preparándolos para un análisis detallado.
  • Análisis de tendencias: Esta fase proporcionó información detallada sobre las tácticas, técnicas y malware de los ciberataques, lo que constituye el núcleo de nuestro análisis.

Si bien los datos detallados de nuestros cuadernos de Colab son extensos e informativos para un analista, pueden ser demasiado complejos para un público más amplio. Por lo tanto, la fase de reducción se centra en destilar esta información en una forma más concisa y accesible. El objetivo es hacer que los hallazgos sean claros y comprensibles, cerciorando que puedan ser comunicados y empleados de manera efectiva a través de varios departamentos o partes interesadas.

Selección y agregación de puntos de datos clave

Con el fin de comunicar eficazmente nuestros hallazgos, debemos adaptar la presentación a las necesidades de la audiencia. No todas las partes interesadas requieren la profundidad total de los datos recopilados; Muchos prefieren una versión resumida que destaque los puntos más prácticos. Aquí es donde entra en juego la selección y agregación de datos, centrar en los elementos más vitales y presentándolos en un formato accesible.

A continuación, se muestra un ejemplo de cómo usar Pandas para agregar y condensar un conjunto de datos, centrar en los aspectos clave del comportamiento de los puntos finales:

required_endpoint_behavior_cols = ['rule_name','host_os_type','tactic_name','technique_name']


reduced_behavior_df = df.groupby(required_endpoint_behavior_cols).size()
 .reset_index(name='count')
 .sort_values(by="count", ascending=False)
 .reset_index(drop=True)

columns = {
    'rule_name': 'Rule Name', 
    'host_os_type': 'Host OS Type',
    'tactic_name': 'Tactic', 
    'technique_name': 'Technique', 
    'count': 'Alerts'
}

reduced_behavior_df = reduced_behavior_df.rename(columns=columns)

Un aspecto destacable de este código y proceso es la flexibilidad que ofrece. Por ejemplo, podemos agrupar nuestros datos por varios puntos de datos adaptados a nuestras necesidades. ¿Interesado en identificar las tácticas populares empleadas por los adversarios? Grupo por la táctica MITRE ATT&CK. ¿Quieres arrojar luz sobre el enmascaramiento de binarios maliciosos? Vuelva a visitar la extracción para agregar más campos de Elastic Common Schema (ECS), como la ruta de archivo, el filtro por evasión de defensa y la agregación para revelar las rutas más transitadas. Este enfoque garantiza que creamos conjuntos de datos que son a la vez esclarecedores y no abrumadoramente ricos, hechos a medida para las partes interesadas que desean comprender los orígenes de nuestro análisis.

Este proceso implica agrupar los datos por categorías relevantes, como el nombre de la regla, el tipo de sistema operativo host y las tácticas y técnicas de MITRE ATT&CK y, a continuación, contar las ocurrencias. Este método ayuda a identificar los patrones y tendencias más prevalentes en los datos.

Ejemplo de diagrama de agregación de datos para obtener un conjunto de datos reducido

Exportar datos reducidos a Hojas de cálculo de Google para mejorar la accesibilidad

Los datos reducidos, ahora almacenados como un marco de datos en la memoria, están listos para ser exportados. Empleamos Hojas de cálculo de Google como plataforma para compartir estos conocimientos debido a su amplia accesibilidad y su interfaz fácil de usar. El proceso de exportación de datos a Google Sheets es sencillo y eficiente, gracias a la integración con los servicios de Google Cloud.

A continuación, se muestra un ejemplo de cómo se pueden cargar los datos en Hojas de cálculo de Google usando Python desde nuestro bloc de notas de Colab:

auth.authenticate_user()
credentials, project = google.auth.default()
gc = gspread.authorize(credentials)
workbook = gc.open_by_key("SHEET_ID")
behavior_sheet_name = 'NAME_OF_TARGET_SHEET'
endpoint_behavior_worksheet = workbook.worksheet(behavior_sheet_name)
set_with_dataframe(endpoint_behavior_worksheet, reduced_behavior_df)

Con unas pocas líneas de código, transferimos de manera efectiva los resultados de nuestro análisis de datos a Hojas de cálculo de Google. Este enfoque es ampliamente empleado debido a su accesibilidad y facilidad de uso. Sin embargo, existen muchos otros métodos para presentar datos, cada uno adaptado a diferentes requisitos y audiencias. Por ejemplo, algunos pueden optar por una plataforma como Looker para presentar los datos procesados en un formato de panel más dinámico. Este método es particularmente útil para crear presentaciones de datos interactivas y visualmente atractivas. Garantiza que incluso las partes interesadas que pueden no estar familiarizadas con los aspectos técnicos del análisis de datos, como las que trabajan en Jupyter Notebooks, puedan comprender fácilmente y obtener valor de la información.

Este proceso simplificado de reducción y presentación de datos se puede aplicar a diferentes tipos de conjuntos de datos, como alertas SIEM en la nube, alertas de comportamiento de endpoints o alertas de malware. El objetivo sigue siendo el mismo: simplificar y concentrar los datos para obtener información clara y procesable.

Presentación: Presentación de las ideas

Luego de refinar meticulosamente nuestros conjuntos de datos, ahora nos centramos en la etapa final: la presentación. Aquí tomamos nuestros conjuntos de datos, ahora perfectamente organizados en plataformas como Google Sheets o Looker, y los transformamos en un formato que es a la vez informativo y atractivo.

Tablas dinámicas para un análisis en profundidad

Usando tablas dinámicas, podemos crear una visión general completa de los hallazgos de nuestro análisis de tendencias. Estas tablas nos permiten mostrar los datos de forma multidimensional, ofreciendo información sobre diversos aspectos de la ciberseguridad, como las tácticas predominantes de MITRE ATT&CK, las técnicas elegidas y las familias de malware preferidas.

Nuestro enfoque de la visualización de datos implica:

  • Amplia visión general de las tácticas de MITRE ATT&CK: A partir de una perspectiva general, empleamos tablas dinámicas para ofrecer una visión general de las diferentes tácticas empleadas en las amenazas cibernéticas.
  • Desglose detallado: A partir de esta vista panorámica, profundizamos, creando tablas dinámicas separadas para cada táctica popular y luego nos diversificamos en análisis detallados para cada técnica y regla de detección específica.

Este proceso metódico ayuda a descubrir las complejidades de la lógica de detección y las alertas, narrando de manera efectiva la historia del panorama de amenazas cibernéticas.

Diagrama que muestra el embudo de agregaciones en información de reporte contextual

Accesibilidad para todos los públicos: Nuestras presentaciones de datos están diseñadas para atender a una amplia gama de audiencias, desde aquellos profundamente versados en ciencia de datos hasta aquellos que prefieren una comprensión más sencilla. El ecosistema de Google Workspace facilita el intercambio de estos conocimientos, lo que permite que todas las personas involucradas en el proceso de elaboración de reportes puedan acceder fácilmente a tablas dinámicas, conjuntos de datos reducidos y otros elementos.

Integración de visualizaciones en reportes: Al elaborar un reporte, por ejemplo, en Google Docs, la integración de gráficos y tablas de Hojas de cálculo de Google es perfecta. Esta integración garantiza que cualquier modificación en los conjuntos de datos o tablas dinámicas se actualice fácilmente en el reporte, manteniendo la eficiencia y la coherencia de la presentación.

Adaptar la presentación a la audiencia: La presentación de información sobre datos no se trata solo de transmitir información; Se trata de hacerlo de una manera visualmente atractiva y digerible. Para un público más conocedor de la tecnología, puede ser ideal un cuaderno Colab interactivo con gráficos y funciones dinámicas. Por el contrario, para los equipos de marketing o diseño, un panel de control bien diseñado en Looker podría ser más apropiado. La clave es cerciorar de que la presentación sea clara, concisa y visualmente atractiva, adaptada a las preferencias y necesidades específicas de la audiencia.

Conclusión: Reflexionando sobre el viaje del análisis de datos

Para concluir, es valioso reflexionar sobre el territorio en el que navegamos en el análisis de datos de amenazas cibernéticas. Este viaje implicó varias etapas clave, cada una de las cuales contribuyó significativamente a nuestros conocimientos finales.

Viaje a través del ecosistema en la nube de Google

Nuestro camino nos llevó a través de varios servicios de Google Cloud, incluidos GCP, GCE, Colab Notebooks y Google Workspace. Cada uno jugó un papel fundamental:

Exploración de datos: Comenzamos con un conjunto de preguntas relacionadas con la cibernética que queríamos responder y exploramos los vastos conjuntos de datos que teníamos disponibles. En este blog, nos centramos únicamente en la disponibilidad de la telemetría en BigQuery. Extracción de datos: Comenzamos extrayendo datos sin procesar, empleando BigQuery para manejar de manera eficiente grandes volúmenes de datos. La extracción se realizó tanto en BigQuery como desde nuestros blocs de notas de Colab. Manipulación y procesamiento de datos: Se aprovechó el poder de Python y la biblioteca de pandas para limpiar, agregar y refinar estos datos, al igual que un chef prepara hábilmente los ingredientes. Análisis de tendencias: A continuación, realizamos un análisis de tendencias en nuestros conjuntos de datos reformados con varias metodologías para obtener información valiosa sobre las tácticas, técnicas y procedimientos del adversario a lo largo del tiempo. Reducción: A partir de la columna vertebral de nuestro análisis de tendencias, agregamos nuestros diferentes conjuntos de datos por puntos de datos específicos en preparación para la presentación a las partes interesadas y pares. Transición a la presentación: La facilidad para pasar del análisis de datos a la presentación dentro de un navegador sitio web destacó la agilidad de nuestras herramientas, lo que facilitó un flujo de trabajo sin interrupciones.

Modularidad y flexibilidad en el flujo de trabajo

Un aspecto esencial de nuestro enfoque fue la naturaleza modular de nuestro flujo de trabajo. Cada fase, desde la extracción de datos hasta la presentación, contó con componentes intercambiables en el ecosistema de Google Cloud, lo que nos permitió adaptar el proceso a necesidades específicas:

Herramientas versátiles: Google Cloud Platform ofrecía una amplia gama de herramientas y opciones, lo que permitía flexibilidad en el almacenamiento, el análisis y la presentación de datos. Ruta de análisis personalizada: Dependiendo de los requisitos específicos de nuestro análisis, podríamos adaptarnos y elegir diferentes herramientas y métodos, cerciorando un enfoque personalizado para cada conjunto de datos. Autenticación y autorización: Debido a que nuestras entidades están alojadas en el ecosistema de Google Cloud, el acceso a diferentes herramientas, sitios, datos y más fue sencillo, lo que garantizó una transición fluida entre servicios.

Orquestación y sincronización de herramientas

La sinergia entre nuestras habilidades técnicas y las herramientas elegidas fue crucial. Esta armonización garantizó que el proceso analítico no solo fuera eficaz para este proyecto, sino que también sentó las bases para análisis futuros más eficientes y perspicaces. Las herramientas se emplearon para aumentar nuestras capacidades, manteniendo el enfoque en obtener información significativa en lugar de enredarnos en complejidades técnicas.

En resumen, este viaje a través del análisis de datos enfatizó la importancia de un enfoque bien pensado, que aproveche las herramientas y técnicas adecuadas, y la adaptabilidad para satisfacer las demandas del análisis de datos de amenazas cibernéticas. El resultado final no es solo un conjunto de hallazgos, sino una metodología refinada que se puede aplicar a futuros esfuerzos de análisis de datos en el campo en constante evolución de la ciberseguridad.

Llamada a la acción: Embárcate en tu propio viaje de análisis de datos

¡Su espacio de trabajo analítico está listo! ¿Qué enfoques o experiencias innovadoras con Google Cloud u otras plataformas de análisis de datos puede aportar? El ámbito de la analítica de datos es vasto y variado, y aunque cada analista aporta un toque único, los métodos y principios subyacentes son universales.

El objetivo no es únicamente sobresalir en sus proyectos analíticos actuales, sino mejorar y adaptar continuamente sus técnicas. Este refinamiento continuo garantiza que sus futuros esfuerzos en el análisis de datos sean aún más productivos, esclarecedores e impactantes. ¡Sumérgete y explora el mundo de la analítica de datos con Google Cloud!

¡Alentamos cualquier comentario y participación sobre este tema! Si prefieres hacerlo, no dudes en participar en el canal público #security Slack de Elastic.