Neste tutorial vamos instalar e configurar o Suricata usando uma máquina com Linux Ubuntu. Dessa forma, usaremos o repositório para fazer a instalação do Suricata.
O Suricata é um sistema usado na detecção e prevenção de intrusos. Dessa forma, podemos usar o Suricata para melhorar a segurança de nossa rede contra ataques que venham de dentro da rede ou da Internet.
Quando o Suricata funciona como Detector de Intruso (IDS), este gera alertas que vão permitir ao administrador de rede tomar as medidas necessárias ao incidente de segurança.
Entretanto, o Suricata também pode ser usado para prevenir a ocorrência de intrusos. Isso porque o suricata pode realizar ações para conter um ataque. Como exemplo, poderíamos ter o suricata fazendo um bloqueio de um endereço IP de um intruso.
Esse tutorial é parte do Curso de Suricata em Linux.
Artigo 1: Instalar Suricata Linux
Artigo 2: Suricata em Host IPS
Artigo 3: Suricata em Network IPS
Link para o curso de Suricata no youtube:
Instalação do Suricata no Ubuntu
Como mencionado antes, neste tutorial vamos instalar o suricata usando uma máquina com Ubuntu. Para isso, vamos usar o comando abaixo para adicionar o repositório do suricata ao nosso sistema.
sudo add-apt-repository ppa:oisf/suricata-stable
Em seguida, vamos atualizar os nossos repositórios, já que acabamos de adicionar um novo repositório.
sudo apt-get update
Agora, vamos instalar o suricata. Para isso vamos usar o comando abaixo.
sudo apt-get install suricata
Agora vamos habilitar o suricata para inicializar juntamente com o sistema. Dessa forma, o suricata será habilitado toda vez que o computador for reiniciado. Para isso, vamos usar o comando abaixo:
sudo systemctl enable suricata.service
Instalação Alternativa do Suricata
Alternativamente, podemos instalar o Suricata usando os outros pacotes de instalação que permitem que o suricata seja instalado em Mac. FreeBSD, Unix, e Windows. Para isso, precisamos acessar o link abaixo e selecionar o pacote que desejamos instalar.
Nota – Essa forma de instalação também pode ser interessante caso esteja usando uma distribuição Linux diferente do Ubuntu.
Configurando o Suricata
Agora que instalamos o Suricata, vamos fazer algumas configurações básicas para o bom funcionamento da ferramenta. Para isso, vamos entrar no diretório de configuração do Suricata usando o comando abaixo.
cd /etc/suricata
Em seguida, podemos listar os arquivos que estão dentro da pasta do suricata. Para isso podemos usar o comando ls do Linux.
ls
Podemos observar na figura abaixo que existem vários arquivos e uma pasta com o nome rules.
Antes de dar prosseguimento na configuração. Vamos verificar em qual interface de rede vamos usar o Suricata. Em nosso caso, estamos usando uma máquina virtual do virtualbox. E essa máquina virtual está com duas interfaces.
A primeira interface está em modo NAT e a segunda interface está em modo “internal network”. Neste cenário, vamos usar o Suricata na segunda interface, ou seja, a interface “internal network”.
Para verificar as interfaces existentes podemos usar o comando abaixo.
ip addr
A figura abaixo, mostra que nossa máquina virtual possui 3 interfaces. No entanto a primeira interface é de loopback portanto podemos desconsiderá-la. Dessa forma, a interface que desejamos monitorar com o suricata é a terceira interface “enp0s8” pois essa é a interface que está em modo “internal network”.
Agora, vamos editar o arquivo “suricata.yaml” e vamos indicar a interface que iremos monitorar. Para isso, vamos usar o editor nano.
sudo nano suricata.yaml
Em seguida, vamos procurar a linha que descreve o af-packet. Dentro da linha “- interface: eth0” vamos remover o “eth0” e incluir o nome da nossa interface.
Em nosso caso a interface que será monitorada é a “enp0s8”. Portanto, vamos substituir o nome da interface no arquivo “suricata.yaml”.
Após isso, vamos salvar o arquivo.
O próximo passo é reiniciar o suricata para que a alteração tenha efeito. Para isso, podemos usar o comando abaixo.
sudo service suricata restart
Update nas regras do suricata
Agora vamos dar um update nas regras do suricata. Incialmente o suricata contém algumas regras básicas. No entanto, desejamos um maior conjunto de regras para que o suricata consiga encontrar um maior número de anomalias
Podemos verificar as regras iniciais verificando os arquivos que estão dentro do diretório rules do suricata. Assim, podemos usar o comando abaixo para entrar no diretório e verificar as regras que existem nos arquivos.
cd /etc/suricata/rules/
Agora, vamos fazer o update das regras e adicionar novas regras ao suricata. Para isso vamos usar o comando abaixo.
sudo suricata-update
Podemos observar que foram feitos downloads de novas regras.
Testando suricata
Agora podemos testar o suricata. Para isso, vamos usar o comando abaixo.
sudo suricata -T
Podemos observar que tiveram alguns alertas “warnings” para alguns protocolos que não estavam habilitados. Neste caso, se o protocolo não estiver habilitado no arquivo de configuração “suricata.yaml “ teremos mensagens de alerta.
No entanto, você pode optar por desabilitar alguns protocolos que não serão utilizados em sua rede.
Na figura anterior tínhamos a mensagem de alerta que informava que o protocolo rdp não estava habilitado.
Entretanto, vamos supor que queremos usar o protocolo RDP em nossa rede. Dessa forma, vamos retornar ao arquivo “suricata.yaml “ e vamos habilitar o RDP apenas retirando o comentário de linha “#”.
sudo nano /etc/suricata/suricata.yaml
Agora, vamos reiniciar o suricata para que a alteração tenha efeito. Para isso vamos usar o comando abaixo.
sudo service suricata restart
Depois, vamos realizar o teste novamente com o comando abaixo.
sudo suricata -T
Muito bem, agora podemos verificar na figura abaixo que a mensagem de alerta “warning” para o RDP desapareceu.
Os Logs do Suricata
Usando a instalação desse tutorial, os arquivos de logs e alertas vão ser armazenados em “/var/log/suricata/”. Dessa forma, podemos entrar nesse diretório e listar o conteúdo para verificarmos o que temos.
cd /var/log/suricata/
ls
Podemos observar que temos vários arquivos de logs. No entanto, neste tutorial vamos falar do arquivo “suricata.log” e do “fast.log”. Dessa forma, o arquivo “suricata.log” apresenta os logs referentes ao funcionamento da ferramenta suricata. Um exemplo de log do “suricata.log” pode ser obtido usando o comando abaixo.
tail suricata.log
O outro arquivo, o “fast.log”, apresenta os alertas gerados pelo suricata. Dessa forma, você pode verificar os alertas ao inspecionar o arquivo “fast.log”. Para isso, podemos usar o comando abaixo.
tail fast.log
No início, o arquivo “fast.log” pode não conter nenhum alerta. Portanto, na próxima sessão vamos apresentar um teste para gerar alertas no suricata.
Testando o Suricata como IDS
Vamos testar o suricata usando uma segunda máquina virtual que será conectada na rede interna do VirtualBox e consequentemente estará ligada na interface “enp0s8” da máquina do Suricata.
Como segundo cliente estamos usando uma máquina virtual com Ubuntu ligada com interface em modo rede interna.
Abaixo temos a topologia utilizada.
Na máquina cliente temos o NMAP instalado e vamos executar uma varredura para a máquina do Suricata para verificar se gera alarmes.
Dessa forma, vamos usar o comando abaixo na máquina cliente para iniciar a varredura de portas na máquina onde temos o Suricata.
sudo nmap -sO 192.168.11.24
Caso deseje entender como o NMAP funciona pode ver os posts a seguir:
NMAP: Mapeamento de portas TCP e UDP
NMAP : Identificar a versão de um serviço
Após o uso do nmap, vamos voltar para a máquina do Suricata e vamos verificar o arquivo de alertas “/var/log/suricata/fast.log”. Para isso podemos usar o comando abaixo.
tail /var/log/suricata/fast.log
Podemos observar que o suricata já está inspecionando a nossa interface de rede e consequentemente está gerando alarmes. Além disso, os alarmes apresentam a data em que ocorreram e uma breve descrição do alerta.
Na descrição do alerta podemos ter um ID do alerta e o nível de prioridade do alerta. Futuramente vamos apresentar mais informações relacionadas ao Suricata em futuros tutoriais. Se você gostou comente em nosso canal do YouTube no vídeo a seguir.
Esse tutorial é parte do Curso de Suricata em Linux.
Artigo 1: Instalar Suricata Linux
Artigo 2: Suricata em Host IPS
Artigo 3: Suricata em Network IPS
Veja mais:
Snort PfSense : Detectar ataque DoS
NMAP: Mapeamento de portas TCP e UDP