Table des matières
VFS Interception Architecture
GrapheneOS Permission Scopes intercepte les appels système avant que les interfaces IPC héritées n’atteignent la couche matérielle. Android de base accorde un accès binaire sans condition. GrapheneOS remplace ce mécanisme au niveau du système de fichiers virtuel (VFS), interceptant la transaction Binder avant qu’elle n’atteigne la routine d’allocation de descripteur de fichier sous-jacente pour empêcher tout accès non autorisé. Les opérations non autorisées reçoivent des tableaux virtuels de longueur nulle, renvoyant ENOENT au niveau de la couche proxy Binder.
Sous GrapheneOS Permission Scopes, le flux d’exécution n’atteint jamais de vrais descripteurs de fichiers. Le noyau accroche le syscall sous-jacent. L’isolation du sandbox reste intacte. Toute tentative explicite de contourner le validateur de périmètre actif renvoie EACCES avant que la transaction Binder ne soit écrite dans la file d’attente du pilote.

Binder IPC Proxy Validation
Les applications demandent des données via ContentProvider. Sous Android de base, les autorisations évaluent les bits d’exécution. GrapheneOS intercepte ce chemin IPC au niveau du framework, validant les identifiants d’appelants entrants par rapport aux règles d’exécution actives avant d’injecter une implémentation d’interface nulle dans l’espace mémoire du processus client. L’application reçoit une structure de réponse valide entièrement remplie de pointeurs de jeux de données vides.
Tracez directement l’interface du pilote noyau. Les appels IPC traversent /dev/binder à l’aide d’appels ioctl. Android standard s’appuie sur les identifiants du processus appelant, en vérifiant spécifiquement les métadonnées UID et PID attachées au paquet mémoire Parcel entrant. GrapheneOS injecte des crochets d’interception d’exécution dans la couche proxy du framework avant que le contenu du paquet ne subisse une sérialisation mémoire. Cela outrepasse la logique de routage standard qui permettrait autrement à des contextes UID non privilégiés de lire directement les données brutes des contacts depuis la base SQLite. Le pilote noyau traite un en-tête de transaction valide contenant un corps nul, coupant ainsi l’extraction de données sans déclencher de signal de faute matériel.
Les Storage Scopes appliquent des limites d’isolation strictes. Les frameworks hérités s’appuient sur des vérifications SELinux combinées aux groupes de permissions Unix pour restreindre les opérations de lecture. Lorsqu’un processus en sandbox émet un appel système openat() ciblant des chemins restreints comme /data/data/com.example/databases/, la logique du noyau redirige la requête vers un nœud factice dynamique isolé qui ne renvoie aucune référence d’i-nœud valide. L’exploitation de GrapheneOS Permission Scopes garantit que l’application appelante reçoit immédiatement un code d’erreur EACCES ou un descripteur de fichier vide falsifié, neutralisant complètement le crawling non autorisé.
System Execution Matrix
| Execution Vector | Stock Android Baseline | GrapheneOS Permission Scopes |
|---|---|---|
| Contact Access Request | Exposes full SQLite contacts database | Returns virtualized empty Cursor handle |
| Storage Read Call | Grants VFS access to shared storage | Isolates process to user-defined VFS node |
| IPC Binder Intercept | Passes UID without secondary filtering | Validates scope map before driver write |
| Syscall Path Traversal | Evaluates standard SELinux MAC context | Injects dynamic FUSE mount returning ENOENT |
Considérez une fuite via un SDK d’analyse. Le SDK déclenche des lectures sur ContactsContract.Contacts.CONTENT_URI. Sur un système standard, des autorisations valides exposent l’intégralité de la table à la mémoire client. En tirant parti de GrapheneOS Permission Scopes, le framework intercepte la requête, valide les règles actives et renvoie une instance MatrixCursor vide ne contenant aucun enregistrement pour empêcher toute énumération. Le thread d’exécution continue normalement.
Ce modèle d’isolation fonctionne sans lever d’exceptions non gérées afin d’éviter les plantages d’applications. L’application croit que sa requête a réussi, alors qu’aucune donnée ne quitte l’espace mémoire localisé.
Les ingénieurs déployant des infrastructures renforcées s’appuient sur la documentation GrapheneOS pour auditer ces routines d’isolation. Associer la virtualisation du système d’exploitation à des points de terminaison matériels dédiés tels que GrapheneOS sur Pixel 10 établit une frontière client Zero Trust vérifiée lorsque GrapheneOS Permission Scopes est actif.


