USB Raw Gadget, un module Linux pour émuler des périphériques USB, est disponible

Andrey Konovalov de Google développe un nouveau module Gadget USB Raw, en permettant émuler des périphériques USB dans l'espace utilisateur. Est en attente ordre d'inclure ce module dans la partie principale du noyau Linux. Gadget USB Raw déjà applique chez Google pour faciliter les tests fuzz de la pile USB du noyau à l'aide d'une boîte à outils Syzkaller.

Le module ajoute une nouvelle interface de programmation au sous-système du noyau Gadget USB et est développé comme alternative à GadgetFS. La création d'une nouvelle API est due à la nécessité d'obtenir un accès direct et de bas niveau au sous-système USB Gadget depuis l'espace utilisateur, lui permettant de traiter toutes les requêtes USB possibles (GadgetFS traite certaines requêtes tout seul, sans les transmettre à l'utilisateur). espace). Le gadget USB Raw est géré via le périphérique /dev/raw-gadget, similaire à /dev/gadget dans GadgetFS, mais l'interaction utilise une interface basée sur ioctl() plutôt qu'un pseudo-FS.

En plus de traiter directement toutes les requêtes USB par un processus dans l'espace utilisateur, la nouvelle interface offre également la possibilité de renvoyer n'importe quelle donnée en réponse à une requête USB (GadgetFS effectue la validation du descripteur USB et filtre certaines réponses, ce qui empêche la détection d'erreurs lors de l'USB. tests de fuzzing de pile). Le Raw Gadget vous permet également de sélectionner un périphérique et un pilote UDC (USB Device Controller) spécifiques à connecter, tandis que GadgetFS se connecte au premier périphérique UDC disponible. Noms prévisibles attribués à différents UDC point final pour séparer différents types de canaux d'échange de données au sein d'un même appareil.

Source: opennet.ru

Ajouter un commentaire