Andrej Konovalov von Google entwickelt ein neues Modul , zum Emulieren von USB-GerĂ€ten im Benutzerspace. Befindet sich in der PrĂŒfung auf die Aufnahme dieses Moduls in den Hauptbestand des Linux-Kernels. USB Raw Gadget wird bereits von Google zur Vereinfachung von Fuzzing-Tests des USB-Stacks im Kernel mithilfe von Werkzeugen entwickelt. .
Das Modul fĂŒgt der Kernel-Subsystem eine neue Programmierschnittstelle hinzu und wird als Alternative zu GadgetFS weiterentwickelt. Die Erstellung einer neuen API ist durch die Notwendigkeit bedingt, einen niedrigleveligen und direkten Zugang zur USB Gadget-Subsystem aus dem Benutzerspace zu erhalten, wodurch alle möglichen USB-Anfragen bearbeitet werden können (GadgetFS bearbeitet einige Anfragen selbststĂ€ndig, ohne sie an den Benutzerspace weiterzuleiten). Die Verwaltung des USB Raw Gadget erfolgt ĂŒber das GerĂ€t /dev/raw-gadget, Ă€hnlich wie bei /dev/gadget in GadgetFS, wobei jedoch eine Schnittstelle auf Basis von ioctl() verwendet wird, anstelle eines Pseudo-Dateisystems.
Neben der direkten Bearbeitung aller USB-Anfragen durch einen Prozess im Benutzerspace zeichnet sich die neue Schnittstelle auch dadurch aus, dass sie die Möglichkeit bietet, beliebige Daten als Antwort auf eine USB-Anfrage zurĂŒckzugeben (GadgetFS fĂŒhrt eine Validierung der USB-Deskriptoren durch und filtert bestimmte Antworten, was die Auffindung von Fehlern bei Fuzzing-Tests des USB-Stacks behindert). Raw Gadget ermöglicht auch die Auswahl eines bestimmten UDC (USB Device Controller) und Treiber zur Anbringung, wĂ€hrend GadgetFS an das erste verfĂŒgbare UDC angebracht wird. FĂŒr verschiedene UDCs werden voraussagbare Namen vergeben um verschiedene Arten von DatenkanĂ€len innerhalb eines GerĂ€ts zu unterscheiden.
Quelle: opennet.ru
