29 de abril de 20264 min de leitura

Otimizando o desenvolvimento de Data Notebooks no Microsoft Sentinel com o Data Wrangler

(autor não identificado)

Azure

Banner - Otimizando o desenvolvimento de Data Notebooks no Microsoft Sentinel com o Data Wrangler

Um dos pilares do Microsoft Sentinel data lake é sua capacidade de executar análises complexas através de um motor de processamento baseado em Apache Spark. Para engenheiros de segurança (SecOps) e especialistas em dados, trabalhar com Jupyter notebooks no Visual Studio Code é uma prática comum para extrair insights, mas a tarefa de manipular DataFrames pode se tornar um processo iterativo, denso e propenso a erros quando feita inteiramente via código.

O uso da extensão Data Wrangler transforma essa experiência ao permitir a visualização intuitiva e o refinamento ágil dos dados, permitindo que você aplique transformações e exporte o código gerado de volta para o seu notebook. Nesta análise, exploramos como integrar essa ferramenta ao ecossistema do Microsoft Sentinel.

O Cenário Prático

A necessidade técnica é clara: processar dados brutos do log SigninLogs para uso posterior em algoritmos de ML ou investigação. O desafio recorrente envolve a limpeza de dados — tratar valores ausentes, aplicar filtros, realizar renaming de colunas e criar variáveis categóricas — tudo sem perder a rastreabilidade do que está sendo executado.

A Conexão com o Data Lake

Para iniciar, é fundamental utilizar a classe MicrosoftSentinelProvider do módulo sentinel_lake.providers. Esta classe abstrai a complexidade do acesso ao Spark session (spark), expondo métodos nativos para read_table e save_as_table.

from sentinel_lake.providers import MicrosoftSentinelProvider
from pyspark.sql.functions import col, from_json
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
import pandas as pd
from datetime import datetime, timedelta

one_month_ago = datetime.now() - timedelta(days=30) 
workspaceName = "YOUR_WORKSPACE_NAME" 
sentinel_provider = MicrosoftSentinelProvider(spark)

Ao lidar com tipos complexos (como LocationDetails ou Status), o uso de StructType no PySpark é vital para estruturar os dados de forma que possam ser consumidos eficientemente em um DataFrame plano, facilitando as etapas de Wrangle.

Visualizando e Wrangling

Após a definição do DataFrame, o Data Wrangler entra em cena. Embora o MicrosoftSentinelProvider retorne um PySpark DataFrame, a conversão para Pandas via .toPandas() é o gatilho para habilitar as funcionalidades visuais e estatísticas da extensão.

Visualização inicial no Data Wrangler

A função "Show column insights" oferece uma visão imediata da distribuição dos dados, facilitando a identificação de anomalias, como percentual de falhas em acesso condicional ou concentração de eventos de rede em IPs específicos.

Operações de Limpeza

O Data Wrangler opera em um ambiente sandbox, permitindo testar operações sem afetar o objeto original. As etapas comuns incluem:

  1. Filtragem de registros: Remoção de comportamentos inválidos com critérios visuais diretos.
  2. One-Hot Encoding: Criação de colunas binárias, crucial para algoritmos de aprendizado de máquina.
  3. Renomeação e preenchimento: Tratamento de valores null ou missing para padronizar o dataset antes da ingestão em algoritmos.
  4. Integração com Copilot: A possibilidade de utilizar prompts em linguagem natural para gerar operações ajuda na descoberta de funções, embora a revisão do código gerado seja mandatória.

Exportação de Código para o Notebook

O maior valor estratégico aqui é a automação da documentação e da reprodutibilidade. Ao clicar em "Export to notebook", a ferramenta gera o bloco de código correspondente a todas as operações de limpeza realizadas:

def clean_signin_info(df):
    # Filter rows based on column: 'UserType'
    df = df[~(df["UserType"] == "-1")]
    # ... (demais etapas)
    return df

signin_events_pandas_df = signin_events_df.toPandas()
cleaned_signin_events_df = clean_signin_info(signin_events_pandas_df)

Esta abordagem não apenas economiza tempo, mas garante que o pipeline de dados seja limpo, modular e de fácil leitura para outros membros da equipe engenharia.

Conclusão para Empresas Brasileiras

Para times operando em multi-cloud ou ambientes híbridos com Microsoft Sentinel, essa ferramenta reduz significativamente o time-to-insight. Ao remover a fricção da codificação manual, permitimos que analistas de SOC foquem na estratégia de detecção em vez de gastar horas em debugging de sintaxe no Spark. A eficiência operacional aqui é direta: menos código para manter, menos complexidade visual e maior rapidez na resposta a incidentes complexos.


Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset