Skip to main content
Back to USENIX
  • Conferences
  • Students
Sign in

USENIX Conference Policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

Setuid Demystified

Access control in Unix systems is mainly based on user IDs, yet the system calls that modify user IDs (uid-setting system calls), such as setuid, are poorly designed, insufficiently documented, and widely misunderstood and misused. This has caused many security vulnerabilities in application programs. We propose to make progress on the setuid mystery through two approaches. First, we study kernel sources and compare the semantics of the uid-setting system calls in three major Unix systems: Linux, Solaris, and FreeBSD. Second, we develop a formal model of user IDs as a Finite State Automaton (FSA) and develop new techniques for automatic construction of such models. We use the resulting FSA to uncover pitfalls in the Unix API of the uid-setting system calls, to identify differences in the semantics of these calls among various Unix systems, to detect inconsistency in the handling of user IDs within an OS kernel, and to check the proper usage of these calls in programs automatically. Finally, we provide general guidelines on the proper usage of the uid-setting system calls, and we propose a high-level API that is more comprehensible, usable, and portable than the usual Unix API.

Hao Chen, University of California, Berkeley

David Wagner, University of California, Berkeley

Drew Dean, SRI International

BibTeX
@inproceedings {270566,
author = {Hao Chen and David Wagner and Drew Dean},
title = {Setuid Demystified},
booktitle = {11th USENIX Security Symposium (USENIX Security 02)},
year = {2002},
address = {San Francisco, CA},
url = {https://www.usenix.org/conference/11th-usenix-security-symposium/setuid-demystified},
publisher = {USENIX Association},
month = aug
}
Download

Links

Paper: 
http://www.usenix.org/events/sec02/full_papers/chen/chen.pdf
  • Log in or register to post comments

© USENIX
EIN 13-3055038

  • Privacy Policy
  • Contact Us