Firewall separando redes LAN e WAN
Uma
firewall (em português:
Parede de fogo) é um dispositivo de uma rede de computadores que tem por objetivo aplicar uma política de segurança a um determinado ponto da rede. O firewall pode ser do tipo filtros de pacotes,
proxy de aplicações, etc. Os firewalls são geralmente associados a redes TCP/IP.
Este dispositivo de segurança existe na forma de
software e de
hardware, a combinação de ambos é chamado tecnicamente de "appliance". A complexidade de instalação depende do tamanho da rede, da política
de segurança, da quantidade de regras que controlam o fluxo de entrada e
saída de informações e do grau de segurança desejado.
História
Os sistemas
firewall nasceram no final dos anos 80, fruto da
necessidade de criar restrição de acesso entre as redes existentes, com
políticas de segurança no conjunto de protocolos TCP/IP.
Nesta época a expansão das redes acadêmicas e militares, que culminou
com a formação da ARPANET e, posteriormente, a Internet e a
popularização dos primeiros computadores tornando-se alvos fáceis para a
incipiente comunidade
hacker.
Casos de invasões de redes e fraudes em sistemas de telefonia começaram a surgir, e foram retratados no filme
Jogos de Guerra ("War Games"), de 1983. Em 1988, administradores de rede identificaram o que se tornou a primeira grande infestação de vírus de computador e que ficou conhecido como Internet Worm. Em menos de 24 horas, o
worm escrito por Robert T. Morris Jr
disseminou-se por todos os sistemas da então existente Internet
(formado exclusivamente por redes governamentais e de ensino),
provocando um verdadeiro "apagão" na rede.
O termo em inglês firewall faz alusão comparativa da função que este
desempenha para evitar o alastramento de acessos nocivos dentro de uma
rede de computadores a uma parede anti-chamas, que evita o alastramento
de incêndios pelos cômodos de uma edificação.
Como um firewall funciona?
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.
Você terá mais detalhes sobre o funcionamento dos
firewalls no tópico a seguir.
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.
Como você pôde observar, 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.