1 points par GN⁺ 2025-03-10 | 1 commentaires | Partager sur WhatsApp

Les problèmes des noyaux monolithiques

  • Les systèmes d’exploitation modernes se divisent généralement en deux grands domaines de protection :
    • Domaine non privilégié (mode utilisateur) : les programmes ne peuvent pas effectuer directement des opérations sensibles comme l’accès aux fichiers ou les communications réseau
    • Domaine privilégié (mode noyau) : lorsqu’un programme demande au noyau d’exécuter une opération via un appel système, le code du noyau l’exécute puis renvoie le résultat en mode utilisateur
  • La plupart des systèmes d’exploitation utilisent une architecture de noyau monolithique :
    • le noyau dispose d’un accès illimité à tout le matériel, à la mémoire et aux données utilisateur du système
    • cela fonctionnerait bien si les logiciels étaient sans défauts et s’il n’existait aucune tentative de compromission, mais en pratique il y a des bugs et des vulnérabilités de sécurité
    • comme les noyaux monolithiques sont volumineux, la probabilité de vulnérabilités est plus élevée, et une seule faille peut compromettre l’ensemble du système
  • L’architecture microkernel renforce la sécurité en retirant la plupart des fonctions du noyau pour les exécuter dans des processus séparés non privilégiés :
    • la sécurité peut être renforcée
    • mais cela peut entraîner une baisse des performances et une augmentation de la complexité du logiciel applicatif
    • malgré cela, les noyaux monolithiques restent largement utilisés en raison de leurs avantages en performances
  • Le noyau XNU d’Apple :
    • noyau commun utilisé par iOS, macOS, tvOS, visionOS et watchOS
    • il repose sur un microkernel Mach, mais comme la plupart des fonctions système s’exécutent dans le même périmètre privilégié, il se comporte en pratique comme un noyau monolithique
    • il est donc exposé aux mêmes vulnérabilités de sécurité qu’un noyau monolithique

Efforts d’isolation

  • Diverses technologies d’isolation logicielles et matérielles ont été introduites :
    • Microsoft Virtualisation-based Security (VBS) – utilisée dans Credential Guard de Windows
    • Intel Software Guard Extension (SGX) et VT-X2
    • ARM TrustZone – utilisé dans Samsung Knox, Samsung Pay, Android Verified Boot, la saisie sécurisée de code PIN sur Android, etc.

Apple a lui aussi progressivement élargi ses tentatives de séparation des données hors du noyau

  • 2013 — Apple Secure Enclave

    • introduit pour la première fois sur l’iPhone 5s en 2013
    • Secure Enclave fonctionne sur un cœur CPU durci indépendant, avec SepOS, un OS basé sur un microkernel
      • le noyau de SepOS utilise cL4, le microkernel embarqué L4 personnalisé d’Apple
      • il stocke et protège des données sensibles comme les clés de chiffrement et les informations biométriques (par ex. Face ID)
      • il fonctionne indépendamment du noyau iOS et ne fournit des services à iOS qu’au travers d’interactions sécurisées
      • même si le noyau iOS est compromis, Secure Enclave n’est pas affecté sauf en cas d’exploit supplémentaire
    • attention, Secure Enclave et Secure Exclave sont deux concepts différents
  • 2017 — Page Protection Layer (PPL)

    • fonctionnalité de sécurité introduite avec le processeur A11 des iPhone 8 et iPhone X
    • mécanisme matériel + logiciel qui n’accorde les droits de modification des tables de pages qu’à certaines parties du noyau
      • le reste du noyau est limité pour la modification des tables de pages
      • la surface d’attaque est réduite, ce qui rend les contournements plus rares
    • le PPL a ajouté une couche de protection, mais la majorité des privilèges du noyau restait intacte, ce qui limitait le renforcement complet de la sécurité
  • 2021–2023 — Secure Page Table Monitor (SPTM)

    • nouvelle fonctionnalité introduite avec le processeur A15 de l’iPhone 13 et iOS 17
    • elle remplace PPL, protège des fonctions mémoire supplémentaires et les sépare en plusieurs sous-systèmes
    • elle renforce la sécurité via la vérification de signature de code et l’exécution exclusive de code signé par Apple
    • c’est à cette période que le code source de XNU commence à contenir des références indirectes à exclave
      • ce qui a conduit à l’hypothèse que les sous-systèmes gérés par SPTM pourraient être des exclaves
  • 2024 — Exclaves : refonte majeure du modèle de sécurité de XNU

    • le concept d’exclave apparaît dans le code source de XNU prenant en charge les processeurs M4 et A18
    • les exclaves ne sont pas activés sur les processeurs précédents
    • il devient clair que les exclaves sont le résultat d’une refonte majeure du modèle de sécurité de XNU
  • Exclaves de XNU

    Avertissement : la structure interne des exclaves n’est pas entièrement open source, donc certains éléments peuvent relever de la supposition ou de l’interprétation

    • les exclaves constituent un nouvel ensemble de fonctionnalités qui renforcent fortement le modèle de sécurité historique à noyau monolithique de XNU
    • les exclaves sont des ressources isolées de XNU, protégées même si le noyau est compromis
    • caractéristiques des exclaves :
      • elles sont prédéfinies lors de la compilation de l’OS
      • elles sont identifiées par un nom ou un ID
      • elles existent en plusieurs types
      • elles sont initialisées au démarrage
      • elles sont organisées en domaines indépendants
      • SPTM protège la mémoire des exclaves avec un nouveau type de page dédié aux exclaves
    • types de ressources d’exclave
      • buffers mémoire partagés – accessibles à la fois par le noyau et par les exclaves
        • configurables dans XNU en lecture seule ou en lecture/écriture
      • buffers audio et capteurs – renforcent la sécurité des indicateurs d’accès à la caméra et au micro
      • Conclave – regroupe plusieurs ressources dans son propre domaine de sécurité, avec un Conclave Manager pour les administrer
      • services – exécutent du code dans l’exclave lorsqu’ils sont appelés par des threads de XNU
  • Noyau sécurisé — basé sur seL4 ?

    • un nouveau noyau, le Secure Kernel (SK), a été introduit pour permettre l’exécution indépendante des services d’exclave par rapport à XNU
    • une chaîne de version « cL4 » a été repérée dans le fichier image de SK
    • il est probable que SK repose sur seL4 plutôt que sur le noyau cL4 (basé sur L4) déjà utilisé par Apple
      • les structures IPC utilisées par XNU pour communiquer avec SK ressemblent à celles de seL4
      • de nombreuses chaînes utilisées dans SK reprennent des concepts présents dans seL4 (par ex. capabilities, frames, untyped memory, etc.)
    • l’adhésion d’Apple à la seL4 Foundation en avril 2024 n’est peut-être pas un hasard
      • le noyau du processeur C1 (la nouvelle puce baseband d’Apple) semble lui aussi basé sur L4
  • Monde sécurisé — ARM TrustZone ?

    • SepOS s’exécute sur un processeur séparé, tandis que SK s’exécute sur le processeur d’application haute performance
    • cela nécessite un niveau de privilège processeur supplémentaire, qui pourrait être mis en œuvre via l’un des mécanismes suivants :
      • prise en charge des extensions de virtualisation
      • extension SPTM propre à Apple
      • l’usage de la technologie ARM TrustZone semble le plus probable
    • architecture de TrustZone
      • le système est séparé en deux mondes :
        • Secure World – exécution du code sécurisé
        • Insecure World – exécution du code normal (XNU et iOS)
      • le code source de XNU contient de nombreuses références aux transitions entre Secure World et Insecure World de TrustZone
        • Apple applique le modèle de service d’exclave plutôt que le Trusted Application model proposé par TrustZone
      • SK fournit des services et des ressources d’exclave dans un environnement isolé, ce qui renforce la sécurité
        • il serait extrêmement difficile de s’échapper de Secure World vers Insecure World pour compromettre XNU
    • RINGGATE
      • Apple pourrait utiliser SPTM pour gérer les transitions Secure World ↔ Insecure World
      • dans le code, cette transition est désignée sous le nom de "RINGGATE"

Conclusion

  • Ce que signifie l’introduction des exclaves
    • pour répondre aux attaques persistantes d’acteurs de menace avancés, Apple a introduit les exclaves afin de renforcer le niveau de sécurité du système d’exploitation
    • en isolant les ressources sensibles, les effets attendus sont les suivants :
      • réduction de la surface d’attaque
      • réduction de l’impact d’une vulnérabilité unique du noyau
  • défendre un noyau monolithique est un défi sans fin, et les exclaves représentent une approche parmi d’autres pour y répondre
    • il reste incertain de savoir s’il s’agit de la bonne direction à long terme ou d’une solution transitoire
    • souhait personnel → espérer à l’avenir une refonte basée sur CHERI et ARM Morello 😊
    • mais pour l’instant, c’est la tentative de défense la plus ambitieuse parmi les fabricants d’appareils grand public
  • cet article n’explique pas précisément quels composants ont été déplacés dans les exclaves
    • d’après les images de build, les éléments suivants semblent s’exécuter dans les exclaves :
      • indicateurs sécurisés de caméra/micro
      • une partie des fonctions de l’Apple Neural Engine (ANE)
      • certains pilotes de périphériques
      • les composants de communication avec Secure Enclave
  • d’autres composants pourraient à l’avenir être transférés dans les exclaves
    • l’efficacité sécuritaire des exclaves dépendra du niveau d’optimisation de ces migrations
  • les exclaves pourraient être utilisées dans l’infrastructure Apple Private Cloud Compute
    • avec la possibilité d’assurer un haut niveau de sécurité et de confidentialité pour l’IA dans le cloud

1 commentaires

 
GN⁺ 2025-03-10
Avis Hacker News
  • Les derniers SoC d’Apple prennent en charge la virtualisation imbriquée, et sur l’iPad Pro M4, un exclave est utilisé pour la LED de la caméra
    • On espère que la prochaine révision du guide Apple Platform Security abordera l’exclave SK et les atténuations en bande de base pour la détection radar Wi‑Fi
  • Apple a apporté des ajouts spécifiques à SPTM
    • XNU est en cours de refactorisation vers une architecture inspirée des microkernels, afin de réduire la base de code et d’isoler les tâches sensibles pour la sécurité
    • L’isolation de l’espace mémoire est assurée avec l’aide du Secure Page Table Monitor (SPTM)
    • Les tâches sensibles pour la sécurité, comme la signature de code, la vérification des autorisations, le mode développeur et le mode d’exécution restreinte, sont gérées par le Trusted eXecution Monitor (TXM)
  • Il est très probable que cela passe par la technologie TrustZone d’ARM
    • Le code source de XNU contient plusieurs références à une transition vers le concept de monde sécurisé de TrustZone
    • Il existe plus de 150 CVE liés à TrustZone
  • Google a implémenté pKVM sur les Pixel il y a quelques années en utilisant la virtualisation matérielle imbriquée, puis a remonté le code dans le mainline de Linux
    • Cependant, aucune fonctionnalité défensive utilisant pKVM/AVF n’a été annoncée en dehors de la VM Debian "Linux Terminal"
  • Steve pensait qu’un ordinateur portable était un journal intime, et estimait en avoir la responsabilité
    • Tim ne serait pas devenu CEO s’il n’avait pas partagé la conviction de Steve
    • Certains disent que Steve leur manque
  • Apple recompose le noyau XNU en exclaves
    • L’auteur de cet article a écrit un texte très élaboré et très bien rédigé
    • En tant que personne qui suit les exclaves, je pense aussi qu’il est bien écrit
  • Je ne suis pas habitué à ce niveau de connaissance, mais je me demande s’il est possible d’attaquer l’enclave elle-même pour obtenir des privilèges supérieurs à ceux du noyau
    • Je me demande si ce matériel est comparable à un coprocesseur
  • Je me demande quel impact cela aura sur la sécurité de macOS
    • D’après la documentation d’Apple, SPTM n’est pas utilisé
    • L’exclave qui affiche actuellement l’indicateur de caméra ne s’applique pas à macOS, mais cela pourrait changer à l’avenir
  • Apple excelle à protéger sa « plantation »
    • Mais qu’est-ce qui nous protège d’eux ?
    • Quelqu’un s’est-il déjà demandé s’il pouvait y avoir un « dernier geohot » ?
  • Apple pourrait utiliser SPTM pour gérer les transitions entre le monde sécurisé et le monde non sécurisé
    • Parce qu’il n’y a pas de TrustZone