Login
Newsletter
Di, 24. Januar 2012, 15:00

Beobachtung des USB-Protokolls mit Wireshark

Die Möglichkeit, USB-Traffic mitzuhören, hat im Laufe der Jahre eine Evolution durchgemacht. Dieser Tipp soll den aktuellen Stand darstellen.

Wireshark in Aktion

Hans-Joachim Baader

Wireshark in Aktion

Analog zur Möglichkeit, Netzwerk-Traffic aufzuzeichnen, gibt es unter Linux auch eine solche Möglichkeit für USB. Während bei den Netzwerkschnittstellen die pcap-Bibliothek die zugrunde liegenden Kernel-Schnittstellen verbirgt, gibt es bei USB so etwas nicht.

Durch die Datei Documentation/usb/usbmon.txt könnte man den Eindruck gewinnen, es gebe ein Tool USBmon zur Beobachtung des Traffics. Tatsächlich wurde dieses Tool nie vollendet und ist völlig obsolet. Ein anderes, ziemlich neues Tool namens usbdump dagegen erzeugt eine so knappe Ausgabe, dass es fraglich ist, ob man viel damit anfangen kann.

Grundsätzlich gibt es unter Linux zwei Schnittstellen zum Lesen des USB-Traffics: eine ältere, textbasierte über das Debug-Dateisystem und eine neuere, binäre über Gerätedateien. Beide benötigen das Kernel-Modul usbmon. Die textbasierte Schnittstelle gilt seit Linux 2.6.35 als obsolet, ist aber immer noch verfügbar. Man muss dazu das Dateisystem »debugfs« mounten:

mount -t debugfs none /sys/kernel/debug

Danach kann man im Verzeichnis /sys/kernel/debug/usb/usbmon den Inhalt der passenden Datei mit cat ausgeben und ggf. in eine Datei umleiten. Die zum gesuchten Gerät gehörende Datei findet man, indem man lsusb -v aufruft. In der Ausgabe muss man das Gerät finden und sich dessen Busnummer merken. Die gesuchte Datei ist die mit der Busnummer und dem angehängten u. Die Datei mit dem angehängten t ist obsolet und die mit dem angehängten s gibt nur eine Statistik aus.

Die zweite Möglichkeit, die binäre Schnittstelle, ist Textwerkzeugen nicht zugänglich. Doch es gibt eine feine Alternative: Wireshark. In Wireshark muss man nur die Gerätedatei auswählen, die zum gewählten Gerät gehört. Dies geht wiederum über die Busnummer, denn die passende Datei trägt den Namen /dev/usbmon plus die Busnummer.

Mit Wireshark lassen sich alle Details der Kommunikation über USB erfassen und analysieren. Debian-Benutzer sollten unbedingt die Datei /usr/share/doc/wireshark/README.Debian lesen, um die Fähigkeiten von Wireshark optimal zu nutzen.

  • Dieses Werk wurde von seinem Urheber zur uneingeschränkten Nutzung freigegeben und ist damit gemeinfrei (»public domain«).

Kommentare (Insgesamt: 4 || Alle anzeigen )
Re[3]: usbmon (Justice, Mo, 21. August 2017)
Re[2]: usbmon (Justice, Di, 10. Januar 2017)
Re: usbmon (Anonymous, Mi, 25. Januar 2012)
usbmon (usbmon, Di, 24. Januar 2012)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten