USB Raw Gadget, ein Linux-Modul zur Emulation von USB-Geräten, ist verfügbar

Andrey Konovalov von Google entwickelt ein neues Modul USB Raw-Gadget, erlauben Emulieren Sie USB-Geräte im Benutzerbereich. Steht noch aus bestellen um dieses Modul in den Hauptteil des Linux-Kernels einzubinden. USB Raw Gadget bereits gilt bei Google, um Fuzz-Tests des USB-Kernel-Stacks mithilfe des Toolkits zu erleichtern syzkaller.

Das Modul fügt dem Kernel-Subsystem eine neue Programmierschnittstelle hinzu USB-Gadget und wird als Alternative zu GadgetFS entwickelt. Die Erstellung einer neuen API ist auf die Notwendigkeit zurückzuführen, vom Benutzerbereich aus einen direkten Low-Level-Zugriff auf das USB-Gadget-Subsystem zu erhalten, der es ihm ermöglicht, alle möglichen USB-Anfragen zu verarbeiten (GadgetFS verarbeitet einige Anfragen selbst, ohne sie an den Benutzer weiterzuleiten). Raum). Das USB Raw Gadget wird über das Gerät /dev/raw-gadget verwaltet, ähnlich wie /dev/gadget in GadgetFS, aber die Interaktion verwendet eine ioctl()-basierte Schnittstelle anstelle eines Pseudo-FS.

Neben der direkten Verarbeitung aller USB-Anfragen durch einen User-Space-Prozess bietet die neue Schnittstelle auch die Möglichkeit, beliebige Daten als Antwort auf eine USB-Anfrage zurückzugeben (GadgetFS führt eine USB-Deskriptorvalidierung durch und filtert bestimmte Antworten, was die Erkennung von Fehlern während USB verhindert Stapel-Fuzzing-Tests). Mit dem Raw Gadget können Sie außerdem ein bestimmtes UDC-Gerät (USB Device Controller) und einen Treiber zum Anschließen auswählen, während GadgetFS eine Verbindung zum ersten verfügbaren UDC-Gerät herstellt. Vorhersehbare Namen, die verschiedenen UDCs zugewiesen werden Endpunkt um verschiedene Arten von Datenaustauschkanälen innerhalb eines Geräts zu trennen.

Source: opennet.ru

Kommentar hinzufügen