Eu tenho um PBX (servidor VOIP) onde os telefones se conectam para fazer chamadas telefônicas. O pbx que estou usando é o Asterisk . Esse servidor não está sendo usado e seu único objetivo é analisar ataques.
O serviço PBX não é importante se eu tiver um serviço diferente, como um mongodb. Tenho certeza de que bots na Internet procurarão vulnerabilidades para atacar esse banco de dados.
De qualquer forma, estou analisando todos os pacotes que chegam ao meu servidor na porta UDP 5060 (que é onde o asterisco escuta) e os pacotes que chegam são assim:
IP (tos 0x0, ttl 113, id 654, offset 0, flags [none], proto UDP (17), length 521)
43.249.129.89.58255 > 171.21.78.225.5060: SIP, length: 493
REGISTER sip:54.84.215.2:5060 SIP/2.0
To: <sip:[email protected]>
From: <sip:[email protected]>;tag=824e5f4a7221279e4f7a
Via: SIP/2.0/UDP 10.4.1.117:58255;branch=z9hG4bK183d5a24-59ec-4f05-8325-747389112824;rport
Call-ID: e5f4a722128024e4f7a824
CSeq: 1 REGISTER
Contact: <sip:[email protected]:58255>
Expires: 3600
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
User-Agent: PolycomSoundPointIP SPIP_550 UA 3.3.2.0413
Content-Length: 0
Esse pacote é de um bot porque NÃO estou enviando nenhum pacote para o meu servidor.
Observe que o único objetivo desse servidor é entender como os bots funcionam e ver como eles atacam meu servidor. Não estou usando esse PBX; portanto, qualquer solicitação que chegue a esse servidor deve vir de um bot mal-intencionado. Sempre que recebo um pacote UDP enviado para a porta 5060, bloqueio esse endereço IP.
Agora minha pergunta é:
Estou executando esse servidor há um mês e a cada minuto ou mais ainda recebo ataques. Eu bloqueei mais de 15.000 IPs! Quantos bots existem na internet? Eles estão mudando seu endereço IP de origem e esse é o motivo pelo qual eles continuam acessando meu servidor? Se eles conseguem alterar o IP de origem, é porque estou usando o protocolo UDP? Devo usar TCP em vez de UDP para resolver isso?
Também é engraçado como os ataques de ips diferentes são tão semelhantes. Por exemplo, eles usam o mesmo agente de usuário como telefone e o ataque vem de ips diferentes. É como se todos os bots tivessem o mesmo código.
Depois de resolver esse problema e entender como os bots funcionam, gostaria de implementar essa solução em meu servidor real. Não estou usando o servidor real para isso porque filtrar os pacotes bons dos pacotes ruins será difícil. Uma solução seria usar uma lista branca de ips no meu firewall, mas não quero que meus usuários tenham que fazer alguma forma extra de autenticação, especialmente se usarem o serviço do celular, onde o endereço IP pode mudar muito.