UNIÃO EDUCACIONAL MINAS GERAIS S/C LTDA
FACULDADE DE CIÊNCIAS APLICADAS DE MINAS
Autorizada pela Portaria no 577/2000 – MEC, de 03/05/2000
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
ANÁLISE DAS VULNERABILIDADES E ATAQUES AO
PROTOCOLO SIP
ANDERSON RODRIGUES SOUZA REZENDE
UBERLÂNDIA - MG
2006
ANDERSON RODRIGUES SOUZA REZENDE
ANÁLISE DAS VULNERABILIDADES E ATAQUES AO
PROTOCOLO SIP
Trabalho de Final de curso submetido à
UNIMINAS como parte dos requisitos para
a obtenção do grau de Bacharel em
Sistemas de Informação.
Orientador: Prof. Esp Flamaryon Guerin
Gomes Borges
UBERLÂNDIA - MG
2006
ANDERSON RODRIGUES SOUZA REZENDE
ANÁLISE DAS VULNERABILIDADES E ATAQUES AO
PROTOCOLO SIP
Trabalho de Final de curso submetido à
UNIMINAS como parte dos requisitos para
a obtenção do grau de Bacharel em
Sistemas de Informação.
Orientador: Prof. Esp Flamaryon Guerin
Gomes Borges
Banca Examinadora: sobre
Uberlândia, 16 de setembro de 2006.
Prof. Esp Flamaryon Guerin Gomes Borges (Orientador)
Prof. Esp. Carlos Henrique Barros
Prof. Dr. Mauro Hemerly Gazzani
UBERLÂNDIA - MG
2006
Pela emoção de me vêem crescer, por acreditarem em mim, pelo grande amor que
me destinam, por sempre ensinarem aos seus filhos a verdadeira importância da
honestidade e da ética. É para meus pais, Paulo e Maria, que dedico este
trabalho, àqueles de especial significado pra mim, aos quais devo toda formação
que tenho e todo futuro que me fora entregue.
AGRADECIMENTOS
Ao professor e orientador Flamaryon Guerin Gomes Borges, que com
seu apoio e conhecimento, tornou possível a elaboração deste trabalho.
Muito
obrigado por confiar à mim este tema.
À professora Kátia Lopes Silva, por sua dedicação constante,
buscando sempre extrair todo nosso potencial. Com sua inteligência e carisma
inigualáveis, esteve sempre ao lado do aluno, ajudando em nossas dificuldades, e
partilhando das nossas superações.
Aos grandes amigos, Arnaldo e Fernando, “companheiros de estrada”,
pessoas que aprendi a respeitar e confiar. Àqueles que considero como irmãos,
sempre presentes em minha vida acadêmica, tanto nos momentos felizes, quanto
nas dificuldades. E juntos conquistamos mais uma etapa importante em nossas
vidas. Agradeço a vocês pela grande amizade, amizade esta, que prezo para que
seja por minha parte, retribuída à altura.
A namorada Lívia, uma pessoa muito importante e especial em minha
vida. Uma mulher que é maravilhosa acima de tudo. Que pode com um sorriso
provocar amor e felicidade. Uma pessoa que me encantou, e me encanta em todos
os seus gestos, e que compartilha comigo grandes realizações. Meu grande amor.
À Instituição UNIMINAS, e seus docentes, por sua excelente estrutura,
onde fora possível a conquista desta vitória.
RESUMO
No cenário atual, não há como ficar indiferente ao assunto de VoIP.
Discussões em torno do tráfego de voz sobre o protocolo da Internet não dão sinais
de cessar, por isso companhias apostam nesta tendência, que segundo pesquisas,
promete confirmar-se numa grande explosão de consumo. Nesta evolução das
comunicações, destaca-se o protocolo SIP (Session Initiation Protocol), um
protocolo capaz de iniciar, alterar e finalizar sessões multimídia, garantindo a
convergência em definitivo, da telefonia tradicional para telefonia IP. Porém apesar
das grandes vantagens trazidas pela convergência, esta trouxe também uma nova
preocupação: a segurança das informações, requisito que pode confirmar a
maturidade da tecnologia. Implementações do protocolo SIP, são vulneráveis a
ataques comuns baseados em redes IP, bem como a ataques que são únicos ao
SIP. Este fato coloca em risco as Informações das empresas que utilizam sistemas
de telefonia IP. Ataques que fazem uso das vulnerabilidades do protocolo SIP,
podem resultar na interrupção de aplicações fundamentais ao negócio de
corporações sustentadas em uma rede VoIP. Tal fato, dentro do contexto de
concorrência global, tornará uma grande economia em sérios prejuízos. A proposta
da pesquisa é demonstrar as vulnerabilidades e os possíveis ataques que fazem
uso das brechas em implementações do Session Initiation Protocol, criando um
documento com tais informações destinado a interessados e envolvidos com
sistemas de comunicação baseados no protocolo SIP.
Palavras-chave: SIP, vulnerabilidades, ataques, VoIP.
ABSTRACT
In the current scene, it does not have as to be indifferent to the subject
of VoIP. Quarrels around the traffic of voice on the protocol of the Internet do not
give signals to cease, therefore company bets in this trend, that according to
research, promises to confirm in a great consumption explosion. In this evolution of
the communications, protocol SIP (Session Initiation Protocol) is distinguished, a
protocol capable to initiate, to modify and to finish sessions multimedia, promising
the convergence in definitive, of the traditional telephony for telephony IP. However
although the great advantages brought for the convergence, this also brought a new
concern: the security of the information, requirement that can confirm the maturity of
the technology. Implementations of protocol SIP, are vulnerable the based common
attacks in nets IP, as well as the attacks that are only to the SIP. This fact at risk
places the Information of the companies who use systems of telephony IP. Attacks
that make use of the vulnerabilities of protocol SIP, can result in the interruption of
basic applications to the business of corporations supported in a VoIP net. Such
fact, inside of the context of global competition, will become a great economy in
serious damages. The proposal of the research is to demonstrate to the
vulnerabilities and the possible attacks that make use of the breaches in
implementations of the Session Initiation Protocol, creating a document with such
information destined the involved interested parties and with based systems of
communication in protocol SIP.
Key-words: SIP, vulnerabilities, attacks, VoIP.
LISTA DE FIGURAS
FIGURA 1 -
ARQUITETURA CLIENTE/SERVIDOR...................................................................... 21
FIGURA 2 -
ARQUITETURA DE PROTOCOLOS MULTIMÍDIA INTERNET ................................ 22
FIGURA 3 -
ARQUITETURA SIP ................................................................................................... 23
FIGURA 4 -
EXEMPLOS DE UA’S................................................................................................ 24
FIGURA 5 -
FUNCIONAMENTO DO REDIRECT SERVER........................................................... 26
FIGURA 6 -
REGISTRO DA LOCALIZAÇÃO EM UM REGISTRAR SERVER............................. 27
FIGURA 7 -
GATEWAY SIP/PSTN E GATEWAY SIP/H323 ......................................................... 28
FIGURA 8 -
ESTABELECIMENTO DE UMA SESSÃO SIP SIMPLES ......................................... 29
FIGURA 9 -
CAMPOS DA MENSAGEM INVITE ........................................................................... 29
FIGURA 10 -
CÁLCULO DO CAMPO CONTENT-LENGTH ........................................................... 31
FIGURA 11 -
DESCRIÇÃO DOS CAMPOS SDP............................................................................. 32
FIGURA 12 -
MÉTODOS DE REQUISIÇÕES SIP ........................................................................... 32
FIGURA 13 -
MÉTODOS DE REQUISIÇÕES ESTENDIDAS DO SIP ............................................ 33
FIGURA 14 -
CLASSES DE RESPOSTA SIP.................................................................................. 33
FIGURA 15 -
ESTRUTURA DA MENSAGEM 180 RINGING .......................................................... 34
FIGURA 16 -
ESTRUTURA DA MENSAGEM 200 OK .................................................................... 35
FIGURA 17 -
ESTRUTURA DO ACK ............................................................................................... 36
FIGURA 18 -
ESTRUTURA DO BYE ............................................................................................... 37
FIGURA 19 -
200 OK CONFIRMAÇÃO DO BYE............................................................................. 37
FIGURA 20 -
CHAMADA SIP COM PROXY SERVER .................................................................... 38
FIGURA 21 -
INVITE REPASSADO AO PROXY............................................................................. 39
FIGURA 22 -
INVITE REPASSADO PELO PROXY AO DESTINO................................................. 40
FIGURA 23 -
MENSAGEM 180 RINGING ENVIADA AO PROXY .................................................. 40
FIGURA 24 -
MENSAGEM DE RESPOSTA ENVIADA DO PROXY AO ORIGINADOR................ 41
FIGURA 25 -
CONFIRMAÇÃO 200 OK REPASSADA DO PROXY AO ORIGINADOR................. 41
FIGURA 26 -
REGISTER ENVIADO DIRETAMENTE PARA O SERVIDOR DE REGISTRO ........ 43
FIGURA 27 -
REGISTRO DE UM AGENTE EM UM SERVIDOR DE REGISTRO VIA PROXY ..... 43
FIGURA 28 -
MENSAGEM INVITE ENVIADA PARA O REDIRECT SERVER............................... 44
FIGURA 29 -
REPOSTA ENVIADA PELO REDIRECT SERVER ................................................... 45
FIGURA 30 -
REDIRECIONAMENTO VIA SERVIDOR PROXY ..................................................... 46
FIGURA 31 -
SIP X 323 .................................................................................................................... 48
FIGURA 32 -
SINALIZAÇÕES SIP X H323...................................................................................... 48
FIGURA 33 -
DIFERENÇAS NO STREAMMING SIP X H323 ......................................................... 49
FIGURA 34 -
SIP INVITE PASSÍVEL DE SNIFFING E SPOOFFING ............................................. 51
FIGURA 35 -
MENSAGEM DE REGISTRO VÁLIDA....................................................................... 56
FIGURA 36 -
VERSÃO MODIFICADA DO REGISTRO................................................................... 57
FIGURA 37 -
SPOOFING DO REGISTRO UTILIZANDO O SIVUS ................................................ 58
FIGURA 38 -
ATAQUE DE REGISTRATION HIJACKING .............................................................. 59
FIGURA 39 -
ATAQUE DE PROXY IMPERSONATION .................................................................. 61
FIGURA 40 -
PASSOS PARA CAPTURAR A MÍDIA VOIP COM O ETHEREAL........................... 62
FIGURA 41 -
ATAQUE DE ARP SPOOFING .................................................................................. 63
FIGURA 42 -
A FERRAMENTA CAIN REALIZANDO O ATAQUE DE HOMEM-DO-MEIO........... 64
FIGURA 43 -
ATAQUE DE MESSAGE TAMPERING ..................................................................... 64
FIGURA 44 -
ATAQUE DE SESSION TEAR DOWN....................................................................... 65
FIGURA 45 -
REMOÇÃO DO REGISTRO DO USUÁRIO PELO ATACANTE ............................... 67
FIGURA 46 -
FLUXO DO ATAQUE DE RE-INVITE......................................................................... 68
FIGURA 47 -
ATAQUE DE BYE....................................................................................................... 69
FIGURA 48 -
FLUXO DO ATAQUE DE UPDADE ........................................................................... 70
FIGURA 49 -
MENSAGEM SIP INVITE BEM FORMADA ............................................................... 72
FIGURA 50 -
MENSAGEM SIP INVITE MAL FORMADA ............................................................... 73
FIGURA 51 -
DESCOBRINDO AS CAPACIDADES COM A REQUISIÇÃO OPTIONS ................. 75
FIGURA 52 -
FLUXO NORMAL DE REGISTRO ............................................................................. 76
FIGURA 53 -
ATAQUE CONTRA UM REGISTRAR SERVER ........................................................ 77
FIGURA 54 -
ATAQUE DE CANCEL ............................................................................................... 78
FIGURA 55 -
CÓDIGOS DE ERROS COMUNS .............................................................................. 79
FIGURA 56 -
FLOODING DE INVITE............................................................................................... 82
FIGURA 57 -
PRINCIPAIS MECANISMOS DE SEGURANÇA PARA O SIP.................................. 84
FIGURA 58 -
CONFIRMAÇÃO DO INVITE PELO PROXY ............................................................. 85
FIGURA 59 -
INVITE ORIGINAL COM A CONFIRMAÇÃO............................................................. 85
FIGURA 60 -
TIPOS DE CONTEÚDO S/MIME ................................................................................ 86
FIGURA 61 -
NEGOCIAÇÃO COM SERVIDOR TLS ...................................................................... 88
FIGURA 62 -
SOLUÇÃO PARA SEGURANÇA REAL-TIME MEDIA STREAMS........................... 90
LISTA DE ABREVIATURAS E SÍMBOLOS
ACK
- Acknowledgment
AES
- Advanced Encryption Standard
AH
- Authentication Header
AOR
- address of record
ARP
- Address Resolution Protocol
ASCII
- American Standard Code for Information Interchange
CCP
- Connection Control Protocol
CR
- Carrier Return
DDoS
- Distributed Denial of Service
DES
- Data Encryption Standard
DHCP
- Dynamic Host Configuration Protocol
DNS
- Domain Name Service
DoS
- Denial of Service
ESP
- Encapsulating Security Payload
FTP
- File Transfer Protocol
HTML
- Hyper Text Transfer Protocol
HTTP
- Hyper Text Transfer Protocol
IETF
- Internet Engineering Task Force
IKE
- Hyper Text Markup Language
IP
- Internet Protocol
IPSEC
- Internet Protocol Security
IVS
- INRIA Videoconferencing System
LF
- Line Feed
MD5
- Message Digest Algoritm
MIME
- Multi-purpose Internet Mail Extension
MITL
- man-in-the-middle
MMCC
- Multimídia Conference Control
NGN
- Next Generations Network
OSI
- Open System Interconnection
PC
- Pesonal Computer
PCM
- Pulse-code modulation
PDA
- Personal Digital Assistant
PGP
- Pretty Good Privacy
PKI
- Public key infraestructure
PSK
- Pre-shared keys
PSTN
- Public Switched Telephone Network
QoS
- Quality of Service
RAS
- Registration Admission Status
RFC
- Request For Comments
RTCP
- Real-Time Control Protocol
RTP
- Real Time Protocol
S/MIME - Security/Multi-purpose Internet Mail Extension
SCIP
- Simple Conference Invitation Protocol
SDP
- Session Description Protocol
SHA
- Secure Hash Algorithm
SIP
- Session Initiation Protocol
SMTP
- Send Mail Transfer Protocol
SPIT
- Spam over Internet Telephony
SRTP
- Secure Real Time Protocol
SYN
- Synchronous
TCP
- Transmission Control Protocol
TCP/IP
-
TLS
- Transport Layer Security
UA
- User Agent
UAC
- User Agent Client
UAS
- User Agent Server
UDP
- User Datagram Protocol
URL
- Uniform Resource Locators
VoIP
- Voice over Internet Protocol
Transmission Control Protocol/Internet Protocol
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................15
1.1
1.2
1.3
1.4
1.5
CENÁRIO ATUAL ............................................................................................15
OBJETIVOS ...................................................................................................17
IDENTIFICAÇÃO DO PROBLEMA ........................................................................17
JUSTIFICATIVA ...............................................................................................18
ORGANIZAÇÃO DO TRABALHO .........................................................................18
2 FUNDAMENTOS DO PROTOCOLO SIP .............................................................19
2.1
SURGIMENTO DO SIP.....................................................................................19
2.2
INTRODUÇÃO .................................................................................................20
2.3
COMPONENTES DO SIP..................................................................................23
2.4
SINALIZAÇÃO SIP ..........................................................................................28
2.5
SINALIZAÇÃO SIP COM SERVIDOR PROXY........................................................37
2.6
REGISTRO SIP ..............................................................................................42
2.7
REDIRECIONAMENTO......................................................................................44
2.8
SIP X H.323.................................................................................................47
2.8.1 Diferenças na Sinalização .......................................................................48
2.8.2 Diferenças no Streaming .........................................................................49
3 VULNERABILIDADES DOS SISTEMAS VOIP BASEADOS EM SIP ..................50
3.1
INTRODUÇÃO .................................................................................................50
3.2
AMEAÇAS E ATAQUES AO SIP.........................................................................55
3.2.1 Registration Hijacking..............................................................................55
3.2.2 Proxy Impersonation................................................................................60
3.2.3 Eavesdropping (Espionando) ..................................................................62
3.2.4 Message Tampering................................................................................64
3.2.5 Session Tear Down .................................................................................65
3.2.6 Denial of Service .....................................................................................66
3.3
ATAQUES UTILIZANDO DE MENSAGENS SIP......................................................66
3.3.1 Ataques a sistemas sem a autenticação aplicada ...................................66
3.3.1.1 Ataque de DoS utilizando mensagens de REGISTER SIP ..............66
3.3.1.2 Ataque de “Re-INVITE” ....................................................................67
3.3.1.3 Ataque de “BYE” ..............................................................................68
3.3.1.4 Ataque de “UPDATE” .......................................................................69
3.3.2 Ataques a sistemas com a autenticação aplicada (antes da autenticação)
70
3.3.2.1 Ataques de “Parser” .........................................................................71
3.3.2.2 Ataques de “REGISTER” .................................................................75
3.3.2.3 Ataques de “CANCEL” .....................................................................77
3.3.2.4 Fraudes em Respostas SIP..............................................................78
3.3.3 Ataques a sistemas com a autenticação aplicada (após a autenticação)79
3.3.3.1 Ataque de Força Bruta .....................................................................80
3.3.3.2 Unusable Destinations (Destinos Inúteis).........................................81
3.3.3.3 Ataques de “INVITE” ........................................................................81
4 MECANISMOS DE SEGURANÇA........................................................................83
4.1
HTTP BASIC AUTHENTICATION .......................................................................83
4.2
HTTP DIGEST AUTHENTICATION .....................................................................84
4.3
PRETTY GOOD PRIVACY (PGP)......................................................................86
4.4
SECURE MIME (S/MIME)..............................................................................86
4.5
SIPS URI (TLS) ...........................................................................................88
4.6
IP SECURITY (IPSEC).....................................................................................89
4.7
SEGURANÇA SOBRE PROTOCOLOS DE TRANSPORTE EM TEMPO REAL .................89
4.7.1 Secure RTP (SRTP) ................................................................................90
4.7.2 IP Security (IPsec)...................................................................................90
5 CONCLUSÕES .....................................................................................................91
5.1
5.2
CONSIDERAÇÕES FINAIS ................................................................................91
PROPOSTAS PARA TRABALHOS FUTUROS ........................................................92
6 REFRÊNCIAS BIBLIOGRÁFICAS .......................................................................94
15
1 INTRODUÇÃO
1.1 Cenário Atual
O envio de sinais de voz em pacotes digitais, conhecido como VoIP
(Voice over IP – Voz sobre Protocolo de Internet), manifesta diversas vantagens em
relação as redes telefônicas tradicionais. Muitas dessas vantagens deve-se ao fato
de consolidar a transmissão de voz e dados sobre uma mesma infra-estrutura, e de
distribuir a inteligência do sistema entre diversos elementos, deixando de concentrála apenas nas centrais telefônicas. Como resultado, tem-se não só a redução
drástica dos custos como também a possibilidade de criação de sistemas globais de
comunicação. Com o amadurecimento da Internet e de seus protocolos de
comunicação, a convergência de múltiplas mídias como voz, vídeo, dados e
serviços como chat, Instant Messages, e Web, deixou de ser apenas uma
curiosidade, para tornar-se uma grande oportunidade. Neste contexto é que surge a
telefonia IP (Internet Protocol). Telefonia IP é uma modalidade de VoIP onde o
serviço fornecido apresenta qualidade e funcionalidades no mínimo equivalentes
aos serviços telefônicos convencionais. O usuário utiliza um telefone IP que é um
telefone mais inteligente, ou um adaptador IP para um telefone convencional e uma
conexão IP de banda larga para conectar-se a rede de telefonia IP. Adicionalmente
pode-se acessar o serviço utilizando um computador com um programa especial
para esse fim. Nesta evolução das comunicações, destaca-se o SIP (Session
Initiation Protocol – Protocolo de iniciação de sessão), um protocolo desenvolvido
pelo IETF (Internet Engineering Task Force), que atua no nível de aplicação, capaz
de estabelecer, gerenciar e terminar chamadas entre dois ou mais pontos de
comunicação. O SIP é caracterizado por sua estrutura simples, fazendo uso dos
serviços de outros protocolos para implementar sua arquitetura multimídia e desse
modo deve ser o protocolo padrão nas comunicações mundiais. o SIP visa trazer
algo semelhante ao que o IP trouxe para Internet no mundo, prometendo a
convergência em definitivo, da telefonia tradicional para telefonia IP. Segundo
Lazarini (2006), a Telefonia IP associada a outras aplicações como colaboração,
presença, e-mail, voice mail, fax, e outras limitadas somente pela nossa capacidade
16
de criação, serão a base da comunicação do futuro e mudará a maneira como
fazemos negócios.
Existem,
porém,
aspectos
importantes
a
serem
revistos
nas
implementações SIP, a mais crítica refere-se a segurança. De acordo com Collier
(2005), o sistema SIP é vulnerável aos ataques comuns baseados em redes IP,
bem como a ataques que são únicos ao SIP. A disponibilidade do serviço de VoIP
está ligada diretamente a disponibilidade da infra-estrutura IP, qualquer tipo de
ataque, pode acarretar um sério impacto nas comunicações. Por ser um protocolo
baseado nos protocolos da pilha TCP/IP (Transmission Control Protocol/ Internet
Protocol), o SIP herdou destes suas tão exploradas vulnerabilidades.
Hoje em dia o requisito mais importante para a VoIP é a segurança, e
isso pode construir-se com componentes fiáveis e bom planeamento
durante a colocação. As telecomunicações sempre tiveram requisitos
altos de fiabilidade, mas devido ás redes de telecomunicações terem
estado sempre fechadas, a segurança nunca foi um requisito. As
coisas são diferentes para o VoIP. A prevenção da fraude é um dos
tópicos
principais
quando
se
coloca
a
VoIP.
A conectividade aberta é também frequentemente exigida, e isso cria
um recreio para os hackers, expondo a rede de telecomunicações a
ataques como vermes e vírus. A colocação inteligente requer um
conhecimento das ameaças, vulnerabilidades e ataques. O
desenvolvimento de produtos e sistemas de VoIP seguros é possível
com testes à robustez, concentrando-se na eliminação das
vulnerabilidades em cada parte do conjunto. Conhecendo os
requisitos, e minimizando os riscos, permite-lhe construir um sistema
de VoIP seguro, fiável e robusto. (TAKANEN,2006, tradução nossa).
VoIP é um assunto de grande importância na evolução dos serviços de
telecomunicações; é necessário rever algumas questões fundamentais como a
segurança das comunicações e a harmonização sobre a regulamentação aplicada;
o Session Initiation Protocol é a base para o seu desenvolvimento e disseminação
no mercado. Sendo assim, a segurança em sistemas baseados no protocolo SIP,
torna-se um ponto importante a ser pesquisado, já que o mesmo promete ser o
protocolo universal que integrará a rede de voz e dados definitivamente.
[...]Ao fazer ligações telefônicas pela internet, as empresas estão
economizando milhões. Mas estão expondo seus sistemas de voz a
todas as pragas que hoje atacam as redes de dados, como worms,
vírus, spam sobre telefonia internet (SPIT), ataques DoS e fraudes.
Além disso, abrem mais portas para que outras áreas da rede
também sejam atacadas, afetando a infra-estrutura das empresas e
17
seus sistemas.[...] (CIO REVISTA, 2004).
[...] Na sua forma básica, o SIP trafega em texto puro, significando
que ele é vulnerável aos softwares espiões. Segundo os
especialistas é fácil interceptar as chamadas VoIP não criptografadas
usando um iPod.[...](CIO REVISTA, 2004).
1.2 Objetivos
Este trabalho tem por objetivo demonstrar o funcionamento do
protocolo SIP, expondo suas vulnerabilidades e evidenciando ataques à sua
arquitetura, bem como alguns métodos de defesa à tais ofensivas maliciosas. Com
isto, pretende-se fornecer subsídios de informações referentes à segurança no uso
de sistemas de comunicação baseados no protocolo SIP, oferecendo condições aos
ingressantes, de evoluir nesta área. Não é foco deste trabalho, aprofundar em
métodos de defesa, nem em outros protocolos de sinalização, tais como o H323.
Deve-se notar que o mesmo não trata de QoS – Quality of Service (Qualidade de
Serviço) VoIP.
1.3 Identificação do problema
Devido ao grande interesse na redução de gastos, convergência e na
criação de novos serviços de comunicação, a padronização de um protocolo capaz
de gerir uma sessão multimídia torna-se inevitável. O fato de ser um protocolo de
arquitetura simples e aberta faz do SIP um protocolo com grandes possibilidades de
se tornar o padrão das comunicações sobre as redes IP.
[...] Desenvolvedores de produtos VoIP, grandes e pequenos, estão
adotando o SIP. A Microsoft introduziu o protocolo SIP em seu
sistema operacional Windows XP, e baseou seu programa de
mensagens instantâneas neste protocolo. A IBM reconheceu o SIP
como o futuro para todos os produtos de comunicação que utilizam
voz e vídeo[...]. (CHECK POINT SOFTWARE TECNOLOGIES LTD,
CA, 2004, p. 4, tradução nossa).
18
Contudo Implementações do SIP, sem as devidas preocupações com
a segurança podem acarretar em sérios prejuízos ao negócio. Documentar e tornar
pública as vulnerabilidades do SIP facilita a correção de problemas, servindo como
apoio tanto profissionais experientes em segurança da informação, quanto
interessados em ingressar na nova tendência da comunicação multimídia sobre
redes IP.
1.4 Justificativa
A justificativa para elaboração de um documento de referência sobre
as vulnerabilidades do protocolo SIP, explica-se pelo fato de ser um assunto pouco
divulgado. Sabe-se da grande capacidade do SIP nas comunicações globais, porém
suas falhas ainda são pouco conhecidas. O trabalho torna-se interessante à medida
que detalha os ataques que exploram as vulnerabilidades deste protocolo,
demonstrando como tais falhas podem abrir portas permitindo que pessoas mal
intencionadas estejam aptas a explorá-las, e como conseqüência, gerar prejuízos
ao sistema de comunicação.
1.5 Organização do trabalho
No Capítulo 2, será apresentado o protocolo SIP, enfatizando além da
sua arquitetura, componentes e estrutura, o seu funcionamento. Este capítulo ainda
apresenta uma breve comparação do SIP com o H323, outro protocolo de
sinalização, que está sendo substituído pelo Session Initiation Protocol. O Capítulo
3 trata das vulnerabilidades do sistema de comunicação que fazem uso do SIP,
enfatizando os ataques e suas conseqüências. No Capítulo 4, serão analisadas
algumas medidas de proteção, contudo, sem aprofundar nestas soluções, apenas
expondo alguns procedimentos mais utilizados. E finalmente, o Capitulo 5, relatando
tanto as conclusões obtidas pela pesquisa, quanto as dificuldades e limitações no
estudo do tema.
19
2 FUNDAMENTOS DO PROTOCOLO SIP
2.1 Surgimento do SIP
Segundo, Camarillo (2001), embora a primeira transmissão de voz
sobre redes comutadoras de pacotes datam por volta de 1974, O primeiro sistema
de conferência multimídia surgiu no inicio de 1990 desenvolvido por Terry Turletti.
Nomeado de INRIA Videoconferencing System (IVS). Tratava-se de um sistema de
transmissão de áudio e vídeo sobre a Internet. Mais tarde, Eve Schooler
desenvolveu o Multimídia Conference Control (MMCC), um software capaz de
prover teleconferências ponto-a-ponto e multiponto, com áudio e vídeo. Para
conectar vários usuários, o MMCC fazia uso do Connection Control Protocol (CCP),
um protocolo de controle orientado a transação. Uma transação consiste em um
podido de um usuário, e a resposta de outro usuário remoto. Para o transporte dos
pacotes o CCP utilizava o protocolo User Datagram Protocol (UDP), implementando
o time-out, e a retransmissão para garantia da entrega dos pacotes. Estes dois
primeiros
sistemas
de
conferência
multimídia
abriram
caminho
para
o
desenvolvimento do Session Initiation Protocol (SIP). A primeira versão do SIP, o
SIPv1, criada por Mark Handley e Eve Schooler, foi avaliada pelo IETF, como um
modelo para Internet em vinte e dois de fevereiro de 1996. O SIPv1 era um
protocolo baseado em texto, e fazia uso do Session Description Protocol (SDP) para
descrever as sessões multimídia, e do UDP, para o transporte dos pacotes. O
SIPv1 apresentou o conceito de registro de endereço em servidores de conferência
multimídia, promovendo certo nível de mobilidade ao usuário, pois uma vez que
este registre sua localização, um servidor de endereços é capaz de endereçar
convites ao próprio usuário. Sendo assim, se um usuário estivesse distante de sua
estação de trabalho, poderia escolher registrar-se em uma estação de trabalho
temporária e continuar recebendo convites multimídia. Neste primeiro momento, o
SIPv1 controlava apenas o estabelecimento e a finalização da sessão. Também em
vinte e dois de fevereiro de 1996, Henning Schulzrinne, submeteu ao IETF um
modelo de protocolo para Internet, capaz de convidar usuários para conferências
ponto-a-ponto ou multicast chamado de Simple Conference Invitation Protocol
20
(SCIP). Este protocolo era baseado no HTTP, e utilizava o Transmission Control
Protocol (TCP) para transporte dos pacotes. O SCIP fazia uso de endereços de email para identificar os usuários, e era capaz de alterar parâmetros da sessão após
seu estabelecimento. Então no 35th IETF meeting, foram apresentados os
protocolos SIP e o SCIP. E durante este encontro, e se estendendo ao seguinte o
36th IETF meeting, Schooler e Schulzrinne decidiram então unir as funcionalidades
dos dois protocolos, mantendo o nome SIP criando então o SIPv2. Em dezembro de
1996, surgiu o novo SIP, baseado em HTTP, é fazendo uso tanto do TCP, quanto
do UDP para transporte dos pacotes. A partir deste momento o SIP, adquiriu sua
verdadeira importância pelo IETF, que despende esforços para o desenvolvimento
da maturidade deste protocolo que gradativamente esta se tornando o padrão para
o estabelecimento, modificação e finalização de sessões multimídia.
2.2 Introdução
Segundo as especificações contidas no Request For Comment 3261
(RFC 3261), algumas aplicações que utilizam a Internet necessitam do
estabelecimento e gerenciamento de sessões. O fato dos usuários moverem-se
entre terminais, estarem acessíveis por diferentes nomes, comunicarem-se
utilizando diferentes mídias e às vezes simultaneamente, dificulta a implementação
destas aplicações. Neste cenário destaca-se o protocolo SIP. Definido e
implementado pelo Internet Engineering Task Force (IETF), trata-se de um
protocolo de controle referente à camada de aplicação do Modelo de Referência
OSI (Open System Interconnection), capaz de iniciar, modificar e terminar
comunicações multimídia ou chamadas entre usuários, definindo como os
equipamentos (computadores, telefones fixos, celulares, etc.) trocarão informações
entre si. As aplicações atuais do SIP estão direcionadas para as sessões interativas
de multimídia, tais como chamadas telefônicas ou conferências multimídia, mas o
SIP pode ser utilizado em sistemas de mensagens instantâneas, notificação de
acontecimentos, ou na gestão de outros tipos de sessão como, por exemplo, jogos
distribuídos. Em meio as suas funcionalidades tem-se o estabelecimento de
chamadas, a localização de usuários, suporte a unicast e multicast, administração
na participação de chamadas, negociação de recursos entre as partes e a
21
possibilidade de interoperabilidade com o protocolo H323, através de um gateway.
O SIP basea-se no modelo cliente/servidor, como demonstrado na figura 1, o cliente
faz a requisição e o servidor retorna as respostas referentes ao pedido.
Figura 1 - Arquitetura cliente/servidor
A sintaxe e semântica do SIP assemelham-se ao HTML com campos
explicitamente descritos, e herda do Hyper Text Transfer Protocol (HTTP) várias
propriedades, uma delas: o suporte ao transporte de qualquer tipo de carga. E
assim como o HTTP propiciou um grande impacto na Internet, o SIP promete o
mesmo no que se refere à comunicação em tempo real: com celulares, ou telefones
comuns,
via
mensagens
instantâneas,
ou
utilizando
qualquer
dispositivo
fundamentado em IP (Internet Protocol). De fato o potencial do SIP extrapola sua
simplicidade e flexibilidade. Com uma estrutura textual, o SIP possibilita a inclusão
de novas características de forma fácil e compatível com versões anteriores, o que
é fundamental para um protocolo que pretende ter vida longa. Os endereços SIP
são URLs (Unifomr Resource Locators), possibilitando a implementação de
diferentes recursos, como permitir realizar uma chamada, apenas com o clique em
22
um link em uma página web. O protocolo SIP faz parte de uma arquitetura de
protocolos de Conferência Multimídia da Internet, em desenvolvimento no IETF. A
figura 2 apresenta a pilha de protocolos correspondente a esta arquitetura.
Figura 2 - Arquitetura de protocolos multimídia Internet
De acordo com a RFC 2543, que descreve as operações do SIP, este
define algumas funcionalidades básicas, tais como:
• Estabelecimento, modificação e termino de sessões multimídia
O protocolo SIP, estabelece, modifica e termina sessões multimídia,
independente do tipo de sessão, seja ela uma vídeo conferência, uma chamada
telefônica na Internet, um chat, ou até sessões de jogos entre participantes. O SIP
determina as capacidades do meio de transmissão entre os usuários e estabelece o
nível mínimo de comunicação possível entre dois pontos. Além disso, permite que
os usuários determinem o tipo de informação que será trocada e seus respectivos
parâmetros. Possibilita a alteração dinâmica das configurações estabelecidas no
momento da conexão, por exemplo, a entrada de outros intervenientes na
conferência, ou alterações nas características em uma sessão já iniciada. O SIP
também detecta a transferência de chamadas, estabelecendo uma conexão entre o
transmissor e o novo receptor, encerrando a conexão original. Se uma chamada
não pode ser estabelecida porque o destinatário esta indisponível, o SIP e capaz de
determinar o estado do mesmo, se este já está com outra chamada em curso, ou se
não atende num determinado tempo.
• Mobilidade
O SIP não pode iniciar uma sessão com um potencial participante até
23
que este seja localizado. É comum que um usuário se desloque entre estações de
trabalho, podendo ser localizado em vários lugares. O SIP determina a localização
do destino da chamada através da resolução de endereços, mapeamento de nomes
e redirecionamento de chamadas. Para que os usuários possam ser localizados,
estes registram-se em um servidor de localização, isto torna-se necessário para
que um determinado usuário que possui um nome qualquer, possa ser localizado
em algum momento da ligação. Os usuários em um ambiente SIP, são identificados
através do SIP Uniform Resource Locators, (URL), cuja sintaxe assemelha-se aos
endereços de correio eletrônico, geralmente constituído por um nome de usuário e a
descrição do domínio, por exemplo: SIP:[email protected].
2.3 Componentes do SIP
O IETF define um conjunto de componentes na arquitetura do SIP,
operando em uma rede IP. Este conjunto de componentes é definido como Rede
SIP, e é apresentado na figura 3.
Figura 3 - Arquitetura SIP
24
• SIP User Agent (UA)
É o cliente da arquitetura, ou ponto final da comunicação multimídia,
que provê a interface de interação com o usuário. O User Agent possui dois
componentes: um User Agent Client (UAC), que é responsável por iniciar as
chamadas enviando as requisições, e um User Agent Server (UAS) responsável por
responder as requisições do UAC. Um UA tem a capacidade de atuar como UAC e
UAS, porém de um modo a cada transação, dependendo de quem inicia o pedido.
Os SIP UA’s são implementados em diversos tipos de sistemas. Estes podem, por
exemplo, operarem em um computador, através de uma aplicação, ou podem ser
implementados em dispositivos dedicados como um SIP phone. A figura 4, ilustra
alguns exemplos de UA’s:
Figura 4 - Exemplos de UA’s
• SIP Proxy Server
São intermediários em uma comunicação multimídia, é um servidor de
redirecionamento de requisições e respostas. O SIP Proxy Server, recebe uma
requisição e atua como sinalizador da chamada, redirecionando-a para o próximo
servidor SIP da rede, como se fosse o requisitante. Assim que recebe a resposta,
encaminha ao real chamador. O SIP Proxy Server também disponibiliza serviços
25
como: autenticação, autorização, controle de acessos, roteamento, retransmissões
de pedidos e segurança. Tipicamente, o Proxy Server, acessa uma base ou um
serviço de localização para determinar o próximo hop (nó da rede). Esta interface
entre proxy e serviço de localização não é definida pelo SIP. As bases acessadas
pelo proxy, para determinar a localização, pode conter: informações de presença,
registros SIP, ou qualquer outro tipo de informação que auxilie na localização do
usuário.
• SIP Redirect Server
Responsável por receber as requisições e Informar aos clientes o
caminho que a chamada deve tomar, de forma que o cliente entre diretamente em
contato com os próximos UAs. A função primária do Redirect Server é o roteamento
de chamadas, ou seja, a determinação do conjunto de servidores que será utilizado
como rota para a comunicação. Para que sejam determinadas as rotas, tanto o SIP
Proxy Server quanto o SIP Redirect Server, podem utilizar meios tais como executar
programas de consulta a banco de dados. Além disto, um servidor proxy também
pode duplicar a requisição, enviando copias destas para os próximos servidores.
Isto proporciona que uma requisição de inicio de chamada tente diferentes rotas, e
a primeira localização que responder é conectada com o cliente chamador. Em
resumo, o Redirect Server, faz o roteamento das requisições e respostas enviando
uma mensagem aos clientes com o endereço SIP procurado, e não fazendo o papel
de continuar a chamada. A Figura 5 ilustra o funcionamento do Redirect Server.
Nesta figura, Lívia pretende iniciar uma chamada para Rodrigo, utilizando uma
aplicação SIP em seu computador. Ao enviar o convite, o UA de Livia primeiramente
tenta localizar Rodrigo pelo seu endereço público, porém, no domínio empresa.com,
existe um SIP Redirect Server controlando os convites para inicio de sessão, que se
destinam a este domínio. O Redirect Server sabe que Rodrigo pode ser encontrado
tanto no endereço: SIP:[email protected], quanto no endereço: SIP:
[email protected], então o Redirect Server informa Livia para que tente
localizar Rodrigo, nos endereços conhecidos. Além disso, o servidor de
redirecionamento é capaz de priorizar e informar para o UA de Livia que Rodrigo
será localizado provavelmente no domínio empresa.com. Nota-se que neste
exemplo, o Redirect Server meramente retorna uma lista de possíveis localidades
do destinatário.
26
Figura 5 - Funcionamento do Redirect Server
A arquitetura SIP pode ainda apresentar os seguintes componentes:
• SIP Registrars
São responsáveis por processar os pedidos dos UAC, registrando sua
localização, que é armazenada em algum dos servidores de localização da
arquitetura. O Registrar ou Register Server pode ser incluído em um servidor proxy
ou em um Redirect Server. A figura 6 mostra Rodrigo registrando sua localização
em um SIP Registrar:
27
Figura 6 - Registro da localização em um Registrar Server
• Servidor de Localização
Sua função é armazenar e consultar registros de localização de
usuários.
• Gateway SIP
O Gateway e responsável pela interoperabilidade entre redes SIP e
outras que utilizam diferentes protocolos de sinalização, SIP – H323 ou SIP – PSTN
(Public Switched Telephone Network). A figura 7 ilustra esta interoperabilidade.
28
Figura 7 - Gateway SIP/PSTN e gateway SIP/H323
2.4 Sinalização SIP
Na figura 8, vê-se um exemplo do estabelecimento de uma sessão SIP
simples, entre dois dispositivos SIP. Estes dispositivos podem ser telefones SIP,
hand-helds, palmtops, telefones celulares, softwares para chamadas SIP, entre
outros. No exemplo ilustrado por Jonhston (2001), assume-se que ambos
dispositivos estão conectados em uma rede IP e cada um conhece o endereço IP
do outro.
29
Figura 8 - Estabelecimento de uma sessão SIP simples
Neste exemplo, o chamador Anderson inicia a troca de mensagens
enviando uma mensagem SIP INVITE para Livia. A mensagem de INVITE, contem
os detalhes do tipo de sessão que será estabelecida. Esta sessão pode ser tanto
uma chamada com voz, uma conferência com vídeo, ou até uma sessão para uma
partida de um jogo. Os campos da mensagem de INVITE são demonstrados na
figura 9.
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP laboratorio.faculdade.com.br:5060;branch=z9hG4bKfw19b
Max-Forwards: 70
To: Livia <sip:[email protected]>
From: Anderson <sip:[email protected]>;tag=76341
Call-ID: [email protected]
CSeq: 1 INVITE
Subject: Preciso de sua ajuda...
Contact: <sip:[email protected]>
Content-Type: application/sdp
Content-Length: 158
v=0
o=Anderson 2890844526 2890844526 IN IP4 laboratorio.faculdade.com.br
s=Phone Call
c=IN IP4 100.101.102.103
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Figura 9 - Campos da mensagem INVITE
30
A linha de início do INVITE SIP contém o tipo de pedido enviado pelo
cliente SIP, o endereço SIP do usuário destino e a versão SIP utilizada. De acordo
com Hersent (2001), o cabeçalho geral, comum tanto nos pedidos como nas
respostas, contém os seguintes campos:
• Via:
Traz a versão SIP, o protocolo da camada de rede, o endereço IP do
usuário que faz a chamada e a porta utilizada.
• Call-ID:
A primeira parte deste campo deve ser um padrão único dentro de
cada agente, e a última parte, o nome de domínio ou endereço IP. Um novo “CallID” deve ser gerado para cada chamada.
• From:
Este campo contém um nome que pode ser mostrado opcionalmente e
o endereço do originador da chamada. Deve estar presente tanto nas requisições
quanto nas respostas SIP. Nas respostas, o campo From simplesmente é copiado a
partir do pedido e, portanto, não designa ser o originador da chamada.
• To:
Este campo indica o destino da chamada, sendo obrigatório em todas
as requisições e respostas SIP.
• Cseq:
Este campo guarda um número escolhido aleatoriamente sem sinal,
que é incrementado a cada novo pedido (com exceção dos pedidos do tipo ACK e
CANCEL, onde o número é o mesmo da resposta recebida para o ACK; e o mesmo
do pedido cancelado para o CANCEL) juntamente com nome do método, ou seja,
que identifica o tipo de pedido que está sendo enviado. No caso de mensagens do
tipo resposta, o servidor deve copiar o valor Cseq do pedido para as respostas
correspondentes. Em ambos os tipos de mensagens (requisições e respostas), o
campo Qseq é obrigatório. Além dos campos de cabeçalho geral (utilizado por
requisições e respostas), uma requisição pode transportar campos com informações
31
específicas dos pedidos no cabeçalho, tais como: o campo Accept que transporta
os tipos de mídias aceitáveis na resposta, o campo Subject para transportar
informações sobre a natureza da chamada. Os campos que terminam com CR
(Carrier Return) e LF (Line Feed) são utilizados para determinar o uso de uma linha
em branco entre os campos. O cabeçalho da entidade é formado por campos de
que se aplicam diretamente ao corpo da mensagem, são eles:
• Content-Type:
Informa o tipo de conteúdo da mensagem.
• Content-Length:
Contém o número de octetos do corpo da mensagem.
Os campos Content-Type e Content-Length, indicam que o corpo da
mensagem, vista na figura 9, é SDP (Session Description Protocol), contendo 169
octetos de dados. A demonstração da contagem dos octetos é ilustrada na figura
10. Uma linha em branco separa o corpo da mensagem dos campos de cabeçalho,
que termina com o campo Content-Length.
No exemplo da figura 9, pode-se observar sete linhas de informações
SDP, que descrevem o tipo de mídia que o chamador Anderson prefere estabelecer
com Livia. A informação de mídia descrita é necessária, pois o SIP não faz
suposição da mídia utilizada, então o originador deve especificar exatamente seu
tipo. Os nomes dos campos SDP são listados na figura 11.
Linha
v=0©®
o=Anderson 2890844526 2890844526 IN IP4 laboratotio.faculdade.com.br©®
s=Phone Call©®
c=IN IP4 100.101.102.103©®
t=0 0©®
m=audio 49170 RTP/AVP 0©®
a=rtpmap:0 PCMU/8000©®
Total
05
70
14
26
07
25
22
169
Figura 10 - Cálculo do campo Content-Length
32
Parâmetros SDP
v=0
o=Anderson 2890844526 2890844526 IN IP4
laboratorio.faculdade.com.br
s=Phone Call
c=IN IP4 100.101.102.103
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Figura 11 - Descrição dos campos SDP
Descrição
Numero da versão
Nome do originador
Assunto
Conexão
Tempo
Mídia
Atributos
A figura 11 inclui:
O endereço de conexão IP – 100.101.102.103.
O formato da Mídia – áudio.
O numero da porta utilizada – 49170.
O protocolo de transporte de Mídia – RTP (Real Time Protocol).
Codificação da Mídia - PCM u Law.
Taxa de amostragem – 8000Hz.
O INVITE SIP, é apenas um exemplo de requisição SIP. Segundo
especificações na RFC 3261, existem ainda cinco outros tipos ou métodos de
requisições SIP, e mais alguns em extensões desta RFC. As tabelas 12 e 13
apresentam os seis métodos de requisições SIP e os métodos estendidos
respectivamente.
Método
INVITE
ACK
BYE
CANCEL
REGISTER
OPTIONS
Funcionalidade
Convida pessoas para participar de uma sessão
Confirma o recebimento de uma resposta final para um INVITE
Solicita o término de uma sessão
Solicita que uma sessão prévia seja cancelada, diferente do BYE
Registra a informação de contato de um indivíduo
Consulta servidores com respeito a suas capacidades
Figura 12 - Métodos de requisições SIP
33
Método
INFO
MESSAGE
NOTIFY
PRACK
RFC
2976
3428
3265
3262
PUBLISH
REFER
SUBSCRIBE
UPDATE
Funcionalidade
Carrega informações de controle geradas durante a sessão
Permite a transferência de mensagens instantâneas
Permite a notificação de eventos específicos
Confirma a recepção de uma mensagem de resposta
informativa
3903
Publica o estado de um evento
3515
Solicita que o receptor faça contato com um terceiro
participante
3265
Permite se subscrever para um estado particular de um
recurso
3311
Permite a atualização dos parâmetros de uma sessão
Figura 13 - Métodos de requisições estendidas do SIP
A próxima mensagem vista no fluxo da figura 8 é a 180 Ringing,
enviada em resposta ao INVITE. Esta mensagem indica que a outra parte, no caso
Lívia recebeu o INVITE, e esta sendo alertada de que alguém quer contatá-la. O
alerta pode ser o toque do telefone, uma mensagem piscando no display, alerta
vibratório, ou qualquer outra forma que indique a intenção da chamada. O 180
Ringing é um tipo de mensagem SIP de resposta. As mensagens de resposta são
numéricas e classificadas pelo primeiro dígito da seqüência. O 180 Ringing é
qualificado como classe de informação, identificado pelo primeiro digito, o número 1.
Existem seis classes de respostas SIP, as primeiras cinco, foram herdadas do
HTTP versão 1.1, a sexta e ultima foi criada especificamente para o SIP. A figura 14
define cada classe de resposta SIP:
Classe
1xx
2xx
3xx
4xx
5xx
6xx
Descrição
Informativo
Ação
Indica o status da chamada antes que esta se
complete
Sucesso
A requisição foi recebida com sucesso
Redirecionamento
O servidor retornou possíveis localidades. O cliente
deve reenviar a requisição para outros servidores
Erro no Cliente
A requisição falhou devido a um erro no cliente
Falha no Servidor
A requisição falhou devido a um erro no servidor
Falha Global
A requisição falhou. A requisição não deve ser
enviada a este ou outros servidores
Figura 14 - Classes de resposta SIP
34
A figura 15 demonstra a estrutura da mensagem 180 Ringing.
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP laboratorio.faculdade.com.br:5060;branch=z9hG4bKfw19b
;received=100.101.102.103
To: Livia <sip:[email protected]>;tag=a53e42
From: Anderson <sip:[email protected]>;tag=76341
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Content-Length: 0
Figura 15 - Estrutura da mensagem 180 Ringing
Esta mensagem é composta pela cópia de alguns campos da
mensagem INVITE, como: Via, To, From, Call-ID e QSeq. Então uma linha de inicio
é adicionada a mensagem contendo a versão do SIP, o código de resposta e a
frase que indica a razão: Ringing (tocando). O parâmetro received é adicionado ao
campo Via, que contem o endereço IP de quem o origina a chamada, que
tipicamente é o mesmo endereço URI no campo Via, resolvido por um DNS
(laboratorio.faculdade.com.br). Nota-se que os campos To e From não se
inverteram, o que poderia se esperar, já que a mensagem partiu de Livia, porém o
SIP indica a direção da requisição, e não a direção da mensagem. Agora o campo
To, possui uma tag gerada por Lívia. Desde então, todas as requisições e respostas
da sessão terão as tags geradas por ambos. A resposta também contém o campo
Contact, que descreve o endereço pelo qual Livia pode ser contatada diretamente
uma vez que a sessão tenha sido estabelecida. Quando a parte chamada aceita a
sessão, atendendo ao telefone, por exemplo, uma resposta de 200 OK é enviada ao
originador da chamada, que também significa que o tipo de mídia proposta foi
aceito. A figura 16 ilustra a estrutura da mensagem 200 OK, enviada por Lívia.
35
SIP/2.0 200 OK
Via: SIP/2.0/UDP laboratorio.faculdade.com.br:5060;branch=z9hG4bKfw19b
;received=100.101.102.103
To: Livia <sip:[email protected]>;tag=a53e42
From: Anderson <sip:[email protected]>;tag=76341
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Content-Type: application/sdp
Content-Length: 155
v=0
o=Livia 2890844528 2890844528 IN IP4 torre.empresa.com.br
s=Phone Call
c=IN IP4 200.201.202.203
t=0 0
m=audio 60000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Figura 16 - Estrutura da mensagem 200 OK
A mensagem 200 OK é estruturada da mesma forma que a 180
Ringing, contendo o mesmo tag do campo To, e o URI do contato. As capacidades
da mídia devem ser explicitadas no corpo da mensagem SDP adicionada na
resposta. No caso da figura 16, o corpo SDP contém:
Endereço do ponto final da comunicação – 200.201.202.203.
Formato da mídia – áudio.
Número da porta 60000.
Protocolo de transporte de mídia – RTP.
Codificação da mídia – PCM u Law.
Taxa de amostragem – 8000Hz.
A etapa final para confirmação e inicio da sessão, é feita por uma
requisição de reconhecimento (acknowledgment). Este reconhecimento indica que o
originador da chamada, no caso Anderson, recebeu com sucesso, do destino, Livia,
uma resposta. Esta troca de informações de mídia permite que a sessão seja
estabelecida usando outro protocolo, o RTP, por exemplo. A figura 17 mostra a
estrutura do acknowledgment (ACK).
36
ACK sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP laboratorio.faculdade.com.br:5060;branch=z9hG4bK321g
Max-Forwards: 70
To: Livia <sip:[email protected]>;tag=a53e42
From: Anderson <sip:[email protected]>;tag=76341
Call-ID: [email protected]
CSeq: 1 ACK
Content-Length: 0
Figura 17 - Estrutura do ACK
O campo CSeq, tem o mesmo número do INVITE que originou a
sessão, porém o método agora é o ACK. Neste momento a sessão de mídia é
iniciada, utilizando os parâmetros estabelecidos na troca de mensagens SIP. A
comunicação acontece utilizando outro protocolo, tipicamente o RTP. O parâmetro
branch contido no campo Via guarda um novo identificador da transação, isso
ocorre após o reconhecimento de uma das partes da comunicação através do 200
OK, considerando uma nova transação. Estas mensagens trocadas, mostram que o
Session Initiation Protocol é um protocolo de sinalização fim-a-fim, ou seja, uma
rede SIP ou um Servidor SIP, não é requerido para que o protocolo seja usado.
Dois end-points, utilizando a pilha de protocolo SIP e conhecendo o endereço IP um
do outro, podem fazer uso do SIP para configurar uma sessão entre eles. Quando o
chamador, Anderson, origina um INVITE, esta agindo como cliente, e quando Livia,
responde a esta requisição, esta agindo como servidor. Depois de estabelecida a
conexão, Livia envia uma requisição de BYE, agindo então como um cliente, e
Anderson agora age como o servidor, quando responde a requisição. Este é o
motivo pelo qual um ponto final da comunicação deve implementar tanto o software
cliente quanto o servidor. Jonhston (2001) ressalta ainda, que esta é a diferença do
SIP em relação a outro protocolo cliente\servidor como o HTTP ou FTP. No HTTP,
por exemplo, o browser (navegador) age sempre como o cliente, e o Web Server
age sempre como o servidor, similar ao FTP. A figura 18 demonstra a requisição de
BYE, que indica que uma das partes, no caso Livia, deseja encerrar a sessão:
37
BYE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP torre.empresa.com.br:5060;branch=z9hG4bK392kf
Max-Forwards: 70
To: Anderson <sip:[email protected]>;tag=76341
From: Livia <sip:[email protected]>;tag=a53e42
Call-ID: [email protected]
CSeq: 1 BYE
Content-Length: 0
Figura 18 - Estrutura do BYE
Pode-se observar na figura 18 que o campo Via do BYE possui o
endereço do host de Livia, e também um novo identificador de transação. Isso
ocorre pois o BYE é considerado como uma nova transação, independente do
INVITE e do ACK. Os campos From e To mostram que a mensagem agora parte
de Livia. Assim Anderson consegue identificar a sessão pelo campo Call-ID, que é o
mesmo do INVITE, e então finalizar a sessão correta. A confirmação da resposta do
BYE é o 200 OK, visto na figura 19, nota se que a resposta mantém o valor CSeq
da requisição de BYE.
SIP/2.0 200 OK
Via: SIP/2.0/UDP torre.empresa.com.br:5060;branch=z9hG4bK392kf
;received=200.201.202.203
To: Anderson <sip:[email protected]>;tag=76341
From: Livia <sip:[email protected]>;tag=a53e42
Call-ID: [email protected]
CSeq: 1 BYE
Content-Length: 0
Figura 19 - 200 OK confirmação do BYE
2.5 Sinalização SIP com Servidor Proxy
Jonhston (2001), explica ainda, que no exemplo ilustrado na figura 8, o
originador da chamada, Anderson, conhecia o endereço IP do destinatário do
convite, possibilitando que a requisição de INVITE pudesse ser diretamente enviada
ao destino, o que não acontece em geral. Um endereço IP não pode ser utilizado
como um número de telefone, isto porque os endereços IPs são geralmente
dinâmicos, obtidos pelo host quando este se conecta a um servidor DHCP, por
exemplo. Este endereço IP mantém-se fixo durante o tempo em que o host
38
permanece conectado, porém o endereço será diferente a cada conexão com o
servidor. Com isto conclui-se que o endereço IP, não identifica unicamente um
usuário, e sim um host em uma rede particular. Contudo, existe um protocolo que
identifica o usuário através de um endereço, independente de onde este esteja, este
protocolo é o SMTP (Send Mail Transfer Protocol). O SMTP entrega as mensagens
pelo endereço de e-mail, permitindo que o destinatário seja alcançado,
independente de qual seja seu endereço IP, ou onde este esteja localizado. Sendo
a comunicação usuário-a-usuário e não dispositivo-a-dispositivo, o SIP utiliza um
esquema de endereçamento semelhante ao de e-mail. Este endereçamento é parte
da família de endereços da Internet conhecidos como URI (Universal Resource
Identifier). O SIP URI é um nome, que é resolvido em endereço IP utilizando-se um
SIP Proxy Server e consultas a um DNS (Domain Name Server), no momento da
chamada, como visto na figura 20. Nesta figura, observa-se uma típica chamada
SIP utilizando-se um Proxy Server.
Figura 20 - Chamada SIP com Proxy Server
39
O SIP Proxy Server, não configura ou termina a sessão, este age
apenas como intermediário, situando-se entre as trocas de mensagens, apenas
recebendo as requisições e repassando-as. Na figura 20 vê-se apenas um servidor
proxy, porém podem existir múltiplos servidores no caminho da sinalização. O SIP
possui duas categorias de URIs: a primeira corresponde ao usuário, e a segunda
corresponde ao dispositivo ou ponto final da comunicação. As URI de usuário ou
user URI são conhecidas como address of record (AOR). Requisições destinadas a
AORs necessitam de buscas em bancos de dados de localização, podendo resultar
no envio da requisição para um ou vários dispositivos, já o URI de dispositivo,
conhecido como contato, não necessita de busca a banco de dados. O address of
record é geralmente usado nos campos de cabeçalho: To e From, enquanto um URI
de dispositivo é usado no campo de cabeçalho Contact. O método que relaciona as
URIs de dispositivo com um address of record é denominado REGISTER. Este
método é detalhado na sessão 2.6. Na demonstração da figura 20, Anderson
desconhece a localização de Rodrigo, então o SIP Proxy Server é usado para
repassar o INVITE. Primeiramente ocorre uma busca do URI SIP do domínio de
Rodrigo, que retorna o endereço IP do SIP Proxy Server deste domínio, então o
INVITE é repassado a este endereço. A figura 21 mostra a estrutura do INVITE.
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bKmp17a
Max-Forwards: 70
To: Rodrigo <sip: [email protected] >
From: Anderson <sip:[email protected]>;tag=42
Call-ID: [email protected]
CSeq: 1 INVITE
Subject: Onde você está exatamente?
Contact: <sip:[email protected]>
Content-Type: application/sdp
Content-Length: 159
v=0
o=Anderson 2890844526 2890844526 IN IP4 100.101.102.103
s=Phone Call
t=0 0
c=IN IP4 100.101.102.103
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Figura 21 - INVITE repassado ao Proxy
40
Após receber o INVITE, o proxy examina o SIP URI requisitado, no
caso da figura 21: sip:[email protected], localizando então Rodrigo. O
proxy repassa o INVITE ao endereço IP do destinatário, com a adição de um
segundo campo Via, como visto na figura 22, contendo o endereço do proxy. Pela
presença de dois campos Via, pode-se concluir que o INVITE passou por um Proxy
Server. Após receber o INVITE, uma mensagem 180 Ringing é enviada de Rodrigo
ao proxy. Esta mensagem é detalhada na figura 23. Nota-se que o campo To, agora
possui uma tag, para identificar o dialogo em particular, além disso, o campo
Contact, contém o URI do dispositivo de Rodrigo.
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP proxy.escritorio.com.br:5060;branch=z9hG4bK83842.1
Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bKmp17a
Max-Forwards: 69
To: Rodrigo <sip:[email protected]>
From: Anderson <sip:[email protected]>;tag=42
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Content-Type: application/sdp
Content-Length: 159
v=0
o=Anderson 2890844526 2890844526 IN IP4 100.101.102.103
s=Phone Call
c=IN IP4 100.101.102.103
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Figura 22 - INVITE repassado pelo proxy ao destino
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP proxy.escritorio.com.br:5060;branch=z9hG4bK83842.1
;received=100.101.102.105
Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bKmp17a
To: Rodrigo <sip:[email protected]>;tag=314159
From: Anderson <sip:[email protected]>;tag=42
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Content-Length: 0
Figura 23 - Mensagem 180 Ringing enviada ao proxy
41
O proxy recebe o 180 Ringing, e verifica que o primeiro campo Via
contém seu próprio endereço, então o proxy remove o campo e repassa a resposta
ao endereço contido no próximo campo Via: 100.101.102.103, porta 5060. A
estrutura da resposta enviada a Anderson é detalhada na figura 24.
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bKmp17a
To: Rodrigo <sip:[email protected]>;tag=314159
From: Anderson <sip:[email protected]>;tag=42
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Content-Length: 0
Figura 24 - Mensagem de resposta enviada do proxy ao originador
Vê-se que o campo Via, reduz a complexidade no encaminhamento da
mensagem, pois não requer buscas em banco de dados para localização da rota, e
além disso, a mensagem pode retornar pelos mesmos proxyes que a requisição. A
chamada é aceita por Rodrigo que envia uma resposta 200 OK que é repassada
pelo proxy a Anderson. A estrutura do 200 OK é detalhada na figura 25.
SIP/2.0 200 OK
Via: SIP/2.0/UDP proxy.escritorio.com.br:5060;branch=z9hG4bK83842.1
;received=100.101.102.105
Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bKmp17a
To: Rodrigo <sip:[email protected]>;tag=314159
From: Anderson <sip:[email protected]>;tag=42
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Content-Type: application/sdp
Content-Length: 159
v=0
o=Rodrigo 2890844526 2890844526 IN IP4 200.201.202.203
s=Phone Call
c=IN IP4 200.201.202.203
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Figura 25 - Confirmação 200 OK repassada do proxy ao originador
Na figura 25, nota-se a presença do campo Contact, permitindo que a
mensagem de ACK seja encaminhada diretamente do originador ao destinatário.
42
Por fim o BYE é enviado diretamente ao ponto final da comunicação, que sinaliza
com um ACK, encerrando a sessão.
2.6 Registro SIP
Colcher (2005) explica que o primeiro passo para que um agente
possa ser conectado a um sistema de telefonia baseado no SIP, é registrar-se em
um servidor de registro. Deste modo, as mensagens entrantes no sistema
destinadas a este usuário, podem ser encaminhadas corretamente para sua
localização. Este processo pode ser feito diretamente entre o usuário e o servidor
de registro SIP, porém geralmente o registro é feito através de um servidor proxy,
que utiliza algum processo de autenticação do usuário antes de encaminhar a
solicitação ao SIP Rregister Server. O registro do agente é feito através de uma
requisição REGISTER, e alguns campos-chave no cabeçalho da mensagem. O
Campo From indica o endereço do indivíduo que inicia o registro, e o campo To traz
o endereço de registro, ou seja, o endereço a ser associado ao usuário sendo
registrado. Caso o registro seja feito pelo próprio usuário, diretamente no servidor,
os campos To e From terão os mesmos valores. Entretanto, se o registro ocorrer de
forma indireta, ou seja, via servidor proxy, estes valores serão diferentes, indicando
que um individuo, no caso o proxy, esta realizando o registro em benefício de outro,
o usuário. A mensagem de requisição de registro contém ainda o campo Contact,
que fornece a identificação do usuário e a localização do seu agente, para onde
serão encaminhadas as futuras mensagens. Outro campo importante na requisição
de registro é o campo Expire. Este campo contém um valor que indica o tempo
solicitado para o registro manter-se ativo no servidor de registro. Este tempo,
normalmente e indicado em segundos, e não pode ultrapassar o tempo limite
configurado no servidor, caso ocorra, é adotado o tempo estabelecido no SIP
Register Server. Tal situação é informada ao usuário na resposta enviada pelo
servidor, que indicará o tempo para expiração do registro no campo Expire do
cabeçalho da mensagem. O usuário precisa renovar o registro antes da expiração.
A figura 26, apresenta o conteúdo da mensagem REGISTER, enviada diretamente
de um agente localizado em m34.rio.com.br para o servidor de registro
registrar.rio.com.br.
43
REGISTER sip:registrar.rio.com.br SIP/2.0
Via: SIP/2.0/UDP m34.rio.com.br
From: <sip:[email protected]>
To: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 1 REGISTER
Contact: <sip:[email protected]>
Expire:3600
Content-Length: 0
Figura 26 - REGISTER enviado diretamente para o servidor de registro
O registro pode ser feito pelo usuário em mais de um agente, em
localizações diferentes, e com o mesmo endereço de registro. Assim se uma
mensagem for destinada a este usuário, será replicada em série ou em paralelo
para os diversos agentes registrados para o individuo. O usuário pode remover seu
registro, enviando uma nova requisição REGISTER, indicando no campo To, o
endereço de registro, no campo Contact sua localização e identificação, e o valor
zero no campo Expire. Caso queira remover todos os registros, basta utilizar o
caractere * (asterisco) como valor no campo Contact. A figura 27, apresenta o fluxo
de registro de um agente em um servidor de registro passando por um proxy.
Figura 27 - Registro de um agente em um servidor de registro via proxy
A seqüência do registro é realizada da seguinte forma:
1 – O usuário inicia o agente e uma requisição REGISTER é enviada
ao proxy.
44
2 – O servidor proxy recebe a mensagem REGISTER e envia a
resposta 100 Trying para o agente, indicando que a requisição fora recebida, não
sendo necessária a retransmissão.
3 – Como o esquema de autenticação neste caso é simplificado, o
servidor proxy encaminha a requisição REGISTER para o servidor de registro.
4 – O servidor de registro então envia uma resposta 200 OK para o
proxy. A operação de registro não utiliza a mensagem ACK.
5 – O proxy encaminha a mensagem ao agente, notificando o registro
no sistema.
2.7 Redirecionamento
Em um sistema de telefonia baseado em SIP, pode ser necessária a
localização de seus participantes, afirma Colcher (2005). Este processo é realizado
utilizando-se as funcionalidades do servidor de redirecionamento. Para que seja
solicitado o serviço de redirecionamento, uma mensagem INVITE deve ser
encaminhada para o servidor de redirecionamento, ou Redirect Server. O campo
From desta mensagem indica o endereço do usuário que solicita o mapeamento, e
no campo To o endereço do indivíduo a ser localizado. A figura 28 apresenta o
conteúdo de uma mensagem INVITE, enviada por Anderson ([email protected])
para o servidor de redirecionamento (redirect.rio.com.br) solicitando a localização
do usuário Rodrigo ([email protected]).
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP m34.rio.com.br
From: Anderson <sip:[email protected]>
To: Rodrigo <sip:[email protected]>
Call-ID: [email protected]
CSeq: 1 INVITE
Subject: Proposta de Venda de Produto
Content-Length:256
Content-Type: application/sdp
Figura 28 - Mensagem INVITE enviada para o Redirect Server
Para realizar a localização de participantes o Redirect Server age
como um cliente de um serviço de localização, este representado por um serviço de
45
banco de dados que mantém o mapeamento entre uma única URI e um conjunto
de localizações possíveis para o elemento referenciado na URI. A lista de uma ou
mais localizações possíveis são registradas no campo Contact da mensagem de
resposta de classe 3xx enviada pelo Redirect Server. A figura 29 apresenta o
conteúdo da mensagem de resposta 302 Moved Temporarily, enviada pelo Redirect
Server para o usuário Anderson, em resposta a mensagem da figura 28.
SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP m34.rio.com.br
From: Anderson <sip:[email protected]>
To: Rodrigo <sip:[email protected]>
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Expire: 3600
Content-Length:0
Figura 29 - Reposta enviada pelo Redirect Server
Ao receber a mensagem de redirecionamento o originador da
chamada envia uma requisição ACK para o Redirect Server, e em seguida envia
uma nova requisição com base na URI ou URIs recebidas do Servidor de
redirecionamento. Estas URIs, não necessariamente são limitadas a URIs SIP,
podendo ser URIs de telefones, fax, irc, ou até de “mailto:”. A figura 30, apresenta o
processo de redirecionamento para efetivar a comunicação entre dois agentes
registrados através de servidores proxy.
46
Figura 30 - Redirecionamento via servidor proxy
O fluxo de mensagens é realizado da seguinte forma:
1 – O agente A envia uma requisição INVITE para que o proxy A
encaminhe ao agente B.
2 – O proxy A recebe o INVITE e notifica o Agente A com a resposta
100 Trying.
3 – Sendo o esquema de autenticação simplificado, o proxy não troca
demais mensagens com o agente A. E simplesmente encaminha o INVITE ao
servidor de redirecionamento.
4- O servidor de redirecionamento envia a resposta 302 Moved
47
Temporarily, com o mapeamento obtido através do serviço de localização.
5
–
O
proxy
A
encaminha
um
ACK para
o
servidor
de
redirecionamento completando o three-way-handshake (aperto de mão em três
vias).
6 – O proxy A utiliza a informação de mapeamento e gera um novo
INVITE, enviado ao proxy B.
2.8 SIP X H.323
O SIP e H.323 foram desenvolvidos para endereçar e sinalizar
sessões multimídia em arquiteturas distribuídas de controle de chamadas. Ambos
permitem comunicações com dois ou mais participantes, utilizando computadores
ou telefones como pontos terminais, admitem negociações de parâmetros,
criptografia e utilizam os protocolos RTP e RTCP para transporte e controle,
respectivamente. O protocolo H.323 é constituído por múltiplos protocolos incluindo,
Q.931 para a sinalização, H.245 para a negociação e o RAS (Registration
Admission Status) para controle de sessões. Este protocolo é considerado por
muitos, um protocolo grande, pesado, complexo e rígido, típico das empresas de
telecomunicações, difícil de adaptar a soluções futuras. Ao contrário, o SIP é um
protocolo típico da Internet e funciona trocando mensagens simples de texto ASCII.
O SIP é um protocolo com boa inter-operação com os outros protocolos da Internet,
mas não muito bom com os protocolos de sinalização do sistema telefônico
existente. Por ser um protocolo altamente modular e flexível, (modelo VoIP IETF),
pode ser facilmente adaptado a novas aplicações. Prometendo ser o centro no
controle das NGN (Next Generation Network). Segundo David (2005) o H.323
significa o “Mundo Antigo” das redes telefônicas PSTN, por ser complexo,
determinístico e vertical. Ao ser focalizado em aplicações multimídia, preocupa-se
em especificar todos os parâmetros da comunicação, centralizando a complexidade
no servidor. Ao contrário, o SIP significa o “Novo Mundo” das telecomunicações
sobre redes IP, tratando-se de um protocolo da família dos protocolos Internet,
simples, aberto e horizontal. O SIP é um protocolo de transação genérico que
delega a complexidade nos clientes. A figura 31 resume algumas diferenças entre
48
estes protocolos. Conclui-se nesta figura que o SIP é mais simples e mais orientado
para a Internet, suportando inclusive funcionalidades como instant messaging.
Aspectos
Negociação
H.245
SDP
Codecs
Todos
Todos
Comunicação
RTP/RTCP
RTP/RTCP
Codificação das
Mensagens
Binário
ASCII
Transporte
UDP e maioritariamente
TCP
-
TCP e maioritariamente
UDP
RFC 3428
Instant Messaging
H.323
SIP
Figura 31 - SIP X 323
2.8.1 Diferenças na Sinalização
As mensagens de sinalização e de controle podem ser trocadas
diretamente entre os terminais ou através de um servidor. A sinalização SIP é mais
simples, permitindo adicionar funcionalidades e serviços sem se perder a
compatibilidade com os terminais antigos, algo que não é possível no H.323. A
figura 32, compara as sinalizações SIP e H323.
H.323
SIP
Usa o H245 como protocolo de controle
para comunicações multimídia.
Sinalização em binário ASN.1.
Sinalização textual muito semelhante ao
HTTP ou SMTP;
Atrasos mínimos devido a sinalização
simplificada.
Possíveis atrasos.
Utiliza funções RAS (Registration,
Admission and Status) para o registro
dos terminais e resolução de endereços.
Figura 32 - Sinalizações SIP X H323
49
2.8.2 Diferenças no Streaming
O streaming é o envio da informação entre os terminais. A forma como
é feito é diferente dependendo dos protocolos. Embora tanto o H323, quanto o SIP
utilizem pacotes RTP/RTCP, o interior dos pacotes é muito diferente. A figura 33
demonstra as diferenças no streamming.
H.323
O H.245 é usado para negociar a
capacidade dos terminais e criar canais
de mídia
Usa RTSP que é um protocolo para
controle de sistemas de streamming.
SIP
Usa o controle de chamadas SDP que é
um descritor de mídia baseado em texto.
O SDP pode ser transportado nas
mensagens SIP.
Os URIs são semelhantes ao e-mail.
O RTSP tem mídia unidirecional.
Geralmente inicia sessões bidirecionais.
Figura 33 - Diferenças no streamming SIP X H323
50
3 VULNERABILIDADES DOS SISTEMAS VOIP BASEADOS EM SIP
3.1 Introdução
Está claro que a tecnologia VoIP é a grande tendência emergente no
panorama das telecomunicações, porém, apesar de todas as oportunidades
apresentadas, o serviço de voz sobre redes IP introduziu novos riscos referentes a
segurança da informação. A conversão para o sistema de telefonia IP sem os
devidos cuidados com a segurança, pode acarretar sérios danos ao negócio,
transformando a solução em problemas. Se por um lado as empresas economizam
ao fazerem ligações telefônicas pela internet, por outro, estão expondo seus
sistemas de voz a todas as pragas que hoje atacam as redes de dados, como
worms, vírus, spam sobre telefonia Internet (SPIT), ataques DoS, DDoS e fraudes,
comprometendo toda infra-estrutura VoIP. A utilização de redes privadas de
operadoras, não elimina os riscos de segurança. Ameaças de origem interna, como
ataques e fraudes continuam existindo. Segurança em ambientes VoIP são
exigidas, embora promove-la na Internet seja mais complexo do que em redes
PSTN. Mensagens SIP trocadas para o estabelecimento de sessões, podem conter
informações privadas, que o usuário ou o servidor queiram manter em sigilo. Um
exemplo são os cabeçalhos SIP, estes podem revelar informações sobre a
comunicação entre as partes. O mesmo ocorre com o corpo das mensagens, que
podem conter dados que não devem ser expostos, como: endereços, números de
telefone, etc. A natureza aberta dos protocolos VoIP em conjunto com o grande
número de sub-sistemas existentes na telefonia sobre a Internet, torna o desafio de
estabelecer-se uma comunicação segura, muito mais complexo. O acesso fácil ao
canal de comunicação é a ameaça mais ativa em um sistema VoIP. A captura e
analise do trafego da internet, facilitada pela estrutura textual do SIP, faz com que
seja simples a tarefa de espionagem. Assim, o protocolo SIP, oferece oportunidades
para ataques do tipo spoofing (falsificação), hijacking (seqüestro), e message
tampering (adulteração de mensagens). A figura 34 ilustra uma mensagem SIP
INVITE, assinalando alguns campos passiveis de falsificação.
51
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP laboratorio.faculdade.com.br:5060;branch=z9hG4bKfw19b
Max-Forwards: 70
To: Livia <sip:[email protected]>
From: Anderson <sip:[email protected]>;tag=76341
Call-ID: [email protected]
CSeq: 1 INVITE
Subject: Preciso de sua ajuda...
Contact: <sip:[email protected]>
Content-Type: application/sdp
Content-Length: 158
v=0
o=Anderson 2890844526 2890844526 IN IP4 laboratorio.faculdade.com.br
s=Phone Call
c=IN IP4 100.101.102.103
t=0 0
m=audio 49170 RTP /AVP 0
a=rtpmap:0 PCMU/8000
Figura 34 - SIP INVITE passível de sniffing e spooffing
A utilização de mensagens SIP maliciosas pode causar desde o
acesso não autorizado ao sistema, até o estado crítico de negação de serviço
(Denial of Service - DoS). Ataques de DoS são um grande problema para o SIP. Um
atacante pode, por exemplo, inserir um código malicioso em uma requisição
REGISTER, induzindo a modificação do banco de dados de registro, fazendo com
que toda requisição de INVITE destinada a um usuário seja distribuída para vários
agentes pelo proxy, amplificando o tráfego, ou ainda enviada a um único agente,
tornando este indisponível. Por utilizar os protocolos TCP e UDP para o transporte,
e sendo estes protocolos vulneráveis a ataques como SYN flood, session hijacking,
o SIP também será vulnerável a ataques similares. Além disso, a interoperabilidade
do SIP permite a interconexão com redes PSTN, introduzindo novos pontos de
falha, como os gateways, que são susceptíveis a ataques de DoS e message
tampering. Os bugs (falhas) de software são outras fontes para problemas de
segurança do protocolo SIP, podendo causar o acesso não autorizado ou o DoS,
quando implementados em telefones. Por outro lado, se implementados em Smart
Phones, são vulneráveis a pragas como vírus.
52
“...Stevens assinalou ainda que com os sistemas de voz sobre IP o
problema tende a piorar. Um exemplo pode ser o da operadora - que
não teve o nome revelado - e que perdeu cerca de 76 mil dólares em
um único dia com a invasão de seu sistema de VoIP. Recentemente,
a Telecom New Zealand, principal operadora de telefonia fixa e
móvel da Nova Zelândia, enfrentou uma vulnerabilidade que permitiu
que hackers acessassem correios de voz de seus clientes. Utilizando
um software que permitia fazer ligações de voz sobre IP, um
adolescente acessou correios de voz de várias personalidades do
país, até mesmo do prefeito de Auckland, a maior cidade do país”. (
STEVENS , 2005)
Aspectos como vulnerabilidades em equipamentos que utilizam
protocolos para telefonia IP, são ressalvas importantes a serem consideradas, a fim
de impedir o comprometimento da rede e da utilização fraudulenta do serviço. Os
protocolos da pilha TCP/IP, atentam-se a funcionalidade e portabilidade não tendo a
segurança como prioridade.
TCP/IP e a maioria dos seus protocolos não foram desenvolvidos
com a segurança como prioridade. Eles foram projetados para
funcionalidade e portabilidade. (WILLIAN, 2003 apud YOSHIOKA,
2003, tradução nossa).
A maioria dos desenvolvimentos em SIP são focados em
interoperabilidade, com pouca atenção para segurança. Um sistema
SIP é vulnerável aos ataques IP e VoIP, bem como a ataques que
são únicos ao SIP. É fundamental que tal fato seja entendido e que
sejam tomadas as medidas apropriadas de segurança (COLLIER,
2005 , tradução nossa).
Segundo Yoshioka (2003), existem alguns desafios a serem
considerados em relação a segurança em telefonia IP:
a) Confidencialidade: As informações armazenadas e transmitidas
são acessíveis somente aos autorizados.
b) Autenticidade: Assegurar a correta identificação da origem
mensagem.
c) Integridade: Garantir que as mensagens não sejam apagadas ou
alteradas de forma não autorizada.
53
d) Disponibilidade: As informações e serviços devem estar
disponíveis 99,999%(five nines) para os autorizados.
e) Não Repúdio: Garantir que originador e o receptor da mensagem
não possam negar a autoria e recebimento respectivamente.
f) Controle de Acesso: O acesso às informações e recursos devem
ser controlados por autorizados.
Como visto as redes VoIP estão propensas aos mais diversos tipos de
ameaças. Um atacante pode invadir servidores ganhando o acesso à informação
vital de uma organização, ou ainda empregar de forma maliciosa os serviços de
voz, através do acesso não autorizado, beneficiando-se das vulnerabilidades do
sistema. Segundo Dhamankar (2004), falhas existentes nestes sistemas são
definidas da seguinte forma:
a) Vulnerabilidades dos Sistemas Operacionais implementados
nos dispositivos VoIP: Os dispositivos VoIP, tais como: IP
Phones, Call Manager, Gateways, e Proxy Servers, herdam as
mesmas vulnerabilidades dos Sistemas Operacionais ou firmware,
implementados nos mesmos. Estes dispositivos são tipicamente
desenvolvidos com os Sistemas Windows ou Linux, estes com
diversas vulnerabilidades já exploradas. Portanto, não importa o
quão uma aplicação VoIP seja ser segura, se o Sistema
operacional estiver comprometido, seu serviço de telefonia IP
estará em risco.
b) Configuração inadequada dos dispositivos VoIP: Em sua
configuração padrão, muitos dispositivos de VoIP, expõem
diversas portas UDP e TCP. Estas portas podem ser vulneráveis
a ataques do tipo DoS, Buffer overflow,
senhas fracas sejam facilmente capturadas.
e ainda permitir que
54
c) Vulnerabilidades da infra-estrutura IP: O serviço de VoIP
depende diretamente da disponibilidade da infra-estrutura IP em
que este esteja implementado. Utilizando-se dos protocolos UDP
e TCP, como meio de transporte, o serviço de VoIP, está
suscetível as diversas ameaças tais como ataques de DDoS, SYN
flood, que podem gerar indisponibilidade do serviço, ou ainda,
ataques de hijaking no caso do TCP, e a fragmentação maliciosa,
como o ping-da-morte (ping-of-death), no caso do UDP.
d) Vulnerabilidades em implementações de protocolos para
VoIP: Os protocolos escritos para VoIP não tem como prioridade
a segurança, e sim a interoperabilidade. Muitas vulnerabilidades
encontradas em implementações destes protocolos, como o SIP,
são resultado de pesquisas de grupos especializados que
geralmente disponibilizam suas ferramentas para teste das
vulnerabilidades nas implementações dos protocolos.
e) Vulnerabilidades na camada de aplicação VoIP: Nesta camada
existem uma variedade de ataques específicos ao VoIP. Incluído:
•
•
•
•
•
•
Denial of Service (DoS)
Call Hijacking
Resource Exhaustion
Evearsdropping
Message Integrity
Toll Fraud
O protocolo SIP possui os as mesmas vulnerabilidades do protocolo IP
e da camada de aplicação, este fato é explicado por alguns fatores:
Maturidade: as Implementações SIP são relativamente novas.
Codificação: o SIP utiliza mensagens de texto nas suas sinalizações,
que são fáceis de serem lidas, utilizando um sniffer.
55
Extensível: O SIP suporta extensões, que são novas e geralmente
frágeis do ponto de vista da segurança.
O SIP, oferece uma segurança embutida limitada, de acordo com a
RFC 3261, alguns itens classificados como “recomendado”, estão faltando em
algumas implementações. Além disto, o SIP promete interoperabilidade, permitindo
a aquisição de componentes de diversos fornecedores, isto tornar-se um problema,
pois todos os componentes devem suportar os mesmos padrões, caso contrário,
apenas as capacidades comuns serão utilizadas, fato grave do ponto de vista da
segurança. O SIP utiliza o protocolo UDP, para o transporte das mensagens, que é
protocolo não orientado à conexão, e não confiável. Nele não ocorre a
retransmissão dos pacotes, nem a ordenação dos mesmos, facilitando os ataques
de spoofing.
Softwares SIP de alguns fabricantes podem deixar os dispositivos
SIP como: IP Phones, PBX, e clientes instat messaging, vulneráveis
a ataques de DoS. (CERT CORDINATION CENTER 2003 Apud
HOCHMUTH, 2003, tradução nossa).
3.2 Ameaças e Ataques ao SIP
Esta sessão descreve possíveis falhas de segurança em sistemas
baseados no protocolo SIP, bem como ataques que fazem uso destas brechas,
colocando em risco a disponibilidade do serviço.
3.2.1 Registration Hijacking
O ataque de hijacking ou seqüestro é uma forma de se obter o controle
de uma conexão iniciada por um UA legítimo, impedindo o mesmo de fazer uso do
sistema e tomando seu lugar. O registration Hijacking (Seqüestro do Registro)
ocorre quando um atacante falsifica um UA válido para um SIP Register, alterando a
56
inscrição legítima para seu próprio endereço. Assim todas as chamadas são
enviadas para o UA registrado pelo atacante. A figura 35 ilustra uma mensagem de
registro válida, que como explicado anteriormente, é usada para anunciar o ponto
de contato de um usuário. O registro do usuário indica que este está apto a receber
chamadas.
Figura 35 - Mensagem de registro válida
A requisição de REGISTER, possui o cabeçalho Contact:, que indica o
endereço IP do dispositivo do usuário (tanto para um software VoIP, quanto para
um telefone IP). Quando o proxy recebe a requisição de INVITE, ele fará uma busca
para identificar onde o usuário ao qual se destina a chamada se encontra. No caso
da Figura 35, o usuário com o numero 201-853-0102 pode ser encontrado no
endereço IP 192.168.94.70. O proxy irá repassar a requisição de invite para aquele
endereço IP. O cabeçalho da mensagem informa que a porta a ser utilizada é 5061.
57
A Figura 36 mostra uma versão modificada do REGISTER, que pode ser lançada
por um atacante.
Figura 36 - Versão modificada do registro
Nesta requisição, todos os cabeçalhos e os parâmetros mantêm-se
inalterados, exceto os parâmetros no cabeçalho Contact. Este, alterado para o
endereço: 192.168.1.3, apontando para o dispositivo do atacante, por exemplo.
Utilizando ferramentas como o SiVuS, é muito fácil gerar mensagens forjadas, como
demonstrado na figura 37.
58
Figura 37 - Spoofing do registro utilizando o SiVuS
O ataque de Registration Hijacking pode seguir os seguintes passos:
1. Desabilitar o registro legitimo da vitima, que pode ser feito das
seguintes maneiras:
•
Executando um ataque de DoS no dispositivo do alvo.
•
Executando um ataque no Registrar Server, removendo o
registro da vitima.
•
Gerando “disputa” de mensagens de registro, onde o atacante
envia repetidamente mensagens de REGISTER num período
curto de tempo, com isso o atacante tenta sobrescrever o
registro do usuário legítimo.
59
2. Enviar a requisição de REGISTER alterando o endereço IP de
localização do usuário legítimo, para o dispositivo do atacante. A
figura 38 demonstra o fluxo do ataque.
Figura 38 - Ataque de Registration Hijacking
O registro normalmente é feito com a utilização do protocolo UDP,
tornando fácil o spoofing das requisições. Frequentemente a autenticação não é
60
requerida, e se presente, na maioria das vezes é fraca, exigindo apenas um usuário
e uma senha. De acordo com a RFC 3261, os dispositivos de registro SIP, são
recomendados a comprovar a autenticidade das solicitações. Muitos destes
dispositivos ou não fazem, ou simplesmente exigem um nome do usuário e uma
senha, que podem facilmente serem descobertos através de um ataque de
dicionário, onde o atacante possui um dos nomes de usuário e tenta descobrir a
senha através de uma lista de possibilidades baseadas no conhecimento da
corporação. Um atacante externo pode também criar um diretório de usuários,
através de um scanning dos endereços dos UAs. Algumas empresas utilizam
senhas compartilhadas, fracas, ou geradas mecanicamente. Neste caso, um
atacante que aprende uma das senhas, estará apto a aprender todas as outras.
Tentativas falhas de registro, não são armazenadas em arquivos de log, e o proxy
SIP, normalmente, não detecta tentativas de scanning e registration hijacking. O
ataque de registration hijacking, resulta na perda de chamadas ao UA legítimo, que
pode ser um usuário, telefone ou recurso crítico. Além disto, o atacante é capaz de
coletar a autenticação ou outra informação sobre a chave de sinalização, podendo
também realizar o ataque de man-in-the-middle (MITL), onde este posiciona-se de
forma transparente entre o UA chamandor e o UA chamado, possibilitando a coleta
e a modificação tanto da sinalização quanto da mídia. O Registration Hijacking
pode ser lançado tanto contra empresas quanto contra usuários domésticos. Uma
rede doméstica, por exemplo, que utiliza uma rede wireless mal configurada pode
ser comprometida por um atacante, que pode interceptar e encaminhar requisições
de registro. No caso de sucesso no registro, o atacante pode executar diversos
ataques, como chamadas fraudulentas, ou redirecionamento da comunicação, que
podem ser executados também em empresas.
3.2.2 Proxy Impersonation
O ataque de proxy Impersonation ou personificação de proxy, ocorre
quando um atacante engana um dos SIP UAs ou proxy do sistema de comunicação
com um falso proxy. Se o atacante obtiver sucesso no ataque, este terá acesso à
todas as mensagens SIP, e também ao controle total da chamada. A figura 39
ilustra o ataque de proxy impersonation.
61
Figura 39 - Ataque de proxy Impersonation
Os Uas e proxy, normalmente se comunicam utilizando o UDP, sendo
assim, um falso proxy pode, portanto, inserir-se no sistema de sinalização através
de diversos meios, incluindo DNS (Domain Name Service) spoofing, ARP (Address
Resolution Protocol) cache spoofing, ou simplesmente mudando o endereço proxy
para um telefone SIP. Um proxy disfarçado tem o controle total das chamadas e
pode executar os mesmos tipos de ataques descritos no ataque de registration
hijacking. Se o DNS spoofing for usado para redirecionar chamadas de saída para
um domínio particular, todo o curso da comunicação para aquele destino pode ser
interceptado, manipulado, bloqueado, assistido, ou gravado. O ARP cache spoofing
é um ataque contra um switch de rede, que pode enganar um UA comunicando-se
com o falso proxy na rede interna. Se bem sucedido, este ataque faz com que todas
as chamadas originadas do UA, possam ser interceptadas, manipuladas,
bloqueadas, assistidas e gravadas.
62
3.2.3 Eavesdropping (Espionando)
A espionagem em VoIP difere-se da espionagem das redes
tradicionais de dados, porém o conceito segue a mesma linha. O Eavesdropping em
redes VoIP requer a interceptação da sinalização e do respectivo fluxo de mídia da
conversação. As mensagens de sinalização utilizam protocolos como UDP e TCP e
o fluxo da mídia tipicamente são transportadas sobre UDP utilizando o protocolo
RTP. Com o uso de ferramentas como o Ethereal ou Cain & Abel, que são, entre
outras, ferramentas de sniffing de rede, é possível capturar a mídia transportada,
como demonstrado na figura 40.
Figura 40 - Passos para capturar a mídia VoIP com o Ethereal
O ataque de Eavesdropping pode seguir os seguintes passos:
1. Capturar e decodificar os pacotes RTP utilizando um sniffer.
2. Analisar a sessão, extraído a mídia a ser remontada.
63
3. Extrair o arquivo contendo o áudio da conversação capturado.
A utilização de switches que restringem o tráfego de broadcast não
impossibilitam o ataque, pois o ARP Spoofing pode ser utilizado para lançar um
ataque de homem-do-meio permitindo a espionagem. A figura 41 resume o ataque
de ARP Spoofing.
Figura 41 - Ataque de ARP Spoofing
A Figura 42 demonstra a utilização da ferramenta Cain, promovendo a
habilidade de realizar o ataque de homem-do-meio, capturando o tráfego VoIP.
64
Figura 42 - A ferramenta Cain realizando o ataque de homem-do-meio
3.2.4 Message Tampering
O ataque de Message Tampering ou adulteração de mensagens
ocorre quando o atacante intercepta e modifica pacotes trocados entre
componentes SIP. Este ataque pode acontecer através de Registration Hijacking,
Proxy Impersonation, ou ataque a um componente SIP com direitos de processar
mensagens, tais como proxy, media gateway, ou firewall. A figura 43 ilustra o
message tampering.
Figura 43 - Ataque de Message Tampering
As mensagens SIP não têm nenhum meio embutido para assegurar a
integridade. Manipulando estas mensagens, um atacante pode executar os mesmos
tipos de ataques descritos para Registration Hijacking e Proxy Impersonation.
65
3.2.5 Session Tear Down
Session tear down ocorre quando o atacante observa a sinalização da
chamada, e então envia um falso SIP BYE ou um re-INVITE para os UAs
participantes. A maioria dos UAs, não requerem uma forma de autenticação forte, o
que permite ao atacante enviar o SIP “BYE” para encerrar a chamada, ou um reINVITE para altera-la. A figura 44 ilustra o Session Tear Down.
Figura 44 - Ataque de session tear down
Se um UA não confere a validade do pacote, o atacante nem mesmo
necessita de observar a sinalização da chamada. Se o atacante conhece o
endereço de um UA continuamente ativo, como o Media Gateway, ele pode fazer
com que estes UAs ativos enviem as mensagens de do tipo “BYE” causando a
finalização das chamadas. Um outro exemplo de tear down, é praticar um ataque de
flooding no firewall, inundando este com mensagens SIP “BYE”, fazendo com que
sejam derrubadas as portas UDP abertas por chamadas legítimas. O DoS é o efeito
primário do session tear down. O SIP re-INVITE, utilizado para modificar a mídia, se
direcionados a endereços de broadcast pode também causar o DoS.
66
3.2.6 Denial of Service
Denial of Service (DoS), ou Negação de serviço, pode ocorrer por
quaisquer meios descritos nos outros ataques, ou por um ataque de DoS especifico.
Por ser raramente usada uma autenticação forte, componentes SIP podem
processar mensagens de atacantes. Pesquisas demonstraram que muitas
implementações do SIP são altamente vulneráveis a este tipo de ataque. O DoS
pode ser especialmente prejudicial se o alvo for um recurso chave do sistema como
o Media Gateway, podendo, por exemplo gerar um enorme número de chamadas
para serviços de informação, polícia, bombeiros, etc, ou ainda utilizar de uma rede
para lançar ataques a outra empresa.
3.3 Ataques utilizando de Mensagens SIP
Certos ataques à arquitetura SIP podem ser evitados utilizando-se um
esquema de autenticação apropriado. Porém mesmo com a autenticação aplicada,
alguns ataques ainda são possíveis. Nesta sessão serão apresentados ataques a
arquitetura, utilizando mensagens SIP, tanto em ambientes sem autenticação
aplicada, quanto em ambientes que fazem uso da autenticação.
3.3.1 Ataques a sistemas sem a autenticação aplicada
3.3.1.1
Ataque de DoS utilizando mensagens de REGISTER SIP
Dagiuklas (2005) explica que um atacante pode remover o registro de
todos os contatos existentes para uma URI, e registrar-se no lugar dos contatos
válidos, fazendo com que todas as mensagens destinadas a estes usuários sejam
direcionadas ao seu dispositivo. Além disso, é possível lançar um ataque de DoS
67
modificando uma requisição de registro que contenha mais de um endereço de
contato e que utilize valores “q” para classificar a prioridade correspondente a estes
endereços. Se este campo for alterado para o valor 0 (zero), é possível que o
usuário não receba mensagens de SIP INVITE. O mesmo ocorre para o valor do
campo Expire, ilustrado na figura 45, a modificação maliciosa deste valor para 0
(zero), indica a remoção do registro do usuário. Além disso, o atacante pode não
somente modificar os valores “q”, mas também adicionar seu endereço, fazendo
com que este receba todas as mensagens entrantes no sistema.
Figura 45 - Remoção do registro do usuário pelo atacante
3.3.1.2
Ataque de “Re-INVITE”
Uma vez iniciada uma sessão por uma mensagem inicial, mensagens
subseqüentes de requisições podem ser enviadas com o propósito de alterar o
status da sessão. Entretanto, modificações não-autorizadas da sessão através de
re-INVITE forjados por um potencial atacante, podem causar o DoS. A figura 46
ilustra o fluxo do ataque.
68
Figura 46 - Fluxo do Ataque de re-INVITE
3.3.1.3
Ataque de “BYE”
O objetivo do ataque de BYE é encerrar uma sessão já estabelecida.
Para que seja possível a execução deste ataque é necessário que o atacante
conheça os parâmetros da sessão tais como: Session-ID, RTP Port, etc. Para isto, o
atacante realiza um sniffing da rede, ou realiza um ataque de man-in-the-midlle. O
sucesso deste ataque depende da falta de mecanismos de autenticação
apropriados, e é claro, da capacidade do atacante de descobrir os parâmetros da
sessão. A figura 47 ilustra o fluxo do ataque de BYE.
69
Figura 47 - Ataque de BYE
3.3.1.4
Ataque de “UPDATE”
O método de UPDATE SIP proporciona aos usuários finais as diversas
capacidades da sessão, como por exemplo, a identificação dos parâmetros de QoS
e a negociação para outros atributos da sessão. A diferença entre o re-INVITE e o
UPDATE no que diz respeito à negociação da sessão, e que o re-INVITE só pode
ser utilizado após o estabelecimento da sessão, enquanto que o método UPDATE
pode ser lançado antes da resposta para o convite inicial. Utilizando-se destas
funcionalidades, um atacante pode enviar mensagens de UPDATE forjadas para
modificar os parâmetros iniciais da sessão com o intuito de degradar a qualidade do
serviço, impedindo a comunicação entre participantes. A figura 48 ilustra o fluxo do
70
ataque de UPDATE.
Figura 48 - Fluxo do ataque de UPDADE
3.3.2 Ataques a sistemas com a autenticação aplicada (antes da autenticação)
Mesmo com a aplicação de serviços de autenticação, ameaças a
arquitetura não deixam de existir. Ataques como o de parsing, são lançados mesmo
antes da autenticação. Esta sessão descreve alguns ataques deste tipo.
71
3.3.2.1
•
Ataques de “Parser”
Complexidade da análise gramatical SIP
Uma mensagem SIP pode ser tanto uma requisição quanto um
reconhecimento a esta requisição, constituída de campos de cabeçalho e corpo,
baseadas em texto com um grande grau de “liberdade”. Sendo assim, uma analise
gramatical eficiente da mensagem é requerida para avaliar a estrutura da mesma
considerando apenas a informação necessária. Esta análise gramatical é conhecida
como parse. Entretanto, mesmo mensagens SIP válidas podem ser construídas
para impedir sua análise gramatical (parsing). De acordo com Dagiuklas (2005), um
atacante pode criar mensagens longas, com múltiplos cabeçalhos e com um
extenso corpo, pois todas as mensagens permitem a adição do corpo, mesmo que
este não seja necessário. Com isso, além de aumentar o processamento do agente,
as mensagens longas aumentam o tráfego da rede. Outro problema é a inclusão do
mesmo campo de cabeçalho, múltiplas vezes na mesma mensagem, onde estes
estão distribuídos, tornando complexa a análise gramatical. Além disso, alguns
campos de cabeçalho SIP permitem outros tipos de URIs, tal fato também prejudica
o processo de parsing. Mesmo que um analisador gramatical bem aprimorado
pudesse impedir o ataque de parsing, o processamento necessário para tal, poderia
dificultar a execução de outras tarefas, prejudicando o desempenho.
•
Mensagens SIP Mal-Formadas
Por sua codificação ASCII, o SIP torna-se mais atrativo para atacantes
do que seu “concorrente” da ITU o protocolo H.323, este com uma codificação mais
complexa. Atacantes podem fazer uso de qualquer método SIP, incluído suas
extensões para lançar um ataque utilizando mensagens mal formadas. A figura 49
apresenta uma mensagem SIP INVITE bem formada, conforme especificação na
RFC 3261. Porém, devido a erros de implementação, em certos casos, levando em
consideração a complexidade do analisador gramatical SIP, mesmo mensagens
bem formadas podem gerar falhas em servidores. Além de erros de implementação,
72
o atacante tentará diversas combinações de mensagens SIP mal formadas a fim de
descobrir possíveis falhas no sistema SIP da vitima. A figura 50 é uma mensagem
inválida, e não pode ser gerada pelo padrão de sintaxe do protocolo SIP.
Figura 49 - Mensagem SIP INVITE bem formada
73
Figura 50 - Mensagem SIP INVITE mal formada
Na figura 50, falta o REQUEST-URI, que deve seguir o método
INVITE. Segundo Dagiuklas (2005), quaisquer mensagens não conforme com as
especificações do protocolo SIP, podem causar falhas em sistemas que utilizam o
Session Initiation Protocol. E, além disso, é altamente complexa a distinção entre
mensagens legais e ilegais.
•
Montando o Ataque de Mensagens Mal Formadas
Dagiuklas (2005) diz que um atacante não possui um método padrão
para atacar, e de certo modo o procedimento para realizar este ataque é
imprevisível. Isto também, torna-se verdade para os ataques SIP utilizando
mensagens mal formadas. O atacante pode, por exemplo, utilizar o método de
força-bruta
e
tentar
exaustivamente
combinações
de
mensagens
SIP.
Alternativamente este atacante pode seguir procedimentos gerais, executando
passos algorítmicos repetidamente como:
74
1 – Descobrir as capacidades do alvo
2 – Construir a mensagem mal-formada
3 – Testar as possíveis combinações contra o alvo
A vantagem de tal tentativa, é que esta não pode ser facilmente
identificada nas suas primeiras fases, pois normalmente, mecanismos de defesa
não estão preparados para tal.
•
Descobrindo as capacidades do alvo
Antes de lançar o ataque, torna-se necessário descobrir as
capacidades de um sistema SIP particular. Mensagens de REGISTER e respostas
OPTIONS, são capazes de fornecer informações sobre qualquer capacidade de um
User Agent. Esta informação é incluída no cabeçalho Contact do REGISTER e no
cabeçalho Alow das respostas às requisições OPTIONS. Em todo caso, estas
mensagens podem ser utilizadas pelo atacante de duas diferentes formas.Na
primeira, o atacante pode simplesmente realizar um sniffing das requisições de
REGISTER no momento da sua realização. A outra forma, demonstrada no fluxo da
figura 51, é simplesmente utilizar a Mensagem de OPTIONS, enviando-a para
vitima, que em resposta, revela ao atacante as capacidades dos métodos e
mensagens implementadas em seu agente. Estas capacidades reveladas podem
ser, entre outras coisas, o fabricante e a versão implementada no produto da vítima,
expondo as vulnerabilidades existentes.
75
Figura 51 - Descobrindo as capacidades com a requisição OPTIONS
•
Construindo a Mensagem Mal Formada
O próximo passo é a construção da mensagem mal formada, a figura
50 ilustra um exemplo deste tipo de mensagem. A existência de aplicativos para
testes em sistemas SIP como o PROTOS, que é capaz de gerar diferentes tipos de
mensagens mal formadas, torna fácil esta tarefa. Além disso é provável que o
atacante envie mensagens não implementadas (invalidas ou fora do padrão) para
dispositivo da vitima, provocando uma eventual falha crítica. Mensagens de
REGISTER, BYE, CANCEL e outras, também podem ser empregadas no ataque.
3.3.2.2
Ataques de “REGISTER”
Conforme especificação na RFC 3261, a requisição de REGISTER,
pode adicionar ou remover registros de localizações, ou ainda criar associações
entre address-of-record e um ou mais endereços de contato. A figura 52 ilustra um
processo de registro onde o Register Server exige a autenticação para todas as
requisições de registro entrantes. Nesta figura, o usuário primeiramente tenta o
76
registro sem as credenciais, e não é autorizado pelo Register Server. O Servidor
envia ao User Agent uma resposta contendo a mensagem de não autorizado e um
número aleatório, que deve ser usado pelo UA para gerar a credencial.
Posteriormente o User Agent refaz a requisição de REGISTER, porém, com as
devidas credenciais, obtendo sucesso na sua ação.
Figura 52 - Fluxo normal de registro
Dagiuklas (2005), afirma que um atacante que pretende lançar um
ataque a um servidor Registrar, utilizando mensagens de REGISTER, possui uma
ou mais das seguintes metas:
1 – Descobrir a senha de um usuário legitimo.
2 – Causar um DoS no servidor.
3 – Remover o registro de um usuário legitimo.
A figura 53 ilustra o ataque contra um Registrar Server, onde o
atacante tenta adivinhar a senha do usuário legitimo, ou causar o DoS. Igualmente
o atacante pode tentar remover o registro do usuário, para isto basta fixar o valor do
campo Expires para zero. A execução distribuída deste ataque também é possível,
77
onde múltiplos atacantes tentam descobrir a senha do usuário legitimo.
Figura 53 - Ataque contra um Registrar Server
3.3.2.3
Ataques de “CANCEL”
A Requisição de CANCEL, é utilizada para encerrar o processamento
de um pedido prévio enviado por um cliente. Um atacante pode utilizar a mensagem
de CANCEL para interromper o processamento de um pedido INVITE, encaminhado
por um usuário legitimo, como demonstrado na figura 54. O CANCEL encerra
apenas requisições de INVITE, gerando uma mensagem apropriada de erro se for
enviada para o cancelamento de outro tipo de requisição. Além disso, pedidos de
78
cancelamento não são processados caso o INVITE inicial tenha obtido uma
resposta final.
Figura 54 - Ataque de CANCEL
3.3.2.4
Fraudes em Respostas SIP
Diversos tipos de ataque de DoS podem ser lançados se o atacante
utilizar as mensagens de resposta SIP. O atacante pode por exemplo, utilizar estas
mensagens
agindo
como
homem-no-meio
(man-in-the-middle),
ou
ainda
personificar um proxy, causando a negação de serviço às requisições SIP dos user
agents. A figura 55, resume algumas mensagens de erro utilizadas para lançar o
ataque de DoS.
79
Código Descrição
3xx
A resposta pode conter um ou mais campos Contact com endereços
onde o destinatário pode ser encontrado
300
Multiple Choices
301
Moved Permanently
302
Moved Temporarily
4xx
Respostas de falha do servidor
400
Bad Request
401
Unauthorized
403
Forbidden
405
Method Not Allowed
406
Not Acceptable
408
Request Timeout
413
Request Entity Too Large
414
Request-URI Too Long
415
Unsupported Media Type
420
Bad Extension
480
Temporarily Unavailable
404
Not Found
5xx
Falha no Servidor
503
Service Unavailable
504
Server Time-out
505
Version Not Supported
6xx
Falhas Globais
600
Busy Everywhere
606
Not Acceptable
Figura 55 - Códigos de erros comuns
3.3.3 Ataques a sistemas com a autenticação aplicada (após a autenticação)
A infra-estrutura VoIP, baseada no protocolo SIP, provê serviços
similares ao e-mail. Assim, muitos provedores de serviço, podem permitir o livre
registro, sem a checagem de credenciais. Isso facilita a ação dos atacantes, pois
estes podem registrar-se como usuários regulares, permitindo que os ataques
80
possam ser originados de “dentro” do sistema. Outra possibilidade para atacante
inserir-se na base de usuários regulares para realizar ataques, é assumir um SIP
Registrar, ou configurar um ou mais novos servidores, com usuários utilizados
apenas para ataques. A primeira possibilidade torna-se complicada se o Servidor
possuir mecanismos de segurança adicionais, a segunda opção é menos complexa.
Porém, a provedora do serviço, pode bloquear qualquer tipo de origem
desconhecida, assim estas possibilidades seriam descartadas. Mesmo existindo
grandes barreiras para o atacante conseguir uma base de usuários registrada e
lançar o ataque de dentro da rede, este ainda é possível. Estando dentro da rede, o
atacante tem grandes possibilidades de obter sucesso com o ataque.
3.3.3.1
Ataque de Força Bruta
Dentro da estrutura SIP, ataques de Bruta podem ser lançados através
de mensagens com o conteúdo não reconhecido, requisitando uma extensão
exótica ou contendo tipos desconhecidos no corpo da mensagem. A entidade SIP
tem que processar estas mensagens e responder com mensagens de erro,
consumindo os recursos de processamento. O atacante pode também modificar o
valor do campo Route que identifica o host alvo, e então enviar a mensagem forjada
para vários elementos da SIP da rede, na intenção de gerar um DoS flood traffic, ou
negação de serviço por inundação de tráfego. Outro exemplo é o ataque de Relay,
que pode ser lançado criando-se falsos pedidos, onde o IP de origem e o Valor do
campo Via são falsificados, identificando o alvo como real originador da requisição.
E então esta requisição, é enviada para um grande número de elementos da rede
como telefones SIP.
81
3.3.3.2
Unusable Destinations (Destinos Inúteis)
A adição maliciosa de endereços insolúveis ou não correspondentes
em mensagens SIP, forçam o proxy a repassar esta mensagem a um endereço que
não pode ser resolvido. Administradores dos servidores SIP, devem estar atentos
ao impacto das operações do servidor de DNS. As tentativas pelos UACs de
resolverem um grande fluxo de endereços insolúveis podem degradar o
desempenho do servidor, resultando no DoS. O proxy gera requisições continuas ao
DNS, na tentativa de resolver o nome inexistente. Normalmente o atacante produz
grandes quantidades de nomes insolúveis ou falsos INVITES. O objetivo do
atacante é sobrecarregar a rede com mensagens do DNS, provocando sérios
problemas ao serviço VoIP.
3.3.3.3
Ataques de “INVITE”
Dagiuklas (2005) explica que um elemento SIP torna-se mais
vulnerável se este necessitar de manter seu estado por certo período, como é o
caso do processo de INVITE. Um exemplo é quando um UAC precisa retransmitir
um INVITE, caso este não obtenha resposta até no máximo em 32s. Durante este
período, o UAC mantém seu estado de INVITE, necessitando manter este estado
para outros 32s após o encaminhamento das respostas de 3xx e 6xx. A figura 56
demonstra o fluxo de um ataque usando mensagens de INVITE, onde o atacante
constrói as mensagens sem receber nenhuma resposta, realizando um flooding de
INVITE. Como resultado final desta inundação de requisições tem-se o DoS.
82
Figura 56 - flooding de INVITE
83
4 MECANISMOS DE SEGURANÇA
Como a troca das mensagens SIP herdou o modelo de requisição e
resposta do HTTP, todos os mecanismos de segurança disponíveis para o HTTP
podem ser aplicados às sessões SIP. Por outro lado, a utilização de container MIME
dentro das mensagens SIP, sugere o potencial uso de mecanismos de segurança
de e-mail, como PGP ou S/MIME. E é claro, similar ao https: URI, o correspondente
sips: URI tentará construir um túnel seguro na camada de transporte usando TLS. E
não menos importante o IP Security (IPsec), que pode ser usado como mecanismo
de encriptação de toda comunicação baseada em IP na camada de rede. Os
principais mecanismos de segurança destinados ao SIP estão relacionados na
figura 57. Estes mecanismos coincidem com lista de recomendações de segurança
da versão 1 do SIP. Enquanto isto, dois dos métodos: HTTP basic Authentication, e
PGP foram descartados pela versão 2 do Session Initialization Protocol. Segundo a
RFC 3329, é definida uma nova funcionalidade de negociação para mecanismos de
segurança entre um agente usuário SIP e o próximo hop SIP. Esta funcionalidade
complementa outras já existentes para o SIP. São criados 3 novos campos de
cabeçalho SIP: Security-Client, Security-Server e Security Verify; e também definida
uma lista de mecanismos de segurança suportados:
“tls” para TLS
“digest” para http Digest
“ipsec-ike” para IPsec com IKE
“ipsec-man” para IPsec sem IKE.
4.1 HTTP Basic Authentication
HTTP basic authentication requer a transmissão do nome de usuário e
a senha embutida no cabeçalho do pedido HTTP. Incluído nos pedidos SIP, este
nome de usuário pode ser usado por um SIP proxy Server ou um User Agent para
autenticar um cliente SIP ou um "SIP hop", na cadeia de proxy. Sendo a senha um
84
texto puro, que pode ser facilmente capturada por um sniffer, torna-se um risco a
segurança, por isso o uso do HTTP basic authentication foi descartado na versão 2
PKI – Public key infraestructure
(infra-estrutura de chave pública)
Autenticação
PSK – Pre-shared keys
(chaves pre-definidas)
Confidencialidade
Métodos de autenticação:
Integridade dos dados
do SIP (SIPv2).
HTTP 1.0 Basic Authentication
PSK
-
-
HTTP 1.1 Digest Authentication
PSK
٧
٧
Pretty Good Privacy (PGP)
PKI
٧
٧
Secure MIME (S/MIME)
PKI
٧
٧
SIPS URI (TLS)
PKI
٧
٧
IP Security (IPsec)
PKI
٧
٧
Descrição
Desaconselhado
pelo
SIPv2 - insegurança na
transmissão da senha.
Hash da senha baseado
em no método MD5.
Desaconselhado
pelo
SIPv2.
Para encriptação a chave
pública do UA deve ser
conhecida.
Aplicações SIP e proxy
devem usar TLS.
Integração
com
a
aplicação SIP não é
requerida, mas proxies
devem ser confiáveis.
Figura 57 - Principais mecanismos de segurança para o SIP
4.2 HTTP Digest Authentication
O HTTP Digest Authentication corrige as deficiências do HTTP Basic
Authentication, transmitindo um hash MD5 ou SHA-1 da senha secreta e de uma
string aleatória, no lugar onde iria apenas a senha vulnerável. Apesar de este
método garantir a identidade do usuário sem a necessidade da transmissão da
senha pura, o procedimento ainda pode ser vulnerável a ataques de dicionário,
baseados em valores hash interceptados, sendo facilitado se as senhas utilizadas
forem fracas. Outra grande desvantagem, e a falta de um mecanismo para prover a
confidencialidade, e alem disso, esta técnica não garante a integridade das
mensagens SIP. As figuras 58 e 59 mostram como uma requisição SIP INVITE
85
originada do usuário “Alice” é autenticada pelo proxy usando o HTTP Digest
Authentication.
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 160.85.170.139:5060;branch=z9hG4bK4129d28b8904
To: Bob <sip:[email protected]>;tag=3b6c2a3f
From: Alice <sip:[email protected]>;tag=daa21162
Call-ID: [email protected]
CSeq: 1 INVITE
Proxy-Authenticate: Digest algorithm=MD5,
nonce="1058800787",
realm="zhwin.ch"
Content-Length: 0
Figura 58 - Confirmação do INVITE pelo proxy
O primeiro proxy recebe o SIP INVITE de Alice e imediatamente
responde com uma confirmação, mostrada na figura 58. A confirmação contém um
nonce aleatório e define o algoritimo hash a ser utilizado, (geralmente MD5 ou SHA1), bem como o domínio o qual o usuário deve fornecer a autenticação. Assim que
recebe a confirmação, Alice reenvia o INVITE original, porém insere no cabeçalho
da resposta a confirmação, como mostrado na figura 59.
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 160.85.170.139:5060;branch=z9hG4bK4129d28b8904
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=daa21162
Call-ID: [email protected]
CSeq: 2 INVITE
Proxy-Authorization: Digest algorithm=MD5,
nonce="1058800787",
realm="zhwin.ch",
response="142311a910a4d57ba49afdbe5646768c",
uri="sip:[email protected]",
username="alice"
Max-Forwards: 70
Contact: <sip:[email protected]:5060>
Content-Type: application/sdp
Content-Length: 239
Figura 59 - INVITE original com a confirmação
O valor da resposta consiste na compilação MD5 do nome do usuário,
da senha secreta, do valor contido no nonce, do método SIP e do URI requisitado.
Assim a senha clara não é transmitida, mas deve ser conhecida pelo servidor proxy
afim de poder verificar a autenticação.
86
4.3 Pretty Good Privacy (PGP)
O
PGP
pode
ser
potencialmente
usado
para
autenticar
e
opcionalmente, encriptar MIME payloads, contidos nas mensagens SIP. Porém a
versão 2 do SIP desaprova o uso do PGP em favor do S/MIME.
4.4 Secure MIME (S/MIME)
Mensagens SIP carregam estruturas MIME, e padrões MIME incluem
mecanismos para segurança de seu conteúdo, assegurando tanto a integridade
quanto a confidencialidade. O objetivo do S/MIME é a interoperabilidade de
mensagens seguras, obtida pela criptografia e assinatura digital. A segurança é
fornecida apenas no cliente S/MIME, os servidores não precisam ser modificados. O
S/MIME é o resultado da integração de três padrões já estabelecidos:
• MIME - Multi-purpose Internet Mail Extension, especificado na RFC 1521;
• Criptographic Message Syntax Standard (PKCS#7);
• Certification Request Syntax Standard (PKCS#10).
O S/MIME aceita os tipos de conteúdo PKCS#7 listados na Figura 60.
Nota: Todas as funções de criptografia exigem que o cliente/servidor tenham, pelo
menos, um certificado válido.
Tipo de Conteúdo
Dados
Descrição
Conteúdo trabalhado com algum tipo de segurança
Uma mensagem MIME assinada digitalmente, um
Dados Assinados
certificado ou uma informação de revogação (CRL)
Mensagem MIME assinada e criptografada. Requer
Dados Assinados e
acesso a chave pública da entidade de origem
Envelopados
Mensagem MIME criptografada. Requer acesso a
Dados Envelopados
chave pública da entidade de origem
Figura 60 - Tipos de Conteúdo S/MIME
O S/MIME aceita os seguintes algoritmos de criptografia, modos e
tamanhos de chave:
• Triple DES, modo CBC com chave de 168 bits;
• RC2, modo CBC com chave de 128 bits;
87
• DES, modo CBC com chave de 56 bits;
• RC2, modo CBC com chave de 64 bits;
• RC2, modo CBC com chave de 40 bits.
O S/MIME também é compatível com os seguintes algoritmos de hash:
• MD5
• SHA-1
Os retardos introduzidos pelos processos de segurança não são
significativos. Uma mensagem assinada requer apenas que a entidade de origem
tenha um certificado válido. A entidade de destino recebe o certificado da origem
como parte da mensagem e, se implementar o S/MIME, utiliza a chave pública para
reconhecer a assinatura. O certificado é armazenado no receptor para possibilitar a
privacidade (criptografia) das próximas mensagens. O processo de privacidade e
integridade de mensagens obedece aos seguintes passos na entidade de origem:
1. Calcular uma amostra (hash) do conteúdo da mensagem
2. Criptografar o hash com a sua chave privada para criar uma
assinatura digital
3. Criptografar o conteúdo da mensagem e a assinatura digital com uma
chave simétrica randômica
4. Criptografar a chave simétrica com a chave pública da entidade de
destino
5. Remeter o resultado dos passos 3 e 4 usando um meio de transporte
A entidade receptora deve executar os seguintes procedimentos:
1. Receber a mensagem utilizando um meio de transporte tradicional.
2. Decriptar, com a chave simétrica, o conteúdo da mensagem e a
assinatura digital
3. Decriptar o hash recebido usando a chave pública do remetente
4. Validar a assinatura digital calculando o hash da mensagem e
comparando com recebido
88
5. Validar o certificado do remetente
Se a entidade de origem utilizou um certificado incorreto, a mensagem
não pode ser recuperada pelo destino.
4.5 SIPS URI (TLS)
O TLS (Transport Layer Security), definido pela RFC 2246, prove uma
camada de transporte seguro sobre TCP. O uso de URI SIP sobre a forma de
sips:bob.biloxy.com em uma mensagem de INVITE, requer o uso de TLS em todo o
caminho ate o destino. Desde que cada hop possa adicionar informações de rota ao
cabeçalho da mensagem SIP, a proteção TLS deve ser realizada hop-by-hop (em
cada salto) do caminho. O uso do TLS requer o TCP como o protocolo de transporte
(TCP/SIP) e necessita de uma infra-estrutura de chave pública. A figura 61 ilustra a
negociação com um servidor TLS.
Figura 61 - Negociação com servidor TLS
89
4.6 IP Security (IPsec)
O IPsec é um mecanismo de propósito geral que pode ser usado para
proteger mensagens SIP na camada de rede. Devido à exigência de que cada
servidor proxy deve ter acesso de leitura e escrita ao cabeçalho SIP, IPsec ESP
(Encapsulating Security Payload) ou AH (Authentication Header) no modo de
transporte, deve ser aplicado hop-by-hop (em cada salto). O protocolo Internet Key
Exchange (IKE), suporta tanto autenticações baseadas em Pre-Shared Key (PSK)
quanto Public Key (PKI). Pelo fato dos endereços IPs dos SIP UAs serem
principalmente dinâmicos, e levando-se em conta de que o modo principal IKE
neste caso não trabalha com chaves Pre-Shared e o modo agressivo IKE possui
problemas de segurança que possibilitam a ataques como: man-in-the-middle e offline dictionary sobre PSK, a autenticação baseada em chave pública deve ser o
método utilizado, isto significa que o estabelecimento da confiança global no
certificado X.509 torna-se problemático.
4.7 Segurança sobre protocolos de transporte em tempo real
O Fluxo de pacotes multimídia é transportado utilizando o protocolo de
transporte em tempo real RTP (Real Time Transport Protocol) baseado em UDP.
Para que possa haver alguma avaliação em relação à qualidade do fluxo de pacote
recebido, periodicamente é enviado de volta um relatório usando o RTCP (RealTime Control Protocol). Sendo a conexão de áudio e o vídeo em tempo real muito
sensível a atrasos e variações deste atraso (jitter), qualquer algoritmo de
encriptação e autenticação não devem influenciar significativamente estes
parâmetros. Devido a tais restrições, o pré-requisito fundado para transmissões em
tempo real é que esta seja sobre UDP. Apenas dois mecanismos de segurança,
listados na figura 62, estão atualmente disponíveis.
PKI – Public key infraestructure
(infra-estrutura de chave pública)
Autenticação
PSK – Pre-shared keys
(chaves pre-definidas)
Confidencialidade
Métodos de autenticação:
Integridade dos dados
90
Descrição
As
chaves
de
usuários devem ser
Secure RTP (SRTP)
PSK
٧
٧ distribuídas
por
outros meios.
Integração com o SIP
não é requerida, mas
IP Security (IPsec)
PKI
٧
٧ o peer deve ser
confiável.
Figura 62 - Solução para segurança Real-Time Media Streams
4.7.1 Secure RTP (SRTP)
O SRTP (Secure Real-time Transport Protocol), é uma extensão do
RTP, e disponibiliza confidencialidade, autenticação da mensagem e proteção
contra replay de tráfego RTP e RTCP. O uso da criptografia AES cipher, sendo
executada em modo de cifra de fluxo (stream cipher mode), garante uma forte
segurança e não incrementa o tamanho do pacote encriptado. A tag de
autenticação, adiciona 10 bytes para cada pacote RTP/RTCP, mas pode ser
reduzido para 4 bytes, se a banda utilizada para comunicação for estreita.
4.7.2 IP Security (IPsec)
Como uma alternativa, os real-time payloads, podem ser protegidos na
camada de rede pelo IPsec, usando a mesma associação de segurança já
negociada para proteger as mensagens SIP entre os UAs. Uma grande
desvantagem desta técnica é o grande overhead introduzido pela encapsulação
ESP, podendo chegar a 37bytes por pacote IPsec para a encriptação 3DES,
aumentando para 53 bytes se a encriptação for a AES.
91
5 CONCLUSÕES
Este capítulo trata das conclusões obtidas a partir da pesquisa
realizada, e finalmente oferece propostas e sugestões de trabalhos futuros que
transpareceram-se no decorrer do desenvolvimento deste documento.
5.1 Considerações Finais
A pesquisa realizada demonstrou a importância do protocolo SIP no
cenário atual das comunicações mundiais, em especial a sua utilização no serviço
de VoIP, bem como os desafios a serem superados no que diz respeito a segurança
em sistemas que fazem uso do protocolo SIP. Neste trabalho faz-se uma
abordagem
das
vulnerabilidades
existentes
em
implementações
do
SIP,
vulnerabilidades estas, que coloca em risco os sistemas de comunicação baseados
neste protocolo.
Foi demonstrado o funcionamento do SIP, enfatizando o fluxo de
mensagens da sua sinalização, detalhando com exemplos, seus vários métodos de
requisições e respectivas respostas. Alem disso, demonstrou-se a arquitetura SIP, e
o papel desempenhado por cada componente dentro desta arquitetura.
Abordou-se, também, algumas diferenças entre o SIP e o H.323, um
outro protocolo utilizado para sinalização, que aos poucos cede espaço para o
Session Initiation Protocol.
O Capitulo 3 detalha as vulnerabilidades do SIP, falhas que
comprometem a continuidade do negócio, afetando os pilares da segurança. Neste
capítulo é exemplificado alguns dos possíveis ataques a componentes da
arquitetura, e seus resultados.
Por fim, são mencionados alguns métodos utilizados para promover a
segurança no protocolo SIP.
Estima-se um grande investimento e crescimento na convergência
92
para a tecnologia de VoIP, devido as suas grandes vantagens, a principal no que
diz respeito a economia. Porém mais do que a significativa redução dos custos é
interessante discutir a questão da segurança da informação, e assim confirmar a
grande tendência: a maturidade da Voz sobre IP.
Em geral a opção pelo serviço de VoIP, são focadas em fatores
ligados a economia e eficiência, como disponibilidade, latência e QoS,
negligenciando a proteção do sistema.
No centro desta convergência encontra se o protocolo SIP,
responsável por gerir as sessões multimídias, como a de VoIP.O SIP, um protocolo
emergente, de arquitetura simples, aberta, e que aos poucos torna-se maduro o
suficiente para atrair as atenções e afirmar-se como o protocolo padrão das
comunicações mundiais. Porem, por basear-se em redes IP, o SIP herda destas
suas já exploradas vulnerabilidades e também, expõem novas específicas de sua
arquitetura. A divulgação, documentação e estudo destas vulnerabilidades torna-se
importante para evolução dos métodos de segurança aplicados a esta nova
tendência das comunicações.
Enfim, toda nova aplicação exige uma fase cuidadosa de análise de
riscos, qualquer tecnologia adicionada, traz novas vulnerabilidades além dos
benefícios. É essencial tornar a segurança um dos pré-requisitos para as adoção
de qualquer tecnologia, e não fazer da segurança, um empecilho para evolução de
tais avanços.
5.2 Propostas para Trabalhos Futuros
• Implementação e teste de uma tecnologia ou metodologia para garantir a
segurança ou reduzir os riscos de ataques a sistemas que utilizam
sinalizações do protocolo SIP.
• Criação de um documento de implementação de um PBX IP baseado no
software livre ASTERISK.
93
• Implementação de segurança em PBX IP ASTERISK.
• Continuidade do documento produzido, demonstrando novas vulnerabilidades
ataques a arquitetura SIP.
94
6 REFRÊNCIAS BIBLIOGRÁFICAS
CAMARILLO, Gonzalo. SIP Demytified. Finlândia: McGraw-Hill Inc, 2001. 320 p.
CHECK POINT SOFTWARE AND TECHNOLOGIES. Security IP Telephony For The
Enterprise, 2004, 17 p.
CIO REVISTA. Disque VoIP para Vulnerabilidades, 2004. Disponível em:
http://ciomagazine.uol.com.br/revista/2006/01/30/idgnoticia.2006-0130.1195711369/IDGNoticia_view. Acesso em: 23 abr. 2006.
COLCHER, Sergio. et al. VOIP: Voz Sobre IP. 1.ed. Rio de Janeiro: Campus, 2005.
300p.
COOLIER, Mark. Basic Vulnerabilities Issues for SIP Security. San Antonio, Texas,
Secure Logix Corporation, 2005. 9 p. Apostila.
DAGIUKLAS, Tasos. et al. Low Cost Tools for Secure and Highly Available VoIP
Communication Services. SNOCER (2005) 74p.
DAVID, João P.; PEREIRA, Silva G. Voz Sobre IP. Lisboa, Universidade de Lisboa,
2005, 136p.
DHAMANKAR, Rohit. Intrusion Prevention: The Future of VoIP Security. Tipping
Point Technologies (2004), 12p.
HERSENT, Oliver; GURLE, David; PETIT, Jean-Pierre. Telefonia IP:
Comunicação,multimídia baseada em pacotes. São Paulo: Makron Books, 2001. 451
p.
HOCHMUTH, Phil. SIP weakness could expose VoIP gear to attacks, 2003,
Disponível em: http://www.networkworld.com/news/2003/0224sip.html?page=1.
Acesso em: 31 jul. 2006.
JOHNSTON, Alan B. SIP: Understanding the Session Initiation Protocol. 2.ed. s.l.:
Artech House, 2003, 283p.
LAZARINI, Otávio. (2006) SIP Ganhando Força. In ALICE RAMOS.COM, 2006,
Disponível em: http://www.aliceramos.com/view.asp?materia=995. Acesso em: 23
abr. 2006.
STEVENS, David. Ataque hacker de telefonia cresce na Austrália, 2005, Disponível
em:
http://worldtelecom.uol.com.br/AdPortalv5/adCmsDocumentShow.aspx?GUID=EC5A
D31B-1038-4FAC-A356-260F4844F2A3&ChannelID=4. Acesso em:31 jul. 2006.
TAKAKEN, Ari. Ameaças, Vulnerabilidades e Ataques na Voice over IP. In: IP VOICE
MEETING, 2006, Lisboa. : IP VOICE MEETING 2006: Disponível em:
http://www.ipvoice2006.com/. Acesso em: 15 abr. 2006.
95
YOSHIOKA, Sergio. Aspectos de Segurança para Telefonia IP utilizando o Protocolo
SIP. Campinas: UNICAMP, 2003, 75p.
Download

análise das vulnerabilidades e ataques ao protocolo sip