Classificações

Firewalls podem trabalhar de várias maneiras, e por isso existem alguns tipos diferentes de metodologias. Levando em conta o local em que a comunicação acontece, onde ela é interceptada, necessidades específicas do que será protegido, características do SO, estrutura da rede, entre outros fatores, podemos chegar às seguintes classificações:

Filtros de Pacotes

Foi o tipo utilizado nos primeiros métodos de firewall, que surgiram na década de 1980. A filtragem de pacotes é um mecanismo simples e, por isso, relativamente limitado, mas oferece um bom nível de segurança. Funciona da seguinte forma: o firewall analisa as diferentes informações do cabeçalho do pacote, como endereço IP de origem e destino, tamanho, tipo de serviço etc. Feita essa análise, o pacote é liberado ou não de acordo com as regras estabelecidas previamente, e adicionalmente o firewall pode executar alguma outra tarefa, como um registro de acesso em um log.
O padrão TCP/IP (Transmission Control Protocol/Internet Protocol), que é organizado em camadas, é a base da transmissão de dados. A filtragem, em geral, é limitada a duas camadas: a de rede, que é onde ocorrem, por exemplo, o endereçamento dos equipamentos da rede e os processos de roteamento; e a camada de transporte, onde estão protocolos, como o TCP e o UDP, que permitem o tráfego de dados. Portanto, um firewall de filtragem pode ter uma regra que permita todo o tráfego da rede local que utilize uma determinada porta UDP, e também ter uma política que bloqueia qualquer acesso da rede local por meio de uma determinada porta TCP.

Existem dois tipos de filtros:
• Filtragem estática: os dados são bloqueados ou liberados apenas com base nas regras, sem levar em consideração a ligação que um pacote tem com outro. Determinados serviços ou aplicativos podem depender de respostas ou requisições específicas para iniciar e manter a transmissão. Com isso, é possível que os filtros estáticos contenham regras que permitem o tráfego destes serviços, mas ao mesmo tempo bloqueiem as respostas ou requisições necessárias, impedindo a execução da tarefa. Este modelo pode levar a um enfraquecimento da segurança do firewall, já que o administrador pode decidir criar regras menos rígidas para que os serviços funcionem, aumentando o risco de o firewall não filtrar pacotes que deveriam ser bloqueados
• Filtragem dinâmica: surgiu para superar as limitações dos filtros estáticos. Aqui, os filtros levam em conta o contexto em que os pacotes estão inseridos para criar regras adaptadas ao cenário, o que permite que determinados pacotes trafeguem somente quando for necessário e durante um período pré-determinado. Desta forma, caem as chances de respostas de serviços serem barradas. A grande desvantagem deste tipo de firewall é a falta de controle de estado do pacote, o que permite que agentes maliciosos possam produzir pacotes simulados, com um IP falsificado, por exemplo. A filtragem de pacotes não realiza nenhum tipo de decodificação do protocolo ou análise na camada de aplicação.

Firewall de Estados (Stateful Firewall)

Esse tipo de firewall originou-se com o mecanismo de Inspeção de Estados, ou Stateful Firewall, que é considerado por alguns especialistas uma evolução dos filtros dinâmicos. Ele identifica o protocolo dos pacotes transitados e faz uma espécie de comparação entre o que está acontecendo e o que é esperado para acontecer, prevendo respostas legítimas. Para isso, firewalls de inspeção analisam todo o tráfego de dados para encontrar estados, isto é, alguns padrões aceitáveis por suas regras e que, a princípio, devem continuar sendo usados para manter a comunicação. Estas informações são então mantidas pelo firewall e usadas como parâmetro para o tráfego subsequente, para evitar pacotes ilegítimos. Por exemplo, quando um aplicativo inicia um acesso para transferência de arquivos entre um cliente e um servidor: os pacotes de dados iniciais informam quais portas TCP serão usadas para esta tarefa. Se, de repente, o tráfego começar a fluir por uma porta não mencionada inicialmente, o firewall pode então detectar esta ocorrência como uma anormalidade e efetuar o bloqueio. Com o tempo, foram surgindo aperfeiçoamentos ao Stateful Inspection, como o Deep Packet Inspection, ou SMLI (Stateful Multi-Layer Inspection), que consiste na inspeção de todas as 7 camadas do modelo ISO. Esta tecnologia permite que o firewall decodifique o pacote, interpretando o tráfego sob a perspectiva do cliente/servidor, e inclui técnicas específicas de identificação de ataques. Simultaneamente o firewall analisa o tráfego a partir da tabela de estados de conexões legítimas, e compara os pacotes a padrões legítimos de tráfego, para identificar possíveis ataques ou anomalias. Esta combinação permite que novos padrões de tráfegos sejam reconhecidos como serviços e possam ser adicionados rapidamente às regras válidas.

Firewall de aplicação ou Proxy

Com o tempo a tecnologia de stateful firewalls, mesmo recebendo todo o investimento do mercado, passou a mostrar enorme fragilidade a ataques, principalmente com a explosão do comércio eletrônico. A filtragem dos pacotes de rede deixou de ser suficiente. Os ataques passaram a se concentrar nas características (e vulnerabilidades) específicas de cada aplicação. Foi necessário desenvolver um novo método que fosse capaz de analisar as particularidades de cada protocolo e tomar decisões específicas que pudessem evitar ataques maliciosos contra uma rede. O conceito atual de Firewall de Aplicação nasceu principalmente pela exigência de análise em protocolos específicos, como servidores Web e suas conexões de HTTP. Comparando com o modelo tradicional de Firewall, que é orientado a redes de dados, o Firewall de Aplicação é normalmente instalado junto à plataforma da aplicação, atuando como uma espécie de Proxy. Esta tecnologia é capaz de mapear todas as transações que acontecem na camada de aplicação web, além de poder avaliar HTTPS criptografadas que não seriam analisadas por firewalls tradicionais. Como este tipo de firewall tem uma alta carga de avaliação técnica dos métodos disponibilizados por uma aplicação web, é exigido um grande poder computacional, que normalmente implica em alto custo. Além disso, a interceptação das interações de aplicações web com o navegador pode provocar incompatibilidades no padrão de transações, fato que implica complexidade na implementação. O firewall de aplicação ainda é controverso, já que muitos especialistas acreditam que ele gera mais possibilidades de falha do que avanços na proteção, além de considerarem a tecnologia muito recente, carente de amadurecimento.
O firewall de aplicação, ou Proxy de serviços, é um mecanismo de segurança que atua como intermediário entre um computador (ou rede interna) e uma rede externa (geralmente, a internet). Eles costumam ser instalados em servidores potentes, pois precisam lidar com um grande número de solicitações. Firewalls deste tipo são boas opções de segurança, pois não permitem a comunicação direta entre origem e destino do pacote. Neste tipo de firewall, em vez de a rede interna se comunicar diretamente com a internet, há um proxy entre ambas que cria duas conexões: entre a rede e o proxy; e entre o proxy e a internet.

Todo o fluxo de dados precisa passar pelo Proxy. Assim, é possível estabelecer regras para impedir o acesso de determinados endereços externos, ou regras que proíbam a comunicação entre computadores internos e determinados serviços remotos. Este controle também possibilita o uso do Proxy para tarefas complementares: o equipamento pode ser usado para registrar o tráfego de dados em um arquivo de log, guardar conteúdo muito utilizado em uma espécie de cache, exigir autenticação do usuário para a liberação de determinados recursos, etc.
O processo de implementação de um Proxy é complicado, já que, com a quantidade de serviços e protocolos existentes na internet, este tipo de firewall pode não conseguir ou exigir muito trabalho de configuração para bloquear ou autorizar determinados acessos. E para cada novo serviço que aparece, deve ser desenvolvido o agente de Proxy correspondente, o que pode demorar e tornar o cliente vulnerável enquanto o agente específico não é liberado. Ocorre, também, uma perda de desempenho na rede, uma vez que as mensagens precisam ser processadas pelo proxy, gerando atraso.
• Proxy transparente: é uma solução para algumas limitações do proxy tradicional, que exige que determinadas configurações sejam feitas nas ferramentas que utilizam a rede (por exemplo, um navegador de internet) para que a comunicação aconteça sem erros. O problema é, dependendo da aplicação, este trabalho de ajuste pode ser inviável ou custoso. O proxy transparente é uma alternativa para estes casos porque as máquinas que fazem parte da rede não precisam saber de sua existência, dispensando configurações específicas. Todo acesso é feito normalmente do cliente para a rede externa e vice-versa, mas o proxy transparente consegue interceptá-lo e responder adequadamente, como se a comunicação, de fato, fosse direta. Como desvantagens do proxy transparente, podemos citar que um proxy tradicional é capaz de barrar uma atividade maliciosa, como um malware enviando dados de uma máquina para a internet; já o proxy transparente pode não bloquear este tráfego. A explicação é que, para conseguir se comunicar externamente, o malware teria que estar configurado para usar o proxy "normal" e isso geralmente não acontece; no proxy transparente não há esta necessidade de configuração, e então o acesso aconteceria normalmente.

< Regras Conclusão >