Voltar às atualizações
New releaseAug 8, 2026

maltrail v3.0

Sistema de detecção de tráfego malicioso em tempo real que utiliza listas negras públicas, rastros estáticos de malware e análise heurística para identificar ameaças no tráfego DNS, HTTP e IP.

Compartilhar

Maltrail

License Sensor Server Trails X

Maltrail

Maltrail é um sistema de detecção de tráfego de rede que identifica comunicação com infraestrutura maliciosa conhecida e reporta anomalias de tráfego selecionadas. Ele compara domínios, URLs, endereços IP, pares IP:port e valores de User-Agent observados na rede com um conjunto de indicadores chamados trails.

Uma detecção é registrada como um único evento contendo a origem, o destino, o protocolo, o trail correspondente, a classificação e a origem do trail:```text "2026-08-07 09:14:22.117034" gw 10.13.13.2 57809 1.1.1.1 53 UDP DNS malware.bakewithdavid.com "asyncrat (malware)" (static)

O Maltrail foi projetado para monitoramento de rede baseado em indicadores. Suas detecções heurísticas complementam
a correspondência de trails, mas não substituem a telemetria de endpoint ou um sistema de prevenção de intrusão
de uso geral.

## Recursos

- Uma construção completa de trails combinando mais de 3.000 arquivos estáticos incluídos, 42 integrações de feeds públicos,
  e trails opcionais fornecidos pelo operador.
- Um sensor Rust multithread usando libpcap, com workers de captura Linux `PACKET_FANOUT` opcionais.
- Um servidor Python fornecendo a interface de relatórios, ingestão de eventos e API HTTP.
- Trails personalizados em texto simples e whitelists que podem ser revisados e versionados.
- Heurísticas para varredura, esgotamento de DNS, consultas do tipo DGA, downloads suspeitos, sondagens de proxy,
  valores de User-Agent suspeitos e atividades de rede relacionadas.
- Registro de eventos local, registro remoto do Maltrail, CEF sobre syslog e saída Logstash JSON.
- Validação de implantação com `maltrail-sensor -T` e métricas Prometheus opcionais.

## Conteúdo

- [Arquitetura](#architecture)
- [Interface de relatórios](#reporting-interface)
- [Desempenho](#performance)
- [Instalação](#installation)
  - [Instalador](#installer)
  - [Compilação a partir do código-fonte](#building-from-source)
  - [Systemd](#systemd)
  - [Docker](#docker)
- [Configuração](#configuration)
- [Trails](#trails)
- [Eventos e API](#events-and-api)
- [Operações](#operations)
  - [Monitoramento](#monitoring)
  - [Retenção de eventos](#event-retention)
- [Documentação](#documentation)
- [Contribuindo](#contributing)
- [Projeto](#project)
  - [Licença](#license)
  - [Mantenedores](#maintainers)
  - [Patrocinadores](#sponsors)
  - [Apresentações e publicações](#presentations-and-publications)
  - [Blacklist derivada](#derived-blacklist)
  - [Integrações de terceiros](#third-party-integrations)
  - [Agradecimentos](#acknowledgements)

## Arquitetura

O Maltrail consiste em dois processos independentes que podem ser executados no mesmo host ou em hosts separados:```text
   ┌──────────┐   events (UDP or file)   ┌──────────┐
   │  sensor  │ ───────────────────────► │  server  │ ◄── browser
   └──────────┘                          └──────────┘
    Rust                                  Python
    libpcap + PACKET_FANOUT               reporting UI + API
    trail matching + heuristics

O sensor captura tráfego, realiza correspondência de trilhas e análise heurística, e produz eventos. Ele pode gravar eventos localmente (LOG_DIR), enviá-los a um servidor Maltrail remoto (LOG_SERVER), ou ambos. Também pode emitir CEF via syslog (SYSLOG_SERVER) e JSON para o Logstash (LOGSTASH_SERVER).

O servidor recebe e armazena eventos remotos, serve logs de eventos disponíveis localmente e fornece a interface web e a API.

Interface de relatórios

O Maltrail inclui uma interface de relatórios baseada em navegador para explorar o tráfego detectado, com atualizações ao vivo, busca por campo, caça retroativa, visualizações geográficas, triagem, visualizações salvas e exportação.

Interface de relatórios do Maltrail

A interface é servida por server.py em HTTP_ADDRESS:HTTP_PORT. É JavaScript puro com uma única dependência de runtime de terceiros (PapaParse, para análise de CSV) e sem etapa de build. Um dia é visualizado por vez, selecionado com um seletor de data que também funciona como uma grade de densidade de eventos sobre os logs diários disponíveis. Os eventos são transmitidos de /events e agregados no navegador em ameaças — uma linha por (source, trail) distinto — exibidas em uma grade classificável com um painel de detalhes.

RecursoNotas
Modo ao vivoEventos anexados são enviados via Server-Sent Events (/live) e mesclados na visualização atual. Recorre à sondagem de intervalos de bytes do log diário quando o SSE não está disponível, ou para sessões que o stream não consegue atender. Novas ameaças de alta severidade podem acionar uma notificação de desktop e um alerta sonoro; ambos podem ser silenciados
BuscaTokens com escopo de campo (src: dst: port: proto: type: trail: info: family: tag: uid: sev: dir: status:; family:interlock inclui interlock-1/-2, os fragmentos em que um dump de feed chega dividido) combinados com espaço como AND, - para excluir, curingas *, CIDR (src:10.0.0.0/8), e intervalos numéricos e comparações (port:>1024, count:>=100). Filtros ativos aparecem como chips removíveis
Caça retroativaPesquisa em todos os logs diários retidos por um indicador (/hunt), não apenas no dia em visualização. Limitada por um limite de dias, um orçamento de tempo real e um limite de amostras; um dia que o orçamento interrompeu é relatado separadamente dos dias concluídos em vez de contado como um total finalizado. Um índice sidecar por dia (LOG_DIR/index/, USE_EVENT_INDEX) permite que a varredura pule todas as linhas não correspondentes e torna /counts exato
Mapa mundialDensidade de eventos por país para o dia selecionado (/geo), posicionando o endpoint externo de cada evento. Eventos que não podem ser atribuídos a um endereço externo são relatados como não mapeados em vez de adivinhados. Defina HOME_LAT / HOME_LON para desenhar arcos de origem
TriagemStatus por ameaça (nova / em investigação / resolvida / falso positivo), notas de texto livre, tags e ocultação. Regras de whitelist e pivôs de OSINT estão disponíveis no menu de contexto da linha
Visualizações salvasPresets de filtro nomeados
ExportaçãoA visualização filtrada atual como CSV, JSON ou indicadores defanged
AparênciaTemas escuro e claro, e etapas discretas de tamanho de texto

O estado de triagem, visualizações salvas, tags e configurações de aparência são armazenados no navegador (localStorage), não no servidor: são por navegador e por origem, e não são compartilhados entre analistas.

Sessões restritas com um filtro de rede veem apenas eventos de suas próprias redes, e essa restrição se aplica às contagens, ao mapa e aos endpoints de blacklist, bem como à lista de eventos.

O enriquecimento de país e ASN para endereços individuais é consultado em stat.ripe.net pelo servidor, que armazena os resultados em cache e os serve à interface a partir de seu próprio endpoint /ripe; o navegador não se comunica com nada além do Maltrail. Defina DISABLE_RIPE_LOOKUPS para desativar completamente as consultas de saída. Sem elas — ou em um host sem acesso à internet — as bandeiras vêm da tabela RIR local e todo o resto na interface funciona offline.

Desempenho

Categorias