Computer Science Department, Columbia University
ezk AT cs.columbia.edu
Programmers often prefer to use existing system security services, such as file system security, rather than implement their own in an application. Traditional Unix security is generally considered inadequate and few operating systems offer enhanced security features such as ACLs or immutable files. Additional file system security features are always sought, but implementing them is a difficult task because modifying and porting existing file systems is costly or not possible.
We advocate adding new security features using stackable file systems. As a starting point, we propose a portable, stackable template called the wrapper file system or Wrapfs, a minimal file system from which a wide range of file systems can be prototyped. A developer can modify a copy of the template and add only that which is necessary to achieve the desired functionality. The Wrapfs template takes care of kernel internals, freeing the developer from the details of operating system internals. Wrapfs imposes an overhead of only 5-7%.
This paper describes the design, implementation, and porting of Wrapfs. We discuss several prototype file systems written using Wrapfs that illustrate the ease with which security features can be implemented. The examples demonstrate security features such as encryption, access control, intrusion detection, intrusion avoidance, and analysis.