Context Sensitive File System
Britton Dennis, Tyler Travis, Clark Wood
Analyizing the environmental / system context is becoming more and more important with the rise of BYOD (mobile phones / tablets), cheaper storage (USB flash / external hard drives), and ubiquitous wireless networks(public wifi / cellular networks). As such, the focus on the security of these contexts should also be becoming important. However, as seen from our related works, this is not the case.
Our system is comprised of two parts, a user level deamon called the context monitor and a VFS complient file system.
- The context monitor is made up of modules which polls the system for various context sensitive issues (e.g. USB is pluged in, unsecure wireless connection, open ports, etc) and each module calculates the security that the system which is then agrigated into a single security level. This is sent to the file system through an ioctl call
- The file system serves different content though different security contexts. The it works is each file is really n+1 different files where n is the number of different security levels. After the file th e user passes in is opened and gets to our file system, we intercept and open the correct file that should be used. The blocks that the inodes of the file at level i point to its own set of blocks that were written at this level as well as the same blocks that the inode of the file at level i-1 point to. This makes the system complitent to the Bell-LaPadula model. In addition to that, any process that opens a file in one context, will be killed when the context switches to prevent data leaks.
We modifed ext3 from kernel v3.8.5. We tried to provide as much functionality as possible but were only able to finish the following file operations: read, read directory, open, close, and create. We also added two new ioctl calls, which a user level deamon we call the context monitor sends as it scans the system for vernerabilies.
The following are systems similar to ours that fail to provide some aspect or another that we are looking for:
- quFiles: Appends ties together a set of related files and puts them in a directory of the same name but with an additional .qu ending. Delivers the correct file depending on the context.
- ext3cow: Versioning file system similar to WAFL and Elephant. Appends an epoch number to files inside snapshots.
- NCryptfs: Adds a layer between the conventional file system and VFS. Encrypts requests and prevents caching from clear text.
Distribution of Work (i.e. who to blame for bugs, errors, and faults)
- Britton Dennis: Came up with the general design as well as the specific design of the file system, wrote the file system code as well as the simple utility scripts, created the presentation as well as the diagrams used.
- Tyler Travis: Created the framework of the context monitor, made one of the modules, helped Britton with the design.
- Clark Wood: Made most of the context monitor's modules, wrote the writeup, looked for and anaylized related works.