Making Linux protection mechanisms egalitarian with UserFS

  • Authors:
  • Taesoo Kim;Nickolai Zeldovich

  • Affiliations:
  • MIT, CSAIL;MIT, CSAIL

  • Venue:
  • USENIX Security'10 Proceedings of the 19th USENIX conference on Security
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

UserFS provides egalitarian OS protection mechanisms in Linux. UserFS allows any user--not just the system administrator--to allocate Unix user IDs, to use chroot, and to set up firewall rules in order to confine untrusted code. One key idea in UserFS is representing user IDs as files in a /proc-like file system, thus allowing applications to manage user IDs like any other files, by setting permissions and passing file descriptors over Unix domain sockets. UserFS addresses several challenges in making user IDs egalitarian, including accountability, resource allocation, persistence, and UID reuse. We have ported several applications to take advantage of UserFS; by changing just tens to hundreds of lines of code, we prevented attackers from exploiting application-level vulnerabilities, such as code injection or missing ACL checks in a PHP-based wiki application. Implementing UserFS requires minimal changes to the Linux kernel--a single 3,000-line kernel module--and incurs no performance overhead for most operations, making it practical to deploy on real systems.