Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
2018, Edgard Jamhour
FirewallsFiltragem de Pacotes
Edgard Jamhour
2018, Edgard Jamhour
Firewalls
Definição:
– Processo de permitir ou bloquear pacotes em uma camada
arbitrária do modelo OSI, mas usualmente na camada de rede.
– Packet Filtering: quando o firewall opera na camada de rede
Evolução:
– Primeira Geração: firewalls sem estado
• Analisa pacotes individualmente
– Segunda Geração: filtros com estado
• Retém os pacotes para coletar informações sobre uma
conexão ou sessão
– Terceira Geração: filtros de aplicação
• Analisa e compreende informações da camada de aplicação
2018, Edgard Jamhour
Filtragem de Pacotes
FTP, SMTP, HTTP,
Telnet, SNM, etc.
TCP ou UDP
Ethernet MAC
IP
Ethernet PHY
A filtragem de pacotes utiliza informações contidas nos cabeçalhos
dos protocolos
HTML
NIC
aplicação
transporte
rede
enlace
física
Seqüência de
empacotamento
S.O.
Aplicação.
HTTP
2018, Edgard Jamhour
Navegado Web
Camada de operação
Aplicação
Enlace (Ethernet)
Física (Ethernet)
49152
1. Verifica se os níveis do sinal e os
limites do quadro estão corretos.
2. Se o MAC corresponde a interface,
gera uma interrupção para o S.O.
Rede (IP)
3. Verifica se o IP pertence ao HOST.
Se pertencer encaminha o conteúdo
do pacote para o TCP ou UDP.
Transporte (UDP) Transporte (TCP)
4. Verifica se existe conexão
estabelecida na porta indicada. Se
houver, disponibiliza os dados no
buffer da aplicação.
5. Interpreta o protocolo de aplicação. O
processamento não é feito por pacotes,
mas sim por mensagens que podem se
estender por mais de um pacote.
NIC: Network
Interface Card
Sistema
Operacional
Aplicação
quadro
pacote
segmento
HTTP
2018, Edgard Jamhour
Navegado Web
Camada de operação
Aplicação (HTTP)
Enlace (Ethernet)
Física (Ethernet)
49152
Filtrar na NIC é praticamente inviável, a
menos que seja um hardware especializado
(firewall embedded NIC).
Rede (IP)
Transporte (UDP) Transporte (TCP)
Filtragem na camada de
transporte é pouco usual,
mas existem soluções em
Unix como TCP wrapper.
XA camada IP é o local mais comum de
filtragem. Além das decisões de
roteamento, pacote é processado por um
conjunto de regras de filtragem.
C
A filtragem na camada de
aplicação é muito especializada
e, geralmente, feita pela
própria aplicação.
2018, Edgard Jamhour
Firewalls Sem Estado
• Primeira geração de firewalls:
– A decisão sobre a passagem de um pacote considera apenas as informações contidas no próprio pacote.
• Utiliza usualmente apenas informações das camadas de rede e transporte.
– Essa simplificação permite:
• Tornar o firewall mais rápido.
• Tornar o firewall independente do protocolo transportado.
• Tornar o firewall independente de criptografia e tunelamento.
• Firewall sem estado com assinatura de dados: – Procura uma sequência de bytes pré-determinada no campo de dados (assinatura).
– Pacotes ainda são analisados individualmente.
2018, Edgard Jamhour
Firewalls sem Estado
• Primeira geração de
firewalls (20 anos atrás).
• Desenvolvidos
considerando as limitações
da época.
• Não protegem UDP.
• São independentes da
aplicação (analisam apenas
informações de IP e Porta).
• Tem alto desempenho.
2018, Edgard Jamhour
Host-based vs Network-based
• No software do Roteador: screening routers
• No sistema operacional do Host
– Windows Filtering Platform (WFP)
– Linux Netfilter
Roteador com Firewall
Internet = Rede Insegura
Firewall no sistema operacional do Host
inboundoutbound
2018, Edgard Jamhour
Firewall no S.O. (Linux Netfilter)
• Netfilter oferece
funcionalidades básicas
para NAT, Filtragem e
QoS.
• É possível estender as
funcionalidades do Netfilter
através de hooks.
• Hooks permitem que
decisão sobre um pacote
(ACCEPT, DROP,
STOLEN, QUEUE,
REPEAT) seja tomada por
funções callback.
2018, Edgard Jamhour
Firewall no S.O. (Windows Filtering
Platform).• Introduzido no Windows Vista (2006/2007)
• Cria uma estrutura de filtragem de pacotes genérica que pode ser expandida por
vendedores que criam módulos especializados para Windows
• Define uma API padrão para filtrar pacotes em qualquer camada do S.O.
Implementa funções básicas de
filtragem baseada em regras
Permite estender a função de filtragem
através de funções call-back, chamadas
automaticamente quando uma regra é
satisfeita
2018, Edgard Jamhour
Regras de Filtragem
se condição satisfeita
então aplicar açãoRegra 1
Regra 2
Regra 3
Política de Segurança =
Lista de Regras
Regra Default
ação:
-permitir
-bloquear
-fazer log
condição:
- campos de cabeçalho
- direção do tráfego
- estado
2018, Edgard Jamhour
Algoritmo dos Firewalls sem Estado
Recebe pacote
Seleciona Primeira Regra
OK para Passar?
OK para Bloquear
Última
Regra?
Bloquear
Pacote
Encaminhar
Pacote
S
S
N
N
N
S
Regra Default
Seleciona
Proxima
Regra
2018, Edgard Jamhour
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
*
IP Origem
interno
*
*
interno
*
Porta Origem
> 1023
23
> 1023
23
*
IP Destino
*
interno
interno
*
*
Porta Destino
23
> 1023
23
> 1023
*
ACK
*
1
*
1
*
Direção
Out
In
In
Out
*
O deslocamento de uma regra genérica para cima anula as demais.
2018, Edgard Jamhour
Estratégias
• Tudo que não é permitido é proibido
– Regra default é proibir
– Regras específicas são do tipo permitir
– Comum em network-based firewalls
– Abordagem padrão em host-based firewalls para conexões do tipo inbound
• (quando a máquina local recebe uma conexão)
• Tudo que não é proibido é permitido
– Regra default é permitir
– Regras específicas são do tipo proibir
– Abordagem padrão em host-based firewalls para conexões do tipo
outbound
• (quando a máquina local faz uma conexão)
2018, Edgard Jamhour
Bloqueio de aplicações
• Firewalls que não são de camada 7 analisam apenas os campos do IP, TCP, UDP e ICMP
• 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
• IANA: Internet Assigned Number Authority– http://www.iana.org/assignments/port-numbers
2018, Edgard Jamhour
Distribuição das Portas
• Portas Bem conhecidas (well known
ports):
– Geralmente usada pelos servidores
de serviços padronizados.
– Requer privilégio de administrador
• Portas Registradas
– Geralmente usada por serviços
proprietários.
• Portas Dinâmicas ou Privadas:
– Usadas pelos clientes e pelos
serviços não padronizados.
0
….
1023
1024
….
49151
PORTAS
TCP ou
UDP
49152
….
65535
2018, Edgard Jamhour
Portas Bem Conhecidas
• Aplicações necessitam de privilégios de administrador para usar essas
portas
2018, Edgard Jamhour
Exemplos de portas bem conhecidas
49152
65535
...
tcp 80
tcp 443
tcp 22
tcp 23
tcp 25
udp 53
http
https
ssh
telnet
smtp
dns
2018, Edgard Jamhour
Portas Registradas
• Não exigem privilégio de administrador. Tem
efeito apenas de recomendação.
2018, Edgard Jamhour
Exemplo de Regras de Filtragem
[1] O símbolo "*" indica que qualquer valor é aceitável para regra.
inboundoutbound
Regra Ação Sentido IP
Origem
IP
Destino
Porta
Origem
Porta
Destino
ACK
Estado
1 permitir outbound rede
interna
* >1023 80, 443 ?
2 permitir inbound * rede
interna
80,443 >1023 ?
3 bloquear * * * * * ?
2018, Edgard Jamhour
Firewalls sem Estado: Problemas de Segurança
• São stateless:
– Precisam liberar
todas as portas de
cliente (> 1023 )
para permitir uma
comunicação FTP.
• Apenas duas
opções:
– Ou libera-se todas
as portas ou
bloqueia-se o
serviço todo.
2018, Edgard Jamhour
Problema: Spoofing de Porta
• Como diferenciar um ataque externo de uma resposta
solicitada por um usuário interno?
...80
65535
1025
1024 80
regra outbound: se for
porta 80 de destino pode
passar
regra inbound: se for
porta 80 de origem pode
passar
2018, Edgard Jamhour
TCP
• TCP é um protocolo
orientado a
conexão
• A máquina de
estados rompe a
conexão se os o
protocolo TCP não
for seguido
corretamente.
2018, Edgard Jamhour
Flags TCP
• SYN: sincroniza números de sequência
• ACK: o campo acknowledgement é válido
• FIN: fim de conexão
2018, Edgard Jamhour
Flag ACK
• Uma conexão TCP sempre se inicia com o cliente enviando
um pacote com o flag ACK= 0.
2018, Edgard Jamhour
Regra de Firewall Corrigida
[1] O símbolo "*" indica que qualquer valor é aceitável para regra.
inboundoutbound
Regra Ação Sentido IP
Origem
IP
Destino
Porta
Origem
Porta
Destino
ACK
Estado
1 permitir outbound rede
interna
* >1023 80, 443 0, 1
2 permitir inbound * rede
interna
80,443 >1023 1
3 bloquear * * * * * *
2018, Edgard Jamhour
Filtragem com Protocolo UDP
• Cada pacote UDP é independente é não contém
informações equivalentes ao flag ACK dos
pacotes.
2018, Edgard Jamhour
Firewalls com Estado
• Quando o
cliente requisita
um serviço o
Firewall
armazena a
porta utilizada
numa tabela
dinâmica, não
liberando
nenhuma outra
porta do cliente.
1024
1024
...
65535
80
firewall sem estado
1024
1024
...
65535
80
firewall com estado
tabela
2018, Edgard Jamhour
Firewall com Estado
• Para controlar quem inicia uma comunicação no protocolo UDP, os
roteadores criar regras dinâmicas com base nas portas utilizadas
– Dynamic Packet Filtering
200.0.0.1:1025 >>> 210.0.0.2:53
tempo tempo
...
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
UDP 53
UDP 1025
UDP 1025
200.0.0.1
200.0.0.2
2018, Edgard Jamhour
Firewall com Estado: Iptables
• NEW: refere-se a pacotes que criam uma nova conexão
• ESTABLISHED: refere-se aos pacotes trocados uma conexão já
estabelecida
•
RELATED: refere-se a pacotes relacionados a uma comunicação, mas
que não fazem parte diretamente do fluxo de dados da comunicação.
Por exemplo, mensagens de erro ICMP ou pacotes de criação de
conexão FTP.
• INVALID: refere-se a pacotes que não se encaixam a nenhum dos
casos anteriores, como pacotes ICMP com opções inválidas.
2018, Edgard Jamhour
Exemplo: Linux Conntrack
2018, Edgard Jamhour
Regras vs Interfaces (NICs)
• As regras de firewall geralmente são aplicadas de forma independente a cada
interface.
• Em alguns sistemas a tabela de regras é única, mas as interfaces são
campos da regra.
Ação
accept
accept
drop
Interface
1
2
*
IP Origem
200.0.0.0/24
*
*
Porta Origem
> 1023
23
*
IP Destino
*
200.0.0.0/2
*
Porta Destino
23
> 1023
*
ESTADO
N,R,E
R,E
*
INTERNET
1 2
200.0.0.0./24 ?.?.?.?
23>1023>1023
Proto
tcp
tcp
*
New (N), Related (R), Established (E)
2018, Edgard Jamhour
Regras vs Interfaces
Ação
accept
drop
IP Origem
*
*
Porta Origem
23
*
IP Destino
200.0.0.0/2
*
Porta Destino
> 1023
*
ESTADO
R,E
*
INTERNET
1 2
200.0.0.0./24 ?.?.?.?
23>1023>1023
Proto
tcp
*
Ação
accept
drop
IP Origem
200.0.0.0/24
*
Porta Origem
> 1023
*
IP Destino
*
*
Porta Destino
23
*
ESTADO
N,R,E
*
Proto
tcp
*
Sentido
inbound
inbound
Sentido
inbound
inbound
Interface 1
Interface 2
• Alguns sistemas definem tabelas independentes para cada interface.
• Para evitar duplicação desnecessária de regras, geralmente controla-se
apenas o sentido inbound.
2018, Edgard Jamhour
Limite de Rule MATCH
• Syn-flood protection:
• # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j
ACCEPT
• Furtive port scanner:
• # iptables -A FORWARD -p tcp --tcp-flags
SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
• Ping of death:
• # iptables -A FORWARD -p icmp --icmp-type echo-
request -m limit --limit 1/s -j ACCEPT
2018, Edgard Jamhour
Ciclos CPU
100 MHz
286000
8000
1600
160
16
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.
Conexão
56 Kbit/s
2 Mbit/s
10 Mbit/s
100 Mbit/s
1Gbit/s
Pacotes/s
(20 bytes)
350
12500
62500
625000
6250000
Tempo
disponível
2.86 ms
80 s
16 s
1.6 s
0.16 s
2018, Edgard Jamhour
Exemplos de Hardware: Cisco
• ASA 5505
– 256 MB RAM, CPU Geode 500 MHz
• ASA 5506-X, 5506W-X, 5506H-X
– 4096 MB RAM, CPU Atom C2000 series 1250 MHz,
– 1 CPU (4 cores)
• ASA 5508-X
– 8192 MB RAM, CPU Atom C2000 series 2000 MHz
– 1 CPU (8 cores)
• ASA 5510
– 256 MB RAM, CPU Pentium 4 Celeron 1600 MHz
• ASA 5585-X SSP-60
– 24576 MB RAM, CPU Xeon 5600 series 2400 MHz,
– 2 CPU (24 cores)
2018, Edgard Jamhour
Quiz: os firewalls que vimos até agora ...
A. Podem bloquear um ataque de SYN flood?
B. Podem evitar um ataque “smurf” (broadcast usando o IP da vítima como origem)?
C. Podem evitar um ataque do tipo “SQL injection” ao site PHP da empresa?
D. Podem evitar um ataque do tipo “password dictionary” na porta telnet de uma máquina
interna?
E. Pode bloquear uma tentativa de acesso na porta VNC de um servidor na rede interna?
F. Pode bloquear um vírus em um anexo de um e-mail?
G. Pode impedir que usuários da rede interna tenha acesso a certos endereços IP na
Internet?
2018, Edgard Jamhour
DMZ: Demilitarized Zone
• Também chamada rede de perímetro
• Parte da rede que expõe serviços simultaneamente para
a rede Interna e Externa (usualmente a internet).
2018, Edgard Jamhour
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.
2018, Edgard Jamhour
Exemplo de DMZ
Host
Interno
Internet
Roteador
InternoBastion Host
DMZ - Rede de Perímetro
Rede Interna
Roteador
Externo
2018, Edgard Jamhour
Roteador Interno (Choke Router)
• Protege a rede interna.
• Altamente restritivo.
• Não permite que computadores externos iniciem
conversa com computadores internos.
Ação
permitir
permitir
negar
Protocolo
....
....
*
IP Origem
interno
*
*
Porta Origem
> 1023
*
*
IP Destino
*
interno
*
Porta Destino
....
> 1023
*
Estado
N, R, E
R, E
*
Direção
Out
In
*
N = New, R = Related, E = Established
EXEMPLO DE REGRAS PARA O CHOKE ROUTER
2018, Edgard Jamhour
Roteador Externo (Access Router)
• Não permite que computadores externos iniciem conversa com
computadores internos.
• Permite que computadores externos iniciem conversa com
computadores na DMZ.
Ação
permitir
permitir
permitir
permitir
negar
Protocolo
....
...
...
...
*
IP Origem
interno
*
*
dmz
*
Porta Origem
> 1023
*
> 1023
*
*
IP Destino
*
interno
dmz
*
*
Porta Destino
*
> 1023
*
> 1023
*
Estado
N,R,E
R,E
N,R,E
N,R,E
*
Direção
Out
In
In
Out
*
EXEMPLO DE REGRAS PARA O ACCESS ROUTER
2018, Edgard Jamhour
Exemplo: DMZ in Single Box
2018, Edgard Jamhour
DMZ com NAT
Hosts Internos
Com IP’s Privados
Internet
Servidor
HTTP/HTTPs
DMZ - Rede de Perímetro
Rede Interna
Roteador
Externo
Servidor
EmailNAT
2018, Edgard Jamhour
INTERNET
Exercício: DMZ com Proxy
• Configure as regras dos filtros de pacotes "I" e "E" para rede abaixo.Permita
que:
– a) hosts internos tenham acesso ao Proxy e ao serviços SMTP e POP3 na DMZ
– b) o proxy tenha acesso a servidores DNS, HTTP e HTTPs na Internet
– c) o servidor de email consulte servidores DNS e troque emails com outros
servidores na Internet via SMTP
– d) os demais acessos são proibidos
192.168.0.0/24
rede interna
DMZ
SMTP (25)
POP3 (110)
200.0.0.2
I E
200.0.0.4
PROXY (3128)
2018, Edgard Jamhour
Auxilio para Configuração do Firewall I
2018, Edgard Jamhour
Auxílio para Configuração do Firewall E
2018, Edgard Jamhour
Next-Generation Firewall (NGFW)
• Terceira geração da tecnologia de firewalls
• Combina as tecnologias convencionais de firewall com
“firewalls de aplicação” utilizando “deep packet inspection”
(DPI)
• Fatos:
– 80% dos novos tipos de ataques procuram explorar fraquezas nas
aplicações
– Firewalls de primeira e segunda geração não conseguem bloquear
pacotes de uma mesma aplicação de forma seletiva.
– Por exemplo: o jogo de simulação FarmVille opera na porta TCP 80.
Como diferenciá-lo de um serviço HTTP?
2018, Edgard Jamhour
NGFW vs Proxy (Gateways de Aplicação)
• Uma alternativa para NGFW são os gateways de aplicação.
– Gateways de aplicação (Proxy) são "statefull": Isto é, eles guardam o
estado das conexões iniciadas pelos clientes.
– Alguns tipos de gateways de aplicação (Proxy) são capazes de
analisar o conteúdo dos pacotes.
– Todavia, são dependentes da aplicação (não funcionam para
aplicações desconhecidas) e tem baixo desempenho.
– Proxies quebram o modelo cliente-servidor
2018, Edgard Jamhour
Application Layer Gateways
• Usualmente
Implementados
como serviços.
• O Gateway de
Aplicação é visto
pelos clientes como
um Servidor.
• Abrem apenas a
porta do cliente
utilizada para fazer
a conexão com o
servidor.
2018, Edgard Jamhour
Application Layer GatewayProblemas de Desempenho
• Quebram o
esquema cliente-
servidor (o proxy
cria uma nova
conexão para
cada cliente).
– O número de
sessões no
Gateway é
duplicado.
– Cada conexão
mantém um
processo no
Proxy.
2018, Edgard Jamhour
NGFW: CheckPoint
• Stateful Inspection: tecnologia desenvolvida pela CheckPoint.
• Implementa o conceito de estado sem criar novas conexões no roteador.
1. Um módulo de software analisa permanentemente o conteúdo dos pacotes
que atravessam o firewall.
2. As informações relevantes dos pacotes são armazenadas em tabelas
dinâmicas para posterior uso.
3. A decisão quanto a passagem ou não de um pacote leva em conta o
conteúdo de pacotes anteriormente trocados na mesma conexão.
2018, Edgard Jamhour
Stateful Inspection
• Analisa o conteúdo dos pacotes sem quebrar o modelo cliente servidor.
• A informação de estado é capturada quando o pacote através o firewall e armazenadas em tabelas dinâmicas.
2018, Edgard Jamhour
NGFW: O que podem fazer?
• Além das informações de portas, as informações de conteúdo também são
utilizadas pelo Firewall.
• Normalmente, apenas os protocolos mais comuns são analisados.
– HTTP: Permite Filtrar:
• Métodos de acesso (GET, POST), URLs ("*.sk"), etc
• TAGS em HTML com referências a Applets em Java ou Objetos Active X.
• Download de certos tipos MIME.
– FTP: Permite Filtrar
• Comandos específicos (PUT, GET), Nomes de Arquivo
• Pode disparar antivirus para verificação de arquivos.
– SMTP: Permite criar regras de Filtragem baseadas
• Nos campos FROM e TO
• Tipo MIME
• Etc.
2018, Edgard Jamhour
NGFW: O que podem fazer?
• Criar regras de filtragem baseados na identidade do usuário ao invés
do endereço IP.
• O usuário pode acessar ao serviço independentemente do
computada dor ou da rende em que estiver.
• Esta tecnologia só é possível para firewalls "Stateful“ pois é criar
regras dinâmicamente.
• Três métodos são usualmente disponíveis:
– User Authentication (transparente)
– Session Autentication
– Mapeamento Transparente do Usuário em Endereço
2018, Edgard Jamhour
Integração com Métodos de Autenticação
• User Authentication (transparente)
– Permite a usuário remoto acessar um serviço da rede independente
do seu IP.
– O firewall reconhece o login do usuário analisando o conteúdo dos
protocolos FTP, HTTP, TELNET e RLOGIN.
• Session Authentication
– Quando o usuário tenta acessar um serviço da rede o Firewall envia
para o cliente um pedido de login (challange message).
– O cliente deve ter um software especial para confirmar a senha.
– Só então o acesso é permitido (ou negado).
2018, Edgard Jamhour
Integração com Métodos de Autenticação
• Mapeamento Transparente entre Usuário e Endereço
– O Firewall captura mensagens DHCP enviadas para os hosts.
– O Firewall captura as mensagens de login trocadas entre o usuário e o
servidores de domínio da rede.
• CHECK POINT, por exemplo, suporta as mensagens do Windows.
• O usuário não se loga no Firewall, o sucesso do login é identificado pelo
Firewall também capturando as mensagens do servidor.