Security Issues in Processes
Created: October 27, 2003
Last Updated: October 27, 2003
Version 0.1
Author: Ping Chen
Level of Difficulty: Moderate
Completion Time: 1 week
Progaramming involved: No
Objectives
The objective of this project is to learn the Linux/Unix
process
Project
Here are typical attributes associated with each process in a
Linux/Unix-like system:
-
RUID, RGID - real UID and GID of the user on whose behalf
the process is running
-
EUID, EGID - effective UID and GID used for privilege
checks (except for the filesystem)
-
SUID, SGID - Saved UID and GID; used to support switching
permissions ``on and off'' as discussed below. Not all Unix-like systems
support this, but the vast majority do (including Linux and Solaris); if you
want to check if a given system implements this option in the POSIX standard,
you can use sysconf(2) to determine if _POSIX_SAVED_IDS is in
effect.
-
supplemental groups - a list of groups (GIDs) in which this
user has membership. In the original version 7 Unix, this didn't exist -
processes were only a member of one group at a time, and a special command had
to be executed to change that group. BSD added support for a list of groups in
each process, which is more flexible, and this addition is now widely
implemented (including by Linux and Solaris).
-
umask - a set of bits determining the default access
control settings when a new filesystem object is created; see
umask(2).
-
scheduling parameters - each process has a scheduling
policy, and those with the default policy SCHED_OTHER have the additional
parameters nice, priority, and counter. See sched_setscheduler(2) for more
information.
-
limits - per-process resource limits (see
below).
-
filesystem root - the process' idea of where the root
filesystem ("/") begins;
Try to find the actual values for one
process in a Linux machine and explain how these attributes can be used to
enforce system security.
Resources
Book: Security in Computing - Charles P.
Pfleeger
Glossary