Dados, Python e Cibersegurança: quando encontrar um padrão não significa encontrar uma ameaça
- #Python
- #Banco de Dados
- #Segurança da Informação
Em Cibersegurança, existe uma quantidade enorme de informações que pode ser analisada.
Logs de autenticação.
Eventos de sistemas.
Registros de acesso.
Alertas.
Indicadores.
Dados temporais.
Informações de diferentes fontes.
O desafio não é apenas conseguir armazenar esses dados.
É conseguir transformar grandes volumes de informação em evidências que possam apoiar uma investigação.
É nesse contexto que ferramentas de análise de dados como NumPy, Pandas e Matplotlib podem ser interessantes.
Não porque sejam ferramentas de segurança por definição, mas porque permitem estruturar, transformar, analisar e visualizar dados que podem fazer parte de uma investigação de segurança.
E isso levanta uma questão importante:
Se encontramos um padrão nos dados, encontramos necessariamente uma ameaça?
A resposta é: não.
Um padrão pode ser uma evidência.
Mas uma evidência ainda precisa de contexto.
1. Antes da análise: entender o dado
Imagine receber um conjunto de eventos de autenticação.
Podemos ter informações como:
timestamp
usuário
origem
resultado
serviço
endereço de origem
Antes de procurar anomalias, existe uma etapa que costuma ser menos interessante visualmente, mas é fundamental:
entender a qualidade dos dados.
Precisamos saber, por exemplo:
- existem valores ausentes?
- existem registros duplicados?
- os timestamps estão em um padrão consistente?
- os campos possuem tipos adequados?
- existem valores fora do domínio esperado?
- diferentes fontes utilizam formatos diferentes?
- existe alguma alteração na estrutura dos dados?
Uma análise sofisticada sobre dados inconsistentes continua produzindo uma conclusão potencialmente inconsistente.
Por isso:
A qualidade da análise começa antes da análise.
2. Onde o Pandas entra?
O Pandas fornece estruturas e operações para manipulação e análise de dados, sendo particularmente útil para trabalhar com dados tabulares.
Em uma investigação, isso pode permitir organizar eventos, filtrar períodos, agrupar ocorrências e comparar comportamentos.
Por exemplo, conceitualmente:
eventos
↓
limpeza
↓
validação
↓
transformação
↓
agrupamento
↓
análise
Podemos investigar perguntas como:
Quantos eventos ocorreram por período?
Quais usuários apresentam maior quantidade de falhas?
Existe concentração de eventos em determinado intervalo?
Quais origens aparecem com maior frequência?
Essas perguntas podem ajudar a reduzir milhares de registros a informações mais compreensíveis.
Mas existe uma diferença importante entre:
"Esse usuário possui muitas falhas de autenticação."
e:
"Esse usuário sofreu um ataque."
A primeira afirmação pode ser obtida diretamente dos dados.
A segunda exige contexto e evidências adicionais.
3. NumPy e a análise quantitativa
O NumPy fornece estruturas e operações eficientes para computação numérica em Python.
Em uma análise de dados de segurança, pode auxiliar em cálculos estatísticos, operações sobre conjuntos de valores e transformações numéricas.
Isso pode ser útil para identificar desvios em relação a determinado comportamento observado.
Mas novamente existe uma armadilha:
anomalia não é sinônimo de ataque.
Uma alteração estatisticamente relevante pode representar:
- comportamento legítimo;
- mudança operacional;
- atividade sazonal;
- manutenção;
- mudança de configuração;
- erro de coleta;
- ou, eventualmente, uma atividade maliciosa.
A matemática pode indicar:
"Existe algo diferente."
Ela não necessariamente consegue responder:
"Por que isso aconteceu?"
Essa segunda pergunta depende de contexto.
4. Matplotlib: transformar números em contexto visual
Uma tabela com milhares de registros pode esconder padrões.
Uma visualização adequada pode tornar determinadas características muito mais evidentes.
Com Matplotlib, podemos representar informações como:
- eventos ao longo do tempo;
- distribuição de ocorrências;
- frequência por categoria;
- concentração de eventos;
- comparação entre períodos.
Uma visualização pode ajudar o analista a perceber que determinado comportamento não está distribuído de maneira uniforme.
Mas existe outro cuidado:
Um gráfico também pode enganar.
A escolha da escala, do intervalo de tempo, da agregação e das categorias pode destacar ou esconder determinados comportamentos.
Por isso, visualização não substitui análise.
Ela é uma forma de explorar e comunicar evidências.
5. Evidência, inferência e hipótese
Essa talvez seja a parte mais importante de uma investigação baseada em dados.
Imagine que uma análise encontre:
Evidência:
a quantidade de falhas de autenticação aumentou em determinado período.
A partir disso podemos fazer uma:
Inferência:
existe uma alteração relevante no padrão observado.
E então formular uma:
Hipótese:
pode estar ocorrendo uma tentativa de acesso indevido.
Perceba que cada etapa possui um nível diferente de certeza.
O erro seria transformar diretamente:
padrão identificado
↓
"ataque confirmado"
A análise de dados pode ajudar a encontrar aquilo que merece investigação.
Ela não necessariamente encerra a investigação.
6. O problema da correlação
Imagine duas variáveis apresentando comportamento semelhante.
Isso pode ser interessante.
Mas correlação não significa necessariamente causalidade.
Em segurança, esse cuidado é ainda mais importante.
Um aumento de eventos de autenticação pode coincidir com um aumento de utilização de determinado serviço.
Isso não significa automaticamente que um evento causou o outro.
Precisamos perguntar:
Qual é a relação entre os eventos?
Existe evidência independente?
O comportamento é recorrente?
Existe contexto operacional que explique a alteração?
Outras fontes confirmam o comportamento?
É nesse momento que uma análise de dados pode deixar de ser apenas estatística e começar a contribuir para uma investigação multidimensional.
7. E se cruzarmos fontes diferentes?
É aqui que a análise fica mais interessante.
Imagine combinar:
Logs de autenticação
+
Eventos de aplicação
+
Registros de acesso
+
Alertas de segurança
Cada fonte isoladamente pode parecer pouco significativa.
Mas uma correlação temporal ou contextual pode revelar uma sequência que merece investigação.
Por exemplo:
falhas de autenticação
↓
acesso bem-sucedido
↓
atividade incomum
↓
alteração de recurso
Isso não significa automaticamente que ocorreu um incidente.
Mas agora temos uma hipótese muito mais estruturada para investigar.
A pergunta deixa de ser:
"Existe alguma coisa estranha nesse log?"
e passa a ser:
"Existe uma relação entre eventos aparentemente independentes que merece ser investigada?"
8. Onde entra a Cibersegurança?
Nesse cenário, Python pode funcionar como uma camada de apoio.
Podemos imaginar:
Dados
↓
Pandas
↓
Limpeza e transformação
↓
NumPy
↓
Análise quantitativa
↓
Matplotlib
↓
Visualização
↓
Analista
↓
Hipótese
↓
Validação
O ponto final continua sendo o analista.
A ferramenta pode encontrar padrões.
Pode reduzir o trabalho manual.
Pode revelar relações difíceis de perceber em grandes volumes de dados.
Mas a interpretação precisa considerar:
- contexto;
- qualidade da fonte;
- limitações da coleta;
- regras de negócio;
- comportamento esperado;
- evidências adicionais;
- risco de falso positivo;
- impacto de uma eventual decisão.
9. E quando os dados estiverem errados?
Existe uma questão que muitas vezes passa despercebida.
Suponha que um gráfico mostre uma anomalia.
Antes de concluir que existe uma ameaça, deveríamos perguntar:
O dado está correto?
Pode existir:
- falha de coleta;
- duplicação;
- perda de registros;
- alteração de formato;
- diferença de timezone;
- mudança de schema;
- registros atrasados;
- inconsistência entre fontes.
Nesse cenário, podemos ter uma situação curiosa:
dados incorretos
↓
análise correta
↓
conclusão incorreta
O algoritmo pode estar funcionando perfeitamente.
O problema está na evidência.
Isso reforça uma ideia importante:
Uma análise tecnicamente correta sobre dados incorretos ainda pode produzir uma decisão incorreta.
10. Automação não elimina julgamento
Com Python, seria possível automatizar grande parte desse fluxo.
Mas automatizar a identificação de anomalias não significa automatizar a decisão de que existe um incidente.
Podemos pensar em três níveis:
Nível 1 — Automação
O sistema identifica um padrão.
Nível 2 — Investigação
O analista verifica contexto e outras evidências.
Nível 3 — Decisão
Uma ação é tomada de acordo com o risco e os critérios definidos.
Essa separação é particularmente importante quando uma decisão pode gerar impacto operacional.
Um falso positivo pode ser tão problemático quanto deixar uma atividade suspeita passar despercebida.
11. A pergunta que fica
Talvez a pergunta mais interessante não seja:
"Como usar Pandas, NumPy e Matplotlib em Cibersegurança?"
Mas:
"Como utilizar ferramentas de análise de dados sem transformar um padrão estatístico em uma conclusão de segurança sem evidências suficientes?"
Essa diferença muda o papel da tecnologia.
Python pode ajudar a:
processar dados.
encontrar padrões.
reduzir o trabalho manual.
visualizar comportamentos.
correlacionar informações.
Mas a confiabilidade da investigação depende também de algo que nenhuma biblioteca resolve sozinha:
a qualidade das evidências e a capacidade de interpretá-las dentro do contexto correto.
No final, talvez o verdadeiro objetivo não seja encontrar uma anomalia.
É conseguir responder:
"O que sabemos, como sabemos, o que ainda não sabemos e qual evidência precisamos obter para reduzir essa incerteza?"
Essa é uma diferença importante entre simplesmente analisar dados e utilizar dados para investigar um problema de segurança.



