Curso Livre de Segurança de Sistemas/Tecnologia e Princípios de Segurança de Computadores/Firewalls e sistemas de prevenção de intrusão/Caderno Colaborativo

Fonte: Wikiversidade

Firewalls e sistemas de prevenção de intrusão[editar | editar código-fonte]

Firewalls Um firewall é um dispositivo de segurança da rede que monitora o tráfego de rede de entrada e saída e decide permitir ou bloquear tráfegos específicos de acordo com um conjunto definido de regras de segurança. ou seja, é uma solução de segurança baseada em hardware ou software, assim, 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.

Sistema de Prevenção de Intrusão (IPS) é uma solução de segurança que fornece segurança contra acesso não autorizado e atividades maliciosas no nível da rede. Ao contrário do Sistema de Detecção de Intrusões, que monitora apenas o tráfego de rede, um Sistema de Prevenção de Intrusões também garante proteção contra intrusões que ocorrem na rede. A principal função de um Sistema de Prevenção de Intrusões é analisar todo o tráfego de entrada e saída da rede em busca de atividades suspeitas e executar ações apropriadas instantaneamente para evitar que invasores entrem na rede interna.


Tipos de firewall[editar | editar código-fonte]

Existem vários tipos de firewall, sendo que podem filtrar pacotes positivamente ou negativamente. Os principais tipos são:

  • Filtragem de pacotes

Cada pacote que chega ou sai da rede é submetido a uma filtragem através de várias regras pré estabelecidas. Essas regras geralmente são baseadas no endereço IP de origem e destino, endereços de origem e destino do nível de transporte, IP de protocolo e interface. Após a verificação, o pacote é descartado ou transmitido, dependendo da sua análise.

  • Inspeção com estado

Esse tipo de firewall não leva em conta camadas mais altas da rede, ele apenas tem um exemplo de pacote e usa-o como base.

  • Gateway de nível de aplicação

Também chamado de proxy de aplicação, esse tipo de firewall funciona como um retransmissor de tráfego de nível de aplicação. Através de uma aplicação TCP/IP, o gateway acessa o nome da estação remota, ao qual é respondido com um ID válido e retransmite os dados da aplicação. Caso o gateway não implemente o código de proxy, significa que ele não pode passar pelo firewall.

  • Gateway de nível de circuito

É executado por um gateway de nível de aplicação, a diferença é que não permite conexão TCP end-to-end, mas sim estabelece duas conexões que retransmitem os dados, sendo que é escolhida a conexão que será permitida.

Características dos firewalls[editar | editar código-fonte]

Os firewalls proveem quatro tipos de controles:

  • Controle de serviço: Serve para determinar quais tipos de serviços da Internet podem ser acessados de dentro para fora e de fora para dentro da rede. O firewall pode filtrar tráfego tendo como base o endereço IP, o protocolo ou o número de porta, ele pode prover software proxy que recebe e interpreta cada requisição de serviço antes de passá-la adiante ou pode hospedar o próprio software servidor como serviço Web ou de correio.
  • Controle de direção: Serve para determinar a direção na qual determinadas requisições de serviço podem ser iniciadas e têm permissão de transitar pelo firewall.
  • Controle de usuário: Serve para controlar acesso a um serviço de acordo com o usuário que está tentando acessá-lo. Esse recurso é tipicamente aplicado a usuários que estão dentro do perímetro do firewall (usuários locais). Pode também ser aplicado a tráfego de entrada advindo de usuários externos exigindo alguma forma de tecnologia de autenticação segura.
  • Controle de comportamento: Serve para controlar o modo de utilização de determinados serviços. Ex. o firewall pode filtrar e-mail para eliminar spam ou pode habilitar acesso externo a apenas uma parte das informações em um servidor Web local.

Implantação de firewall[editar | editar código-fonte]

A implantação de firewalls normalmente é feita em sistemas operacionais comuns, como UNIX ou Linux. Também podem ser implementados em um roteador ou switch local.

Estação bastião[editar | editar código-fonte]

É um sistema identificado pelo administrador como um ponto crítico na segurança. Ela serve como plataforma para um gateway em nível de aplicação ou circuito. Esse tipo de estação normalmente possui as seguintes características:

  • O hardware dessa estação executa a versão segura do sistema operacional.
  • Apenas serviços essenciais de rede são instalados (proxy DNS, FTP, HTTP, SMTP).
  • Essa estação pode exigir autenticação extra para que um usuário acesse os serviços de proxy, os quais cada um também pode ter sua própria autenticação.
  • Os proxies são configurados para receber apenas parte dos comandos padrões da aplicação.
  • Os proxies são configurados para liberar acesso a sistemas de estações específicas, limitando os comandos.
  • Cada proxy guarda um log sobre detalhes do tráfego e de cada conexão.
  • Cada módulo proxy é pequeno e por ser mais simples, torna mais fácil a procura por falhas.
  • Os proxies são independentes na estação bastião, portanto se ocorrer problema em um proxy, os outros não são afetados em caso de manutenção.
  • Não são executadas operações de acesso a disco, a não ser pelo arquivo de configuração inicial.
  • Cada proxy é executado como um usuário sem privilégios em diretórios privados.

Firewalls baseados em estação[editar | editar código-fonte]

São módulos de sistemas usados para garantir a segurança individual de uma estação. Esse tipo de firewall é muito comum dentro de um servidor e possui várias vantagens, como:

  • As regras de filtragem podem ser adicionadas com base nas políticas de segurança específicas de cada tipo de aplicação.
  • Ataques internos e externos precisam passar pelo firewall.
  • Podem ser utilizados em conjunto com firewalls autônomos e cada servidor novo na rede pode ser adicionado com seu próprio firewall sem alterar as configurações do firewall da rede.

Firewall pessoal

Controla o tráfego entre um computador pessoal e a Internet e também pode ser implementado em um roteador doméstico. Normalmente são simples se comparados aos firewalls de servidor e autônomos. Esse tipo de firewall é implantado diretamente no sistema operacional do computador do usuário, que pode definir quais serviços podem ter acesso a suas portas, como por exemplo login remoto (SSH - porta 22) e acesso FTP (porta 20-21).

Sistemas de Prevenção de Intrusão[editar | editar código-fonte]

Um produto importante na área de segurança são os sistemas de prevenção de instrusão (Intrusion Prevention System), possuindo dois modos de identifica-los.

  • Um IDS baseado em rede é considerado um IPS, capaz de bloquear o tráfego atravéz do descarte de pacotes, ou detecção de tráfego. O IPS pode também, monitorar determinada porta de switch onde acontece todo o tráfego, e enviar comandos ao firewall ou roteador para bloquear o tráfego.
  • Adiciona tipos de algoritmos de IDS ao conjunto de algoritmos do firewall, sendo uma adição funcional.

Os sistemas de prevenção de intrusão, não passam de firewalls com algoritmos criados para IDSs, de forma a bloquear tráfego quando necessário.

  • O IDS baseado em protocolo (PIDS) é um sistema (ou agente) que monitora e analisa protocolos de comunicação com sistemas ou usuários relacionados. Para um servidor web, esse IDS geralmente monitora os protocolos HTTP e HTTPS. Ao usar HTTPS, o IDS deve estar localizado em tal interface para que os pacotes HTTPS possam ser visualizados antes de serem criptografados e enviados para a rede.
  • IDS baseado em protocolo de aplicativo (APIDS) é um sistema (ou agente) que monitora e analisa dados transmitidos usando protocolos específicos de aplicativo. Por exemplo, em um servidor web com um banco de dados SQL, o IDS monitorará o conteúdo dos comandos SQL enviados ao servidor.
  • IDS baseado em host (HIDS) - um sistema (ou agente) localizado em um host que monitora invasões usando a análise de chamadas do sistema, logs de aplicativos, modificações de arquivos (executáveis, arquivos de senha, bancos de dados do sistema), estado do host e outras fontes. Um exemplo é OSSEC.
  • Um IDS híbrido combina duas ou mais abordagens para desenvolver IDS. Os dados dos agentes nos hosts são combinados com as informações da rede para criar a visão mais completa da segurança da rede. Um exemplo de um IDS híbrido é o Prelude.


IPSs baseados em estação[editar | editar código-fonte]

Um IPS pode ser baseado em rede ou estação, da mesma forma que um IDS. Um host-based IPS (HIPS), utiliza métodos de detecção de anomalia e e de assinatura para a indetificação de ataques. Na primeira situação, o IPS busca por padrões de comportamento que apontem algum tipo de malware. Enquanto na de detecção de assitura, o enfoque é no conteúdo de cargas úteis de pacotes em determinada aplicação, de forma a procurar padrões identificados maliciosos previamente. Dentre os principais tipos de comportamentos malíciosos em um HIPS, temos:

  • Exploits de elevação de nível de privilégios: Procuram dar acesso à raiz do sitema.
  • Travessia de diretório: Permite que o hacker em um servidor web, alcance arquivos que a aplicação normalmente não permite.
  • Modificação de recursos de sistema: Modifica determinado recurso do sistema, alguns exemplos são: cavalos de Troia, rootkits e backdoors.
  • Acesso à lista de contatos de e-mail: Diversos vírus se espalham pelo catálogo de endereços de e-mail, de um dado sistema local, criando cópias e enviando aos endereços listados.

Um HIPS pode ser aplicado em diversas ocasiões, podendo ser moldada de forma específica ou geral. Sendo capaz de utlizar a técnica da caixa de areia, especíalizada em código móvel, de forma a isolar o código do sistema, executa-lo e monitorar seu comportamento. Com isso, o código é impedido no ambiente antes de chegar no ambiente real.

Dentre as principais soluções que o HIPS prove a computadores de mesa, temos:

  • Acesso a sistema de arquivos: Chamadas de sistema de acesso a arquivos podem ser asseguradas que não são maliciosas com o HIPS.
  • Entrada/saída de estação: Códigos de malware e exploits, podem ser propagados atrávés de comunicações de entrada e saída, assim o HIPS é capacitado a examinar essas modificações e impedi-las, tanto local quando em rede.
  • Chamadas de sistema: O kernel gerencia os recursos do sistema, e qualquer código malicioso executará ao menos umas chamada de sistema. Assim é possível configurar o HIPS de forma a examinar chamada por chamada do sistema na procura de alguma característica maliciosa.
  • Configurações de registro de sistema: O HIPS é capaz de prover integridade dos registros de sistema, estes que são frequêntemente modificados para buscar estender o tempo de vida do exploit e são configurações persistentes sobre programas.


Localização e configurações de firewalls[editar | editar código-fonte]

Um firewall provê uma proteção da rede interna de agentes externos. O firewall deve ser posicionado em algum lugar e em quantos serão necessários.

Redes DMZ[editar | editar código-fonte]

Uma opção para as distribuições de firewalls são as Redes DMZ. A rede DMZ utiliza um firewall interno e outro externo, que é posicionado depois do roteador de borda. Já o firewall interno, que pode ser mais de um inclusive, é quem protege o resto da rede interna.

O espaço entre o firewall interno e externo, é uma área desmilitarizada ou DMZ (demilitarized zone) onde alguns sistemas que podem ser acessados externamente mas precisam de alguma proteção como DNS, servidores de e-mail ou web.

O firewall interno provê proteção mais rígida contra ataques externos por meio filtros. Além disso, o firewall interno protege a rede interna de ataques provenientes das áreas DMZ e vice-versa. Pode-se utilizar mais de um firewall interno, para fins de proteger conjuntos internos da rede uns dos outros. [1]


As multiplas camadas de segurança que uma DMZ ofereçe são distribuidas entre pontos de serviços e de filtragem: =[editar | editar código-fonte]

  • Os pontos de filtragem inicialmente servem para proteger os serviços. Se os serviços da rede são comprometidos, a capacidade de um ataque prosseguir fica limitado. Tanto o tráfego que entra e sai da DMZ é filtrado, seja por roteadores ou por meio de firewalls;
  • Os servidores públicos que ficam localizados na DMZ exigem medidas de segurança adequadas. Os serviços são duramente protegidos, aumentando a dificuldade de um invasor comprometer os serviços disponíveis dentro do perímetro da DMZ;
  • As ALGs (servidores de proxy) localizados em uma DMZ, servem como intermediários entre os hosts da rede interna e as redes externas como à Internet. É possível impor restrições de acesso com base no horário, login, endereço IP entre outros. Uma ALG serve também como cache de rede, armazenando as informações de páginas e arquivos já acessados.
  • Quando um ataque consegue entrar na DMZ, o ataque não é capaz de passar para a rede interna devido aos pontos de filtragem que oferecem uma defesa adicional. A implementação de funcionalidades tais como VLANs podem ajudar a combater estes ataques.

Redes privadas virtuais[editar | editar código-fonte]

Redes privadas virtuais ou VPN (Virtual Private Network), é uma rede que transmite informações criptografadas de um lugar para outro, permitindo que usuários enviem e recebam dados de maneira segura e privada. Com essas criptografias os dados são embaralhados e convertidos em códigos, assim evitando acessos não autorizados. Além disso, o VPN é capaz de ocultar o ip do usuário ao acessar a internet, para evitar que seu computador seja acessado por invasores.

A rede privada virtual quando utilizada, conecta o usuário a um dos servidores, que fornecerá um IP do provedor VPN, que é bem mais seguro que os dos provedores normais. É feito também uma criptografia entre a máquina do usuário e o servidor que ele está conectado. Assim, caso um atacante tente interceptar a transmissão de dados, ele receberá apenas um código secreto. Isso possibilita que o usuário acesse a rede com mais privacidade e segurança, o que ajuda a evitar que sua navegação seja rastreada ou monitorada.

Exemplo: Produtos para gerenciamento unificado de ameaças[editar | editar código-fonte]

Em outras abordagens no que diz respeito a Segurança de Sistemas, é comumente abordado acerca de respostas a ataques maliciosos, como softwares maliciosos, baseados em rede, como produtos de antivírus ou antivermes, IPS, IDS e Firewall. O lado bom de se ter todas essas ferramentas implementadas, é que elas garantem a segurança do sistema se baseando no uso de varias camadas e filtros, além de mecanismos de defesa que frustram os ataques abordados acima, porem, a utilização de inúmeros recursos, pode acarretar em um retardamento do desempenho do sistema como um todo, além de que se faria necessário a implementação de todos estes recursos em cada maquina a fim de manter o mesmo nível de segurança.

Como sugestão de contramedida, esta a inserção de todos os recursos de filtragem e detecção e demais serviços que garantem a segurança do sistema vinculado a um único dispositivo, que segundo a empresa IDC, este tipo de aparelho seria um gerenciador unificado de ameaça (Unified Threat Management - UTM).

Como resultado, a redução dos recursos gastos pelas maquinas para a depuração e analise dos demais riscos e dados, assim como a latência e o desempenho do sistema como um todo, são melhorados, implicando que esta solução pode ser um diferencial no que diz respeito aos dispositivos de trabalho, visto que no mercado os dispositivos devem ser ágeis e de grande capacidade de processamento para que os componentes de segurança não afetem o seu desempenho.

A seguir teremos as etapas que o UTM realiza, assim como o seu funcionamento ocorre ao processar os dados:

  1. O tráfego de entrada é decifrado, se necessário, antes de sua inspeção inicial. Se o dispositivo funcionar como um nó na borda de uma VPN, a decifração IPSec deve ocorrer aqui.
  2. Um módulo de firewall inicial filtra tráfego, descartando pacotes que violam regras e/ ou deixando passar pacotes que estão de acordo com o conjunto de regras estabelecido na política do firewall.
  3. Depois desse ponto, vários módulos processam pacotes individuais e fluxos de pacotes em vários níveis de protocolo. Nessa configuração particular, um motor de análise de dados é responsável por fazer o acompanhamento de fluxos de pacotes e coordenar o trabalho de motores de antivírus, IDS e IPS.
  4. O motor de análise de dados também remonta cargas úteis de múltiplos pacotes para análise de conteúdo pelo motor de antivírus e pelos módulos Web de filtragem e antispam.
  5. Algum tráfego de entrada pode precisar ser novamente cifrado para manter a segurança do fluxo dentro da rede de uma empresa.
  6. Todas as ameaças detectadas são relatadas ao módulo de registro e relatório, que é usado para emitir alertas para condições especificadas e para análise forense.
  7. O módulo de conformação de banda pode usar vários algoritmos de priorização e qualidade de serviço (QoS) para otimizar desempenho
  1. STALLINGS, William. BROWN, Lawrie. Segurança de Computadores. 2ed.