Paulo Aguiar SIP Complemento (parte 3)

Transcrição

Paulo Aguiar SIP Complemento (parte 3)
SIP Complemento (parte 3)
Telefonia IP
MAB – 618
Paulo Aguiar
Tel. (0xx21) 2598-3165
e-mail: [email protected]
Departamento de Computação /IM da UFRJ
Recomendações de Segurança
MAB618
2
Recomendações de segurança para VoIP
• Segurança física
• Segregação de endereços lógicos
• Usar subrede IP separada para VoIP
• Implementar VLAN separada para VoIP
• Facilita QoS e aumenta segurança
• Usar telefones IP ou ATAS
• Diminui possibilidades de ataques de vírus entre outros
• Aumentar a robustez e segurança do SIP
• Tentar usar SIPS e/ou SRTP
• Implementar controle dinâmico em firewalls
• Evitar configurações estáticas, preferindo o uso de ALGs ou
semelhantes
• Usar firewalls em conjunto com roteadores e switches
MAB618
3
Recomendações de segurança para VoIP
• Planejar cuidadosamente os serviços VoIP
• Garantir redundância, balanceamento de carga, dispersão
geográfica
• Gerência remota somente com acesso seguro
• Uma possibilidade é usar uma rede separada para gerência
• Troca de tráfego apenas com pares confiáveis
• Usar SBG nos pontos de troca para esconder topologia interna e
políticas de ingresso e egresso de tráfego multimídia
• Usar VPN
• Usar VPN em acesso remoto para VoIP
• Reforçar segurança de sistemas de correio de voz
• Filtrar tráfego que entra e que sai
• Usar VoIP apenas em redes em fio seguras
MAB618
4
Outras recomendações
• Assegurar que todos os ativos estão seguros e com as
últimas atualizações disponíveis
• Listar todas as portas usadas pelo VoIP e monitorar uso
indevido
• Usar FTP ou HTTP seguros ao invés de TFTP para baixar
atualizações de firmware
• Usar DNS seguro ou DNS privado se necessário
• Usar entradas SRV e/ou NAPTR no DNS para garantir
redundância, aumento de confiabilidade e balanceamento de
carga nos servidores
• Usar 802.1x na autenticação de usuários e dispositivos
MAB618
5
Autenticação 802.1x
• 802.1x força o cliente a se autenticar em um servidor de
autenticação, tipicamente um servidor RADIUS, antes que a porta
do switch esteja disponível e o cliente possa acessar a rede
• A recomendação é que 802.1x seja utilizado para autenticação em
dispositivos e usuários
• EAP-TLS deve ser usado se uma PKI existir; senão, a
recomendação é EAP-PEAP para os ambientes baseados em
clientes Windows, e EAP-PEAP ou EAP-TTLS para os outros.
MAB618
6
Outras recomendações
• Usar NIDS (network IDS) em pontos de troca de tráfego
• Usar HIDS (host IDS) em todos os serviços críticos do VoIP:
DNS, DHCP, RADIUS, NTP, servidores, etc
MAB618
7
Testes de invasão e vulnerabilidade
• Estes testes são conduzidos por uma equipe que emula e
analisa um ataque real em sistemas para descobrir maneiras
de burlar a segurança implementada obtendo acesso a
serviços não autorizados, descobrir informações sensíveis
e/ou simular danos aos sistemas negando serviços
• Os testes podem ser feitos por pessoas internas ou por
empresas especializadas
• Os testes mantém a equipe sempre atualizada sobre
vulnerabilidades e os últimos tipos de ataques lançados na
Internet
MAB618
8
QoS
• Em redes VoIP é preciso usar QoS para não afetar a
qualidade, mas algumas medidas de segurança em VoIP
podem prejudicar o desempenho de uma conexão afetando a
qualidade do serviço.
• A maior parte dos atrasos causados pela segurança
implementada vem da autenticação na troca de chaves
MAB618
9
Serviços e portas mais comuns em VoIP
Serviços
Portas
Skinny
TCP 2000-2002
TFTP
UDP 69
MGCP
UDP 2427
Backhaul (MGCP)
TCP 2428
Tapi/Jtapi
TCP 2748
HTTP
TCP 8080/80
SSL
TCP 443
SCCP
TCP 3224
Transport traffic
16384-32767
SNMP
UDP 161
SNMPTrap
UDP 162
DNS
UDP 53
NTP
UDP 123
LDAP
TCP 389
H.323RAS
TCP 1719
H.323 H.225
TCP 1720
H.323 H.245
TCP 11000-11999
H.323 Gatekeeper Discovery
TCP 1718
SIP
TCP 5060
SIP/TLS
TCP 5061
MAB618
10
Fontes para consulta complementar
• SANS (SysAdmin, Audit, Network, Security) Institute
• SANS-Top-20 Internet Security Attack Targets
• http://www.sans.org/top20/#n1
• N1.4 References
• Asterisk Vulnerabilities
http://www.asterisk.org/
• Cisco Unified Call Manager Vulnerabilities
http://www.cisco.com/en/US/products/hw/vpndevc/index.html
• General VoIP Security Information VoIPSA Organization
http://www.voipsa.org/Resources/tools.php
• NIST Security Considerations for VoIP Systems
http://csrc.nist.gov/publications/nistpubs/800-58/SP800-58-final.pdf
• Voice security, Chapter 19, Cisco Unified Communications SRND
• http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/srnd/6x/uc6_
1.html
MAB618
MSI
11
NAT
MAB618
12
Esquema de funcionamento do NAT
MAB618
13
Funcionamento do NAT
• NAT exerce dois controles: mapeamento e filtro
• Equipamento atrás de NAT só entra na tabela de
mapeamento quando ele envia pacotes para fora do NAT
(endereço IP destino externo ao NAT)
• Filtro controla que pode acessar o mapeamento existente
• Tipos de NAT
• RFC 3489 – STUN Simple traversal of UDP through NAT
• simétrico, cone restrito, cone restrito por porta, cone completo
• Mas, comportamento do NAT pode ser dinâmico e se alterar
com o tempo
MAB618
14
NAT Simétrico (Symmetric NAT)
•
Filtro sobre
o IP e a
porta de
destino,
sendo a
comunicação
externa
restrita a
pacotes
vindos desta
porta do
host externo
•
O mais
restritivo
MAB618
15
Cone Restrito (Restricted Cone NAT)
•
Filtro feito com
IP destino
apenas,
podendo
receber
comunicação
externa vinda
de qualquer
porta do host
externo, mas
apenas dele
MAB618
16
Cone Restrito por Porta
(Port Restricted Cone NAT)
•
Filtro feito
apenas pela
porta
MAB618
17
Cone Completo (Full Cone NAT)
•
Qualquer
um pode
falar com
endereço
IP/porta
anunciado
no NAT
•
Menos
restritivo
dos NATs
MAB618
18
Convivência com NAT
• SIP usa informações do cabeçalho, campos CONTACT e VIA
para encaminhar requisições e respostas corretamente
• Se um cliente soubesse como o seu NAT opera, talvez ele
pudesse gerar estes campos com a informação
presumidamente correta
• Proxies e clientes podem ser configurados para detetar NAT
e corrigir/alterar campos pertinentes
MAB618
19
Convivência com NAT
• Cabeçalho VIA
• Parâmetros RECEIVED e RPORT
• Cabeçalho CONTACT
• Alterado pelo REGISTRAR
• Transmissão RTP
• Via proxy de mídia
MAB618
20
Cabeçalhos VIA
• Se deteção de NAT estiver habilitada, o servidor ou cliente
compara o endereço/porta origem recebidos no pacote IP
com a informação presente no campo VIA
• Note que o último campo VIA presente indica quem repassou
a mensagem
• Se houver diferença, o endereço IP origem e porta origem
recebidos no pacote IP são adicionados como os parâmetros
¨received=¨ e “rport= “ ao cabeçalho VIA correspondente
MAB618
21
Exemplo de registro atrás de NAT
•
REGISTER enviado via UDP com campo CONTACT com endereço privado
MAB618
22
Resposta OK
• Observe “received=146.164.11.67” e “rport=10722” inseridos pelo
servidor REGISTRAR no campo VIA da resposta
• Campo CONTACT foi alterado para 146.164.11.67:10722, que
representa a porta SIP de sinalização do cliente (após o NAT)
• NAT manteve a porta de sinalização escolhida
MAB618
23
Cabeçalho Contact
• CONTACT é utilizado por mensagens que ocorrem depois da
requisição original (como BYE ou um re-INVITE)
• Mas o NAT mantém os registros de conexões ativas somente
por um período limitado de tempo
• Solução
• Reenvio de REGISTER para manter mapeamento do NAT ativo
• Configurar cliente dependendo do tempo de cache do NAT
É normal observar mensagens REGISTER de um mesmo cliente!
Cuidado para não interpretar como um ataque ao servidor!
MAB618
24
INVITE após o registro
•
•
Observe “Contact: 146.164.11.67:10722” (end/porta públicos)
Todavia, SDP indica 192.168.195.159:38704 para a recepção da mídia
Este endereç
endereço de mí
mídia não vai funcionar fora de rede privada!
MAB618
25
Transmissão RTP
• Problema
• As mensagens SDP, usadas para a negociação de portas, codecs e etc,
estão confinadas no corpo da mensagem e que por isso não são
processadas pelo Proxy SIP, pois o padrão IETF prevê apenas a
manipulação do cabeçalho
• Conterão informações válidas somente dentro da rede interna
• Solução
• Utilizar um Proxy RTP (proxy de mídia), o que quebrará a chamada
em duas instâncias separadas
• O proxy de mídia altera no SDP os campos connection information (c) e
media description (m)
• Se o cliente e o servidor usarem uma mesma porta para a troca de
mídia nos dois sentidos entre si, temos RTP simétrico
• RTP simétrico é interessante para manter o mapeamento no NAT
(imaginando que há tráfego nos dois sentidos) e permitir o recebimento
de mídia mesmo no caso de NAT simétrico (mais restritivo)
MAB618
26
Exemplo envolvendo NAT e proxy de mídia
•
MAB618
Portas de sinalização
identificadas na figura
27
INVITE enviado pelo VAIO via PROXY
•
SDP do VAIO anuncia 192.168.193.89:45286
para receber mídia
MAB618
28
INVITE recebido pelo HP após passar pelo
PROXY
•
SDP indica 146.164.247.240:50528 para envio de mídia ao chamador,
forçando a mídia a passar pelo PROXY (que age como proxy de RTP)
MAB618
29
Resposta OK enviada pelo HP
•
•
SDP indica 192.168.99.231:51692 para a recepção de mídia
Campo CONTACT indica que a sinalização pública do HP é 146.164.11.67:49181
MAB618
30
Resposta OK recebida pelo VAIO
•
SDP indica 146.164.247:240:50528 para o envio de mídia ao chamado
MAB618
31
MAB618
32
RTP Simétrico
• Cliente envia e recebe pela mesma porta UDP
• Viabiliza a mídia atravessar o NAT (mesmo sendo NAT
simétrico)
• Desvantagem: se intruso monitora o envio de mídia, ele
pode atacar a conversa enviando pacotes RTP para a porta
em uso
MAB618
33
Atravessando o NAT
• Procedimento mais usual é ignorar a informação dentro das
mensagens e confiar nos cabeçalhos IP recebidos
• Tentar descobrir que tipo de NAT trocando mensagens com
servidores conhecidos (STUN)
• Em geral, quando mapeamento do NAT muda para cada
conexão (NAT simétrico), temos o pior cenário
• Para operar com NAT é preciso que cliente atrás do NAT
inicie a comunicação
• Soluções
• STUN, TURN, ICE, VPN, ALG, SBG
• RTP/RTCP simétrico
MAB618
34
STUN (RFC 3489), Simple traversal of UDP
through NAT (obsoleto)
• STUN original era uma solução completa, mas falha
• Cliente descobre se está atrás de um NAT, determina o seu
tipo, descobre seu endereço IP e porta do lado público do NAT
mais externo e então utiliza este endereço e porta dentro do
corpo de protocolos como SIP
• Todavia, a experiência mostrou que STUN não é uma boa
solução prática
• O endereço e a porta aprendidos pelo STUN clássico são
algumas vezes usados para comunicação e algumas vezes não
• STUN clássico não consegue garantir a operação perfeita e nem
estabelece alternativa no caso de falha
• O algoritmo de STUN para classificação de NATs é falho e
muitos NATS não se encaixam na classificação
• STUN deve ser usado como parte de uma solução para
atravessar NAT e não como a solução em si
MAB618
35
Comportamento não determinístico
• Primário
• Mantém o mesmo mapeamento se não houver conflito de porta
com outra estação
• Secundário
• Em caso de conflito com associação existente, muda-se o
mapeamento
• Terciário
• Ao se adicionar uma terceira associação ao NAT
• Conseqüência
• Resultado dos testes pode depender do instante em que os
testes são realizados
• Mapeamento pode ser alterado por tráfego subseqüente
MAB618
36
STUN, ICE e TURN (atualizar)
• Em alguns casos, a utilização requer extensões ao STUN na forma
de métodos, atributos ou códigos de erro em respostas
• Interactive Connectivity Establishment (ICE): A Protocol for
Network Address Translator (NAT) Traversal for Offer/Answer
Protocols
• draft-ietf-mmusic-ice-19, expirou em maio, 2008 (atualizar)
• ICE [MMUSIC-ICE] é uma solução completa para atravessar NAT para
protocolos baseados no modelo de oferta/resposta [RFC3264] como SIP
• Traversal Using Relays around NAT (TURN): Relay Extensions to
Session Traversal Utilities for NAT (STUN)", draft-ietf-behave-turn15, junho 2009 (em progresso)
• Difere de outros protocolos com relays por permitir que um cliente se
comunique com múltiplos parceiros usando um único endereço de relay
• TURN foi projetado para ser parte de ICE mas pode ser usado
independente
MAB618
37
Usos de STUN
• Managing Client Initiated Connections in the Session
Initiation Protocol (SIP)
• draft-ietf-sip-outbound-20, Junho, 2009
• Permite que proxies possam iniciar conexões TCP ou enviar
datagramas UDP para agentes de usuário (UA)
• Firewalls, NATs ou o uso de certificados de servidores com TLS
impede a comunicação do proxy com clientes
• A especificação define o comportamento de UAs, servidores de
registro e proxy para permitir o encaminhamento de requisições
em conexões previamente estabelecidas pelo usuário
• Define ainda comportamentos para manter os mapeamentos de
NAT e especificar o uso de múltiplas conexões do UA para o
servidor de registro
MAB618
38
Convivência com NAT
• Essencial empregar RTP/RTCP simétrico em ambientes com
NATs que não têm a funcionalidade de Application Layer
Gateway (ALG)
• Abrange todos os NATs descritos na seção 4 da RFC4787
• [RFC4787]"Network Address Translation (NAT) Behavioral
Requirements for Unicast UDP", BCP 127, RFC 4787, January 2007.
• ALGs são definidos na seção 4.4 da RFC3022
• Uso de Session Border Controllers (SBCs) e outras formas de
repasse RTP/RTCP (mídia proxy)
MAB618
39
IPSec
• Geralmente usado em um cenário de VPN ou entre domínios
SIP
• Recomendado o uso de IKE (Internet Key Exchange) para a
gerência e troca de chaves
MAB618
40
IKE
MAB618
41
IKE – Internet Key Exchange
• Negocia as associações de segurança IPSec
• Sistemas IPSec autenticam primeiro entre si e estabelecem as
chaves compartilhadas ISAKMP
• Na fase 1, o canal seguro entre as entidades IKE é criado,
com Diffie-Helmann sempre sendo executado nesta fase
• Na fase 2, IKE negocias as associações IPSec e gera o
material necessário para a criptografia
• O transmissor e o receptor concordam no uso de um conjunto
de transformadas e algoritmos para a sessão
• Um novo acordo Diffie-Helman pode ser feito na fase 2 ou
chaves podem ser derivadas da chave secreta da fase 1
MAB618
42