Tecnologias
Como funciona?
- O endereço de IP de origem do pacote -> O endereço do emissor do qual o pacote foi enviado, como 192.168.1.1
- O endereço de destino do pacote -> O endereço para qual o pacote enviado pelo emissor está tentando acessar, como 192.168.2.1
- O tipo de protocolo de rede ou transporte que está sendo usado para a comunicação entre o emissor e o receptor, como TCP, UDP, ou ICMP.
- Algumas vezes as características da camada de transporte em uma sessão de comunicação, como as portas de origem e destino.
Uma das mais básicas característica dos Firewalls é a filtragem de pacotes. Dispositivos antigos que apenas contavam com a tecnologia de filtragem eram essencialmente roteadores que disponibilizavam ferramentas de controle de acesso para os receptores de destino, esse tipo de dispositivo são também conhecidos como Firewalls de Inspeção Estável, porque eles não rastreavam o estado de cada fluxo de tráfego que passava pelo Firewall, isso significa que eles não podiam associar múltiplas requisições de uma única sessão entre si. A Filtragem de pacotes é atualmente o núcleo de todo Firewall, mas existem poucos Firewalls hoje que fazem apenas Filtragem de Pacotes sem Estado. Ao contrário dos filtros mais avançados, os filtros de pacotes não estão preocupados com o conteúdo dos pacotes. Sua funcionalidade de controle de acesso é estabelecida por um conjunto de comportamento que é conhecido como "conjunto de regras". Os recursos de filtragem de pacotes são integrados à maioria dos sistemas operacionais e dispositivos com capacidade de roteamento; o exemplo mais clássico de um dispositivo com filtragem de pacotes puro é um roteador de rede que emprega listas de controle de acesso. Em sua forma mais básica, os firewalls com filtros de pacote operam na camada de rede, através das várias informações contidas em um pacote é possível realizar essa filtragem, isso inclui:
Políticas:
- Políticas Baseadas no Endereço Ip e Protocolos
- Políticas Baseadas em Aplicações
- Políticas Baseadas na Identidade do Usuário
- Políticas Baseadas na Atividade na Rede
As políticas de Firewall determinam as regras que deverão ser aplicadas ao lidar com o trafego para um determinado endereço de IP ou um intervalo de endereços, aplicações, protocolos e o tipo de conteúdo. Contudo antes das regras serem criadas deve-se executar uma análise de risco, que irá determinar o tipo de tráfego necessário para a organização. A análise é baseada em alguns fatores, como avaliação de ameaças, vulnerabilidades e o impacto se os sistemas ou os dados protegidos forem comprometidos. Geralmente os firewalls devem bloquear todo tipo de dado, seja ele chegando ou saindo da rede, que não está explicitamente permitido pelas regras, essa política é conhecida como Negar por Padrão, isso reduz drasticamente a chance de haver ataques e também o volume de dados transportado internamente na rede da organização. Pela variedade natural de servidores, protocolos de rede e aplicações, negar por padrão é mais seguro do que permitir que todo trafego que não está explicitamente proibido passe. Assim como a Internet é dividida em camadas, as políticas de firewall também se aplicam por camadas, são essas
Arquitetura:
- Dual Homed
- É a mais simples, consistindo de um firewall com duas interfaces de rede, uma para própria internet e outra para rede interna. Nela o dual homed host(o firewall) tem total controle da comunicação das duas redes. É uma arquitetura barata e de simples implementação mas que peca por depender de uma única maquina central.
- Screened Subnet(DMZ)
- Também conhecido como De-Militarized Zone, é um modelo onde é criado uma subrede com uma rede interna(contém dados sigilosos geralmente) e uma periférica(contém serviços e dados públicos) onde o contado entre essas duas redes é controlado por um bastion host. Nela temos dois roteadores principais, um externo(conecta a rede periférica com a internet) e um interno(conecta rede interna com a periférica ) onde teremos uma dupla proteção para rede interna vindo do próprio firewal e do bastion host. É uma arquitetura de alta complexidade, porém muito eficiente.
- Screened Host
- É uma arquitetura onde não há uma sub-rede, o que é feito é que temos um screening router que controla o que deve passar pelo firewall, e um bastion host que serve de servidor proxy para rede interna. É uma arquitetura de relativa segurança e fácil implementação.
Quando falamos de arquitetura no contexto de um firewall não estamos falando da arquitetura do hardware em si, mas na verdade, da arquitetura em função da rede, ou seja, onde posicionar o firewall em uma rede. Existem várias formas de se pensar em uma arquitetura de rede de um firewall e algumas delas são:
![Esquema Dual Homed](dualhomed.gif)
![Esquema Screened Subnet](screened1.gif)
![Esquema Screened Host](screened2.gif)
Soluções:
- Packet Filtering Gateway
- Packet Filtering (Filtragem de Pacotes) é uma técnica de firewall usada para controlar o acesso à rede monitorando pacotes de saída e de entrada, permitindo que eles passem ou sejam interrompidos com base nos endereços IP (Internet Protocol) de origem e destino, protocolos e portas. Os firewalls de Camada de Rede definem conjuntos de regras de filtragem de pacotes, que fornecem mecanismos de segurança altamente eficientes. Esse tipo de filtragem também é conhecida como “filtragem estática’. A técnica Packet Filtering é bastante poderosa e relativamente simples. Entretanto, as regras de filtragem são, geralmente, difíceis de configurar e, principalmente, testar, pois é necessário testar cada regra para ver se realmente funcionam.
- Stateful Inspection Firewall
- A Stateful Inspection é um tipo de filtragem de pacotes que ajuda a controlar como os pacotes de daestabeliscido por meio de tecnologias de firewall. A inspeção stateful monitora os pacotes de entrada e saída ao longo do tempo, bem como o estado da conexão, e armazena os dados em tabelas de estado dinâmicas. Esses dados cumulativos são avaliados, de modo que as decisões de filtragem não só seriam baseadas em regras definidas pelo administrador, mas também no contexto que foi criado por conexões anteriores, bem como pacotes anteriores pertencentes à mesma conexão. As entradas são criadas somente para conexões que satisfazem as regras de segurança definidas. Todos os pacotes (para essa sessão) são processados rapidamente porque é simples e rápido determinar se pertencem a uma sessão pré-selecionada existente. Os pacotes associados a essas sessões têm permissão para passar pelo firewall. As sessões que não correspondem a nenhuma política são negadas. Conexões obsoletas são removidas da tabela de estado. Muitos aplicativos, portanto, precisam enviar mensagens Keep Alive periodicamente, a fim de impedir um firewall de descartar a conexão durante períodos de nenhuma atividade de usuário. Dependendo do protocolo de conexão, manter o estado de uma conexão é mais ou menos complexo para o firewall. Por exemplo, TCP é um protocolo onde as conexões são estabelecidas com um handshake de três vias ( "SYN, SYN-ACK, ACK") e terminam com um "FIN, FIN-ACK, ACK". Isso significa que todos os pacotes com "SYN" em seu cabeçalho recebidos pelo firewall são interpretados para abrir novas conexões. Se o serviço solicitado pelo cliente estiver disponível no servidor, ele responderá com um pacote "SYN-ACK" que o firewall também irá rastrear. Uma vez que o Firewall recebe a resposta do cliente "ACK", ele transfere a conexão ao estado "Estabelecido". Isto permite o seguimento de pacotes futuros com a conexão estabelecida. Simultaneamente, o firewall deixa cair todos os pacotes que não são associados com uma conexão existente gravada em sua tabela de estado (ou pacotes "SYN"), impedindo conexões não solicitadas com a máquina protegida. Outros protocolos de conexão, UDP, por exemplo, não são baseados em conexões bi-direcional como TCP, tornando um firewall stateful um pouco menos seguro. Ele só pode rastrear a conexão através de endereços e portas de origem e destino dos pacotes. Esses protocolos sem conexão permitem que uma sessão termine somente pelo tempo limite.
- Application Proxy Gateway
- Os "Application-Proxy Gateways" são serviços adicionais que vem embarcados em firewalls avançados, eles combinam controle de acesso no baixo nível de rede através das funcionalidades de camadas mais altas. Esse tipo de firewall contém um agente de proxy que atua como um intermediário, entre dois hosts que desejam se comunicar um com o outro, nunca permitindo que eles se comuniquem diretamente entre si. Cada conexão bem sucedida resulta na realidade em duas novas conexões separadas - uma entre o cliente e o servidor de proxy, e outra entre o proxy e o verdadeiro destino. Devido a esse tipo de configuração, na qual agentes externos só podem se comunicar diretamente com o servidor de proxy, os endereços IP internos não são visíveis para o mundo externo. O agente proxy interage diretamente com o conjunto de regras do firewall para garantir se uma determinada instância do tráfego de rede deve ter permissão para transitar pelo firewall. Além de agir com um conjunto de regras, alguns agente proxy são capazes de atuar com requisição de autenticação para cada usuário individual da rede. Essa autenticação pode ser através de algumas formas, incluindo identificação do usuário e senha, token de hardware ou software, endereço de origem e biometria. Os agentes proxy são um pouco diferentes das aplicações firewalls, primeiro porque eles podem oferecer uma maior nível de segurança para algumas aplicações, graças a prevenção de conexões diretas entre dois agentes e a capacidade de inspecionar o tipo de conteúdo trafegado para identificar possíveis violações de políticas. Outra potencial vantagem do proxy é a capacidade de decriptar um pacote, examinar e re-encriptar antes de enviar para seu endereço de destino. Firewalls com agentes de proxy podem ter diversas desvantagens quando comparados com Packet Filtering e Stateful Inspection. Primeiro, porque o a tentativa de ter controle sobre todo tipo de pacote que chega faz com que o firewall gaste muito mais tempo lendo e interpretando cada pacote, devido a isso esses tipos de gateways são pouco adequados para aplicações que requerem alta largura de banda ou dados em tempo real.
- Personal Firewall
- Personal Firewall é um software que controla o tráfego de rede de um computador para outro, permitindo ou negando comunicações com base em uma política de segurança estabelecida. Um Personal Firewall irá proteger apenas o computador no qual ele está instalado, ao contrário de um firewall convencional que normalmente é instalado em uma interface entre duas ou mais redes. Assim, os firewalls pessoais permitem que uma política de segurança seja definida para computadores individuais, enquanto um firewall convencional controla a política entre as redes que ele se conecta. Isso é interessante quando há o interesse em conectar-se a uma wi-fi pública, por exemplo. Dessa forma, o proprietário do computador pode definir políticas próprias de segurança.
- NAT
- NAT ou Network Address Translation é um modelo que surgiu(RFC1918) a partir do esgotamento do número de endereços de IP válidos(32 bits) como uma solução temporária para o problema, porém acabou se descobrindo diversas vantagens no mesmo. No NAT, temos uma rede interna onde cada host recebe um IP privado onde o NAT vai fazer o controle dos dados que chegam a rede, ele basicamente vai se passar pelos membros da rede para quem estiver do lado de fora, e vai ser passar por quem está fora para os membros internos, ou seja, ele vai alterando o IP de origem dos pacotes. Para que essa transferência de pacotes com alteração de IP de origem seja feito com sucesso, é necessário que o NAT guarde uma lista dos pacotes a retornar e a qual IP original ele pertence, o que é feito usando o NAT map que é basicamente essa tal lista. Outra coisa que é necessária, é alocar portas dinamicamente para as maquinas da rede, o que feito com o armazenamento temporário das portas relacionadas com cada request. No ponto de vista de segurança, faz todo sentido usar o NAT junto a um firewall, visto que uma das características do NAT, é que ele "esconde" a rede do meio externo(IP masquerading), ou seja, ele complementa a ideia de segurança de um firewall. Um exemplo interessante de combinação de NAT com um firewall é quando falamos de NAT com um application proxy gateway, o que acontece é que o NAT não funciona corretamente com aplicações que usam IPs e números de portas na camada de aplicação(FTP, DNS, SIP,etc). Para que o NAT funcionasse corretamente com essas aplicações, seria necessário traduzir esses 2 itens no conteúdo da camada de aplicação, o que é exatamente uma das coisas que um application proxy gateway pode fazer, tanto que essa é a solução padrão para lidar com essas aplicações.
![Cabeçario do IP](cabip.png)
![Firewall Windowns](windows-firewall.jpg)