Andrej Konovalov von Google entwickelt ein neues Modul , um USB-GerĂ€te im Benutzermodus zu emulieren. Befindet sich in der PrĂŒfung auf die Einbeziehung dieses Moduls in den Hauptkern von Linux. USB Raw Gadget wird bereits bei Google verwendet, um das Fuzzing-Testing des USB-Stacks des Kernels mithilfe von Tools zu vereinfachen. .
Das Modul fĂŒgt der Kernel-Subsystem eine neue Schnittstelle hinzu und wird als Alternative zu GadgetFS entwickelt. Die Schaffung einer neuen API ist notwendig, um einen niedrigeren und direkten Zugriff auf das USB Gadget-Subsystem aus dem Benutzermodus zu erhalten, was die Verarbeitung aller möglichen USB-Anfragen ermöglicht (GadgetFS verarbeitet einige Anfragen selbst, ohne sie an den Benutzermodus weiterzuleiten). Die Verwaltung des USB Raw Gadget erfolgt ĂŒber das GerĂ€t /dev/raw-gadget Ă€hnlich wie bei /dev/gadget in GadgetFS, jedoch wird zur Interaktion eine Schnittstelle auf der Basis von ioctl() verwendet, nicht ein Pseudo-Dateisystem.
Neben der direkten Verarbeitung aller USB-Anfragen durch den Benutzerprozess bietet die neue Schnittstelle auch die Möglichkeit, beliebige Daten als Antwort auf USB-Anfragen zurĂŒckzugeben (GadgetFS fĂŒhrt eine ĂberprĂŒfung der USB-Deskriptoren durch und filtert bestimmte Antworten, was die Identifizierung von Fehlern bei Fuzzing-Tests des USB-Stacks erschwert). Raw Gadget ermöglicht auĂerdem die Auswahl eines bestimmten UDC (USB Device Controller) und Treibers zum Anstecken, wĂ€hrend GadgetFS sich mit dem ersten verfĂŒgbaren UDC verbindet. FĂŒr unterschiedliche UDC werden vorhersehbare Namen zugewiesen. um verschiedene Arten von DatenkommunikationskanĂ€len innerhalb eines GerĂ€ts zu trennen.
Quelle: opennet.ru
