10 ‐ Segurança - BktechBrazil/elastic-eck GitHub Wiki

10.1 - O que é o Elastic Security?

O Elastic Security é a solução de segurança da Elastic, construída sobre o Elastic Stack. Ela centraliza dados de segurança de diversas fontes — logs de sistemas, eventos de rede, dados de endpoints, feeds de threat intelligence — e oferece uma plataforma unificada para detectar, investigar e responder a ameaças.

O Elastic Security é classificado como uma plataforma SIEM (Security Information and Event Management) + XDR (Extended Detection and Response), o que significa que vai além da simples correlação de logs: ele também protege endpoints, automatiza respostas e usa inteligência artificial para priorizar alertas.

Na versão 9.4, a Elastic consolidou o Elastic Security como uma plataforma de SecOps agêntica — com automação nativa (Workflows), inteligência artificial integrada (Attack Discovery, AI Assistant) e capacidades de resposta a endpoints, eliminando a necessidade de ferramentas SOAR externas.

Por que usar o Elastic Security?

  • Sem silos: logs, métricas, eventos de endpoint e dados de APM estão no mesmo cluster — correlacionar um alerta de SIEM com dados de observabilidade é nativo, não uma integração
  • Regras baseadas em padrões conhecidos: o Elastic Security vem com centenas de regras de detecção prontas, mapeadas para o framework MITRE ATT&CK
  • Escalabilidade: o mesmo Elasticsearch que indexa bilhões de logs por dia é o motor de busca do SIEM
  • IA integrada: Attack Discovery e AI Assistant reduzem o tempo de triagem e investigação sem precisar de ferramentas externas

E no ECK? O Elastic Security é uma aplicação do Kibana e funciona igual em qualquer instalação. O que muda no ECK é a segurança do próprio cluster — TLS, usuários e credenciais —, gerenciada pelo operator e tratada na seção 10.4.


10.2 - Componentes do Elastic Security

10.2.1 - SIEM

O SIEM do Elastic Security é a camada de coleta, correlação e visualização de eventos de segurança. Diferentemente de SIEMs tradicionais que exigem normalizações manuais pesadas, o Elastic Security usa o ECS (Elastic Common Schema) — um schema padronizado que normaliza campos de diferentes fontes automaticamente.

O que o SIEM faz:

  • Coleta de dados: recebe eventos de qualquer fonte via Beats, Elastic Agent, Logstash ou qualquer sistema que envie dados no formato ECS. Exemplos: firewall logs, Active Directory, DNS, proxy, endpoint events.
  • Correlação de eventos: o mecanismo de detecção aplica regras sobre os dados indexados em tempo real ou em janelas de tempo configuráveis.
  • Timelines: ferramenta de investigação que permite ao analista construir uma linha do tempo de eventos relacionados a um incidente — arrastando alertas, queries e anotações para uma narrativa coerente.
  • Dashboards de segurança: painéis prontos para monitoramento de autenticações, eventos de rede, atividade de usuários, entre outros.

Caminho: Menu → Security → Overview

10.2.2 - Endpoint Security

O Elastic Agent com a integração de Elastic Defend transforma o agente de coleta de dados em um agente de proteção de endpoints — com capacidades de prevenção, detecção e resposta (EDR).

O que o Elastic Defend oferece:

  • Prevenção de malware: bloqueia executáveis maliciosos com base em assinaturas e análise comportamental, mesmo offline
  • Detecção comportamental: identifica técnicas de ataque (process injection, credential dumping, lateral movement) com base em comportamento, não apenas assinaturas
  • Response actions: a partir do Kibana, é possível executar ações remotas no endpoint sem precisar de acesso direto à máquina:
    • Isolar o host da rede (preservando a conexão com o Elastic)
    • Listar e finalizar processos
    • Executar comandos via shell remoto
    • Capturar arquivos suspeitos para análise
    • Memory dump: capturar memória de processos para análise forense — na 9.4, passou a estar disponível também em Linux

Elastic Defend e Kubernetes: a integração Elastic Defend ainda não é suportada em ambientes de containers, como o Kubernetes. É uma limitação da própria integração, não do ECK: o Kibana e o Fleet Server podem rodar no ECK e distribuir políticas com o Elastic Defend para agentes instalados em servidores e estações fora de containers.

Caminho: Menu → Security → Endpoints

10.2.3 - Regras de Detecção

As regras de detecção são o coração do SIEM. Cada regra define uma condição que, quando atendida, gera um alerta para investigação.

Tipos de regras disponíveis:

Tipo Como funciona Exemplo de uso
Query Busca documentos que correspondem a uma query EQL, KQL ou ES|QL Detectar login fora do horário comercial
Machine Learning Usa jobs de ML para detectar anomalias estatísticas Detectar volume anômalo de transferência de dados
Threshold Dispara quando o número de eventos, agrupados por até alguns campos, atinge um limite na janela de execução da regra Detectar brute force: 5 ou mais falhas de autenticação do mesmo IP
Event Correlation (EQL) Detecta sequências de eventos usando EQL (Event Query Language) Detectar execução de PowerShell seguida de conexão de rede em menos de 60 segundos
New Terms Dispara quando um valor nunca visto antes aparece em um campo Detectar novo executável nunca visto em um host
Indicator Match Correlaciona eventos com IOCs (Indicadores de Comprometimento) de threat intelligence Detectar conexão para IP presente em feed de C2

A janela de tempo de uma regra é definida pelo agendamento: cada execução analisa o intervalo da regra (Runs every) mais o tempo extra de Additional look-back time. Uma regra que roda a cada 5 minutos com 1 minuto de look-back analisa sempre os últimos 6 minutos.

Regras prontas: o Elastic Security vem com centenas de regras de detecção prontas, mantidas pela equipe da Elastic e mapeadas para o framework MITRE ATT&CK. Elas são atualizadas com frequência e podem ser instaladas em Detection Rules → Add Elastic rules.

Caminho: Menu → Security → Rules → Detection Rules

10.2.4 - Attack Discovery

O Attack Discovery é um recurso de IA que analisa os alertas disparados nas últimas horas e os correlaciona automaticamente em narrativas de ataque — agrupando alertas isolados em uma cadeia de eventos coerente.

Por que isso importa:

Um analista de SOC em um ambiente real pode receber dezenas ou centenas de alertas por hora. A maioria é ruído ou alertas relacionados ao mesmo ataque visto de múltiplos ângulos. O Attack Discovery usa um LLM para analisar o conjunto de alertas e identificar quais parecem fazer parte de uma mesma campanha — reduzindo o tempo de triagem de horas para minutos.

O que o Attack Discovery entrega:

  • Agrupamento de alertas relacionados em um único "ataque"
  • Narrativa em linguagem natural explicando o que está acontecendo
  • Mapeamento para táticas e técnicas do MITRE ATT&CK
  • Recomendação de próximos passos para o analista

O Attack Discovery precisa de pelo menos um conector de LLM configurado no Kibana.

Caminho: Menu → Security → Attack Discovery

10.2.5 - Threat Intelligence

O Elastic Security permite integrar feeds externos de Threat Intelligence — listas de IPs maliciosos, hashes de malware, domínios de C2, URLs de phishing — e correlacioná-los automaticamente com os eventos do SIEM.

Fontes de threat intelligence suportadas:

  • Integração nativa com feeds gratuitos via Elastic Agent integrations: MISP, Abuse.ch, AlienVault OTX, Anomali, entre outros
  • Ingestão manual de IOCs no formato STIX/TAXII
  • Qualquer feed que possa ser ingerido via Logstash ou Elastic Agent

A página Indicators, que reúne os IOCs dos feeds, exige licença Enterprise (disponível na trial).

Como funciona a correlação:

As regras do tipo Indicator Match verificam continuamente se eventos recentes do SIEM contêm campos que correspondem a IOCs indexados. Por exemplo: se um endpoint se conectar a um IP que está na lista de C2 conhecidos, a regra gera um alerta automaticamente.

Caminho: Menu → Security → Intelligence → Indicators

10.2.6 - Workflows (SOAR nativo)

GA na 9.4 para clientes Enterprise, o Workflows é o mecanismo de automação nativo do Elastic — eliminando a necessidade de uma ferramenta SOAR externa.

O que os Workflows permitem:

  • Criar fluxos de automação visuais que respondem a alertas, casos ou eventos
  • Executar ações em sequência: enriquecer um alerta com dados de threat intelligence, criar um case, notificar o time no Slack, isolar o endpoint, atribuir para um analista
  • Integrar com sistemas externos via webhook — Jira, ServiceNow, PagerDuty, qualquer API REST
  • Combinar automação determinística (passos fixos) com IA (o AI Agent decide o próximo passo com base no contexto)

Diferença em relação aos playbooks SOAR tradicionais:

Em um SOAR tradicional, o playbook define todos os passos antecipadamente. No Elastic Workflows com AI Agent integrado, parte do fluxo pode ser delegada ao agente de IA — que analisa o contexto e decide quais ações tomar, sem necessidade de mapear cada cenário possível.

Caminho: Menu → Security → Workflows (Enterprise)

10.2.7 - Cases

O módulo de Cases do Elastic Security funciona como o sistema de gestão de incidentes integrado ao SIEM. Permite documentar a investigação, colaborar com o time e manter o histórico completo de cada incidente.

Funcionalidades:

  • Criar casos manualmente ou automaticamente a partir de alertas (via regras ou Workflows)
  • Adicionar alertas, evidências, comentários e anexos ao caso
  • Definir severidade, status e responsável
  • Integrar com sistemas externos: Jira, ServiceNow, Swimlane
  • Auditar todas as ações tomadas no caso

Caminho: Menu → Security → Cases


10.3 - Framework MITRE ATT&CK

O MITRE ATT&CK é um framework público que cataloga táticas e técnicas usadas por atacantes reais em ataques documentados. É o padrão de referência da indústria de segurança.

Estrutura do MITRE ATT&CK:

  • Táticas: o objetivo do atacante em uma fase do ataque (ex: Initial Access, Execution, Persistence, Privilege Escalation, Lateral Movement, Exfiltration)
  • Técnicas: como o atacante atinge o objetivo (ex: T1059 - Command and Scripting Interpreter, T1078 - Valid Accounts)
  • Sub-técnicas: variações específicas de uma técnica (ex: T1059.001 - PowerShell)

Como o Elastic Security usa o MITRE ATT&CK:

Cada regra de detecção é mapeada para uma ou mais técnicas do MITRE ATT&CK. No Kibana, é possível visualizar a cobertura do seu ambiente através de uma matriz que mostra quais técnicas estão sendo detectadas — e identificar lacunas onde não há cobertura.

Caminho: Menu → Security → Rules → Coverage Overview


10.4 - Segurança do próprio cluster no ECK

Antes de proteger os dados monitorados, o Elastic Stack precisa estar protegido. No ECK, a segurança do cluster já vem ligada e é mantida pelo operator:

Item O que o operator faz
TLS na camada HTTP Cria uma CA própria para cada cluster e um certificado para o Service <nome>-es-http. Toda comunicação com a API do Elasticsearch é HTTPS.
TLS na camada de transporte Cria certificados para a comunicação entre os nodes, renovados automaticamente.
Usuário elastic Cria o superusuário elastic com uma senha aleatória, guardada no Secret <nome>-es-elastic-user.
Usuários internos Cria usuários de serviço para o Kibana, os Beats, o Elastic Agent e o próprio operator, cada um com as permissões necessárias.
Credenciais dos demais recursos Cria, por exemplo, o secret token do APM Server e as chaves de criptografia do Kibana.

As credenciais geradas pelo operator são guardadas em Secrets com o label eck.k8s.elastic.co/credentials=true.

Rotação de credenciais: para trocar uma credencial gerada pelo operator, basta apagar o Secret: o operator cria outro com um valor novo. Apagar o Secret lab-es-es-elastic-user, por exemplo, gera uma nova senha para o elastic. Aplicações que usam essa senha deixam de se conectar até receberem a nova — por isso a documentação recomenda não usar o elastic em aplicações e criar usuários próprios com permissões restritas.

Desativar o usuário elastic: em ambientes que autenticam apenas por SSO (SAML, OpenID Connect), o campo spec.auth.disableElasticUser: true do manifesto do Elasticsearch desativa o superusuário padrão.

Usuários e roles próprios: podem ser criados de três formas:

  • Native realm, pela interface do Kibana (Stack Management → Security) ou pela API de segurança do Elasticsearch — como em qualquer instalação;
  • File realm, de forma declarativa, com Secrets referenciados no manifesto do Elasticsearch em spec.auth.fileRealm. O ECK junta o conteúdo dos Secrets e o distribui para todos os nodes, sem reinício;
  • Realms externos, como LDAP, SAML e OpenID Connect, configurados no config do Elasticsearch e do Kibana.

Exemplo de usuário declarativo com um Secret do tipo kubernetes.io/basic-auth, referenciado no manifesto do Elasticsearch:

apiVersion: v1
kind: Secret
metadata:
  name: secret-basic-auth
type: kubernetes.io/basic-auth
stringData:
  username: analista-soc
  password: <senha>
  roles: viewer
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: lab-es
spec:
  auth:
    fileRealm:
      - secretName: secret-basic-auth
  # ... restante do manifesto

Roles próprias também podem ser declaradas em Secrets, com a chave roles.yml, referenciados em spec.auth.roles.


10.5 - Preparação dos laboratórios

Os laboratórios usam o cluster lab-es com um node e o Kibana lab-kb.

Passo 1 — Conferir o cluster

cd ~/eck-lab
kubectl -n elastic get elasticsearch,kibana

Resultado esperado: lab-es e lab-kb com HEALTH green.

Passo 2 — Acessar o Kibana

PASSWORD=$(kubectl -n elastic get secret lab-es-es-elastic-user \
  -o go-template='{{.data.elastic | base64decode}}')
echo "Senha do elastic: $PASSWORD"

pkill -f "port-forward.*5601" || true
nohup kubectl -n elastic port-forward --address 0.0.0.0 service/lab-kb-kb-http 5601 > /tmp/pf-kibana.log 2>&1 &
sleep 2
cat /tmp/pf-kibana.log

Resultado esperado: a senha do usuário elastic e a mensagem Forwarding from 0.0.0.0:5601 -> 5601.

O túnel fica ligado ao pod do Kibana que estava rodando quando ele foi aberto. Se esse pod for reiniciado ou recriado, o túnel cai e o Kibana deixa de responder no navegador: execute este bloco novamente.

No navegador, abra https://<IP_DA_VM>:5601 e faça login com o usuário elastic.

As regras de detecção usadas nos laboratórios funcionam na licença Basic. Recursos como Attack Discovery e regras de Machine Learning exigem licença paga (disponível na trial). A instalação das regras prontas da Elastic baixa um pacote do Elastic Package Registry: o pod do Kibana precisa de acesso à internet.


10.6 - Laboratório 1: credenciais e usuários gerenciados pelo ECK

Neste laboratório você vai ver as credenciais que o operator criou para o lab-es e o lab-kb e, opcionalmente, trocar a senha do usuário elastic.

Passo 1 — Listar as credenciais geradas pelo operator

kubectl -n elastic get secret -l eck.k8s.elastic.co/credentials=true

Resultado esperado: os Secrets de credenciais do namespace, entre eles o lab-es-es-elastic-user (senha do elastic) e os usuários que o operator criou para o Kibana.

Veja também todos os Secrets do cluster lab-es, incluindo os de certificados:

kubectl -n elastic get secret | grep lab-es

Resultado esperado: uma lista parecida com esta (os nomes seguem o padrão <nome do cluster>-es-...):

lab-es-es-elastic-user                 Opaque   1
lab-es-es-http-ca-internal             Opaque   2
lab-es-es-http-certs-internal          Opaque   3
lab-es-es-http-certs-public            Opaque   2
lab-es-es-internal-users               Opaque   5
lab-es-es-transport-ca-internal        Opaque   2
lab-es-es-transport-certs-public       Opaque   1
lab-es-es-xpack-file-realm             Opaque   4
...
Secret Conteúdo
lab-es-es-elastic-user Senha do superusuário elastic
lab-es-es-http-ca-internal / lab-es-es-http-certs-internal CA e certificado da camada HTTP, usados pelo Elasticsearch
lab-es-es-http-certs-public Certificado público e CA da camada HTTP, para clientes confiarem no cluster
lab-es-es-transport-* CA e certificados da comunicação entre os nodes
lab-es-es-internal-users Senhas dos usuários internos usados pelo operator
lab-es-es-xpack-file-realm Conteúdo do file realm (users, users_roles) montado nos nodes

Passo 2 — Ver quem está autenticado e quais usuários existem

No Console do Kibana:

GET /_security/_authenticate

A resposta mostra o usuário elastic, a role superuser e o realm de autenticação.

Passo 3 (opcional) — Trocar a senha do usuário elastic

Apague o Secret com a senha: o operator gera uma nova em seguida.

kubectl -n elastic delete secret lab-es-es-elastic-user
sleep 10
PASSWORD=$(kubectl -n elastic get secret lab-es-es-elastic-user \
  -o go-template='{{.data.elastic | base64decode}}')
echo "Nova senha do elastic: $PASSWORD"

Resultado esperado: secret "lab-es-es-elastic-user" deleted e, depois de alguns segundos, uma senha diferente da anterior.

Saia do Kibana e entre de novo com a nova senha. O Kibana continua funcionando durante a troca, porque se conecta ao Elasticsearch com o seu próprio usuário interno, e não com o elastic.


10.7 - Laboratório 2: criando e testando regras de detecção

Neste laboratório vamos criar uma regra de detecção personalizada e verificar o fluxo completo de um alerta — da geração à investigação.

Habilitando regras prontas da Elastic

  1. Acesse Menu → Security → Rules → Detection Rules
  2. Clique em Add Elastic rules
  3. Filtre por categoria Linux ou Credential Access
  4. Instale algumas regras com Install and enable (em vez de Install all, que instala todas sem habilitar)
  5. Confira na lista de Detection Rules que as regras aparecem como habilitadas

Preparando os eventos de autenticação

O laboratório precisa de eventos de autenticação SSH. Em produção, eles viriam do Elastic Agent ou do Filebeat lendo os logs de autenticação dos servidores. Aqui, vamos gerá-los no Console, em um data stream de logs com campos no padrão ECS.

Primeiro, um ingest pipeline que marca cada evento com o horário da indexação, para que os eventos caiam sempre dentro da janela da regra:

PUT /_ingest/pipeline/lab-auth-agora
{
  "description": "Define o @timestamp dos eventos do laboratório como o momento da indexação",
  "processors": [
    {
      "set": {
        "field": "@timestamp",
        "copy_from": "_ingest.timestamp"
      }
    }
  ]
}

Criando uma regra personalizada do tipo Threshold

Vamos criar uma regra que detecta múltiplas falhas de autenticação SSH em curto período — um indicador clássico de brute force.

  1. Acesse Menu → Security → Rules → Detection Rules → Create new rule
  2. Selecione o tipo Threshold
  3. Em Index patterns, deixe apenas logs-lab.auth-*
  4. Configure a query:
event.category: "authentication" and event.outcome: "failure" and process.name: "sshd"
  1. Configure o threshold:

    • Group by: source.ip
    • Threshold: 5
  2. Em About rule, configure:

    • Name: SSH Brute Force - Múltiplas Falhas de Autenticação
    • Description: Detecta 5 ou mais falhas de autenticação SSH do mesmo IP
    • Severity: Medium
    • Risk score: 47
    • MITRE ATT&CK: Tática Credential Access, Técnica T1110 - Brute Force
  3. Em Schedule rule, configure:

    • Runs every: 1 minute
    • Additional look-back time: 5 minutes

    A regra analisa os últimos 6 minutos a cada execução. Em produção, o comum é rodar a cada 5 minutos; aqui usamos 1 minuto para ver o alerta rapidamente.

  4. Clique em Create & enable rule

Gerando o ataque simulado

Com a regra habilitada, indexe no Console seis falhas de SSH do IP 203.0.113.10, duas do IP 198.51.100.7 (abaixo do limite) e, por fim, um login bem-sucedido do mesmo IP atacante:

POST /logs-lab.auth-default/_bulk?pipeline=lab-auth-agora&refresh=true
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "root" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for root from 203.0.113.10 port 52211 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "root" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for root from 203.0.113.10 port 52212 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "admin" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for admin from 203.0.113.10 port 52213 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "admin" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for admin from 203.0.113.10 port 52214 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "oracle" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for oracle from 203.0.113.10 port 52215 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "admin" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for admin from 203.0.113.10 port 52216 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "198.51.100.7" }, "user": { "name": "joao" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for joao from 198.51.100.7 port 40111 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "failure" }, "process": { "name": "sshd" }, "source": { "ip": "198.51.100.7" }, "user": { "name": "joao" }, "host": { "name": "srv-lab-01" }, "message": "Failed password for joao from 198.51.100.7 port 40112 ssh2" }
{ "create": {} }
{ "event": { "kind": "event", "category": ["authentication"], "outcome": "success" }, "process": { "name": "sshd" }, "source": { "ip": "203.0.113.10" }, "user": { "name": "admin" }, "host": { "name": "srv-lab-01" }, "message": "Accepted password for admin from 203.0.113.10 port 52217 ssh2" }
  • O nome logs-lab.auth-default segue o padrão logs-<dataset>-<namespace>: o data stream é criado pelo template interno de logs, e os campos no padrão ECS recebem os tipos corretos (por exemplo, source.ip como ip);
  • o _bulk usa create, a única operação aceita em data streams;
  • o parâmetro pipeline=lab-auth-agora coloca o horário atual no @timestamp de cada evento.

A resposta deve trazer "errors": false. Se o data stream ficar yellow (o lab-es tem um único node), ajuste as réplicas:

PUT /logs-lab.auth-default/_settings
{
  "index.number_of_replicas": 0
}

Os IPs 203.0.113.10 e 198.51.100.7 pertencem a faixas reservadas para documentação: não são endereços reais.

Verificando alertas gerados

Em até um ou dois minutos, a regra executa e gera um alerta para o IP 203.0.113.10, que teve 6 falhas. O IP 198.51.100.7, com 2 falhas, não gera alerta. Os alertas aparecem em:

Menu → Security → Alerts

Para cada alerta você pode:

  • Ver os detalhes do evento que disparou a regra
  • Navegar para o host ou usuário relacionado
  • Adicionar a uma Timeline para investigação
  • Criar um Case para acompanhamento
  • Alterar o status do alerta: Open → Acknowledged → Closed

Na página da regra (Detection Rules → SSH Brute Force...), a aba de execuções mostra se cada execução terminou com sucesso. Se nenhum alerta aparecer, confira ali se a regra encontrou erros e se os eventos foram indexados há menos de 6 minutos; se já passaram, repita o _bulk.


10.8 - Laboratório 3: investigando um alerta com Timeline

A Timeline é a ferramenta de investigação do Elastic Security. Ela permite construir uma narrativa cronológica de eventos relacionados a um incidente.

Criando uma Timeline a partir de um alerta

  1. Acesse Menu → Security → Alerts
  2. Clique no ícone de investigação ao lado do alerta de brute force
  3. Selecione Investigate in Timeline

A Timeline será criada automaticamente com o alerta e os eventos relacionados.

Navegando na Timeline

  • Query bar: adicione filtros para incluir ou excluir eventos — por exemplo, filtre por host.name para ver todos os eventos do host afetado no período
  • Adicionar eventos: arraste eventos da lista de resultados para a Timeline para incluí-los na narrativa
  • Anotações: adicione comentários a eventos específicos para documentar suas observações
  • Field browser: selecione quais campos exibir na tabela para facilitar a análise

Adicionando contexto à investigação

Com o alerta de brute force na Timeline, adicione uma query para ver o que aconteceu depois das falhas — especificamente, se algum login foi bem-sucedido:

event.category: "authentication" and event.outcome: "success" and host.name: "srv-lab-01"

A Timeline mostra o login bem-sucedido do usuário admin a partir do IP 203.0.113.10, logo depois das falhas: um indício de que o ataque de brute force foi efetivo.

Salvando e convertendo em Case

  1. Clique em Save para salvar a Timeline com um nome descritivo
  2. Clique em Attach to new case para criar um Case vinculado à investigação
  3. Preencha o título, descrição e severidade do Case
  4. Clique em Create case

10.9 - Laboratório 4: visualizando cobertura MITRE ATT&CK

  1. Acesse Menu → Security → Rules → Coverage Overview
  2. A matriz MITRE ATT&CK será exibida: quanto mais regras cobrem uma técnica, mais escura fica a célula (veja a legenda no topo). Ao expandir uma célula, aparecem as contagens de regras habilitadas e desabilitadas
  3. Passe o mouse sobre cada célula para ver quais regras cobrem aquela técnica
  4. Clique em uma célula para abrir as regras correspondentes e habilitá-las diretamente
  5. Localize a técnica T1110 - Brute Force, na tática Credential Access: ela aparece coberta pela regra criada no laboratório anterior

Esse mapa é uma ferramenta valiosa para comunicar a postura de segurança para gestores e para identificar lacunas prioritárias de detecção.


10.10 - Limpeza do ambiente

  1. Em Security → Rules → Detection Rules, desabilite ou apague a regra SSH Brute Force - Múltiplas Falhas de Autenticação e as regras prontas habilitadas no laboratório, para que não fiquem executando.
  2. No Console, apague o data stream e o pipeline do laboratório:
DELETE /_data_stream/logs-lab.auth-default
DELETE /_ingest/pipeline/lab-auth-agora

Os alertas, a Timeline e o Case criados continuam no Kibana como registro da investigação.


Resumo do capítulo

  • O Elastic Security é uma plataforma SIEM + XDR sobre o Elastic Stack, com dados normalizados no ECS, regras de detecção, Timelines, Cases, threat intelligence, IA (Attack Discovery) e automação (Workflows).
  • As regras de detecção têm vários tipos (Query, Threshold, EQL, New Terms, Indicator Match, ML) e são mapeadas para o MITRE ATT&CK; a janela de uma regra é o intervalo de execução mais o look-back.
  • O Elastic Defend protege endpoints, mas não é suportado em containers; o ECK pode hospedar o Kibana e o Fleet Server que gerenciam agentes fora do Kubernetes.
  • No ECK, a segurança do cluster vem ligada: TLS nas camadas HTTP e de transporte, usuário elastic e usuários internos criados pelo operator, com as credenciais em Secrets marcados com eck.k8s.elastic.co/credentials=true.
  • Apagar o Secret de uma credencial faz o operator gerar outra (rotação). Usuários e roles próprios podem ser criados no native realm ou, de forma declarativa, em Secrets referenciados em spec.auth.
  • A Timeline reconstrói a sequência de eventos de um incidente e pode ser anexada a um Case.

Origem do conteúdo

10.1 a 10.3 - Elastic Security, componentes e MITRE ATT&CK

10.4 e 10.6 - Segurança do cluster no ECK

10.7 a 10.10 - Laboratórios de detecção e investigação

⚠️ **GitHub.com Fallback** ⚠️