Fundamentos de Segurança em Redes (Parte II): Firewall

Na primeira parte deste artigo, vimos a importância de encararmos a segurança, não apenas como uma camada, uma única solução de segurança, mas sim como um conjunto de camadas que criam uma solução de segurança mais adequada ás necessidades da rede. Entre essas camadas que constitui a solução de segurança vimos a importância do desenho da rede e o saber aplicar diversas técnicas como por exemplo, Subnetting e Switching.

Apesar disto tudo é necessário no entanto recorrer a diversos dispositivos essenciais para a protecção de uma rede e na continuação deste artigo vamos ver brevemente alguns dispositivos e soluções de segurança mais comuns.

Firewall

Esta talvez seja logo a primeira solução que vêm á mente quando falamos em segurança num computador ou numa rede.

Existem duas categorias de firewall: software e hardware.

No caso do software, a firewall é instalada numa máquina preparada para isso e fica localizada entre a rede interna e a rede pública. Um firewall baseado em hardware corre numa appliance que contém um sistema operativo especificamente desenhado para esse tipo de tarefas. Claro que estes últimos têm um melhor desempenho mas são muito mais complexos na sua configuração e não são tão flexíveis.

Mas basicamente podemos dizer que um firewall é um programa ou a combinação de um software com hardware (appliance) que filtra a informação que vem da Internet para dentro da rede ou apenas um PC, ou seja contém regras que especificam o que pode ou não passar em termos de tráfego. Portanto se um pacote é indicado ou marcado pela firewall não passa para dentro da rede interna. É uma boa medida de defesa contra actividades maliciosas o colocar ou implementar uma firewall num ponto de conexão entre a rede interior com o mundo lá fora.

Configuração

A configuração de um firewall assenta em alguns aspectos básicos e que nos dão grande margem de manobra no que toca a criar regras. Algumas das coisas que podemos usar para configurar um firewall são:

Endereços de IP
um endereço IP é algo como 205.45.78.1 e pode ser usado na configuração de um firewall, restringindo ou bloqueando tráfego baseado no endereço IP de origem ou destino;
Protocolos
um protocolo é maneira como por exemplo dois computadores comunicam entre si. Alguns dos protocolos usados nos filtros de uma firewall podem incluir TCP (Transmission Control Protocol), UDP (User Datagram Protocol), ICMP (Internet Control Message Protocol), IP (Internet Protocol), HTTP (Hyper Text Transfer Protocol), SMTP (Simple Mail Transport Protocol), FTP (File Transfer Protocol)e muitos outros protocolos;
Portas
serviços usam portas e certas aplicações utilizam determinadas portas para comunicar entre si. Por isso estas portas podem ser usadas para bloquear determinados serviços e ou aplicações;

Também em alguns casos se pode usar palavras ou frases para filtragem, em que o Firewall com base nessas palavras examina a informação no pacote.

A quando a configuração do firewall poderemos começar por bloquear todo o tipo de tráfego e aos poucos criarmos regras para aquele tráfego que poderá passar. Ter em atenção que é importante colocar filtros ou regras especificas antes dos filtros ou regras gerais, por que se isso não acontecer o filtro geral poderá deixar passar um pacote para depois mais á frente ele ser descartado por um filtro específico.

Outro aspecto importante é implementar um filtro para o tráfego que saí indicando que apenas poderá sair tráfego cujo endereço de origem seja de dentro da rede, é uma boa medida para parar spyware e botnet. Outra medida é usar listas para definir quais as aplicações, endereços de IP são de confiança e quais não são.

De seguida vamos ver alguns tipos de firewall.

Packet filtering firewalls

Redes: camadas OSI

Filtragem de pacotes é um tipo de firewall que trabalha geralmente na Camada 2 (Data Link) e na Camada 3 (Network). Esses filtros baseados em componentes presentes no firewall, examinam os dados que passam para dentro e fora da rede. Os pacotes são comparados com regras já definidas que vão indicar se o pacote poderá passar ou ser descartado. Essas regras podem incluir definições tais como o IP de destino ou de origem, os números das portas usadas e os protocolos como já vimos anteriormente.

A grande vantagem de firewall que fazem filtragem com base nos pacotes é a rapidez a que essa filtragem pode ser feita. É comum usar-se este tipo de dispositivos no perímetro da rede como primeira linha de defesa.

No entanto, apesar de ser uma solução rápida, eficiente e rentável tem como é lógico falhas. Muitos firewall’s de filtragem de pacotes não conseguem detectar spoofed IP ou ARP endereços. Daí o facto de que este tipo de firewall’s serem usados principalmente como forma de prevenir ataques Deniel-of-Service e não contra ataques mais intensos. Além de que outras funcionalidades como por exemplo a autenticação, não pode ser suportado dado que trabalha em camadas mais altas que a do firewall.

Stateful packet filtering

Existe um outro tipo de firewall chamado de stateful packet. A Camada 4 (Transporte) no modelo OSI trabalha usando conexões, recorrendo para isso ao endereço de origem e a porta usada e o endereço de destino e a porta usada, usando por exemplo o protocolo Transmission Control Protocol mais conhecido por TCP.

Como é que a Camada 4 está envolvida com este tipo de Firewall? Bem, um Firewall que use este método de filtragem armazena em tabelas todas as conexões estabelecidas para fora e para dentro. Quando ocorre uma requisição do lado de fora para estabelecer uma conexão, os parâmetros da mesma são verificados nas tabelas e se certas regras forem satisfeitas poderá ocorrer uma “conexão legítima”.

Este tipo de técnica usa como vimos o protocolo TCP e outros métodos de controlo dos dados para filtrar. A informação da conexão é mantida em tabelas que são controladas dinamicamente. Cada conexão é introduzida na tabela e depois de ser validada, os pacotes são encaminhados com base nas regras definidas naquela conexão em particular. Deixem-me dar um exemplo, como sabem existe portas standards para diversas aplicações. Se uma aplicação, vamos supor usa geralmente as portas 0 a 1023 e se por ventura na conexão um dos parâmetros é a porta ser a 2503 será lógico da parte do Firewall bloquear esse acesso.

Acontece no entanto que esta é uma filtragem que já ocorre numa camada mais elevada envolvendo muito mais informação e portanto o desenho e a implementação das regras deve ser quase prefeito. Quando tal não é feito correctamente e são implementadas demasiadas restrições torna-se complicado ou praticamente impossível utilizar a rede e os recursos nela existentes.

Este tipo de filtragem é mais avançada que o Firewall Packet Filtering e também faz um melhor trabalho, mas existe um contra. Qual? Bem, como podemos ver este tipo de firewall utiliza uma arquitectura complexa ao usar tabelas dinâmicas agregadas a outras funcionalidades complexas. Comparando este tipo de firewall com a firewall que utiliza uma filtragem de pacotes, vemos que o Stateful packet filtering carece da robustez e flexibilidade. Além de que influenciam bastante a rapidez com que os pacotes são analisados á medida que vão aumentando as conexões e os pacotes a analisar assim como também as tabelas.

Proxy Firewall

É uma aplicação que geralmente usa mais a Camada 7 (Aplicação) do modelo OSI para correr. Um proxy como é geralmente conhecido é usado como mecanismo de protecção e filtragem entre redes seguras, internas ou privadas e redes públicas. Em termos de autenticação, é bastante bom a utilização de um proxy dado que podemos usar esquemas de autenticação mais avançadas e que podem ser implementadas para fortificar a segurança. Em muitos casos, estes proxies podem ser usados como complementos das firewall principais.

A desvantagem deste tipo de firewall é a rapidez. Não nos esqueçamos que os proxies trabalham em camadas superiores o que envolve trabalharem com muita quantidade de dados e informação que tem de ser processada sacrificando assim alguma velocidade. No entanto, proxies oferecem a melhor opção de segurança a usar.

Desvantagens?!

Sim como vimos em cada um dos casos existem desvantagens e vantagens entre eles. Mas mesmo assim existe algumas desvantagens inerentes ao instalar e usar um firewall. Não basta chegar e instalar um firewall no caso de uma rede complexa, é necessário primeiro fazermos um estudo. Sim o estudo de uma rede, assim como o seu desenho é importante, apesar de muitas vezes ser deixado completamente de lado. É necessário ver qual a arquitectura da rede assim como as vulnerabilidades da mesma e daí fazermos as escolhas certas e qual será o tipo de firewall mais apropriado.

Também não é um sistema infalível dado que poderá ser contornado por atacantes que terão então acesso á rede e logicamente mais fácil acesso aos recursos da mesma. Outra desvantagem é quando a configuração da firewall não é feita correctamente e por vezes aqueles que por direito teriam acesso á rede ficam impedidos disso. Claro que numa rede doméstica estas são situações que não terão o impacto que teriam se fosse uma empresa.

Mais uma vez esta pequena análise prova a importância de não depositarmos a nossa confiança apenas num aplicativo ou numa protecção. No próximo artigo veremos outras maneiras de nos protegermos e que poderão ser implementadas junto com o Firewall.

Publicado na edição 17 (PDF) da Revista PROGRAMAR.