[AsteriskBrasil] Segurança em servidores Asterisk

Ricardo Landim pangole em bol.com.br
Quarta Agosto 4 08:12:32 BRT 2010


Leandro,

obrigado pelas dicas.....

Att,
Ricardo Landim

Em 3 de agosto de 2010 23:11, leandro alves <thc.leandro em gmail.com>escreveu:

> Galera,
>
> Houveram relatos de vários ataques phreak em diversos servidores com
> plantaforma Asterisk, como também em Atas, utilizados em operadoras Voip
> pelo mundo todo. Mas notei que há muitos ataques concentrados no Brasil.
>
> Portanto, segue um complemento, de tudo que já existe postado em outros
> lugares(mas pouco se utiliza), como também parâmetros que "deveriam" ser
> utilizados por operadoras Voip, onde nos testes de meus clientes, descobri
> que a maioria delas são inseguras, disponibilizam seus clientes às várias
> ferramentas de ataques na rede. Seguem indicações para melhorar a segurança
> de nossas redes, ou pelo menos "tentar":
>
>
> Baseado nos recentes ataques sofridos na ultima semana, seria interessante
> atentarmos não só à segurança da rede dos nossos clientes, mas também no
> asterisk, que "nós" compilamos, segue abaixo algumas coisas que acho que
> deveríamos conhecer:
>
> Ferramenta de ataque(toda e qualquer informação disponibilizada, é somente
> para consulta e proteção de servidores voip, não deverá ser utilizado para
> ataques):
>
> Sipvicious(provavelmente o que foi utilizado no ataque à um dos clientes):
>
> São 3 scripts em python, scanners em plantaformas voip, baseados em sip:
>
> svmap.py – Sip scanner, que lista dispositivos sip(Asterisk, ou
> switch's(hardware) voip) de um endereço ou range de ips.
>
> svwar.py – Lista ramais/usuários de contas sip(com ou sem segurança) em uma
> plataforma voip(ex.: servidor Asterisk).
>
> svcrack.py – Utilizado para quebrar senhas de ramais sip(quando não há
> senha, também exibe status do ramal).
>
>
> Erros mais frequentes de segurança:
>
> * Ramais onde a senha é o numero do ramal.
> * Ramais com senhas fracas, que podem ser facilmente encontradas em
> wordlists.
> * Ramais sem senha(qualquer um pode utilizar, colocando qualquer senha ou
> nem colocando uma).
> * Firewall(parado ou sem regras seguras).
> * Sem regras de permit/deny no sip.conf(quando não há necessidade de se
> utilizar com ip's dinamicos).
> * Ramais tem permissão para ligarem para qualquer lugar(DDI, quase nunca
> necessário).
>
>
> Rastreamento para encontrar plataformas SIP em uma rede(você estabelece um
> range de rede com o script feito em pyton), algumas operadoras Voip, que
> neste artigo não citarei o nome, são totalmente escancaradas, e listam seus
> clientes:
>
> ./svmap.py IPDOSERVIDORVOIP
>
> | SIP Device        | User Agent   | Fingerprint |
> --------------------------------------------------
> | 187.xxx.xxx.xxx:5060 | Asterisk PBX | disabled    |
>
>
>
> * Ok, o IP: 187.xxx.xxx.xxx é um alvo(IPBX Asterisk).
>
> * Agora, roda-se o outro script para verificar quais ramais disponíveis
> neste servidor Asterisk:
>
>  ./svwar.py 187.xxx.xxx.xxx
> | Extension | Authentication |
> ------------------------------
> | 696       | reqauth        |
> | 652       | reqauth        |
> | 1100      | noauth         |
> | 1101      | noauth         |
>
> * Os dois ultimos ramais (sequer requerem senha de autenticação), posso
> usá-los para me registrar e discar para qualquer lugar(desde que tenha
> permissão de discagem no ramal).
>
> * Se não houver nenhum ramal com falha de segurança na autenticação, basta
> rodar um outro script, para tentar identificar senhas fracas:
>
> Identificando senhas numericas:
>
> ./svcrack.py 187.xxx.xxx.xxx -u 696
>
> | Extension | Password |
> ------------------------
> | 696       | 696      |
>
>
> As alfanuméricas podem ser facilmente crackeadas com qualquer wordlist
> encontrada aos milhões pela internet:
>
> ./svcrack.py 187.xxx.xxx.xxx -u 202 -d /caminho/senhas_fracas.txt
>
> | Extension | Password      |
> —————————–
> | 691       | teste         |
>
>
> SUGESTÕES PARA MELHORIA DA SEGURANÇA:
>
> - Por se tratar de sinalização SIP, não seria muito difícil desenvolver
> ferramentas para se aproveitar de falhas de segurança em servidores
> Asterisk.
>
> - Implementei o fail2ban no Asterisk na Empresa, mas ainda faltam algumas
> coisas, porém, do jeito que esta, já temos algum sucesso:
>
> - Identifiquei que em alguns servidores com Asterisk, que há algumas senhas
> utilizando "secret", ao invés do padrão já tido como seguro, "md5secret",
> isto também é uma falha.
>
> - O parâmetro "allowguest=", nas configurações gerais, deverá sempre ser
> habilitado no "sip.conf" em todos os servidores Asterisk, garantindo que um
> ramal sem autenticação nunca poderá efetuar uma chamada.
>
> - Habilitar o parâmetro "alwaysauthreject=yes", que fará com que o asterisk
> responda para bad autentication da mesma forma que invalid username, pela
> lógica da força bruta, recebendo um bad autentication, pois se existe um
> ramal, só falta descobrir a senha, quando o erro é sempre o mesmo seria mais
> difícil esta possibilidade.
>
> - Como estou utilizando o "fail2ban" no servidor da empresa, para bloquear
> bruteforces para autenticações SIP também, segue o que foi feito:
>
> * Configurando o Fail2Ban no Planetfone:
>
> O "fail2ban", é capaz de bloquear um série de acessos em diversos serviços,
> mas a intenção é fazer com o que ele identifique e bloqueie ataques contra o
> asterisk.
>
> Os arquivos de configuração ficam em: /etc/fail2ban/filter.d
>
> - Ainda dentro do diretório, criar o arquivo para o Asterisk:
>
> Ex.: asterisk.conf
>
> - Inserir o seguinte conteúdo no arquivo:
>
> [INCLUDES]
>
> [Definition]
> failregex = NOTICE.* .*: Registration from ‘.*’ failed for ‘<HOST>’ – Wrong
> password
>             NOTICE.* .*: Registration from ‘.*’ failed for ‘<HOST>’ – No
> matching peer found
>             NOTICE.* .*: Registration from ‘.*’ failed for ‘<HOST>’ –
> Username/auth name mismatch
>             NOTICE.* .*: Registration from ‘.*’ failed for ‘<HOST>’ –
> Device does not match ACL
>             NOTICE.* <HOST> failed to authenticate as ‘.*’$
>             NOTICE.* .*: No registration for peer ‘.*’ \(from <HOST>\)
>             NOTICE.* .*: Host <HOST> failed MD5 authentication for ‘.*’
> (.*)
>             NOTICE.* .*: Failed to authenticate user .*@<HOST>.*
> ignoreregex =
>
>
>
> - No aquivo /etc/fail2ban/jail.conf, incluir o seguinte:
>
> [asterisk-iptables]
>
> enabled  = true
> filter   = asterisk
> action   = iptables-allports[name=ASTERISK, protocol=all]
>      sendmail-whois[name=ASTERISK, dest=thc.leandro em gmail.com,sender=
> asterisk em servidordocliente.com.br]
>
> logpath  = /var/log/asterisk/full
>
> maxretry = 3
> bantime = 259200
>
> ###Finalizado a configuração do arquivo.
>
> - Maxretry determina a quantidade de erros que o fail2ban vai aceitar de um
> determinado host antes de bloqueá-lo.
>
> - "bantime", em segundos, portanto neste caso qualquer tentativa de ataque
> ao asterisk será banida por 72 horas.
>
>
> * Editar o /etc/asterisk/logger.conf e definir o "dateformat"(por padrão no
> nosso asterisk esta comentado) da seguinte forma.
>
>  [general]
> dateformat=%F %T
>
> - Em [logfiles], insira a linha:
>
> syslog.local0 => notice
>
> * Reload no "logger" do asterisk
>
>
> Estas soluções, não garantem total segurança para nossos clientes, pois
> isto é impossível, mas pelo que é hoje, seria um "respirar" muito melhor.
>
> --
> Leandro,
>
> _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Temos tudo para seu projeto VoIP com Asterisk!
> Descontos especiais para assinantes da AsteriskBrasil.org.
> Registre-se e receba um cupom exclusivo de desconto!
> Acesse agora www.voipmania.com.br
> ______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20100804/7d910ec3/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil