>> Tecnologia Eletrônica >  >> Casa Inteligente >> Segurança Residencial

Como Paginação Melhora Segurança do Sistema: Isolamento Memória, Controlo Acesso e Virtualização

Paginação — o esquema de gestão memória dividindo memória virtual e física em páginas tamanho fixo — é um primitivo de segurança fundamental em kernels OS modernos (Linux, Windows, macOS, *BSD, hypervisors). Eis como impõe segurança.

1. Isolamento Memória (Separação Processos)

  • Cada processo obtém espaço endereço virtual privado (ex: 128 TB em x86-64)
  • Page tables mapeiam páginas virtuais → frames físicos unicamente por processo
  • Processo A não consegue endereçar memória Processo B — nenhuma tradução válida existe
  • Derrota: Buffer overflow → leitura/escrita arbitrária, info leaks, injeção código

2. Permissões Nível Página (ACLs Hardware-Enforced)

Cada Page Table Entry (PTE) contém bits:

BitNomeFunção Segurança
PPresentPágina mapeada? Se 0 → page fault
R/WLeitura/EscritaWrite-protect código, dados read-only
U/SUtilizador/SupervisorRing 3 vs Ring 0 acesso — memória kernel protegida
NX/XDNo-eXecuteDEP: Stack/heap não-executável → para injeção código
Dirty/AccessedRastreioCopy-on-write, working set, decisões swap

3. Separação Kernel/Espaço Utilizador

  • Kernel mapeia toda memória física na metade alta (ffff8000`00000000+)
  • Processos utilizador mapeiam apenas as suas páginas na metade baixa
  • Bit U/S = 0 para páginas kernel → acesso user-mode = page fault (#PF) → SIGSEGV / BSOD
  • KPTI (Kernel Page Table Isolation) mitiga Meltdown ao desmapear kernel em user mode

4. Contenção Buffer Overflow

  • Stack overflow sobrescreve páginas stack adjacentes → atinge guard page (P=0) → #PF
  • Heap overflow: Metadados alocador em páginas separadas, podem ser read-only
  • ASLR + Paginação = endereços base randomizados por mapping — exploits precisam info leak primeiro

5. Page Faults Como Telemetria Segurança

  • #PF em página NX → execução código tentada em data (shellcode, ROP)
  • #PF em página U/S=0 → processo utilizador toca memória kernel
  • #PF em página P=0 → acesso memória libertada/não mapeada (use-after-free)
  • Hypervisors/EPP (Intel PT, AMD IBS) rastreiam #PF para deteção anomalias

6. Virtualização Segura (Second Level Address Translation — SLAT)

  • Intel EPT, AMD RVI, ARM Stage-2: Guest physical → Host physical
  • Hypervisor controla ambos níveis page table
  • VM escape requer quebrar duas camadas tradução + validação hypervisor
  • Encriptação memória (SEV-SNP, TDX) adiciona chaves encriptação por-VM em page tables

7. Funcionalidades Hardening Avançadas

  • Bit WP (Write Protect) no CR0: Kernel impõe read-only nas suas próprias páginas
  • SMEP/SMAP: CPU bloqueia execução/acesso kernel de páginas utilizador
  • PKU (Protection Keys for Userspace): 16 domínios, registo por-thread (PKRU)
  • MTE (Memory Tagging Extension, ARMv8.5+): Tags 4-bit no byte superior do ponteiro + granule

Resumo

Paginação transforma memória física (partilhada, desprotegida) em memória virtual (isolada, permissionada, auditável). É a fundação hardware para: isolamento processos, menor privilégio, DEP, ASLR, KPTI, virtualização, e segurança memória. Sem paginação, modelos segurança modernos colapsam.