Maltrail – A ajuda para monitorizar tráfego malicioso na sua rede
O Maltrail é uma ferramenta de deteção de tráfego malicioso, baseado na arquitetura Tráfego-Sensor-Servidor-Cliente, que utiliza blacklists públicas contendo endereços web com malware e/ou suspeitos, juntamente com endereços estáticos compilados a partir de vários relatórios de antivírus, permitindo ainda ao utilizador criar uma lista personalizada com URL’s ou endereços IP.
Além disso, esta ferramenta possui mecanismos heurísticos avançados para ajudar na descoberta de ameaças desconhecidas. Vamos então conhecer melhor o Maltrail e o que é capaz de fazer para o proteger.
O Maltrail é um componente autónomo, executado num nó de monitorização ou máquina por onde o tráfego passa. Na eventualidade de o resultado ser positivo, os detalhes do evento são enviados para o servidor, armazenados num diretório de registo apropriado.
Caso o Sensor esteja a ser executado na mesma máquina que o Servidor, os ficheiros de registo são armazenados no diretório de log local, caso contrário, são enviados via mensagens UDP para o Servidor remoto.
Em relação ao Servidor, ele é responsável por armazenar os detalhes do(s) evento(s) e fornecer suporte de back-end para a aplicação Web onde serão visualizados todos os relatórios. Por definição, o Servidor e o Sensor são executados na mesma máquina.
Processo de instalação, configuração e teste do Sensor
Passo 1) No terminal, execute o comando:
git clone https://github.com/stamparm/maltrail.git |
Aceda à diretoria do Maltrail e liste-a para confirmar se está tudo como pretendido.
cd maltrail/ ls-l |
Passo 2) Execute o Sensor. Durante este processo, ele irá atualizar as respetivas listas.
./sensor.py |
Passo 3) Numa nova janela de terminal, execute agora o Servidor.
./server.py |
Passo 4) Através do browser, aceda ao endereço IP do Servidor, no porto 8338, e faça login.
- Username: admin
- Password: changeme!
Esta palavra passe deve ser, obviamente alterada logo que possível.
Passo 5) Abra uma terceira janela de terminal e faça um ping ao IP 136.161.101.53.
Abra o ficheiro de registos do Maltrail e veja o seu conteúdo.
cat /var/log/maltrail/$(date +”%y-%m-%d”).log |
Passo 6) O evento foi registado e pode ser consultado.
Como deve ter reparado, o acesso ao Servidor é feito por HTTP, o que significa não ser uma ligação encriptada. Para tal ser possível, é necessário realizar algumas configurações.
Passo 7) Pare a execução do Servidor através das teclas CTRL+C. Na mesma janela de Terminal, e na diretoria do Maltrail, abra o ficheiro maltrail.conf com um editor de texto.
nano maltrail.conf |
Na linha USE_SSL substitua FALSE por TRUE.
Passo 8) Inicie o Servidor. Não dará, isto porque para utilizar uma ligação HTTPS é necessário gerar um certificado e a respetiva chave privada. Crie-os através do seguinte comando:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes -subj '/0=Maltrail CA/C=EU' |
Passo 9) Aceda ao ficheiro maltrail.conf como fez no passo 7 e retire o comentário (#) das linhas identificadas.
Passo 10) Por fim, inicie o Servidor. Verá que agora o acesso por HTTPS já é possível.
A partir de agora, todo o tráfego malicioso ou suspeito ficará registado e poderá ser acedido através do browser, cuja interface permite filtrar os eventos além de os classificar por nível de gravidade, mostrar o endereço de origem e destino, protocolo, etc.
Este artigo tem mais de um ano
Boas dicas. Continuem
Boa dica!
É possível aplicar isto num RPi 3 com PiPplware?
sim, eu fiz
Ok, obrigado. Vou experimentar.
Excelente!
Para os mais distraídos, devem mudar a palavra passe que vem por defeito. Deviam ter colocado essa nota importante no artigo. A própria palavra passe em português significa “muda-me”, mas seria importante chamar à atenção sobre esse pormenor.
Muito bom o tutorial, continuem assim, tutorial simples e direto.
mandem mais tutoriais assim, são muito úteis .
estão de parabéns
Obrigado! Continuem.
Excelente tutorial meus parabéns. Sucesso a todos da equipe pplware…
Boas, tenho uma firewall em Linux (IP fire), como posso implementar maltrail, o SO Linux(Ubuntu server?), Com duas placas de rede? Uma liga ao Router e a outra a porta RED do ipfire. É necessário instalar algum serviço de routing no Linux?
Obrigado
Muito bom obrigado eu tinha visto em outro forum porem sem o tutorial, agradeço a toda equipe pplware.
Mas como é que se faz o tráfego passar pelo servidor do maltrail?
Instala o pihole, por exemplo e configura no DNS das máquinas clientes, o IP dessa máquina. Assim ficas com 2 em 1 😀
Boas, Testei um pouco isto hoje e eis o que fiz:
maltrail server:
1. Tirar comentario nas linhas abaixo relativas ao protocolo UDP no maltrail.conf
# Listen port of (log collecting) UDP server
UDP_PORT 8337
# Listen address of (log collecting) UDP server
UDP_ADDRESS 0.0.0.0
No cliente, fiz download do maltrail, e editei o ficheiro maltrail.conf:
1. Tirei comentario na linha que diz respeito onde vai o maltrail enviar os logs:
# Remote address to send syslog entries
SYSLOG_SERVER 192.168.xxx.xxx:8337
Resumindo, faz o mesmo que os browsers actuais mas para mais protocolos. É um sistema de deteção, não previne, e só faz uma pessoa comum perder tempo que já é escasso hoje em dia.
Executar um comando na consola do SO permite ver as ligações atuais, o que esse sistema faz é comparar os ips com listas conhecidas da net de endereços maliciosos, e deixar essa informação registada.
OU seja se o endereço for recente e não constar das listas não é detetado. Bem como os falsos positivos que acontecem em todos os casos. Serve para empresas e análise/inspeção de causas de incidentes após acontecerem, não funciona em tempo real visto não ter alarmes… (pelo menos vocês não mencionaram).
Para o caso de uma empresa, seria necessário espelhar o tráfego da porta de Trunk e o servidor precisaria ter duas placas de rede correto?
Alguém conseguiu colocar isto a funcionar com span/mirror?
Tentei e ele não detecta nada.
O que funciona é:
– clientes detectam e enviam por udp o que detectaram, para o servidor