Um Framework Seguro para Aplicações Multimídia em Redes

Transcrição

Um Framework Seguro para Aplicações Multimídia em Redes
Um Framework Seguro para Aplicações Multimídia em
Redes Convergentes
Gustavo Passos Tourinho, Roberto Costa Filho, Alexandre Vieira, Jorge Guedes
Silveira, Ricardo Balbinot
PPGEE – FENG – PUCRS - Laboratório GPARC-TI - Avenida Ipiranga, 6681 – Porto
Alegre – RS – Brasil.
{gtourinho, rcosta, atvieira, jguedes, rbalbinot}@gparc.org
Abstract: This paper shows us convergent networks problems when used
together with Firewall / NAT security devices. It also proposes a solution to
this problem with the introduction of new elements on network environment.
Those elements work as a module, so it can be used without configuration’s
need on devices already configured.
Resumo: Este artigo descreve os problemas encontrados nas redes
convergentes com os dispositivos de segurança Firewall / NAT. Também é
proposta uma solução para tal com a introdução de elementos terceiros no
ambiente de rede. Tais elementos são agregados à rede na forma de um único
módulo, não ocasionando necessidade de uma nova configuração nos
dispositivos existentes.
1. Introdução
Com a introdução do conceito de Redes Convergentes [1] nas redes de
computadores atuais, alguns dispositivos necessitaram de alterações no seu modo
funcionamento, devido ao conflito destes com o modo de operação dos aplicativos de
voz e vídeo agregados a este novo conceito. Os dispositivos em questão são, justamente,
os responsáveis pela segurança da rede capaz de assegurar que nenhuma pessoa não
autorizada terá acesso às informações confidenciais. Iremos focar o trabalho em dois
principais, o Firewall e o NAT.
Através da utilização e um módulo seguro, composto por diversas entidades de
rede, é possível resolver o problema das redes convergentes. Aqui será apresentada uma
possível solução para o problema da utilização dos dispositivos de segurança em
harmonia com aplicativos que agregam o conceito de redes convergentes.
2. Trabalhos relacionados acerca da solução
Paulsamy e Chatterjee [2] apresentam três soluções para este problema. A
primeira solução é a utilização de um Proxy para controlar o Firewall / NAT. Nela é
apresentado que a inteligência da aplicação ficará externa aos dispositivos de borda,
sendo encontrada no Proxy, o qual será responsável pelo controle das ações realizadas
pelo Firewall / NAT. Entretanto, é necessário um protocolo capaz de efetuar a
comunicação entre o Proxy e o Firewall / NAT. Esta solução não é descrita.
A segunda solução descrita por [2] seria realizar uma nova configuração no
Firewall / NAT de forma que a sinalização SIP fosse controlada por [3]. O Firewall
deverá possuir três interfaces de rede sendo uma conectada aos agentes SIP, outra
conectada a rede pública (Internet) e a última interface conectada ao Proxy RTP e SIP,
em uma zona desmilitarizada [4]. Esta solução, por sua vez, não permite uma
atualização automática dos dispositivos, de modo que a cada nova versão de software do
Firewall / NAT, uma nova versão do controlador SIP [3] deverá ser desenvolvida.
Uma terceira solução é descrita por [2], que utiliza a TSL [5]. Para iniciar uma
sessão é realizado primeiro uma conexão TSL e então utilizar sempre essa conexão para
transmitir pacotes SIP e até mesmo o tráfego RTP, desta forma o fluxo de dados será
transportado em um túnel passando através do Firewall / NAT.
Reynolds e Ghosal [6] propõem o STEM (Secure Telephony Enabled
Middlebox) como forma de solução para o problema das redes convergentes. Esta idéia
tem como base a utilização de um elemento que controla as ações executadas pelo
Firewall / NAT. O Security Manager [6] é encarregado desta função, sendo auxiliado
pelo Protocol Parser [6] que realiza a inspeção dos pacotes com destino a porta 5060
(SIP). Esta arquitetura utiliza o protocolo TCP, implicando que, além de ser uma
solução proprietária, ainda é dependente do protocolo de transporte.
Kuthan [7] sugere uma maneira similar à [6] de resolver o problema do tráfego
multimídia em redes convergentes. Com a utilização de um Firewall decomposto e um
protocolo de controle, FCP (Firewall Control Protocol), o cliente é capaz de realizar as
ações necessárias para o estabelecimento da comunicação. Todavia, este protocolo não é
padronizado por nenhum órgão.
3. Problemas atuais de tráfego multimídia em Redes Convergentes
Antes de existir uma comunicação multimídia propriamente dita, acontece a fase
de sinalização. Para exemplificar iremos utilizar o protocolo SIP [8] (Session Initiation
Protocol) de forma a estabelecermos uma conexão multimídia.
O SIP utiliza o SDP [9] (Session Description Protocol) no intuito de descrever o
anúncio das sessões multimídias, convite de sessões e outras formas de inicialização
para sessões multimídia. O SDP contém as informações necessárias para o
estabelecimento da conexão, como, IP e porta de origem, tipo de protocolo utilizado,
nome da sessão, entre outras tantas informações. Sendo este protocolo, utilizado para
estabelecer uma conexão, e utilizando o SDP, logo o pacote, além de conter as
informações no cabeçalho, também terá informações extremamente necessárias para a
conexão dentro do conteúdo do pacote, área também conhecida como Payload [10].
Desta forma, se um usuário que está em uma rede privada, dita atrás do NAT,
tentar iniciar uma chamada de voz. O pacote da sinalização SIP, após transpor o
dispositivo NAT, terá somente as informações do cabeçalho alteradas, para ser um
pacote válido na rede pública (Internet). Quando este pacote chegar ao destino, a
aplicação encarregada irá analisar as informações contidas nele. Ao analisar os dados do
SIP ela irá então responder para a origem com base nessas informações. Conforme a
figura 1, o destino irá responder para a máquina com endereço IP 200.17.45.19, valor
adquirido do campo received do pacote e porta 7890, informação adquirida da mesma
forma. Entretanto, o mapeamento feito pelo NAT para a máquina que originou o pacote
(192.168.0.1) é para a porta 8000, informação alterada no cabeçalho do pacote que irá
transpor o dispositivo de rede. Logo, a resposta ao chegar ao NAT será descartada, pois
é esperada uma resposta na porta 8000 e não em uma porta desconhecida, ou não
mapeada, pelo NAT, no caso a 7890, causando assim a falha na sinalização SIP.
Abaixo, a figura 1 ilustra melhor o problema do NAT.
Figura 1. O Problema do NAT
O segundo problema encontrado pelos aplicativos multimídia em redes
convergentes diz respeito ao funcionamento do Middlebox Firewall.
A configuração de um Middlebox Firewall parte do princípio de que todos os
serviços devem ser negados, em outras palavras, que todos os pacotes que chegarem à
rede devem ser descartados. Após isso, é definido um conjunto de políticas de regras
que possibilitam a transposição dos pacotes endereçados às portas de serviços bem
conhecidas, como, a porta 80 para servidor Web, porta 21 para servidor de transferência
de arquivos FTP, entre outras tantas.
O problema em relação ao tráfego multimídia é justamente na definição das
regras para os pacotes que chegam à rede. O RTP (Real-Time Protocol) e RTCP (RealTime Control Protocol) [11] utilizam uma faixa aleatória de portas para a comunicação,
e a permissão para transposição de tal faixa, nas regras do Middlebox Firewall, iria
comprometer seriamente a segurança da rede.
Em outras palavras, supondo que um usuário externo A deseja iniciar uma
comunicação de voz com um usuário B, localizado em uma rede privada. Supondo
também que a fase de sinalização tenha sido completada sem problemas. Ao iniciar o
tráfego multimídia, partindo do usuário A, em direção ao usuário B, estes dados
passarão por um dispositivo que filtrará os pacotes e irá compará-los com sua tabela de
políticas regras.
O tráfego multimídia irá usar uma porta escolhida aleatoriamente e o Middlebox
Firewall possui em sua tabela de regras, somente, a descrição das portas dos serviços
bem conhecidos. Logo, o Middlebox ao analisar a porta destino do pacote que chega à
rede e compará-la a sua tabela irá descartar o pacote, pois a faixa aleatória de portas não
deverá estar explicitada nas regras, causando assim falha na comunicação.
4. A Proposta para o Módulo Seguro
A proposta que incentivou o desenvolvimento desde módulo seguro foi devido à
necessidade de solução para o problema de Firewall/NAT em redes convergentes. O
objetivo principal deste trabalho é a implementação de um protótipo capaz de solucionar
os problemas mostrados anteriormente.
O objetivo secundário deste trabalho visa suprir a carência de soluções baseadas
em software livre. A necessidade de sistemas abertos para o problema das redes
convergentes levou o trabalho a ser baseado nesta filosofia.
É possível destacar também a necessidade do laboratório GPARC-TI, que
realiza pesquisa voltada para este tipo de rede emergente. Desta forma, os
conhecimentos adquiridos no estudo do Framework, serão utilizados em propósitos
próprios.
A proposta apresentada neste trabalho utiliza entidades externas para controlar
os dispositivos Firewall / NAT. Entretanto, além dessas entidades, também existirão
outras que irão fazer a comunicação entre as máquinas que executam a aplicação e as
entidades que controlam o Firewall / NAT.
O Framework, então, é composta por três tipos de entidades, os agentes, a
entidade encarregada das operações ALG e a entidade lógica PDP. Além destes tipos,
ainda existe o protocolo de comunicação utilizada.
A utilização de agentes MIDCOM permite que a inteligência necessária para
executar as operações nos dispositivos Firewall/NAT, fique externa. Desta forma, esses
elementos não precisam alocar seus recursos computacionais para tais tarefas,
realizando somente o que é desejado que eles façam, como por exemplo, filtrar pacotes
e realizar a tradução dos endereços. Os agentes geralmente são combinados com os
ALGs, de forma a realizar as operações necessárias para a transposição do fluxo
multimídia pelo Middlebox.
A entidade ALG fica responsável por toda a comunicação referente à
transposição do tráfego pelo Middlebox. Por exemplo, um usuário necessita que o
Firewall permita o fluxo de dados na porta X. A função do ALG é inserir as regras
necessárias para essa operação, permitindo assim, um pinhole [12] no Firewall. O
pinhole é a operação de definir, dinamicamente, nas regras do Firewall que um
determinado fluxo irá transpor o Middlebox em uma porta específica, no exemplo a
porta X.
A última entidade é a PDP. Essa entidade será responsável pelo gerenciamento
de acesso ao Middlebox. Sua presença no módulo é necessária para que seja possível
definir níveis de acesso ao elemento, assim como, definir quais agentes tem permissão
de conectar no Firewall / NAT. Além disso, o PDP também desempenha uma função de
segurança para o Middlebox, pois ele é responsável pela autenticação da conexão entre
o dispositivo e o agente MIDCOM.
Cada novo agente que for incorporado ao módulo deve realizar o registro no
PDP, para que desta forma possa conectar-se ao Middlebox.
Por fim, é necessário o desenvolvimento de um protocolo para realizar a
comunicação entre todas essas entidades. O protocolo MIDOM permite que se
exteriorizem as entidades do Middlebox, possibilitando assim, que o módulo seguro
proposto seja acoplado a um ambiente de rede e funcione sem a necessidade de
configurações extras.
5. Funcionamento do Módulo
A comunicação feita entre as entidades que compõem o módulo é feita com o
protocolo MIDCOM, como dito anteriormente, a utilização deste permite que o
processamento das informações seja feito externo ao Middlebox.
As entidades ALGs são as responsáveis no auxílio ao Middlebox. No caso de
um NAT, a entidade ALG irá tratar o pacote de forma que este possa transpor o
dispositivo sem problemas.
No desenvolvimento dessas entidades serão utilizadas as bibliotecas libpcap [13]
e libnet [14]. Essas bibliotecas são utilizadas para a manipulação das informações
contidas nos pacotes.
A alteração das informações dos pacotes é uma solução necessária para o
problema referente ao NAT, logo, iremos utilizar as bibliotecas de forma a capturar os
pacotes que estão passando pelo ALG, examinar o conteúdo, realizar alguma
comunicação com o Middlebox, se necessário, para receber informações, alterar os
campos devidos e injetar o pacote na rede de modo a ser encaminhado até o destino.
Para solucionar o problema relativo ao Firewall, o ALG irá proceder de forma
similar. O pacote é capturado e, então, analisado. Após obter as informações necessárias
para a comunicação multimídia, o ALG realização as alterações devidas nas regras de
filtragem do Firewall, permitindo assim que os dados multimídia possam transpor o
Middlebox sem problemas.
Quando uma conexão for finalizada, o processo reverso deve ser feito no
Middlebox. Para o caso do Firewall, o pinhole feito anteriormente deve ser fechado, de
forma que a segurança da rede volte ao estado inicial.
Os agentes MIDCOM são os responsáveis pela comunicação entre dois pontos
que compõem o Framework. Ou seja, a comunicação é feita entre eles no auxílio ao
Middlebox, para permitir a transposição do tráfego. Os agentes possuem o
conhecimento necessário para realizar essa tarefa e, auxiliado pelo ALG, efetua as
operações necessárias no Middlebox para que a solução do problema de tráfego
multimídia seja possível.
Cada fez que um agente inicia uma conexão com o Middlebox, o PDP realiza
sua função de gerenciador. Quando o PDP detecta esse inicio de conexão, ele verifica
em seu repositório de políticas se o agente em questão tem permissão de conectar no
Middlebox. Caso exista essa condição, o PDP executa a validação para a tarefa que o
agente deseja executadar no Middlebox. Tendo permissão, o Firewall / NAT executa a
função especificada pelo agente, caso contrário, o PDP pode informar à ele que termine
a conexão com o agente em questão.
A figura 2 ilustra o framework composto por estas entidades e suas
comunicações descritas acima.
Figura 2. Comunicação entre entidades
Para garantir um nível ainda maior de segurança, a utilização do conceito de
DMZ em conjunto com o módulo é uma alternativa sólida devido aos benefícios que
esse conceito traz. A figura 3 ilustra as ações realizadas para que uma comunicação
multimídia possa transpor os mecanismos de segurança de uma rede que utiliza DMZ.
Figura 3. Framework em funcionamento
1 - Um usuário externo A deseja realizar uma chamada de voz para um usuário
B que está localizado dentro de uma rede privada. Ele envia um pacote INVITE. Este
pacote possui a porta de destino 5060 (SIP). Ao chegar no Middlebox, este deve estar
devidamente configurado para aceitar pacotes com porta de destino 5060, será
encaminhado para o Proxy SIP-ALG que irá retornar 100Trying para a origem,
usuário A.
2 – O Proxy informa ao Middlebox que necessita de um mapeamento para a
porta 5060 e recebe uma resposta informando a notificação. Então o Proxy pergunta ao
Middlebox sobre informações que descrevem o fluxo da sessão e recebe a resposta. O
Proxy identifica o endereço IP privado do destino e identifica também as portas UDP do
destino usadas para a transmissão RTP e RTCP (RTP1, RTCP1) no sentido rede privada
rede pública. O Proxy informa ao Middlebox para criar as sessões RTP1 e RTCP2,
associando esta ao fluxo SIP e recebe confirmação. Agora o Proxy informa que o
Middlebox deve realizar o pinhole para permitir que o tráfego com destino a RTP1 e
RTCP1 possa sair da rede, nomeados Eport1 e Eport1+1. Após realizar a operação, o
Middlebox responde ao Proxy que a operação foi concluída. O Proxy transmite um
INVITE ao Middlebox.
3 – O Middlebox redireciona o INVITE até o destino.
4 – O destino envia 180Ringing para origem (Proxy) que por sua vez reenvia
para o usuário externo A.
4 – O destino atende a chamada, enviando 200OK.
5 – Proxy identifica as portas UDP usadas pelo usuário interno para o tráfego
RTP2, RTCP2. Então indica ao Middlebox para criar mapeamento destas portas para o
usuário privado, Pport2 e Pport2+1. Após receber a confirmação do Middlebox, o Proxy
indica que ele deve realizar agora a operação para criar as sessões do tráfego RTP2 e
RTCP2 e associar ao fluxo SIP. Recebe a confirmação do Middlebox e modifica os
parâmetros SDP, na resposta “200 OK”, com as informações indicadas pelo
Middlebox para o tráfego RTP2. Por fim, notifica ao Middlebox a necessidade do
pinhole para permitir que o tráfego com destino a RTP2 e RTCP2 possa entrar na rede.
Proxy recebe confirmação do Middlebox.
6 – Proxy envia 200OK ao usuário A indicando que a fase de sinalização foi
concluída. Usuário externo A envia ACK para o Proxy que redireciona ao usuário
privado B.
7 – É estabelecida a conexão RTP/RTCP ponto a ponto entre os usuários A e B.
Quando um dos participantes desejarem terminar a conexão, o processo reverso
é feito. Os pinholes são fechados e os mapeamentos, realizados pelo NAT, desfeitos.
Mantendo assim a estabilidade e segurança da rede no estado inicial.
6. Validação do Framework
De forma a validar o protótipo do Framework, foram utilizadas diversas
ferramentas para captura de tráfego, permitindo a avaliação do comportamento de cada
pacote.
Com a utilização do ethereal [11], foi possível analisar os dados dos pacotes.
Desta forma, assegurou-se que as entidades que compõem o Framework estavam
modificando, de forma correta, as informações no payload do pacote, bem como foi
possível verificarmos se essas informações estavam criptografadas. Garantindo assim,
que mesmo o pacote sendo capturado por pessoas não autorizadas, estas não terão
acesso às informações. Assegurou-se então, que os dados não serão obtidos de forma
legível, senão pela entidade de destino.
Para validar as operações realizadas pelo Firewall, foi necessário um
monitoramento constante do estado de suas regras, para os pacotes que chegam e saem
da rede, para tal, utilizou-se um software de monitoramento de tráfego chamado
etherape [12].
7. Conclusões
É possível concluir que o estudo realizado permite benefícios para ambos os
meios, acadêmico e comercial, pois esta é uma solução desejada para redes
convergentes, não interessando o ambiente onde este novo conceito se aplica.
Da mesma forma, é possível identificar que os pontos de falha para a segurança
continuam os mesmo, muito embora exista a adição de novos elementos na rede que
compõem o módulo. Para este problema existem os métodos tradicionais de segurança
de redes, como por exemplo, a utilização de IDS (Intrusion Detection System),
HoneyPots, entre outros tantos mecanismos amplamente conhecidos.
A proposta de um módulo dito seguro é justamente de adicionar novos
elementos na rede, que funcionem de forma a solucionar um determinado problema e
não possibilite brechas no sistema previamente implantado.
8. Bibliografia
[1]
DE SERRES, Y. and HEGARTY, L. (2001). "Value-added services in the
converged network", in: Communications Magazine, IEEE
[2]
PAULSAMY, V. and CHATTERJEE, S. (2002) “Network Convergence and the
NAT/Firewall Problems”, in: Proceedings of the 36th Hawaii International Conference
on System Sciences (HICSS’03), IEEE.
[3]
FREDRIK T., BERTIL E. (2000) "SIP Firewall Solution," Internet Draft,
Internet Engineering Task Force, Work in progress. Julho
[4]
SHIMONSKI, R. (2003) “Building DMZs for Enterprise Networks”, in:
Syngress Publishing, Inc., Rockland.
[5]
BLAKE-WILSON, S. (2003) “Transport Layer Security (TLS) Extensions”,
http://www.ietf.org/rfc/rfc3546.txt?number=3546, Abril.
[6]
REYNOLDS, B. e GHOSAL, D. (2002). "STEM: Secure Telephony Enabled
Middlebox", in: Communications Magazine, IEEE
[7]
KUTHAN, J. (2001). "Internet Telephony Traversal across Decomposed
Firewalls and NATs", in: Internet Telephony Workshop 2001 Technical Program
[8]
HANDLEY,
M.
(1999)
“SIP:
Session
http://www.ietf.org/rfc/rfc2543.txt?number=2543, Janeiro.
Initiation
Protocol”,
[9]
HANDLEY,
M.
(1998)
“SDP:
Session
http://www.ietf.org/rfc/rfc2327.txt?number=2327, Janeiro.
Description
Protocol”,
[10] TANENBAUM, A. S. (1997) “Redes de computadores”, in: Rio de Janeiro:
Campus.
[11] SCHULZRINNE, H. (2003) “RTP: A Transport Protocol for Real-Time
Applications”, http://www.ietf.org/rfc/rfc3550.txt?number=3550, Fevereiro.
[13] FUKUYAMA, N. (2003) “Firewall-Friendly VoIP Secure Gateway and VoIP
Se2urity Issues”, http://www.fujitsu.com/downloads/MAG/vol39-2/paper05.pdf, Junho.
[13]
TCPDUMP. (2004) “TCPDump / Libpcap”, http://www.tcpdump.org/, Junho.
[14]
LIBNET. (2004) “Libnet”, http://libnet.sourceforge.net/, Junho.
http://www.ietf.org/rfc/rfc3304.txt?number=3304, Janeiro.

Documentos relacionados