A file system for safely interacting with untrusted USB flash drives
Talkat 12th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage '20) · 2020-07-13..07-14·
summary
RBFuse isolates USB handling by remap host controller into VM and exports the drive as a mountable VFS via a FUSE VFS client-server, eliminating host USB driver exposure. It uses formally generated parsers/serializers, an optional hardware adapter that encrypts read/write traffic, and batching + prefetch to cut round trips. Measured overhead is small for large files (+2% writes, +70% reads without adapter); adapter adds 3–10× for large transfers and ~8.8× for small-file reads. Crash tests pass on ext4 and f2fs; vfat exposes a consistency bug.
AI-written summary · about
chapters (22)
- 0:00Intro
- 0:41USB flash drives remain popular
- 1:09USB stack has several issues
- 1:48Previous work
- 2:14Limitation
- 2:53Key idea
- 3:03System overview
- 4:23Performance issues
- 5:05Compromised virtual machine
- 5:49Parsing errors
- 6:33Caching metadata
- 7:11Prefetching
- 8:26Batching operations
- 9:42Encrypted communication
- 10:47Experiment setup
- 11:11One large file (500MB)
- 11:481,000 small files (16KB each)
- 12:46Crash consistency test
- 14:00Previous file system fuzzing
- 14:26Server side fuzzing
- 14:59Formal verification
- 15:17Conclusion
related talks
16meBPF-based FUSE
26mDive into Apple UserFS (Userspace Filesystem)
29mFilesystem mounts in user namespaces
25mDon't Trust Your USB! How to Find Bugs in USB Device Drivers
21mFUZE: Towards Facilitating Exploit Generation for Kernel UAF Vulnerabilities
18mμUSB: Practical and Safe USB Driver Reuse for Arm TrustZone
33mMaking USB Great Again with USBFILTER
32mSecurity Features for UBIFS
