heavy-weight, which makes them unsuitable for iso-
lating a very large number of concurrently executing
programs individually.
11 CONCLUSION
The jailing system presented in this paper provides
a simple but effective jailing model that allows users
to run untrusted programs securely. Our solution is
the first that presents an effective and secure solution
for alleviating shared memory and file system race
conditions, without requiring kernel support for se-
curing system call arguments. This solution is based
on copying sensitive system call arguments to a user-
level shared memory region to which the prisoner has
read-only access, before allowing the system call to
continue. This solution is in principle portable to any
(POSIX compliant) UNIX system, given that it has
rudimentary system call tracing support such as the
ptrace() or /proc system call tracing interfaces.
By differentiating between resources created in-
side and outside the jail, our jailing system has a
clear model for deciding which system calls to ac-
cept or deny, even when a system call takes a runtime-
determined kernel object as an argument. Actions that
influence the outside world are guarded by a simple,
user-defined policy. Policy modification, in particu-
lar to adapt the policy to the local system’s directory
structure, is straightforward, and generally required
only once. We have found that we can safely exe-
cute many programs (also nontrivial, multithreaded
programs that make a large number of system calls,
or programs executed from a script) in our jailing sys-
tem using the default policy. The overhead of our jail-
ing system is acceptable, although this depends on the
type of system calls made by a prisoner. Performance
is competitive compared to existing user-mode jailing
systems.
REFERENCES
Alexandrov, A., Kmiec, P., and Schauser, K. (1999). Consh:
Confined execution environment for internet com-
putations. http://www.cs.ucsb.edu/˜berto/papers/99-
usenix-consh.ps.
Back, G. and Hsieh, W. (1999). Drawing the red line in
java. Workshop on Hot Topics in Operating Systems
(HotOS VII). pp. 116-121.
Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A.,
Pratt, I., Warfield, A., Barham, P., and Neugebauer., R.
(2003). Xen and the art of virtualization. Proc. ACM
Symposium on Operating Systems Principles (SOSP).
Efstathopoulos, P., Krohn, M., VanDeBogart, S., Frey, C.,
Ziegler, D., Kohler, E., Mazi
`
eres, D., Kaashoek, F.,
and Morris, R. (2005). Labels and event processes in
the asbestos operating system. Proc. 20th Symposium
on Operating Systems Principles (SOSP), Brighton,
United Kingdom.
Engler, D., Kaashoek, M., and O’Toole Jr., J. (1995).
Exokernel: an operating system architecture for
application-specific resource management. Proc. Fif-
teenth ACM Symposium on Operating Systems Princi-
ples (SOSP). pp. 251-266.
Garfinkel, T. (2003). Traps and pitfalls: Practical problems
in system call interception based security tools. Proc.
Symposium on Network and Distributed System Secu-
rity (NDSS). pp. 163-176.
Garfinkel, T., Pfaff, B., and Rosenblum, M. (2004). Ostia:
A delegating architecture for secure system call inter-
position. Proc. ISOC Network and Distributed System
Security Symposium (NDSS).
Ghormley, D., Rodrigues, S., Petrou, D., and Anderson., T.
(1998). Slic: An extensibility system for commodity
operating systems. USENIX 1998 Annual Technical
Conference.
Goldberg, I., Wagner, D., Thomas, R., and Brewer, E.
(1996). A secure environment for untrusted helper
applications - confining the wily hacker. Proc. 6th
Usenix Security Symposium. San Jose, CA, USA.
Jain, K. and Sekar, R. (2000). User-level infrastructure
for system call interposition: A platform for intrusion
detection and confinement. ISOC Network and Dis-
tributed System Security Symposium (NDSS). pp. 19-
34.
Kamp, P. and Watson, R. (2000). Jails: Confining the om-
nipotent root. Proc. 2nd Intl. SANE Conference.
Liang, Z., Venkatakrishnan, V., and Sekar, R. (2003). Iso-
lated program execution: An application transpar-
ent approach for executing untrusted programs. 19th
Annual Computer Security Applications Conference
(ACSAC), Las Vegas, Nevada.
Mazi
`
eres, D. and Kaashoek, M. (1997). Secure applica-
tions need flexible operating systems. Workshop on
Hot Topics in Operating Systems (HotOS).
Ousterhout, J., Levy, J., and Welch., B. (1997). The safe-
tcl security model. Sun Microsystems Laboratories
Technical Report TR-97-60.
Peterson, D., Bishop, M., and Pandey, R. (2002). A flexible
containment mechanism for executing untrusted code.
Usenix Security Symposium.
Provos, N. (2003). Improving host security with system call
policies. Proc. 12th USENIX Security Symposium. pp.
257-272.
van ’t Noordende, G., Balogh, A., Hofman, R., Brazier, F.,
and Tanenbaum, A. (2006). A secure and portable jail-
ing system. Technical report IR-CS-025, Vrije Univer-
siteit.
Wallach, D., Balfanz, D., Dean, D., and Felten, E. (1997).
Extensible security architectures for java. 16th ACM
Symposium on Operating Systems Principles. pp. 116-
128.
A SECURE JAILING SYSTEM FOR CONFINING UNTRUSTED APPLICATIONS
423