[AsteriskBrasil] Segurança em servidores Asterisk
Eder Souza
eder.souza em bsd.com.br
Quarta Agosto 4 09:41:10 BRT 2010
Eu fiz um Reviw sobre isso na semana passada no meu blog postei lá como é
fácil construir scripts para checar ramais remotos..
A verdade é que nem mesmo um fail2ban resolve, qualquer muleque com seus 14
anos consegue fazer scrips com range de IP passando por proxy isso tira o
fail2ban da jogada, a verdade é que quem tem a porta SIP (5060) liberada
para a internet esta sofrendo ataques, é só acompanhar os logs do
Asterisk...
Ae alguem vem e me fala tá o "kra" achou meu ramal e minha senha, mas ele
nunca vai saber as rotas do meu extensions.conf para sair com as suas
ligações!!!
A Resposta é que ele nao precisa saber das rotas é até perigoso falar sobre
isso mas a variável "Exten" tanto usada pelo Asterisk consegue
passar parametros dentro dela e escapar de qualquer regra imposta
pelo dialplan, muitos servidores possuem placas fxo e E1 sempre são Dahdi,
zap, Unicall, khomp ou dgv, ou seja poucos chutes para escapar do diaplan e
fazer a chamadas diretamente via channel fiz varios testes com isso e achei
melhor deixar em off para não propagar mais ataques :-(
Att,
Eng Eder de Souza
Em 4 de agosto de 2010 08:12, Ricardo Landim <pangole em bol.com.br> escreveu:
> 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
>>
>
>
> _______________________________________________
> 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/f70a2eb8/attachment.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil