A nossa declaração, que é relevante neste contexto: somos a Geonode e comercializamos proxies de encaminhamento. Um proxy de encaminhamento do tipo que comercializamos não é um produto de segurança e não deve ser adquirido como medida de defesa de rede. Não inspeciona o tráfego em busca de ameaças, não aplica políticas na sua rede e não protege nada. Altera a origem aparente das suas solicitações, o que é útil para a recolha de dados, testes geográficos e para contornar um filtro de rede — e não tem absolutamente nada a ver com segurança. Se está aqui porque está a decidir o que colocar no perímetro da sua rede, a resposta é uma firewall, e este artigo deverá ajudá-lo a compreender por que razão os dois são frequentemente confundidos.
A distinção numa só linha
Uma firewall é um filtro. O tráfego chega, a firewall consulta um conjunto de regras e permite ou rejeita o tráfego. É um portão.
Um proxy é um intermediário. Pede-se algo ao proxy, este vai buscá-lo e devolve-o. É um intermediário.
A razão pela qual estes conceitos são confundidos é que um intermediário está numa posição excelente para ser um portão. Se tudo tem de passar por si, mais vale inspecioná-lo. Assim, as categorias convergiram nos produtos, embora continuem distintas em termos de função.
A distinção que sobrevive à convergência: o objetivo de um firewall é decidir, e o objetivo de um proxy é agir em seu nome. Os produtos que fazem ambas as coisas estão a desempenhar duas funções, e saber qual delas precisa é o objetivo deste artigo.
O que faz um firewall, segundo a definição do NIST
Publicação Especial 800-41 do NIST, Revisão 1 apresenta a definição que vale a pena utilizar:
Os firewalls são dispositivos ou programas que controlam o fluxo de tráfego de rede entre redes ou anfitriões que adotam políticas de segurança diferentes.
Duas partes desta definição são fundamentais. «Controlar o fluxo» — a função consiste em permitir e recusar, não em recolher. E «níveis de segurança diferentes» — um firewall situa-se na fronteira entre zonas com diferentes níveis de confiança. Entre a sua rede e a Internet, entre uma DMZ e os sistemas internos, entre um segmento e outro.
O NIST também faz uma observação que explica grande parte dos últimos vinte anos de desenvolvimento de produtos de segurança:
As ameaças passaram gradualmente de serem mais prevalentes nas camadas inferiores do tráfego de rede para a camada de aplicações, o que reduziu a eficácia geral dos firewalls na prevenção de ameaças transmitidas pelas comunicações de rede.
Essa mudança — dos pacotes para as aplicações — é a razão pela qual os firewalls simples se tornaram insuficientes e pela qual lhes foram adicionadas funcionalidades do tipo proxy.
Três gerações de tecnologia de firewalls
A taxonomia do NIST é a forma mais clara de perceber como os firewalls evoluíram na pilha.
Filtragem de pacotes. A mais antiga e simples. O NIST descreve os primeiros firewalls de filtragem de pacotes como «essencialmente dispositivos de encaminhamento que forneciam funcionalidades de controlo de acesso para endereços de anfitriões e sessões de comunicação», e refere que são «também conhecidos como firewalls de inspeção sem estado», os quais «não mantêm registo do estado de cada fluxo de tráfego». É importante referir que: «os filtros de pacotes não se preocupam com o conteúdo dos pacotes.»
Rápido, económico e que vê apenas endereços e portas. O NIST observa que continua a ser «o núcleo da maioria dos firewalls modernos», mas que «existem poucos firewalls à venda atualmente que se limitem à filtragem de pacotes sem estado».
Inspeção com estado. A melhoria que tornou os firewalls práticos. NIST: «melhora as funções dos filtros de pacotes ao acompanhar o estado das ligações e bloquear pacotes que se desviam do estado esperado», o que é conseguido «através da incorporação de uma maior perceção da camada de transporte». Mantém uma tabela de estado que inclui normalmente «o endereço IP de origem, o endereço IP de destino, os números de porta e informações sobre o estado da ligação».
O efeito prático é que o tráfego de retorno de uma ligação que iniciou é permitido automaticamente, enquanto o tráfego não solicitado não o é. Esse é o comportamento a que a maioria das pessoas se refere quando fala de «firewall».
Firewalls de aplicações. Estes inspecionam o conteúdo. Os exemplos do NIST são concretos: um firewall de aplicações «pode determinar se uma mensagem de e-mail contém um tipo de anexo que a organização não permite», ou detetar «se a mensagem instantânea (IM) está a ser utilizada através da porta 80 (normalmente utilizada para HTTP)». Pode bloquear operações específicas, como o comando FTP «put», filtrar páginas que contenham determinado conteúdo ativo e identificar «sequências inesperadas de comandos».
Esse exemplo de mensagens instantâneas na porta 80 resume todo o argumento a favor de subir na pilha. Um filtro de pacotes vê a porta 80 e pensa em «tráfego web». Só algo que leia o conteúdo sabe que não é assim.
O que faz um proxy
Um proxy interrompe a sua ligação e estabelece a sua própria ligação.
Liga-se ao proxy e solicita um recurso. O proxy liga-se ao destino, recupera o recurso e devolve-o ao utilizador. Existem duas ligações onde se poderia esperar apenas uma, e essa estrutura dá origem a todas as características dos proxies.
O NIST descreve o mecanismo com precisão no contexto dos gateways de proxy de aplicações: cada ligação «resulta na criação de duas ligações separadas — uma entre o cliente e o servidor proxy, e outra entre o servidor proxy e o verdadeiro destino», sendo que o proxy «deve ser transparente para os dois anfitriões — na perspetiva destes, existe uma ligação direta». E a consequência: «Como os anfitriões externos comunicam apenas com o agente proxy, os endereços IP internos não são visíveis para o mundo exterior.»
Duas categorias a distinguir:
Proxies de reencaminhamento atuam em nome dos clientes. Os seus pedidos são enviados através deles, pelo que o destino vê o endereço do proxy em vez do seu. É isto que comercializamos, e abrange a extração de dados da Web, testes geográficos, filtragem de tráfego de saída corporativo e armazenamento em cache. O NIST observa que «a maioria dos servidores proxy atualmente em uso são servidores proxy de saída, sendo os mais comuns os proxies HTTP».
Os proxies reversos atuam em nome dos servidores. As solicitações dos clientes chegam até eles e são reencaminhadas para servidores de back-end; é assim que funcionam o balanceamento de carga, a terminação TLS e as redes de distribuição de conteúdos. Do ponto de vista do cliente, o proxy reverso é o site.
O NIST também faz uma observação sincera sobre o caso dos proxies de entrada, que a maioria das explicações omite: «Nos últimos anos, a utilização de servidores proxy de entrada diminuiu drasticamente», porque «um servidor proxy de entrada tem de imitar as capacidades do servidor real que está a proteger, o que se torna quase impossível quando se protege um servidor com muitas funcionalidades», e o registo e o controlo de acesso que esses proxies proporcionavam «estão agora normalmente integrados nos servidores reais».
Onde se sobrepõem: Gateways de proxy de aplicações
Esta sobreposição constitui uma categoria de produto real e o NIST tem o cuidado de a distinguir de algo com um nome confusamente semelhante:
Os gateways de proxy de aplicações são bastante diferentes dos firewalls de aplicações.
Um gateway de proxy de aplicações é «uma funcionalidade de firewalls avançados que combina o controlo de acesso da camada inferior com a funcionalidade da camada superior», contendo «um agente proxy que atua como intermediário entre dois anfitriões que pretendem comunicar entre si e que nunca permite uma ligação direta entre eles».
As vantagens enumeradas pelo NIST: impedir ligações diretas entre anfitriões, inspecionar o conteúdo para detetar violações de políticas e — em algumas implementações — a «capacidade de descodificar pacotes (por exemplo, cargas úteis protegidas por SSL), examiná-los e recodificá-los antes de os enviar para o anfitrião de destino», com os dados não descodificáveis a serem deixados passar.
As desvantagens são igualmente específicas. Os gateways de proxy de aplicações «tendem a ser limitados em termos de suporte a novas aplicações e protocolos de rede», porque «é necessário um agente proxy individual e específico para cada tipo de tráfego de rede que precise de transitar por uma firewall». Os fornecedores disponibilizam agentes genéricos para colmatar esta lacuna, mas o NIST observa que estes «tendem a anular muitos dos pontos fortes da arquitetura de gateway de proxy de aplicações, uma vez que simplesmente permitem que o tráfego passe em “túnel” através da firewall».
Essa é a verdadeira compensação de toda a categoria: o proxy proporciona uma inspeção profunda, ao custo de ser necessário compreender todos os protocolos que transporta, e a «escotilha de fuga» para os protocolos que não compreende anula esse benefício.
O NIST distingue também os servidores proxy dedicados, que «mantêm o controlo do tráfego por parte do proxy», mas «geralmente têm capacidades de firewall muito mais limitadas», e são «normalmente utilizados para reduzir a carga de trabalho do firewall e realizar filtragem e registo especializados que podem ser difíceis de executar no próprio firewall».
A direção é mais importante do que as pessoas imaginam
Uma fonte frequente de confusão, que vale a pena referir explicitamente.
Os firewalls normalmente controlam ambas as direções, mas são concebidos para proteger o tráfego de entrada. O modelo mental consiste em impedir a entrada de tráfego — embora, na prática, a filtragem de saída seja frequentemente a parte mais valiosa, uma vez que limita o que um host interno comprometido pode aceder.
Os proxies de encaminhamento tratam apenas do tráfego de saída. Protegem o destino, impedindo-o de saber da sua existência, e permitem que uma organização controle e registe o que sai. Não constituem uma defesa contra nada que chegue.
Os proxies reversos tratam apenas do tráfego de entrada. Protegem o servidor de origem ao atuarem como uma camada de proteção à sua frente e são onde se realizam o balanceamento de carga, o armazenamento em cache e a terminação TLS.
Os firewalls de aplicações web situam-se na entrada, à frente dos servidores web. O NIST descreve-os como «firewalls de aplicações especializados... que residem à frente do servidor web», adicionados porque o HTTP «tem sido explorado por atacantes de várias formas». Como ficam à frente dos servidores web em vez de se situarem num limite da rede, o NIST observa que «são frequentemente considerados muito diferentes dos firewalls tradicionais».
A consequência: perguntar «devo usar um proxy ou um firewall» sem especificar a direção é fazer uma pergunta incompleta. Um proxy de saída e um firewall de entrada não competem entre si; nem sequer estão orientados na mesma direção.
Lado a lado
| Firewall | Proxy de encaminhamento | Proxy reverso | |
|---|---|---|---|
| Função principal | Permitir ou recusar tráfego | Obter dados em nome dos clientes | Interface frontal para servidores |
| Direção | Ambas, orientada para a fronteira | De saída | De entrada |
| Modelo de ligação | Deixa passar ou rejeita pacotes | Termina e re-origina | Termina e re-origina |
| Vê o conteúdo? | Depende da geração | Sim, para tráfego não encriptado | Sim, termina o TLS |
| Oculta o endereço do cliente | Não | Sim, do destino | Não |
| Oculta o endereço do servidor | Por vezes, através de NAT | Não | Sim, do cliente |
| Armazenamento em cache | Não | Normalmente | Normalmente |
| Equilíbrio de carga | Não | Não | Sim |
| Objetivo principal | Segurança | Acesso, anonimato, controlo | Desempenho, escalabilidade, proteção |
A linha que responde à maioria das questões práticas é a última. Um firewall existe para impor uma barreira de segurança. Um proxy de reencaminhamento existe para alterar a forma e o local a partir do qual se acede aos recursos. Estes são complementares, e não alternativos.
Precisa de um, do outro ou de ambos?
Todos precisam de uma firewall. Todos os sistemas operativos vêm equipados com uma, todos os routers têm uma, todos os fornecedores de serviços na nuvem disponibilizam grupos de segurança. Isto não é opcional e, em pequena escala, não se trata propriamente de uma decisão de compra — é uma decisão de configuração. Se a sua pergunta é «devo ter um firewall?», a resposta é que já o tem e que precisa de ser configurado.
Precisa de um proxy de encaminhamento se: estiver a recolher dados em grande volume e precisar que os pedidos sejam distribuídos por vários endereços; precisar de aceder a conteúdos específicos de uma região; precisar de aceder a algo que a rede filtra; ou gerir uma organização e precisar de controlar e registar o acesso à Web de saída. Os três primeiros casos são da nossa competência. O quarto caso é normalmente uma funcionalidade de um firewall existente ou de um gateway web seguro, em vez de uma aquisição separada.
Precisa de um proxy reverso se estiver a gerir um serviço web público de qualquer dimensão. O balanceamento de carga, a terminação TLS, o armazenamento em cache e a limitação de taxa fazem todos parte desta arquitetura, que é padrão e não um complemento.
Precisa de um firewall de aplicações web se operar uma aplicação web pública que lide com qualquer tipo de informação sensível. É um produto diferente de um firewall de rede e desempenha uma função diferente; ter um não significa que tenha o outro.
A única combinação que vale a pena assinalar como um erro: adquirir um serviço de proxy direto por motivos de segurança. Este não oferece qualquer segurança. Os proxies residenciais e de centro de dados que nós e outros fornecedores vendemos alteram o endereço de origem dos seus pedidos. Não inspecionam o tráfego, não bloqueiam ameaças, não aplicam políticas nem protegem os terminais. Se um fornecedor sugerir o contrário, trata-se apenas de marketing.
Perguntas frequentes
Um proxy é um firewall?
Não. Um firewall controla o tráfego permitido entre redes com níveis de segurança diferentes. Um proxy efetua pedidos em nome de outra entidade, encerrando uma ligação e estabelecendo outra. Alguns produtos de firewall incluem funcionalidades de proxy — o NIST denomina-os «gateways de proxy de aplicações» — mas as funções são distintas.
Um proxy pode substituir um firewall?
Não. Um proxy de encaminhamento lida com pedidos de saída e não oferece proteção contra o tráfego de entrada, nem aplicação de políticas na sua rede, nem inspeção de ameaças. Mesmo quando um proxy inspeciona o conteúdo, este apenas vê o tráfego encaminhado através dele, enquanto um firewall controla a própria fronteira.
O que é mais seguro, um proxy ou um firewall?
Não são comparáveis nesse aspeto. Um firewall é um controlo de segurança; um proxy de encaminhamento, geralmente, não o é. Os gateways de proxy de aplicações nos firewalls proporcionam uma inspeção robusta porque impedem ligações diretas e podem examinar o conteúdo, mas isso é uma funcionalidade do firewall e não uma propriedade dos proxies em geral.
Em que camada é que cada um opera?
Os firewalls de filtragem de pacotes funcionam na camada de rede, ao nível de endereços e portas. A inspeção com estado acrescenta o reconhecimento da camada de transporte através de uma tabela de estado das ligações. Os firewalls de aplicações e os proxies funcionam na camada de aplicação, onde podem ler o conteúdo dos protocolos. O NIST observa que as ameaças migraram para camadas superiores ao longo do tempo, razão pela qual as abordagens de camadas superiores se tornaram necessárias.
Qual é a diferença entre um proxy direto e um proxy inverso?
Um proxy direto atua em nome dos clientes, pelo que o destino vê o proxy em vez de si. Um proxy reverso atua em nome dos servidores, pelo que os clientes acedem a ele em vez de acederem à origem. Direções opostas, beneficiários opostos e o mesmo mecanismo subjacente de encerrar uma ligação e estabelecer outra.
Preciso tanto de um proxy como de um firewall?
Precisa de um firewall de qualquer forma — já tem vários. Só precisa de um proxy direto para tarefas específicas: recolha de dados em grande volume, testes específicos por região ou controlo organizacional do acesso à Web de saída. Precisa de um proxy inverso se gerir um serviço Web público. Perguntas diferentes com respostas diferentes.
Um proxy oculta o meu endereço IP de toda a gente?
Apenas do destino. O seu ISP continua a ver que se liga ao proxy, o operador do proxy vê ambas as extremidades e tudo aquilo em que inicia sessão identifica-o, independentemente disso. A definição do NIST — segundo a qual os anfitriões externos comunicam apenas com o agente proxy, pelo que os endereços internos não são visíveis para o mundo exterior — é precisa e mais restrita do que «anónimo».
O que é uma firewall de aplicações web?
Uma firewall de aplicações especializada, colocada diretamente à frente de um servidor web para detetar ataques contra o HTTP. O NIST distingue-a das firewalls tradicionais precisamente porque protege um servidor em vez de um limite de rede. É um produto distinto de uma firewall de rede, e ter uma não substitui a outra.
Conclusão
A forma mais clara de entender isto: um firewall decide, um proxy age em seu nome. Tudo o resto decorre desses dois verbos.
A confusão é genuína e não resultante de descuido, porque as categorias convergiram. Um intermediário que termina todas as ligações está na posição ideal para as inspecionar, pelo que os firewalls desenvolveram funcionalidades de proxy, e o gateway de proxy de aplicações do NIST é exatamente esse híbrido — com vantagens reais na profundidade da inspeção e um custo real na necessidade de um agente específico por protocolo.
O que não convergiu foi a finalidade. Um firewall existe para impor uma fronteira entre zonas de diferentes níveis de confiança. Um proxy de reencaminhamento existe para alterar a origem aparente das suas solicitações e para permitir que alguém controle o que sai. Se está a escolher o que colocar no seu perímetro, essa é uma questão de firewall. Se estiver a escolher como aceder ao mundo exterior, isso é uma questão de proxy. As duas só parecem alternativas quando vistas de uma distância suficiente para que a direção do tráfego já não seja visível.
