Firewall   em Camada de Aplicação


    Firewalls de aplicação costumam ser computadores de uso geral que
rodam programas especiais chamados "proxy servers". Cada aplicação
abilitada na configuração de firewall – SMTP (correio), HTTP (Web),
FTP, Telnet etc. – exige um proxy server específico que
supervisione a porta IP por onde passam os pacotes referentes àquela determinada aplicação. Este tipo de firewall não permite tráfego
direto entre duas redes: toda comunicação requer o estabelecimento de
duas conexões, uma entre o remetente proxy e a outra entre o proxy e o destinatário. O proxy correlaciona a duas comunicações
através do número da sessão TCP (que está presente em todos os
pacotes) e ecoa os dados que vêm da conexão x para a conexão y e
vice-versa. O que é importante é que todo pacote, antes de ser ecoado
de uma conexão para a outra, é analisado pelo proxy server – um
programa para detectar abusos de segurança no protocolo utilizado
naquela porta específica - , que decide se o pacote deve passar ou ser descartado. O resultado é que o firewall de aplicação consegue detectar
riscos que um firewall de rede não teria como perceber, alcançando
um nível de segurança superior.

    Um exemplo clássico do tipo de informação que um proxy pode
filtrar é o comando DEBUG do SMTP, usado para solicitar a
um servidor de correio que forneça certas informações de controle e considerado arriscado pela maior parte dos administradores de rede.
Como não é normal que esse tipo de comando seja emitido durante uma
troca de mensagens de correio, um bom proxy SMTP descartará o pacote
com o comando proibido, mudará o estado do firewall para "ataque em
curso" e enviara uma mensagem (que pode até seguir para um pager
ou telefone celular) para o administrador, prevenindo-o do ocorrido.

    Outro exemplo são proxies FTP, que podem vedar completamente o
acesso de usuários externos ás maquinas da empresa ao mesmo tempo que permite que funcionários copiem arquivos da Internet para a rede
interna (comando GET), mas não o contrário (comando PUT).
Todos esses exemplos estão ligados ao funcionamento dos
protocolos específicos de cada aplicação e não poderiam ser
implementados em firewalls de rede, que não são capazes de examinar o conteúdo dos pacote IP.

    Firwalls de aplicação são bem menos transparentes do que
firewalls de rede. Para começar, toda e qualquer aplicação
exige a existência de um proxy; se o usuário precisa de uma aplicação
para a qual não existe um proxy rodando no firewall, não há o que fazer:
a aplicação simplesmente não funcionará. Em um mundo onde há novas aplicações sendo lançadas todos os dias, este tende a ser um problema considerável, e o resultado é que os fornecedores sempre têm uma
nova versão (esta suporta SSL, a próxima suportará RealAudio, a
seguinte suportará SQL) do firewall.

    Quando é necessário usar uma aplicação para a qual o fornecedor
do firewall não tem (nem terá) um proxy específico, a solução é a
utilização de um proxy genérico. Criar um proxy genérico é simples:
trata-se tão somente de informar ao firewall que quaisquer pacote
trafegando entre as maquinas x (internas) e as maquina y (externas) que
usem a porta z são confiáveis e podem passar. Apesar de tais pacotes
serem roteados sem uma análise cuidadosa (similar ao que faria um
firewall de rede), trata-se de um procedimento razoavelmente seguro,
porque a comunicação não monitorada é duplamente restrita: não apenas
ocorre numa única porta IP, como só envolvem maquinas de confiança
– afinal, se o fornecedor não fosse de confiança não
seria contratado.

    Como não permite comunicação direta entre o cliente e o servidor, o firewall de aplicação é consideravelmente menos transparente que o
firewall de rede. É necessário que o programa cliente saiba que deve estabelecer uma conexão com o proxy e determinar ações como
"conecte-se ao servidor Web do UOL e recupere a página tal para mim".
Quando o cliente sabe isso; como é a maioria dos browsers Web, basta configurá-lo corretamente. Quando os clientes são poucos
sofisticados e exigem conexões diretas com o servidor (como é comum
com FTP e Telnet, por exemplo), utiliza-se um artifício: o usuário
se loga no proxy e este; uma vez solicitado nome e senha (como seria de esperar), solicita o nome do servidor com o qual se
deseja a conexão; a partir daí, tudo funciona normalmente.

    O firewall de aplicação oferece algumas vantagens sobre o firewall de rede. A primeira e mais importante é permitir um acompanhamento
muito mais próximo e efetivo das comunicações entre duas redes,
inclusive com logs e relatórios de auditoria. O fato de o DNS ser
também um proxy server permite que os nomes das maquinas internas
sejam preservados e que um mesmo nome possa identificar duas máquinas diferentes da origem de quem consulta, se um usuário interno ou externo.

Além disso, como toda a comunicação é ricocheteada pelo firewall,
o mundo só precisa saber de um único endereço IP (o da porta externa do firewall), e os verdadeiros endereços das máquinas internas podem ser protegidos, trazendo vários benefícios. Para começar, o simples desconhecimento dos endereços reais reforça a segurança. Melhor ainda é
que isso permite o uso de faixas reservadas de endereços que,
por convenção, não podem ser utilizadas na Internet. Neste caso, é
virtualmente impossível para o cracker enviar pacotes diretamente às máquinas da rede interna. E o uso de endereços protegidos também
possibilita a atribuição de mais endereços do que os concedidos originalmente pelo provedor de acesso.

    Na verdade, a discussão sobre qual é o melhor firewall, se o de rede ou o de aplicação, não procede, porque eles não representam soluções
mutuamente excludentes. Os melhores sistemas de firewall, como
seria de esperar, adotam ambas as abordagens, permitindo a
definição de regras, controles e auditorias nos dois níveis.

       Voltar