3 ms·
How about a USB "MITM" device that presents itself as a serial port to the OS when the user connects a USB storage device. The user would then use a terminal e
by magicalhippo 2y ago
How about a USB "MITM" device that presents itself as a serial port to the OS when the user connects a USB storage device.
The user would then use a terminal emulator to connect to something like a BBS[1] where they could browse files, and download or upload files to the connected USB storage device using XMODEM[2] like in the good old days.
edit: It could of course also filter the files, for example not list any executable files, and prevent transfer of executable files based on scanning their contents.
The MITM device would be implemented using a microcontroller with signed firmware, and careful design to prevent a connected USB device to do shenanigans like voltage glitching. This would include using isolated DC-DC and isolated data lines ala like this[3].
The MITM would only interact with the storage device class. If the connected device presents itself as more, say a keyboard, it would just ignore those.
The user must be prevented from bypassing the MITM device, though this could be done through physical means.
[1]: https://en.wikipedia.org/wiki/Bulletin_board_system https://en.wikipedia.org/wiki/Bulletin_board_system
[2]: https://en.wikipedia.org/wiki/XMODEM https://en.wikipedia.org/wiki/XMODEM
[3]: https://ez.analog.com/ez-blogs/b/engineerzone-spotlight/posts/you-can-build-your-own-isolated-usb-cable https://ez.analog.com/ez-blogs/b/engineerzone-spotlight/post...
- pontifier 2y agoI like it. Seems like it might be useful for mice and keyboards as well. Have a few ports on it: This device can only be a mouse -> USB This device can only be a keyboard -> USB Then it filters everything coming in to ensure that it matches the desired type of activity. For USB drives, I'm tempted to say it should read the USB drive once, and copy all information to internal storage in order to prevent data being sent to the usb via timed or coordinated reads. This would allow a truly read only thumbdrive.