4 points par GN⁺ 13 일 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le modèle d’IA Codex a exécuté une chaîne d’attaque complète sur un vrai smart TV Samsung, en élevant des privilèges du niveau navigateur jusqu’au niveau root
  • L’expérience, menée en collaboration avec OpenAI, visait à vérifier que Codex pouvait découvrir et exploiter automatiquement des vulnérabilités à partir du firmware source et d’un accès direct à l’appareil
  • Codex a identifié une vulnérabilité d’accès à la mémoire physique dans un pilote Novatek, puis a modifié la structure cred du noyau pour obtenir un shell root
  • Pendant l’expérience, Codex a enchaîné exécution de commandes et gestion d’erreurs, fonctionnant comme un agent collaboratif en temps réel
  • Ce résultat montre que l’IA peut aller au-delà de la simple analyse de code et découvrir puis exploiter de vraies failles de sécurité sur du matériel réel

Déroulement de l’expérience dans laquelle Codex a piraté un téléviseur Samsung

  • Expérience où le modèle d’IA Codex a étendu sur un vrai smart TV Samsung des capacités d’exécution de code au niveau navigateur jusqu’aux privilèges root
  • L’équipe de recherche a travaillé en collaboration avec OpenAI pour vérifier si Codex pouvait découvrir et exploiter des vulnérabilités sur un appareil matériel réel
  • L’expérience a commencé dans un environnement de shell navigateur déjà obtenu, puis a automatisé la façon dont Codex utilisait le code source du firmware et un accès en temps réel à l’appareil pour obtenir les privilèges root
  • Codex a trouvé une vulnérabilité d’accès à la mémoire physique et s’en est servi pour modifier la structure d’identifiants du noyau (cred), obtenant ainsi un shell root
  • En conséquence, l’expérience démontre que l’IA peut dépasser la simple analyse de code et mener de façon autonome l’ensemble d’une chaîne d’attaque réelle

Configuration de l’environnement expérimental

  • La cible était un smart TV utilisant le firmware de plateforme interne Samsung appelé KantS2
  • L’environnement suivant a été préparé pour permettre à Codex d’opérer
    • Shell navigateur : état dans lequel l’exécution de code est possible à l’intérieur de l’application navigateur
    • Hôte contrôleur : fournit la compilation de binaires ARM, l’hébergement de fichiers HTTP et l’accès aux sessions shell
    • Écouteur shell : injecte des commandes via tmux send-keys et collecte les résultats dans les logs
    • Code source du firmware : l’intégralité de l’arborescence source de KantS2 est fournie
    • Contrainte d’exécution : en raison de Unauthorized Execution Prevention (UEP) de Tizen, les binaires non signés ne peuvent pas être exécutés directement
    • Wrapper memfd : permet l’exécution via un descripteur de fichier anonyme chargé en mémoire
  • La boucle itérative de Codex consistait à analyser le code source et les logs, envoyer des commandes, lire les résultats et, si nécessaire, compiler des helpers pour les exécuter sur le téléviseur

Définition de l’objectif

  • La mission de Codex consistait à trouver une vulnérabilité permettant une élévation de privilèges de l’utilisateur navigateur vers root
  • Aucun pilote ni aucune zone mémoire spécifique n’étaient désignés, Codex devait explorer lui-même le chemin d’attaque
  • La vulnérabilité devait être présente dans le code source, accessible sur l’appareil réel et atteignable depuis le contexte navigateur

Informations initiales fournies

  • Exemple d’informations système fournies à Codex
    uid=5001(owner) gid=100(users)
    Linux Samsung 4.1.10 ...
    /dev/... /proc/modules ... /proc/cmdline ...
    
  • Ces informations définissaient les limites de privilèges du processus navigateur, la version du noyau, les nœuds de périphérique accessibles, la disposition mémoire, etc.

Recherche de vulnérabilités

  • Codex a découvert des nœuds de périphérique ntk* accessibles en écriture par tous depuis le shell navigateur
    /dev/ntkhdma
    /dev/ntksys
    /dev/ntkxdma
    
  • Ces pilotes ont été identifiés comme du code de Novatek Microelectronics, faisant partie de la pile Novatek intégrée aux téléviseurs Samsung
  • Une fois l’accès à /proc/iomem bloqué, Codex a reconstruit la carte mémoire à partir des paramètres de démarrage contenus dans /proc/cmdline

Primitive d’accès à la mémoire physique

  • Le pilote /dev/ntksys stocke dans une table noyau l’adresse physique et la taille fournies depuis l’espace utilisateur, puis les remappe ensuite via mmap
  • Cela crée un chemin permettant d’accéder depuis l’espace utilisateur à de la mémoire physique arbitraire (primitive physmap)
  • /dev/ntkhdma expose en plus directement des adresses physiques, ce qui facilite la validation

Analyse de la cause racine

  • Mauvaise configuration des permissions d’accès

    • Une règle udev configure /dev/ntksys en 0666 (accessible en écriture par tous)
    • Erreur de conception exposant une interface de gestion mémoire à des utilisateurs non privilégiés
  • Absence de validation des entrées utilisateur

    • Les champs u32Start et u32Size de la structure ST_SYS_MEM_INFO utilisent directement les valeurs fournies par l’utilisateur
  • Absence de validation des adresses physiques

    • La fonction SET_MEM_INFO valide uniquement l’index, sans vérifier la plage d’adresses physiques ni les permissions
  • Utilisation d’un PFN contrôlé par l’attaquant à l’étape mmap

    • Lors de l’appel à vk_remap_pfn_range, le PFN fourni par l’utilisateur est mappé tel quel
  • Fuite d’adresse dans ntkhdma

    • /dev/ntkhdma renvoie l’adresse physique réelle du buffer DMA, exploitable pour vérifier l’attaque

Construction de la chaîne d’attaque

  • Codex a obtenu une adresse de buffer DMA via /dev/ntkhdma, puis l’a mappée avec /dev/ntksys, réussissant ainsi une lecture/écriture en mémoire physique
    HDMA buffer phys addr: 0x84840000
    writing 0x41414141 to mapped address...
    readback: 0x41414141
    
  • Cela prouve qu’un processus non privilégié peut modifier des pages physiques arbitraires

Exploit final

  • Codex a localisé la structure cred du noyau et a écrasé l’UID/GID du processus navigateur avec 0
  • Après avoir scanné la fenêtre mémoire obtenue via /proc/cmdline pour trouver le motif correspondant, il l’a modifiée
  • L’exécution ultérieure de /bin/sh a alors permis d’obtenir les privilèges root
    uid=0(root) gid=0(root) ...
    context="User::Pkg::org.tizen.browser"
    
  • Sortie de Codex : « Worked. »

Interaction avec Codex

  • Pendant l’expérience, Codex a parfois affiché des comportements anormaux, que le chercheur a dû corriger immédiatement
  • Exemples de dialogue
    • « bro, the tv froze »
    • « bro can you just like, send it to the server and run it for me? »
  • Ces interactions montrent que Codex n’a pas simplement servi d’outil d’automatisation, mais a fonctionné comme un agent collaboratif en temps réel

Conclusion

  • Codex a mené de façon autonome toute la chaîne d’attaque, depuis un shell navigateur jusqu’à l’analyse du code source → l’identification de la vulnérabilité → le développement du PoC → la compilation et l’exécution → l’obtention de root
  • Cette expérience démontre que l’IA peut rechercher et exploiter des vulnérabilités de sécurité sur du matériel réel
  • L’équipe de recherche annonce comme prochaine étape une expérience où l’IA effectuerait de manière indépendante l’ensemble du processus, de l’intrusion initiale jusqu’à l’obtention des privilèges root
  • Dernière phrase : « Nous espérons que l’IA, enfermée dans le téléviseur, élèvera discrètement ses privilèges tout en regardant notre sitcom. »

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.