Segurança em Redes shield

Visão Geral & Defesas por Camada

info Fundamentos de Segurança em Redes

Segurança em redes garante sigilo, autenticação, não repúdio e controle de integridade contra ameaças como sniffing, spoofing e DoS/DDoS. Atua em todas as camadas OSI, com foco na Camada de Aplicação (DNS, HTTPS, Aula 13) e Camada de Rede (IPsec, NAT). Protege serviços como DNS e DHCP, integrando com DNSSEC e `dnsmasq`.

Referências & Objetivos

  • book Kurose Cap. 8; Tanenbaum § 8
  • lock Entender ameaças (sniffing, spoofing, DDoS) e defesas por camada OSI
  • settings Explorar VPNs, firewalls, DNSSEC, Wireshark, Zero Trust

Segurança por Camada OSI

Camada Defesas & Tecnologias Ameaças Mitigadas
2 – Enlace Filtragem por MAC, Port Security, VLANs, IEEE 802.1X Sniffing, acesso não autorizado
3 – Rede Firewalls (packet filtering), NAT, VPNs (IPsec, GRE) DoS/DDoS, spoofing
4 – Transporte TLS/SSL, Stateful Inspection Sniffing, manipulação de dados
7 – Aplicação HTTPS, SSH, SMTPS, Proxy Reverso, WAF, DNSSEC Spoofing, ataques a aplicações

Exemplo: DNSSEC (Camada 7)

dnssec_test.txt
$ dig +dnssec sigok.verteiltesysteme.net A
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; ANSWER SECTION:
sigok.verteiltesysteme.net. 3600 IN A 139.18.25.36
sigok.verteiltesysteme.net. 3600 IN RRSIG A 8 3 3600 ...
;; Query time: 60 msec

Exemplo: VLAN (Camada 2)

vlan_config.txt
# Configura VLAN 10
$ sudo vconfig add eth0 10
$ sudo ip addr add 192.168.10.1/24 dev eth0.10
$ sudo ip link set eth0.10 up
# Verifica VLANs
$ ip link show
eth0.10@eth0: mtu 1500 qdisc noqueue state UP

Boas Práticas

  • Habilite DNSSEC em resolvedores (dnssec no dnsmasq.conf, Aula 13) e valide com dig +dnssec.
  • Use VLANs para isolar tráfego sensível (ex.: servidores vs. clientes).
  • Configure TLS/SSL com algoritmos fortes (ex.: SHA-256, AES; evite RC4, MD5).
  • Aplique Zero Trust, verificando continuamente usuários e dispositivos.

Resolução de Problemas

  • DNSSEC falha: Teste com dig +trace +dnssec ou servidor alternativo (dig @1.1.1.1).
  • VLAN não funciona: Verifique configuração (ip link show) e suporte no switch.
  • TLS erro: Cheque certificados (openssl s_client -connect example.com:443).

Ameaças em Redes bug_report

Sniffing, Spoofing, DoS/DDoS e Mais

warning Ameaças em Redes

Ameaças em redes comprometem sigilo, autenticação, não repúdio e integridade, afetando serviços como DNS e DHCP (Aula 13). Atacantes exploram vulnerabilidades em camadas OSI (2, 3, 4, 7) para interceptar, falsificar ou interromper comunicações.

Principais Ameaças

Ameaça Descrição Camada OSI Impacto Mitigação
Sniffing Intercepção passiva de tráfego (ex.: Wireshark em Wi-Fi) 2, 7 Violação de sigilo (ex.: captura de HTTP) TLS/SSL, VLANs
Spoofing Falsificação de identidade (IP, ARP, DNS) 2, 3, 7 Man-in-the-middle, redirecionamento DNSSEC, ARP inspection
DoS/DDoS Esgota recursos com tráfego falso (ex.: SYN flood) 3, 4, 7 Interrupção de serviços Firewalls, rate-limiting
Ransomware Criptografa dados, exige resgate (ex.: via phishing) 7 Perda de dados, extorsão WAF, backups

Exemplo: Sniffing com Wireshark

wireshark_sniff.txt
$ sudo wireshark -i eth0 -f "port 80"
[Captura] TCP 192.168.1.100:49152 > 93.184.216.34:80, GET / HTTP/1.1
[Resposta] TCP 93.184.216.34:80 > 192.168.1.100:49152, HTTP/1.1 200 OK

Exemplo: DNS Spoofing Detection

dns_spoof_test.txt
$ dig +dnssec example.com A
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
example.com. 3600 IN RRSIG A 13 2 3600 ...
;; Query time: 50 msec

Exemplo: ARP Spoofing Detection

arp_spoof_test.txt
$ arp -a
gateway.local (192.168.1.1) at aa:bb:cc:dd:ee:ff [ether] on eth0
$ sudo arping -I eth0 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.100 eth0
Unicast reply from 192.168.1.1 [aa:bb:cc:dd:ee:ff] 1.2ms

Exemplo: SYN Flood (DoS)

syn_flood_test.txt
$ sudo hping3 -S -p 80 --flood 192.168.1.10
HPING 192.168.1.10: NO FLAGS are set, 40 headers + 0 data bytes
[Flooding TCP SYN packets to port 80]

Boas Práticas

  • Use TLS/SSL (HTTPS, SMTPS) para proteger contra sniffing.
  • Habilite DNSSEC (dnssec no dnsmasq.conf, Aula 13) contra DNS spoofing.
  • Configure firewalls com rate-limiting para mitigar DoS/DDoS.
  • Monitore tabelas ARP (arp -a) para detectar spoofing.
  • Implemente backups regulares e WAF para prevenir ransomware.

Resolução de Problemas

  • Sniffing detectado: Use Wireshark com filtros (port 80) e habilite TLS.
  • DNS spoofing: Valide com dig +dnssec (busque flag ad).
  • ARP spoofing: Verifique duplicatas com arping ou habilite ARP inspection.
  • DoS/DDoS: Monitore tráfego (tcpdump -i eth0) e aplique iptables.

Defesas por Camada layers

Enlace, Rede, Transporte, Aplicação

router Camada 2 (Enlace)

Defesas na Camada 2 protegem contra sniffing e acesso não autorizado em redes locais.

  • lock Port Security: Limita o número de MACs por porta de switch, bloqueando dispositivos não autorizados.
    switch_config.txt
    switch(config)# interface gigabitEthernet 1/0/1
    switch(config-if)# switchport port-security maximum 1
    switch(config-if)# switchport port-security mac-address sticky
  • vpn_lock VLANs & 802.1X: Segmenta tráfego (VLANs) e autentica dispositivos (802.1X via RADIUS).
    vlan_config.txt
    $ sudo vconfig add eth0 10
    $ sudo ip addr add 192.168.10.1/24 dev eth0.10

settings_ethernet Camada 3 (Rede)

Defesas na Camada 3 filtram tráfego, ocultam redes e estabelecem túneis seguros.

  • shield Firewalls: Filtram pacotes por IP, protocolo e estado (ex.: `iptables`).
    iptables_config.txt
    $ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    $ sudo iptables -A INPUT -p tcp --dport 80 -j DROP
  • sync_alt NAT & Proxy: Ocultam IPs internos (NAT) e controlam acesso (proxy).
  • vpn_key VPNs (IPsec, GRE): Criam túneis seguros entre redes.
    vpn_config.txt
    $ sudo ipsec start
    $ sudo ipsec status
    Security Associations (1 up, 0 connecting):
    ipsec0[1]: ESTABLISHED 10 minutes ago, 192.168.1.100[host1]...192.168.2.100[host2]

dns Camada 4 (Transporte)

Defesas na Camada 4 garantem criptografia e monitoram o estado das conexões.

  • lock_outline TLS/SSL: Criptografa sessões TCP (ex.: HTTPS, SMTPS).
    tls_test.txt
    $ openssl s_client -connect example.com:443
    CONNECTED(00000003)
    depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
    verify return:1
    ...
  • verified_user Stateful Inspection: Monitora o estado das conexões TCP/UDP.

web Camada 7 (Aplicação)

Defesas na Camada 7 protegem protocolos específicos e filtram conteúdo.

  • https HTTPS, SSH, SMTPS: Segurança nativa nos protocolos (ex.: DNSSEC da Aula 13).
  • security Proxy Reverso & WAF: Filtram e inspecionam tráfego HTTP/S.
    nginx_waf.txt
    # Configuração básica de proxy reverso no Nginx
    server {
    listen 80;
    server_name example.com;
    location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    }
    }

Boas Práticas

  • Camada 2: Use Port Security e VLANs para isolar tráfego (ex.: separar IoT de servidores).
  • Camada 3: Configure firewalls com regras específicas (ex.: permitir apenas SSH e HTTPS).
  • Camada 4: Habilite TLS/SSL com cifras fortes (ex.: AES-256, SHA-256).
  • Camada 7: Implemente WAF para proteger aplicações web (ex.: ModSecurity no Nginx).

Resolução de Problemas

  • 802.1X falha: Verifique configuração RADIUS (radiusd -X para debug).
  • Firewall bloqueia tráfego legítimo: Cheque regras (iptables -L -v).
  • TLS handshake erro: Use openssl s_client -connect host:443.
  • WAF falso positivo: Ajuste regras ou use modo de aprendizado.

Simulação de Sniffing visibility

Capturando e Analisando Tráfego

warning O que é Sniffing?

Sniffing é a intercepção passiva de tráfego, comprometendo o sigilo em redes Wi-Fi ou protocolos sem criptografia (ex.: HTTP, DNS, Aula 13). Ferramentas como Wireshark/Tshark capturam pacotes em Camadas 2 e 7, expondo dados sensíveis se não protegidos por TLS ou DNSSEC.

Alvos e Mitigações

Alvo Protocolo/Porta Risco Mitigação
HTTP TCP/80 Captura de dados (ex.: formulários) HTTPS (TLS)
DNS UDP/53 / System: TCP/53 Captura de consultas (ex.: domínios visitados) DNSSEC, DoT (DNS over TLS)
DHCP UDP/67-68 Captura de alocações IP/MAC VLANs, DHCP Snooping
FTP TCP/21 Captura de credenciais SFTP, FTPS

Passos para Simulação com Wireshark

  1. Inicie a captura em modo promíscuo (requer permissões):
    wireshark_start.txt
    $ sudo wireshark -i eth0 -k
  2. Aplique filtros para focar em tráfego relevante:
    • http – Captura requisições HTTP
    • dns – Consultas DNS (Aula 13)
    • tcp.port == 22 – Tráfego SSH
    • ip.src == 192.168.1.10 – Pacotes de um host específico
  3. Analise pacotes:
    • Headers: IPs, portas, flags TCP
    • Payload: Dados não criptografados (ex.: cookies HTTP)
    • TCP Stream: Reconstruir sessões (ex.: “Follow → TCP Stream”)

Exemplo: Captura HTTP com Tshark

tshark_http.txt
$ sudo tshark -i eth0 -Y "http.request" -T fields -e frame.number -e ip.src -e http.host -e http.request.uri
1 192.168.1.100 example.com /index.html
2 192.168.1.100 example.com /login

Exemplo: Captura DNS com Tshark

tshark_dns.txt
$ sudo tshark -i eth0 -Y "dns" -T fields -e ip.src -e dns.qry.name
192.168.1.100 example.com
192.168.1.100 www.google.com

Boas Práticas

  • Capture apenas em redes autorizadas com permissões explícitas.
  • Use TLS/SSL (HTTPS, SMTPS) e DNSSEC (dnsmasq.conf, Aula 13) para proteger dados.
  • Configure VLANs para isolar tráfego sensível (ex.: servidores vs. clientes).
  • Monitore logs do dnsmasq (journalctl -u dnsmasq) para detectar consultas DNS suspeitas.

Resolução de Problemas

  • Sem pacotes capturados: Verifique interface (ip link show) ou modo promíscuo (sudo ifconfig eth0 promisc).
  • Erro de permissão: Execute com sudo ou adicione usuário ao grupo wireshark.
  • Tráfego criptografado: Confirme protocolo (ex.: tcp.port == 443 para HTTPS).
  • Filtros inválidos: Teste filtros simples (dns, http) antes de complexos.

VPNs, TLS/SSL & DNS vpn_key

OpenVPN, WireGuard, IPsec & Resolvers

lock Proteção com VPNs, TLS/SSL & DNS

VPNs (IPsec, OpenVPN, WireGuard) garantem sigilo e autenticação em Camada 3/4, enquanto TLS/SSL protege Camada 4/7 (ex.: HTTPS). DNS, vulnerável a spoofing e sniffing (Aula 13), é segurado por DNSSEC e DoT, integrando com `dnsmasq` para resolução local.

Comparação de Tecnologias

Tecnologia Camada OSI Características Mitiga
IPsec 3 (Rede) Túnel/transporte, autenticação, criptografia Sniffing, spoofing
OpenVPN 4/7 TLS sobre UDP/TCP, flexível Sniffing, MITM
WireGuard 3/4 Chave pública, alta performance Sniffing, MITM
TLS/SSL 4/7 Criptografia, integridade (ex.: HTTPS) Sniffing, manipulação
DNSSEC/DoT 7 (Aplicação) Assinaturas digitais, DNS criptografado Spoofing, sniffing

Exemplo: Configuração de WireGuard

wg0.conf
[Interface]
PrivateKey =
Address = 10.0.0.2/24
[Peer]
PublicKey =
Endpoint = 192.168.1.1:51820
AllowedIPs = 0.0.0.0/0
$ sudo wg-quick up wg0

Exemplo: Verificação TLS/SSL

tls_test.txt
$ openssl s_client -connect example.com:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co.
verify return:1
Server certificate: CN=*.example.com

Exemplo: DNSSEC com Public Resolver

dnssec_test.txt
$ dig @8.8.8.8 +dnssec sigok.verteiltesysteme.net A
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2
;; ANSWER SECTION:
sigok.verteiltesysteme.net. 3600 IN A 139.18.25.36
sigok.verteiltesysteme.net. 3600 IN RRSIG A 8 3 3600 ...

Boas Práticas

  • Use WireGuard ou OpenVPN com chaves fortes e cifras modernas (ex.: AES-256).
  • Habilite DNSSEC em resolvers (dnssec no dnsmasq.conf, Aula 13).
  • Prefira DoT (DNS over TLS) em resolvers como 1.1.1.1 para criptografia.
  • Configure TLS com cifras seguras (ex.: ECDHE-RSA-AES256-GCM-SHA384).
  • Implemente Zero Trust, verificando continuamente usuários e dispositivos.

Resolução de Problemas

  • VPN não conecta: Verifique chaves (wg show) ou logs (journalctl -u openvpn).
  • DNS falha: Teste resolver (dig @8.8.8.8 example.com) ou DNSSEC (dig +dnssec).
  • TLS erro: Cheque certificados (openssl s_client -connect host:443).

Firewalls: iptables & ipfw security

Filtragem de Pacotes e Proteção de Serviços

shield O que são Firewalls?

Firewalls filtram tráfego em Camada 3 (pacotes) e Camada 7 (aplicações), protegendo sigilo, autenticação, e integridade. Mitigam DoS, spoofing, e acesso não autorizado, protegendo serviços como DNS e DHCP (Aula 13).

Comparação: iptables vs. ipfw

Ferramenta Sistema Camada OSI Características Mitiga
iptables Linux 3, 4 Filtragem, NAT, stateful inspection DoS, spoofing
ipfw FreeBSD/macOS 3, 4 Filtragem, regras numeradas DoS, acesso não autorizado
WAF Qualquer 7 Inspeção de conteúdo HTTP/S Ataques web, XSS

Exemplo: iptables (Linux)

iptables_config.txt
# Bloquear tudo, liberar loopback e SSH $ sudo iptables -P INPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# Proteger DNS (Aula 13) $ sudo iptables -A INPUT -p udp --dport 53 -s 192.168.1.0/24 -j ACCEPT
# Listar regras $ sudo iptables -L -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
10 800 ACCEPT all -- lo any anywhere anywhere
5 400 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh state NEW,ESTABLISHED
3 240 ACCEPT udp -- any any 192.168.1.0/24 anywhere udp dpt:domain

Teste iptables (Linux)


#  Bloquear e depois liberar porta 80 (HTTP):
#    Bloquear:
sudo iptables -A OUTPUT -p tcp --dport 80 -j DROP
#    Teste: acesse http://localhost (falha)
#    Liberar:
sudo iptables -D OUTPUT -p tcp --dport 80 -j DROP
    

Exemplo: ipfw (FreeBSD/macOS)

ipfw_config.txt
# Limpar regras $ sudo ipfw -q flush
# Permitir loopback, SSH, DNS $ sudo ipfw add 100 allow ip from 127.0.0.1 to any
$ sudo ipfw add 200 allow tcp from any to any 22
$ sudo ipfw add 300 allow udp from any to any 53
$ sudo ipfw add 65535 deny ip from any to any
# Listar regras $ sudo ipfw list
00100 allow ip from 127.0.0.1 to any
00200 allow tcp from any to any 22
00300 allow udp from any to any 53
65535 deny ip from any to any

Teste ipfw (Linux)


#  Bloquear e depois liberar porta 80:
#    Bloquear:
sudo ipfw add deny tcp from any to any 80
#    Teste: acesse http://localhost (falha)
#    Liberar:
sudo ipfw delete deny tcp from any to any 80
    

Boas Práticas

  • Defina políticas padrão restritivas (DROP) e libere apenas serviços necessários (ex.: SSH, DNS).
  • Use stateful inspection (-m state em iptables) para conexões estabelecidas.
  • Implemente rate-limiting contra DoS (iptables -m limit).
  • Monitore tráfego com logs (iptables -A INPUT -j LOG).
  • Integre WAF (ex.: ModSecurity) para proteger aplicações web (Camada 7).

Resolução de Problemas

  • Tráfego bloqueado: Verifique regras (iptables -L -v, ipfw list).
  • Regras não aplicadas: Confirme ordem e sintaxe (iptables -C, ipfw show).
  • Performance lenta: Reduza regras complexas ou use `nftables` (alternativa moderna).
  • DNS bloqueado: Libere porta 53 (iptables -A INPUT -p udp --dport 53 -j ACCEPT).

Quiz & Dúvidas quiz

Revisão Rápida

1. Qual técnica de ameaça envolve interceptação passiva de pacotes?

a) Spoofing
b) Sniffing
c) DDoS
Resposta correta: Sniffing

2. Spoofing de DNS refere-se a:

a) Inundar o servidor DNS com consultas falsas
b) Retornar respostas DNS falsificadas
c) Roubar credenciais via DNS
Resposta correta: Retornar respostas DNS falsificadas

3. Qual a sequência correta de mensagens no fluxo DHCP?

a) DHCPDISCOVER → DHCPOFFER → DHCPREQUEST → DHCPACK
b) DHCPDISCOVER → DHCPREQUEST → DHCPOFFER → DHCPACK
c) DHCPOFFER → DHCPDISCOVER → DHCPREQUEST → DHCPACK
Resposta correta: DHCPDISCOVER → DHCPOFFER → DHCPREQUEST → DHCPACK

4. Para permitir pacotes de retorno em um firewall stateful com iptables, usamos qual opção?

a) --state NEW,RELATED
b) --state ESTABLISHED,RELATED
c) --state INVALID
Resposta correta: --state ESTABLISHED,RELATED

5. Qual a principal diferença entre modo túnel e modo transporte no IPsec?

a) Túnel encapsula o pacote IP inteiro; transporte protege apenas o payload
b) Túnel protege apenas o payload; transporte encapsula o pacote inteiro
c) Ambos encapsulam o pacote inteiro
Resposta correta: Túnel encapsula o pacote IP inteiro; transporte protege apenas o payload

6. Qual comando bloqueia tráfego de saída TCP na porta 80 com iptables?

a) iptables -A OUTPUT -p tcp --dport 80 -j DROP
b) iptables -A INPUT -p tcp --dport 80 -j DROP
c) iptables -A FORWARD -p tcp --dport 80 -j DROP
Resposta correta: iptables -A OUTPUT -p tcp --dport 80 -j DROP

7. Em FreeBSD, qual comando ipfw exibe a lista de regras?

a) ipfw list
b) ipfw show
c) ipfw rules
Resposta correta: ipfw list

8. O padrão 802.1X é utilizado para:

a) Criptografar VLANs
b) Autenticação de portas em switches
c) Balanceamento de carga
Resposta correta: Autenticação de portas em switches

9. O que significa “stateful inspection” em um firewall de camada 4?

a) Filtrar pacotes sem manter estado
b) Manter estado de conexões para permitir pacotes de retorno
c) Criptografar todo o tráfego TCP
Resposta correta: Manter estado de conexões para permitir pacotes de retorno

10. Qual característica distingue o WireGuard do OpenVPN?

a) Usa TLS sobre UDP
b) Chaves públicas estáticas e implementação em kernel
c) Baseado em IPsec
Resposta correta: Chaves públicas estáticas e implementação em kernel