Com a grande demanda por serviços online e trabalho remoto provocado pela pandemia de COVID-19, a segurança de rede é um fator que precisa de atenção especial, e as redes VoIP precisam de mais atenção neste momento. Hoje preparei um vídeo de configuração do Suricata, um sistema de detecção de intrusão em redes, configurei exemplo de alerta de acesso indevido ao servidor Asterisk.
Como Configurar o Suricata em Redes VoIP
Comandos de instalação e configuração do IDS Suricata
Comando de instalação do pacote Suricata
yum install suricata
Comando para download das regras
wget https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
Comando para descompactar o arquivo de regras
tar -zxvf emerging.rules.tar.gz
Comando para acessar o diretorio rules e mover as rules para o diretorio /etc/suricata/rules
cd rules
mv * /etc/suricata/rules
Comando para acessar e verificar as rules no diretorio correto
cd /etc/suricata/rules
ls
Comando para edição do arquivo de configuração do suricata
cd ..
nano suricata.yaml
Remover o comentário # da linha HOME_NET
Conferir o default-rule-path, deve ser:
default-rule-path: /etc/suricata/rules
No final do arquivo inserir a regra customizada no campo rule-files:
- alerta-regra.rules
Acessar novamente o diretório de regras e criar a regra customizada
cd rules
nano alerta-pabx.rules
Inserir regras customizadas
alert icmp any any -> $HOME_NET any (msg:"Alerta Ataque ICMP"; sid:1000002; rev:1;)
alert tcp any any -> $HOME_NET 22 (msg:"Alerta Tentativa de Acesso SSH Porta 22"; sid:1000003; rev:1;)
Exemplos de alerta SIP
Existem dois tipos comuns de ataques DoS para redes VoIP:
INVITE e inundação de REGISTRO.
Um excesso de mensagens INVITE pode ser uma indicação de que alguém está tentando fazer muitas chamadas e a regra abaixo será acionada se 100 mensagens INVITE forem enviadas em um curto período de tempo, 60 segundos.
alert sip any any -> $ SIP_IP $ SIP_PORTS (msg: "INVITE flooding"; sip.method; content: "INVITE"; threshold: type both, track by_src, count 100, seconds 60; rev: 1; sid: 1; )
Em vez disso, um alto número de inundações de REGISTRO pode ser uma indicação de ataque de força bruta.
Da mesma forma, a regra acima pode ser usada, mas com uma ligeira mudança no método:
alert sip any any -> $ SIP_IP $ SIP_PORTS (msg: "REGISTER flooding"; sip.method; conteúdo: "REGISTER"; limite: digitar ambos, rastrear por_src, contar 100, segundos 60; rev: 1; sid: 1; )
Existe outra maneira de detectar a inundação de REGISTRO, podemos inspecionar a resposta SIP e procurar o código de status
alert ip any 5060 -> any any (msg:"GPL VOIP SIP 401 Unauthorized Flood"; content:"SIP/2.0 401 Unauthorized"; depth:24; threshold: type both, track by_dst, count 5, seconds 60; classtype:attempted-dos; sid:1000004; rev:1; metadata:created_at 2010_09_23, updated_at 2010_09_23;)
Iniciar o serviço Suricata apontando a interface de rede correto
suricata -i eth0 --init-errors-fatal
Acessar o diretorio de log do suricata e monitorar o arquivo fast.log
cd /var/log/suricata
tail -F fast.log