190 likes | 317 Vues
This project presents a user-level sandboxing solution utilizing FUSE to protect the file system from abuse. It emphasizes guiding principles such as transparency and isolation while implementing system call interposition to analyze and reroute user activities. By adopting techniques like logging and execution caching, the system can safely manage file operations without executing permanent changes. The evaluation of multiple benchmarks illustrates the performance implications, highlighting the effectiveness and areas for improvement in this approach to secure file system management.
E N D
University of Notre DameCSE 60641 User-Level Sandboxing with FUSE Brandon RichAndrew Blaich
Problem • Protect the file system from abuse. • Guiding Principles: • Transparency • Isolation • User input
Solution • System Call Interposition • Intercept • Analyze • Re-route and log activity • Return • Post-execution commit • Using log and execution cache
Components • FUSE • Syscall interposition (free) • Logger • Sandbox • Whole-file copy • Virtual File List • Commit process • Uses log and .sandbox files
3 Cases: 1) Writing a new file2) Writing an existing file3) Reading System-Call USER-Space log call in: log.log OpenReadWriteClose FUSE Kernel /tmp file1.txt file1.txt.sandbox file2.doc
Sandboxing Deletes • No deletes ever take place • VFL entry can be designated “deleted” • Version numbers keep track of future generations of a file
Performance Evaluation • Tests • Andrew Benchmark • Chirp Benchmark • Custom Benchmarks • Three Environments • Unmodified ext3 file system • “Clean” FUSE • Sandboxing FUSE
Andrew Benchmark (Compile Phase 5: Am-utils)
Overhead of Logging vs Sandboxing Chirp Benchmark
Conclusions • System call interposition at the user level is expensive • Disk-based caching is simple but robust • Our approach is effective but could be improved