Introdução
Mesmo as pessoas menos familiarizadas com a tecnologia sabem que a internet não é
um "território" livre de perigos. É por esta razão que é importante conhecer e utilizar
ferramentas de proteção para computadores e redes. Este texto trata de uma das
opções de segurança mais importantes dos ambientes computacionais: o firewall.
Nas próximas linhas, você entenderá o conceito de firewall, conhecerá os seus tipos
mais comuns e entenderá os motivos que levam estas soluções a serem consideradas
imprescindíveis.
Firewall
Firewall é uma solução de segurança baseada em hardware ou software (mais comum)
que, a partir de um conjunto de regras ou instruções, analisa o tráfego de rede para
determinar quais operações de transmissão ou recepção de dados podem ser
executadas. "Parede de fogo", a tradução literal do nome, já deixa claro que o firewall
se enquadra em uma espécie de barreira de defesa. A sua missão, por assim dizer,
consiste basicamente em bloquear tráfego de dados indesejado e liberar acessos bem-
vindos.
Representação básica de um firewall
Para compreender melhor, você pode imaginar um firewall como sendo uma portaria de
um condomínio: para entrar, é necessário obedecer a determinadas condições, como
se identificar, ser esperado por um morador e não portar qualquer objeto que possa
trazer riscos à segurança; para sair, não se pode levar nada que pertença aos
condôminos sem a devida autorização.
Neste sentido, um firewall pode impedir uma série de ações maliciosas:
um malware que utiliza determinada porta para se instalar em um computador sem o
usuário saber, um programa que envia dados sigilosos para a internet, uma tentativa de
acesso à rede a partir de computadores externos não autorizados, entre outras.
Funcionamento do firewall
Você já sabe que um firewall atua como uma espécie de barreira que verifica quais dados podem
passar ou não. Esta tarefa só pode ser feita mediante o estabelecimento de políticas, isto é, de
regras, como você também já sabe.
Em um modo mais restritivo, um firewall pode ser configurado para bloquear todo e qualquer
tráfego no computador ou na rede. O problema é que esta condição isola este computador ou esta
rede, então pode-se criar uma regra para que, por exemplo, todo aplicativo aguarde autorização
do usuário ou administrador para ter seu acesso liberado. Esta autorização poderá inclusive ser
permanente: uma vez dada, os acessos seguintes serão automaticamente permitidos.
Em um modo mais versátil, um firewall pode ser configurado para permitir automaticamente o
tráfego de determinados tipos de dados, como requisições HTTP (sigla para Hypertext Transfer
Protocol - protocolo usado para acesso a páginas Web), e bloquear outras, como conexões a
serviços de e-mail.
Perceba, como estes exemplos, que as políticas de um firewall são baseadas, inicialmente, em
dois princípios: todo tráfego é bloqueado, exceto o que está explicitamente autorizado; todo
tráfego é permitido, exceto o que está explicitamente bloqueado.
Firewalls mais avançados podem ir além, direcionando determinado tipo de tráfego para sistemas
de segurança internos mais específicos ou oferecendo um reforço extra em procedimentos de
autenticação de usuários, por exemplo.
Tipos de firewall
O trabalho de um firewall pode ser realizado de várias formas. O que define uma metodologia ou
outra são fatores como critérios do desenvolvedor, necessidades específicas do que será
protegido, características do sistema operacional que o mantém, estrutura da rede e assim por
diante. É por isso que podemos encontrar mais de um tipo de firewall. A seguir, os mais
conhecidos.
Filtragem de pacotes (packet filtering)
As primeiras soluções de firewall surgiram na década de 1980 baseando-se em filtragem de
pacotes de dados (packet filtering), uma metodologia mais simples e, por isso, mais limitada,
embora ofereça um nível de segurança significativo.
Para compreender, é importante saber que cada pacote possui um cabeçalho com diversas
informações a seu respeito, como endereço IP de origem, endereço IP do destino, tipo de serviço,
tamanho, entre outros. O Firewall então analisa estas informações de acordo com as regras
estabelecidas para liberar ou não o pacote (seja para sair ou para entrar na máquina/rede),
podendo também executar alguma tarefa relacionada, como registrar o acesso (ou tentativa de)
em um arquivo de log.
Filtragem de pacotes
A transmissão dos dados é feita com base no padrão TCP/IP (Transmission Control
Protocol/Internet Protocol), que é organizado em camadas, como explica este texto sobre
endereços IP. A filtragem normalmente se limita às camadas de rede e de transporte: a primeira é
onde ocorre o endereçamento dos equipamentos que fazem parte da rede e processos de
roteamento, por exemplo; a segunda é onde estão os protocolos que permitem o tráfego de dados,
como o TCP e o UDP (User Datagram Protocol).
Com base nisso, um firewall de filtragem pode ter, por exemplo, uma regra que permita todo o
tráfego da rede local que utilize a porta UDP 123, assim como ter uma política que bloqueia
qualquer acesso da rede local por meio da porta TCP 25.
Filtragens estática e dinâmica
É possível encontrar dois tipos de firewall de filtragem de pacotes. O primeiro utiliza o que é
conhecido como filtros estáticos, enquanto que o segundo é um pouco mais evoluído,
utilizando filtros dinâmicos.
Na filtragem estática, os dados são bloqueados ou liberados meramente com base nas regras, não
importando a ligação que cada pacote tem com outro. A princípio, esta abordagem não é um
problema, mas determinados serviços ou aplicativos podem depender de respostas ou requisições
específicas para iniciar e manter a transmissão. É possível então que os filtros contenham regras
que permitem o tráfego destes serviços, mas ao mesmo tempo bloqueiem as
respostas/requisições necessárias, impedindo a execução da tarefa.
Esta situação é capaz de ocasionar um sério enfraquecimento da segurança, uma vez que um
administrador poderia se ver obrigado a criar regras menos rígidas para evitar que os serviços
sejam impedidos de trabalhar, aumentando os riscos de o firewall não filtrar pacotes que
deveriam ser, de fato, bloqueados.
A filtragem dinâmica surgiu para superar as limitações dos filtros estáticos. Nesta categoria, os
filtros consideram o contexto em que os pacotes estão inseridos para "criar" regras que se
adaptam ao cenário, permitindo que determinados pacotes trafeguem, mas somente quando
necessário e durante o período correspondente. Desta forma, as chances de respostas de serviços
serem barradas, por exemplo, cai consideravelmente.
Firewall de aplicação ou proxy de serviços (proxy services)
O firewall de aplicação, também conhecido como proxy de serviços (proxy services) ou
apenas proxy é uma solução de segurança que atua como intermediário entre um computador ou
uma rede interna e outra rede, externa - normalmente, a internet. Geralmente instalados em
servidores potentes por precisarem lidar com um grande número de solicitações, firewalls deste
tipo são opções interessantes de segurança porque não permitem a comunicação direta entre
origem e destino.
A imagem a seguir ajuda na compreensão do conceito. Perceba que em vez de a rede interna se
comunicar diretamente com a internet, há um equipamento entre ambos que cria duas conexões:
entre a rede e o proxy; e entre o proxy e a internet. Observe:
Proxy
Perceba que todo o fluxo de dados necessita passar pelo proxy. Desta forma, é possível, por
exemplo, estabelecer regras que impeçam o acesso de determinados endereços externos, assim
como que proíbam a comunicação entre computadores internos e determinados serviços remotos.
Este controle amplo também possibilita o uso do proxy para tarefas complementares: o
equipamento pode registrar o tráfego de dados em um arquivo de log; conteúdo muito utilizado
pode ser guardado em uma espécie de cache (uma página Web muito acessada fica guardada
temporariamente no proxy, fazendo com que não seja necessário requisitá-la no endereço
original a todo instante, por exemplo); determinados recursos podem ser liberados apenas
mediante autenticação do usuário; entre outros.
A implementação de um proxy não é tarefa fácil, haja visto a enorme quantidade de serviços e
protocolos existentes na internet, fazendo com que, dependendo das circunstâncias, este tipo de
firewall não consiga ou exija muito trabalho de configuração para bloquear ou autorizar
determinados acessos.
Proxy transparente
No que diz respeito a limitações, é conveniente mencionar uma solução chamada de proxy
transparente. O proxy "tradicional", não raramente, 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 surge como uma alternativa para estes casos porque as máquinas que fazem
parte da rede não precisam saber de sua existência, dispensando qualquer configuração
específica. 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.
É válido ressaltar que o proxy transparente também tem lá suas desvantagens, por exemplo: um
proxy "normal" é capaz de barrar uma atividade maliciosa, como um malware enviando dados de
uma máquina para a internet; o proxy transparente, por sua vez, pode não bloquear este tráfego.
Não é difícil entender: para conseguir se comunicar externamente, o malware teria que ser
configurado para usar o proxy "normal" e isso geralmente não acontece; no proxy transparente
não há esta limitação, portanto, o acesso aconteceria normalmente.
Inspeção de estados (stateful inspection)
Tido por alguns especialistas no assunto como uma evolução dos filtros dinâmicos, os firewalls
de inspeção de estado (stateful inspection) trabalham fazendo uma espécie de comparação entre
o que está acontecendo e o que é esperado para acontecer.
Para tanto, firewalls de inspeção analisam todo o tráfego de dados para encontrar estados, isto é,
padrões aceitáveis por suas regras e que, a princípio, serão 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 entender melhor, suponha que um aplicativo iniciou 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 tarefas. Se de repente o tráfego começar a fluir por uma porta não
mencionada, o firewall pode então detectar esta ocorrência como uma anormalidade e efetuar o
bloqueio.
Arquitetura dos firewalls
Você certamente percebeu que, a julgar pela variedade de tipos, os firewalls podem ser
implementados de várias formas para atender às mais diversas necessidades. Este aspecto leva a
outra característica importante do assunto: a arquitetura de um firewall.
Quando falamos de arquitetura, nos referimos à forma como o firewall é projetado e
implementado. Há, basicamente, três tipos de arquitetura. Veremos elas a seguir.
Arquitetura Dual-Homed Host
Nesta modalidade, há um computador chamado dual-homed host que fica entre uma rede
interna e a rede externa - normalmente, a internet. O nome se deve ao fato de este host possuir ao
menos duas interfaces de rede, uma para cada "lado".
Perceba que não há outro caminho de comunicação, portanto, todo o tráfego passa por este
firewall, não havendo acesso da rede interna para a rede externa (e vice-versa) diretamente. A
principal vantagem desta abordagem é que há grande controle do tráfego. A desvantagem mais
expressiva, por sua vez, é que qualquer problema com o dual-homed - uma invasão, por exemplo
- pode pôr em risco a segurança da rede ou mesmo paralisar o tráfego. Por esta razão, o seu uso
pode não ser adequado em redes cujo acesso à internet é essencial.
Este tipo de arquitetura é bastante utilizado para firewalls do tipo proxy.
Screened Host
Na arquitetura Screened Host, em vez de haver uma única máquina servindo de intermediadora
entre a rede interna e a rede externa, há duas: uma que faz o papel de roteador (screening router)
e outra chamada de bastion host.
O bastion host atua entre o roteador e a rede interna, não permitindo comunicação direta entre
ambos os lados. Perceba então que se trata de uma camada extra de segurança: a comunicação
ocorre no sentido rede interna - bastion host - screening router - rede externa e vice-versa.
Arquitetura Screened Host
O roteador normalmente trabalha efetuando filtragem de pacotes, sendo os filtros configurados
para redirecionar o tráfego ao bastion host. Este, por sua vez, pode decidir se determinadas
conexões devem ser permitidas ou não, mesmo que tenham passado pelos filtros do roteador.
Sendo o ponto crítico da estrutura, o bastion host precisa ser bem protegido, do contrário,
colocará em risco a segurança da rede interna ou ainda poderá torná-la inacessível.
Screened Subnet
A arquitetura Screened Subnet também conta com a figura do bastion host, mas este fica dentro
de uma área isolada de nome interessante: a DMZ, sigla para Demilitarized Zone- Zona
Desmilitarizada.
A DMZ, por sua vez, fica entre a rede interna e a rede externa. Acontece que, entre a rede interna
e a DMZ há um roteador que normalmente trabalha com filtros de pacotes. Além disso, entre a
DMZ e a rede externa há outro roteador do tipo.
Arquitetura Screened Subnet
Note que esta arquitetura se mostra bastante segura, uma vez que, caso o invasor passe pela
primeiro roteador, terá ainda que lidar com a zona desmilitarizada. Esta inclusive pode ser
configurada de diversas formas, com a implementação de proxies ou com a adição de mais
bastion hosts para lidar com requisições específicas, por exemplo.
O nível segurança e a flexibilidade de configuração fazem da Screened Subnet uma arquitetura
normalmente mais complexa e, consequentemente, mais cara.
Firewalls pessoais
O tópico sobre arquiteturas mostra as opções de configuração de firewalls em redes. Mas, como
você provavelmente sabe, há firewalls mais simples destinados a proteger o seu computador, seja
ele um desktop, um laptop, um tablet, enfim. São os firewalls pessoais (ou domésticos), que
DEVEM ser utilizados por qualquer pessoa.
Felizmente, sistemas operacionais atuais para uso doméstico ou em escritório costumam conter
firewall interno por padrão, como é o caso de distribuições Linux, do Windows 8 ou do Mac OS
X. Além disso, é comum desenvolvedores de antivírus oferecerem outras opções de proteção
junto ao software, entre elas, um firewall.
Mas, para quem procura uma solução mais eficiente e que permita vários tipos de ajustes, é
possível encontrar inúmeras opções, muitas delas gratuitas. Usuários de Windows, por exemplo,
podem contar com o ZoneAlarm, com o Comodo, entre outros.
Independente de qual seja o seu sistema operacional, vale a pena pesquisar por uma opção que
possa atender às suas necessidades.
Firewall de hardware
Já foi mencionado neste texto o fato de um firewall poder ser uma solução de software ou
hardware. Esta informação não está incorreta, mas é necessário um complemento: o hardware
nada mais é do que um equipamento com um software de firewall instalado.
É possível encontrar, por exemplo, roteadores ou equipamentos semelhantes a estes que exercem
a função em questão função. Neste caso, o objetivo normalmente é o de proteger uma rede com
tráfego considerável ou com dados muito importantes.
Um firewall Netgear modelo FVS318
A vantagem de um firewall de hardware é que o equipamento, por ser desenvolvido
especificamente para este fim, é preparado para lidar com grandes volumes de dados e não está
sujeito a vulnerabilidades que eventualmente podem ser encontrados em um servidor
convencional (por conta de uma falha em outro software, por exemplo).
Limitações dos firewalls
Lendo este texto, você já deve ter observado que os firewalls têm lá suas limitações, sendo que
estas variam conforme o tipo de solução e a arquitetura utilizada. De fato, firewalls são recursos
de segurança bastante importantes, mas não são perfeitos em todos os sentidos.
Resumindo este aspecto, podemos mencionar as seguintes limitações:
Um firewall pode oferecer a segurança desejada, mas comprometer o desempenho da rede (ou
mesmo de um computador). Esta situação pode gerar mais gastos para uma ampliação de
infraestrutura capaz de superar o problema;
A verificação de políticas tem que ser revista periodicamente para não prejudicar o
funcionamento de novos serviços;
Novos serviços ou protocolos podem não ser devidamente tratados por proxies já implementados;
Um firewall pode não ser capaz de impedir uma atividade maliciosa que se origina e se destina à
rede interna;
Um firewall pode não ser capaz de identificar uma atividade maliciosa que acontece por descuido
do usuário - quando este acessa um site falso de um banco ao clicar em um link de uma
mensagem de e-mail, por exemplo;
Firewalls precisam ser "vigiados". Malwares ou atacantes experientes podem tentar descobrir ou
explorar brechas de segurança em soluções do tipo;
Um firewall não pode interceptar uma conexão que não passa por ele. Se, por exemplo, um
usuário acessar a internet em seu computador a partir de uma conexão 3G (justamente para burlar
as restrições da rede, talvez), o firewall não conseguirá interferir.
Conclusão
firewalls são soluções importantes de segurança - não é por menos que surgiram na
década de 1980 e são amplamente utilizados até os dias de hoje. Mas, tal como
evidencia o tópico sobre limitações, um firewall não é capaz de proteger totalmente
uma rede ou um computador, razão pela deve ser utilizado em conjunto com outros
recursos, como antivírus, sistemas de detecção de intrusos, VPN (Virtual Private
Network) e assim por diante.
O pensamento que se deve ter é o de que o firewall é parte da segurança, não a
segurança em si, da mesma forma que acontece em um prédio, por exemplo: muros,
portões, câmeras de vigilância e alarmes fazem a segurança de maneira conjunta,
havendo menos eficiência se apenas um ou outro item for utilizado.
Bibliografia
[Link]/rfc/[Link];
[Link]/univercd/cc/td/doc/product/iaabu/centri4/user/[Link];
[Link]/download/204-4/.../-[Link];
[Link]/pub/docs/security/800-10/[Link].