>> Technologie Électronique >  >> Maison intelligente >> Sécurité domestique

Comment la pagination renforce la sécurité système : Isolation mémoire, contrôle accès et virtualisation

La pagination — schéma gestion mémoire divisant mémoire virtuelle et physique en pages taille fixe — est un primitif sécurité fondamental dans noyaux OS modernes (Linux, Windows, macOS, *BSD, hyperviseurs). Voici comment elle impose la sécurité.

1. Isolation mémoire (Séparation processus)

  • Chaque processus obtient espace d'adressage virtuel privé (ex: 128 To sur x86-64)
  • Tables de pages mappent pages virtuelles → cadres physiques uniquement par processus
  • Processus A ne peut adresser mémoire Processus B — pas de traduction valide
  • Défait : Dépassement tampon → lecture/écriture arbitraire, fuites infos, injection code

2. Permissions niveau page (ACL matérielles)

Chaque Entrée Table Pages (PTE) contient bits :

BitNomFonction sécurité
PPrésentPage mappée ? Si 0 → page fault
R/WLecture/ÉcritureWrite-protect code, données lecture-seule
U/SUtilisateur/SuperviseurAnneau 3 vs Anneau 0 — mémoire noyau protégée
NX/XDNon-exécutableDEP : Pile/tas non-exécutable → stoppe injection code
Dirty/AccessedSuiviCopy-on-write, working set, décisions swap

3. Séparation noyau/espace utilisateur

  • Noyau mappe toute mémoire physique dans moitié haute (ffff8000`00000000+)
  • Processus utilisateur mappent seulement leurs pages dans moitié basse
  • Bit U/S = 0 pour pages noyau → accès mode utilisateur = page fault (#PF) → SIGSEGV / BSOD
  • KPTI (Kernel Page Table Isolation) atténue Meltdown en démappant noyau en mode utilisateur

4. Containment dépassement tampon

  • Dépassement pile écrase pages pile adjacentes → tombe sur page garde (P=0) → #PF
  • Dépassement tas : Métadonnées allocateur dans pages séparées, peuvent être lecture-seule
  • ASLR + Pagination = adresses base randomisées par mapping — exploits nécessitent fuite info d'abord

5. Page faults comme télémétrie sécurité

  • #PF sur page NX → tentative exécution code sur données (shellcode, ROP)
  • #PF sur page U/S=0 → processus utilisateur touchant mémoire noyau
  • #PF sur page P=0 → accès mémoire libérée/non-mappée (use-after-free)
  • Hyperviseurs/EPP (Intel PT, AMD IBS) tracent #PF pour détection anomalies

6. Virtualisation sécurisée (Second Level Address Translation — SLAT)

  • Intel EPT, AMD RVI, ARM Stage-2 : Physique invité → Physique hôte
  • Hyperviseur contrôle les deux niveaux tables pages
  • Évasion VM nécessite casser deux couches traduction + validation hyperviseur
  • Chiffrement mémoire (SEV-SNP, TDX) ajoute clés chiffrement par VM dans tables pages

7. Fonctionnalités durcissement avancées

  • Bit WP (Write Protect) dans CR0 : Noyau force lecture-seule sur ses propres pages
  • SMEP/SMAP : CPU bloque exécution/accès noyau pages utilisateur
  • PKU (Protection Keys Userspace) : 16 domaines, registre par thread (PKRU)
  • MTE (Memory Tagging Extension, ARMv8.5+) : Tags 4 bits dans octet poids fort pointeur + granule

Résumé

La pagination transforme la mémoire physique (partagée, non protégée) en mémoire virtuelle (isolée, permissionnée, auditable). C'est la fondation matérielle pour : isolation processus, moindre privilège, DEP, ASLR, KPTI, virtualisation, et sécurité mémoire. Sans pagination, modèles sécurité modernes s'effondrent.

Sécurité domestique