Click here to load reader

2002, Edgard Jamhour FIREWALLS Edgard Jamhour. 2002, Edgard Jamhour Segurança de Redes Firewalls –Firewalls com estado e sem estado. Arquiteturas de Firewall

  • View
    227

  • Download
    0

Embed Size (px)

Text of 2002, Edgard Jamhour FIREWALLS Edgard Jamhour. 2002, Edgard Jamhour Segurança de Redes...

IPsec e Novas Tecnologias para FirewallsCriptografia
VPN
IPsec
2002, Edgard Jamhour
Bibliografia
BIBLIOGRAFIA
TCP/IP Tutorial e Técnico: Martin W. Murhammer et al., 2000, Makron Books.
FIREWALLS - GUIA COMPLETO, GONCALVES,MARCUS, EDITORA CIENCIA MODERNA LTDA.
2002, Edgard Jamhour
Firewalls
Definição:
Termo genérico utilizado para designar um tipo de proteção de rede que restringe o acesso a certos serviços de um computador ou rede de computadores pela filtragem dos pacotes da rede.
Os firewalls podem ser de dois tipos:
Sem estado (stateless)
A decisão sobre a passagem ou não de um pacote considera apenas as informações carregadas no próprio pacote.
Com estado (stateful) – Stateful Inspection
A decisão sobre a passagem ou não de um pacote leva em outros pacotes que atravessaram anteriormente o firewall.
2002, Edgard Jamhour
O tipo mais comum de firewall é o sem estado:
A decisão sobre a passagem ou não de um pacote considera apenas as informações carregadas no próprio pacote.
Utiliza usualmente apenas informações das camadas de rede e transporte.
Essa simplificação permite:
Tornar o firewall independente do protocolo transportado.
Tornar o firewall independente de criptografia e tunelamento.
2002, Edgard Jamhour
Protolco de Aplicação
TCP, UDP
Data Link
IP
Física
Aplicações
A filtragem de pacotes é feita com base nas informações contidas no cabeçalho dos protocolos.
Tecnologia
heterogênea
aplicação
transporte
rede
enlace
física
Seqüência de empacotamento
A filtragem de pacotes é feita com base nas informações introduzidas no cabeçalho dos protocolos da arquitetura TCP/IP. Observe que, na transmissão, cada camada introduz o seu próprio cabeçalho na estrutura de dados recebida da camada superior. Na recepção o processo contrário acontece, isto é, cada camada retira o seu cabeçalho antes de passar a estrutura de dados para camada superior. Os filtros de pacotes trabalham com as estruturas de dados correspondentes a camada de rede (denominados pacotes ou datagramas).
Os pacotes contêm basicamente três tipos de informação: o cabeçalho de rede e, em alguns casos, o cabeçalho de transporte e aplicação. Deve-se observar que, dependendo da mensagem transmitida, nem todos os protocolos são utilizados. Por exemplo, uma mensagem ICMP não utiliza os protocolos de transporte e aplicação.
Os filtros de pacotes trabalham basicamente com as informações das camadas de rede e transporte. Como veremos adiante, a camada de aplicação é utilizada pelos gateways de aplicação (servidores proxy).
2002, Edgard Jamhour
Filtragem de Pacotes
No software do Roteador: screening routers
No software de uma estação dedicada (um PC com duas placas de rede).
REDE
EXTERNA
FIREWALL
ROTEADOR
FIREWALL
ROTEADOR
REDE
EXTERNA
REDE
INTERNA
REDE
INTERNA
PERSONAL FIREWALL
Os filtros de pacote são implementados no ponto de conexão entre a rede interna e a rede externa. Esse ponto é geralmente um roteador, mas pode-se utilizar também um computador com duas placas de rede. Os roteadores que executam a função de filtragem de pacotes são denominados "screening routers". A maioria dos roteadores comerciais modernos traz embutida a função de filtragem de pacotes. Existem também muitos produtos comerciais que permitem utilizar um computador com duas placas de rede como filtro de pacotes.
A configuração do filtro de pacotes é feita através de um conjunto de regras de filtragem que definem a política de segurança da empresa em relação a conectividade com o mundo externo. O formato das regras de filtragem é do tipo:
Se CRITÉRIO satisfeito então AÇÃO.
A ação ser do tipo ACEITAR ou REJEITAR (o pacote). O critério especifica as condições que a ação deve ser implementada. Os critérios são estabelecidos em função das informações encontradas no cabeçalho dos pacotes.
2002, Edgard Jamhour
Implementa VPN com IPsec
2002, Edgard Jamhour
Controle de Segurança e Qualidade de Serviço.
2002, Edgard Jamhour
Recebe pacote
Seleciona
Proxima
Regra
Uma informação muito importante para construção das regras de filtragem é o sentido do pacote, isto é, se ele está entrando ou saindo da rede interna. As regras são definidas de maneira independente para os pacotes que entram e saem da rede. Alguns roteadores permitem definir as regras isoladamente para cada porta, assumindo também que cada porta controla apenas os pacotes que entram no roteador.
As regras do filtro de pacotes são avaliadas em seqüência, sendo que a primeira regra que for satisfeita, independentemente de haver outras regras na seqüência, define a ação sobre o pacote. Em geral as regras mais especificas devem ser colocadas primeiro e as regras mais genéricas por último. Existem duas estratégias básicas para construir as regras de filtragem:
a) O que não for proibido é permitido
- Utilizar regras específicas no início do tipo bloquear.
- A última regra é do tipo permitir tudo.
b) O que não for permitido é proibido
- Utiliza regras específicas no início do tipo permitir.
- A última regra é do tipo proibir tudo.
2002, Edgard Jamhour
Filtragem por Aplicação
Os firewalls sem estado não analisam o protocolo de aplicação para determinar o tipo de serviço transportado pelo pacote.
A dedução do tipo de serviço é feito indiretamente:
Pelo campo “Protocol Type” do IP
RFC 1700: Assigned Numbers
TCP = 6, UDP = 17, ICMP = 1, etc.
Pelas portas quando o tipo de protocolo for 6 ou 17
http://www.iana.org/assignments/port-numbers
Todas as numerações são padronizada pela IANA (The Internet Assigned Numbers Authority)
É comum dentro do processo de contrução das políticas de segurança de uma empresa que certas aplicação sejam permitidas e outras não.
Em filtros de pacotes, as aplicações são identificadas pela porta do protocolo de transporte (números inteiros entre 0 e 65535). Em comunicações cliente-servidor em redes TCP/IP, o servidor utiliza uma porta padronizada pela IANA (The Internet Assigned Numbers Authority). Essas portas são denominadas "portas bem conhecidas", pois a IANA atribui uma porta de servidor para cada serviço padronizado para redes TCP/IP. Por exemplo, a porta 80 é utilizada para o serviço de HTTP.
A porta do cliente é geralmente a primeira porta livre, com número acima de 1023, escolhida pelo sistema operacional do próprio cliente. Deve-se observar, todavia, que isto é apenas uma convenção. Na prática, nada implede de se programar um cliente numa porta abaixo de 1024 ou um servidor acima de 1023. De fato, os servidores que não são aplicações padronizadas para Internet, como os servidores de banco de dados, utilizam portas acima de 1023.
2002, Edgard Jamhour
Distribuição das Portas
Geralmente usada pelos servidores de serviços padronizados.
Portas Registradas
Portas Dinâmicas ou Privadas:
0
2002, Edgard Jamhour
Distribuição das Portas
Portas Bem Conhecidas:
Definidas pela IANA
Acessíveis apenas por processos de sistema (que tenham privilégios do tipo root).
Desina servícos padronizados para Internet:
FTP (21), HTTP (80), DNS (53), etc.
Range: 0 a 1023
Geralmente, a porta é mapeada a um serviço em ambos os protocolos (TCP e UDP), mesmo que usualmente só seja utilizado um deles.
2002, Edgard Jamhour
Distribuição de Portas
Acessiveis por processos de usuário
Usadas geralmente para designar serviços proprietários:
Corba Management Agente (1050), Microsoft SQL Server (1433), Oracle Server (1525), etc.
Range: 1024 a 49151.
Exemplos de portas bem conhecidas
Observe que a combinação de portas e endereços IP de origem e destino permite implementar as políticas de segurança de maneira bastante flexível. Por exemplo, a Tabela acima exprime o conjunto de regras que permite que usuários da rede interna acessem recursos externos usando o protocolo de aplicação HTTP(porta 80), mas proíbe que qualquer computador externo inicie uma conexão com um computador interno.
A tabela com as regras de filtragem mostra uma coluna denominada FLAG ACK. O flag ACK é um bit contido no cabeçalho do protocolo TCP. A função básica do flag ACK é detectar um tipo de ataque no qual um cliente se faz passar por um servidor para enganar o filtro de pacotes.
Por exemplo, um cliente pode fazer uma conexão escolhendo a porta TCP 80, para se fazer passar por um servidor HTTP. Neste caso, se houver uma regra de filtragem permitindo a entrada de pacotes TCP na rede este cliente externo poderá tentar fazer uma conexão com qualquer computador da rede interna.
FTP
Cliente
EMBED MS_ClipArt_Gallery
EMBED MS_ClipArt_Gallery
Dados armazenados
Porta 49152
programa servidor de terminal remoto
Porta 80
Porta 119
programa servidor de notícias
Exemplo de Regras de Filtragem
[1] O símbolo "*" indica que qualquer valor é aceitável para regra.
regra
Problema: Spoofing de Porta
Como diferenciar um ataque externo de uma resposta solicitada por um usuário interno?
1024
a resposta possa passar .
seja usada para atacar
usuários internos?
Para compreender como o problema de spoofing de porta é importante, considere o seguinte exemplo. Uma empresa implantou um firewall para proteger sua rede corporativa. De acordo com a política de segurança da empresa, apenas os computadores da rede interna poderiam acessar servidores Web externos (porta TCP 80) mas todos os demais acessos estavam proibidos.
Para permitir que clientes acessem servidores Web externos é necessário:
a) Permitir a saída de pacotes cuja porta de destino seja 80 (a solicitação do cliente).
b) Liberar a entrada de pacotes cuja porta de origem seja 80 (a resposta do servidor).
c) Todos os demais pacotes são proibidos.
Um cliente externo, conhecendo a regra “b” pode criar uma conexão utilizando a porta 80 como origem. Dessa maneira, os pacotes por ele transmitidos entrarão na rede como se fossem respostas de um servidor Web. Utilizando este artifício ele poderia tentar abrir conexões com computadores da rede interna, utilizando um serviço como TELNET (porta 23), por exemplo.
2002, Edgard Jamhour
Comunicação bidirecional, confiável e orientada a conexão.
O destino recebe os dados na mesma ordem em que foram transmitidos.
O destino recebe todos os dados transmitidos.
O destino não recebe nenhum dado duplicado.
O protocolo TCP rompe a conexão se algumas das propriedades acima não puder ser garantida.
2002, Edgard Jamhour
FIN: Mais dados do transmissor
No caso do protocolo TCP, o problema do spoofing de porta pode ser facilmente evitado. O protocolo TCP é orientado a conexão, por isso, existe uma sequencia bastante rígida para determinar a troca de informações entre um cliente e um servidor, conhecida como “tree hand handshaking”. A seqüência é a seguinte:
O cliente envia para o servidor um pacote com o flag ACK=0 solicitando a abertura de uma conexão.
O servidor responde ao pedido de conexão enviando para o cliente um pacote com o flag ACK=1.
O cliente confirma a conexão enviando para o servidor um pacote com flag ACK=1.
Após o estabelecimeto da conexão o cliente e o servidor se comunicam enviando pacotes com ACK=1. O cliente pode efetuar muitas requisições dentro de uma única conexão TCP. Isto acontece por exemplo quando o usuário carrega uma página HTML com várias figuras. A página e cada figura são solicitadas através de pacotes diferentes enviados do cliente para o servidor. Todos esses pacotes utilizam ACK=1.
Resumindo, apenas o pacote de pedido de conexão utiliza ACK=0. Para evitar o spoofing de porta, basta filtrar a entrada de pacotes com o flag ACK=0. Isto faz com que seja impossível para um computador externo abrir uma conexão com algum computador interno. Os computadores externos só podem enviar pacotes dentro de conexões TCP iniciadas por clientes internos.
HLEN
Reservado
Flag ACK
Uma conexão TCP sempre se inicia com o cliente enviando um pacote com o flag ACK= 0.
ACK=0
ACK=1
ACK=1
Os pacotes UDP podem chegar fora de ordem.
Pode haver duplicação de pacotes.
Os pacotes podem ser perdidos.
Cada pacote UDP é independente é não contém informações equivalentes ao flag ACK dos pacotes.
O protocolo UDP, ao contrário do TCP, não possui funções de conexão. Isto significa que os pacotes de dados são trocados entre os computadores sem que haja necessidade de estabelecimento de uma conexão.
No protocolo UDP não existe um equivalente ao flag ACK, não sendo possível diferenciar um cliente de um servidor utilizando apenas as informações do protocolo. Isto faz com que seja muito difícil evitar ataques por spoofing de porta.
Por exemplo, um servidor DNS funciona na porta UDP 53. Para que seja possível aos clientes internos consultares servidores UDP externos é necessário liberar na rede a entrada de datagramas UDP com a porta de origem 53. Isto permite que qualquer computador externo, escolhendo a porta 53 como origem, consiga infiltrar datagramas dentro da rede interna, atravessando a proteção oferecia pelo filtro de pacotes.
2002, Edgard Jamhour
Mensagem UDP
As mensagens UDP não possuem flags de controle pois o protocolo UDP não oferece a mesma qualidade de serviço que o protocolo TCP.
31
16
0
Dynamic Packet Filtering com UDP
Para poder criar regras sobre quem inicia uma comunicação no protocolo UDP, os roteadores precisam se lembrar das portas utilizadas.
tempo
tempo
200.0.0.1:1025 >>> 210.0.0.2:53
210.0.0.2:53 >>> 200.0.0.1:1025
210.0.0.2:53 >>> 200.0.0.1:1026
210.0.0.2:53 >>> 200.0.0.2:1025
É possível, contudo, oferecer uma certa proteção contra ataques de porta feitos sobre o protocolo UDP. Os dispositivos capazes de efetuar esta proteção são denominados “filtros de pacotes dinâmicos”.
O nome dinâmico está relacionado a maneira como as regras de filtragem são criadas automaticamente pelo dispositivo, de acordo com o histórico dos datagramas que trafegaram pela rede. O princípio adotado por estes dispositivos é relativamente simples: “ Só é permitida a entrada na rede de datagramas que sejam respostas a perguntas feitas anteriormente por computadores internos”.
Por exemplo, um datagrama emitido pela porta B de um computador externo IPB e destinado a porta A de um computador interno IPA só pode entrar na rede se, anteriormente, um datagrama originário da porta A do computador IPA foi emitido para a porta B do computador IPB.
Este processo não é infalível, mas dificulta consideravelmente a entrada de pacotes indesejados na rede. A dificuldade deste método é que a regra deve ser removida após um período relativamente curto. Como é difícil determinar quanto tempo a resposta pode demorar, pode-se filtrar indevidamente datagramas legítimos.
2002, Edgard Jamhour
Implementação:
Analisar o cabeçalho de cada pacote que chega da rede externa, e aplicar uma série de regras para determinar se o pacote será bloqueado ou encaminhado.
ESTRATÉGIAS
2002, Edgard Jamhour
Ação
permitir
permitir
negar
Protocolo
tcp
tcp
Hosts Internos podem acessar servidores de telnet internos ou externos.
Hosts externos podem apenas responder a requisições, não podem iniciar um diálogo (estabelecer uma conexão).
Direção
Sair
Entrar
*
A maneira mais comum de implementar regras de filtragem é adotar a estratégia:
“TUDO QUE NÃO É PERMITIDO É PROIBIDO”
Esta estratégia tira proveito da maneira como as regras são avaliadas num filtro de pacotes: “A primeira regra que for satisfeita, seja para bloquear o permitir, define a ação sobre o pacotes.
Dessa forma, a estratégia pode ser implementada colocando uma regra genérica do tipo “BLOQUEAR TUDO” como sendo a última regra da lista de regras do filtro de pacotes. As regras anteriores são todas do tipo permitir, e devem ser bastante específicas, como mostra a tabela acima.
2002, Edgard Jamhour
*
Alguns tipos de filtros de pacotes adotam a estratégia de definir um conjunto de regras independente para cada uma de suas interfaces. Nessa estratégia, adota-se a seguinte convenção: “As regras de filtragem se aplicam apenas aos pacotes que entram dentro do roteador, e não aos que saem”.
Por exemplo, na figura acima, a interface 1 do roteador controla apenas os pacotes que saem da rede interna na direção da Internet, e a interface 2 controla apenas os pacotes que entram na rede interna vindos pela Internet. Observe o uso do flag ACK nas duas tabelas. Na interface 1, o flag Ack pode assumir qualquer valor, pois deve-se permitir que clientes internos enviem pacotes com solicitação de abertura de conexão para servidores externos (ACK=0) e pacotes de dados (ACK=1). Já na interface 2 apenas os pacotes com ACK=1 são permitidos, envitando que computadores externos abram conexão com computadores internos.
As regras podem ser definidas também na forma de uma única tabela. Neste caso é necessário incluir a informação de sentido nos pacotes. A implementação em roteadores utiliza geralmente uma tabela para cada interface e a implementação por software em computadores utiliza o conceito de sentido.
2002, Edgard Jamhour
Hosts Internos podem acessar servidores de telnet internos ou externos.
Hosts externos podem acessar servidores de web internos.
Ação
permitir
permitir
permitir
permitir
negar
Protocolo
tcp
tcp
tcp
tcp
Seqüência de Criação de Regras
A seqüência na qual as regras são aplicadas pode alterar completamente o resultado da política de segurança. Por exemplo, as regras de aceite ou negação incondicional devem ser sempre as últimas regras da lista.
Ação
permitir
permitir
permitir
permitir
negar
Protocolo
tcp
tcp
tcp
tcp
*
O deslocamento de uma regra genérica para cima anula as demais.
A seqüência em que as regras de filtragem são definidas influenciam o resultado final do filtro de pacotes. Uma estratégia simples para definir as regras de filtragem sem depender da ordem em que elas são criadas é adotar a política: “TUDO QUE NÃO É PERMITIDO É PROIBIDO.” Nesta política, todas as regras de filtragem são do tipo permitir, e a última regra é do tipo proibir tudo. Nessa estratégia, as regras do tipo permitir podem ser colocadas em qualquer posição sem alterar o resultado total da filtragem. Neste caso, as regras que tem maior chance de serem satisfeitas devem ser colocadas por primeiro apenas por uma questão de desempenho do filtro de pacotes. Se todavia, forem misturadas regras do tipo permitir e proibir, então a ordem das regras pode alterar completamente o resultado da filtragem. Neste caso, as regras mais específicas deverão ser colocadas sempre antes das regras mais genéricas.
Dependendo da quantidade de regras, os filtros de pacotes podem limitar a quantidade de tráfego trocada entre a rede interna e a rede externa. Em geral, quanto mais rápido for o link com a Internet, menos tempo o roteador tem para decidir se um pacote pode ser transmitido ou não. A tabela acima (a direita) ilustra quanto tempo um roteador tem para decidir sobre a transmissão ou não de um pacote na medida em que os links são de maior velocidade. Observe que para links superiores a 100 Mbps, os filtros de pacotes são impraticáveis.
2002, Edgard Jamhour
Desempenho do Filtro de Pacotes
O processo de filtragem de pacotes exige que um certo processamento adicional seja executado pelo roteador para cada pacote que chega ou precisa ser transmitido.
Dependendo da velocidade da linha de transmissão, esse processamento pode ou não causar uma degradação do desempenho da rede.
Ciclos CPU
100 MHz
Arquitetura DMZ
Perimeter Network
Uma rede adicionada entre a rede protegida e uma rede externa, com o objetivo de proporcionar uma camada a mais de segurança.
Também chamada de DMZ (De-Militarized Zone).
Bastion Host
Um computador que precisa ser altamente protegido, pois é suscetível a sofrer ataques. O bastion host é um computador exposto simultaneamente a Internet e a rede interna.
2002, Edgard Jamhour
Exemplo de DMZ
Rede Interna
Roteador Externo
A Figura acima mostra uma das configurações mais populares para implementação de firewalls. Apesar de mais complexa, essa configuração elimina alguns problemas apresentados pelas configurações anteriores. O princípio dessa configuração consiste em dividir a rede em três zonas: a interna, uma intermediária e outra externa. A rede intermediária é denominada de "Zona Desmilitarizada" (DMZ - DeMilitarized Zone), pois nessa rede são colocados os computadores que desempenham a função de "Bastion Host", e portanto estão sujeitos a contato direto com o mundo externo.
Ao contrário das configurações anteriores, a rede interna é protegida por um outro filtro de pacotes, que limita também o acesso da DMZ em relação a rede interna. Dessa forma, computadores da rede externa não poderão utilizar o "Bastion Host" como ponte para acessar a rede interna, aumentando significativamente a segurança da rede. Se desejado, pode-se também substituir o roteador interno por um servidor proxy, a fim de que a rede interna possa utilizar endereços não registrados.
2002, Edgard Jamhour
Roteador Interno (Choke Router)
Protege a rede interna da rede externa e da rede…