IP Library Granted Patent US 7,383,437
Granted Patent B1
US 7,383,437 · App. 10/658,231 · Granted Jun 3, 2008

Method and system for implementing super-user-compatible privileges

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,383,437
App. No.
10/658,231
Granted
Jun 3, 2008
Kind
B1
Abstract

A system for implementing a super-user-compatible privilege security policy on a computer operating system is disclosed. The system includes a kernel for enforcing a security policy on processes, based on privileges. The system also includes a privilege model that interfaces with the kernel and implements a framework in which super-user based processes and privilege based processes transparently interface with the kernel. The privilege model includes several privilege sets associated with each process, a privilege awareness property state associated with each process, the property state indicating whether or not a process is privilege aware, and a software module for automatically modifying the privilege sets and the property state, on a per process basis, based on individual process behavior.

Claims (117)

1. A computer system for processing privileges, comprising:

a kernel for enforcing a security policy on a plurality of processes based on privileges;

a memory for storing a privilege model; and

a central processor unit for executing the privilege model stored in the memory, the privilege model interfacing with said kernel and implementing a framework in which super-user based processes of said plurality of processes and privilege based processes of said plurality of processes transparently interface with said kernel, wherein said privilege model comprises:

a plurality of privilege sets associated with each process of said plurality of processes; and

a privilege awareness property state associated with each process of said plurality of processes for indicating whether or not a process is privilege aware;

wherein the framework includes a software module for automatically modifying said plurality of privilege sets and said privilege awareness property state, on a per process basis, based on individual process behavior.

2. A system as described in claim 1 wherein said plurality of privilege sets associated with each process comprises:

an effective set indicating privileges in effect for said process;

a permitted set indicating privileges that can be made effective; and

a limit set indicating an upper bound on all effective sets.

3. A system as described in claim 1 wherein each process comprises:

an effective user identification;

a real user identification; and

a saved user identification.

4. A system as described in claim 2 wherein each process comprises:

an effective user identification;

a real user identification; and

a saved user identification.

5. A system as described in claim 1 wherein said software module automatically updates a privilege awareness property state of a process to indicate that said process is privilege aware in response to said process accessing any of its own plurality of privilege sets.

6. A system as described in claim 4 wherein said software module automatically modifies a plurality of privilege sets for a privilege unaware super-user based process according to the following rules:

if an effective user identification of said super-user based process becomes zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process;

if any user identification value of said super-user based process becomes zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if said effective user identification of said super-user based process becomes non-zero, then said effective set of said super-user based process reverts back to an original state.

7. A system as described in claim 6 wherein said software module automatically modifies said plurality of privilege sets for said privilege unaware super-user based process according to the following additional rule:

if all user identification values of said super-user based process become non-zero, then said permitted set of said super-user based process reverts back to an original state.

8. A system as described in claim 4 wherein said software module automatically modifies a plurality of privilege sets for a privilege unaware super-user based process transitioning to being privilege aware according to the following rules:

if an effective user identification of said super-user based process is zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process;

if any user identification value of said super-user based process is zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if an effective user identification of said super-user based process is non-zero, then said effective set of said super-user based process remains at an initial state.

9. A system as described in claim 4 wherein said software module automatically modifies a plurality of privilege sets for a privilege aware super-user based process transitioning to being privilege unaware according to the following rules:

if any user identification value of said super-user based process is zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if an effective user identification of said super-user based process is zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process.

10. A system as described in claim 4 wherein said software module does not alter any of a plurality of privilege sets of a privilege aware super-user based process in response to changes in any of its user identification values.

11. A system as described in claim 4 wherein said software module allows a privilege aware super-user based process to transition to a privilege unaware super-user based process without restrictions provided all its user identification values are non-zero.

12. A system as described in claim 4 wherein a process of said plurality of processes can directly modify its plurality of privilege sets except as limited by the following rules:

only privileges of a permitted set of said process can be added to an effective set of said process;

privileges may not be added to said permitted set of said process;

privileges removed from said permitted set of said process are automatically removed from said effective set of said process; and

privileges may not be added or subtracted from a limit set of said process.

13. A system as described in claim 2 wherein said plurality of privilege sets associated with each process further comprises an inheritable set indicating privileges which are inherited when a second process overlay a first process.

14. A method of processing privileges comprising:

enforcing a security policy on a plurality of processes based on privileges, said enforcing performed by a kernel of an operating system; and

transparently interfacing super-user based processes of said plurality of processes and privilege based processes of said plurality of processes with said kernel using a privilege model as an intermediary, wherein said privilege model comprises:

a plurality of privilege sets associated with each process of said plurality of processes; and

a privilege awareness property state associated with each process of said plurality of processes for indicating whether or not a process is privilege aware; and

wherein said transparently interfacing further comprises automatically modifying said plurality of privilege sets and said privilege awareness property state, on a per process basis, based on individual process behavior.

15. A method as described in claim 14 wherein said plurality of privilege sets associated with each process comprises:

an effective set indicating privileges in effect for said process;

a permitted set indicating privileges that can be made effective; and

a limit set indicating an upper bound on all effective sets.

16. A method as described in claim 14 wherein each process comprises:

an effective user identification;

a real user identification; and

a saved user identification.

17. A method as described in claim 15 wherein each process comprises:

an effective user identification;

a real user identification; and

a saved user identification.

18. A method as described in claim 14 wherein said automatically modifying further comprises automatic updating of a privilege awareness property state of a process to indicate that said process is privilege aware in response to said process accessing any of its own plurality of privilege sets.

19. A method as described in claim 15 wherein said automatically modifying further comprises automatically modifying a plurality of privilege sets for a privilege unaware super-user based process according to the following rules:

if an effective user identification of said super-user based process becomes zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process;

if any user identification value of said super-user based process becomes zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if said effective user identification of said super-user based process becomes non-zero, then said effective set of said super-user based process reverts back to an original state.

20. A method as described in claim 19 wherein said automatically modifying a plurality of privilege sets for a privilege unaware super-user based process is performed according to the following additional rule:

if all user identification values of said super-user based process become non-zero, then said permitted set of said super-user based process reverts back to an original state.

21. A method as described in claim 17 wherein said automatically modifying further comprises automatically modifying a plurality of privilege sets for a privilege unaware super-user based process transitioning to being privilege aware according to the following rules:

if an effective user identification of said super-user based process is zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process;

if any user identification value of said super-user based process is zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if an effective user identification of said super-user based process is non-zero, then said effective set of said super-user based process reverts remains at initial state.

22. A method as described in claim 17 wherein said automatically modifying further comprises automatically modifying a plurality of privilege sets for a privilege aware super-user based process transitioning to being privilege unaware according to the following rules:

if any user identification value of said super-user based process is zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if an effective user identification of said super-user based process is zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process.

23. A method as described in claim 17 wherein said automatically modifying does not alter any of a plurality of privilege sets of a privilege aware super-user based process in response to changes in any of its user identification values.

24. A method as described in claim 17 wherein said transparently interfacing further comprises allowing a privilege aware super-user based process to transition to a privilege unaware super-user based process without restrictions provided all its user identification values are non-zero.

25. A method as described in claim 17 wherein said transparently interfacing further comprises allowing a process of said plurality of processes to directly modify its plurality of privilege sets except as limited by the following rules:

only privileges of a permitted set of said process can be added to an effective set of said process;

privileges may not be added to said permitted set of said process;

privileges removed from said permitted set of said process are automatically removed from said effective set of said process; and

privileges may not be added or subtracted from a limit set of said process.

26. A method as described in claim 25 wherein said plurality of privilege sets associated with each process further comprises an inheritable set indicating privileges which are inherited when a second process overlays a first process.

27. A computer system for processing privileges, comprising:

a kernel for enforcing a security policy on a plurality of processes based on privileges;

a memory for storing a privilege model; and

a central processor unit for executing the privilege model stored in the memory, the privilege model implementing a framework configured for transparently interfacing super-user based processes of said plurality of processes and privilege based processes of said plurality of processes with said kernel, wherein said privilege model comprises:

a plurality of privilege sets associated with each process of said plurality of processes, wherein said plurality of privilege sets comprises:

an effective set indicating privileges in effect;

a permitted set indicating privileges that can be made effective; and

a limit set indicating an upper bound on all effective sets;

a privilege awareness property state associated with each process of said plurality of processes for indicating whether or not a process is privilege aware;

wherein the framework includes a software module for automatically modifying said plurality of privilege sets and said privilege awareness property state, on a per process basis, based on individual process behavior.

28. A system as described in claim 27 wherein each process comprises:

an effective user identification;

a real user identification; and

a saved user identification.

29. A system as described in claim 28 wherein said plurality of privilege sets associated with each process further comprises an inheritable set indicating privileges which are inherited when a second process overlays a first process.

30. A system as described in claim 27 wherein said software module automatically updates a privilege awareness property state of a process to indicate that said process is privilege aware in response to said process accessing any of its own plurality of privilege sets.

31. A system as described in claim 28 wherein said software module automatically modifies a plurality of privilege sets for a privilege unaware super-user based process according to the following rules:

if an effective user identification of said super-user based process becomes zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process;

if any user identification value of said super-user based process becomes zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if said effective user identification of said super-user based process becomes non-zero, then said effective set of said super-user based process reverts back to an original state.

32. A system as described in claim 31 wherein said software module automatically modifies said plurality of privilege sets for said privilege unaware super-user based process according to the following additional rule:

if all user identification values of said super-user based process become non-zero, then said permitted set of said super-user based process reverts back to an original state.

33. A system as described in claim 28 wherein said software module automatically modifies a plurality of privilege sets for a privilege unaware super-user based process transitioning to being privilege aware according to the following rules:

if an effective user identification of said super-user based process is zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process;

if any user identification value of said super-user based process is zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if an effective user identification of said super-user based process is non-zero, then said effective set of said super-user based process remains at an initial state.

34. A system as described in claim 28 wherein said software module automatically modifies a plurality of privilege sets for a privilege aware super-user based process transitioning to being privilege unaware according to the following rules:

if any user identification value of said super-user based process is zero, then a permitted set of said super-user based process is assigned to said limit set of said super-user based process; and

if an effective user identification of said super-user based process is zero, then an effective set of said super-user based process is assigned to a limit set of said super-user based process.

35. A system as described in claim 28 wherein said software module does not alter any of a plurality sets of a privilege aware super-user based process in response to changes in any of its user identification values.

36. A system as described in claim 28 wherein said software module allows a privilege aware super-user based process to transition to a privilege unaware super-user based process without restrictions provided all its user identification values are non-zero.

37. A system as described in claim 28 wherein a process of said plurality of processes can directly modify its plurality of privilege sets except as limited by the following rules:

only privileges of a permitted set of said process can be added to an effective set of said process;

privileges may not be added to said permitted set of said process;

privileges removed from said permitted set of said process are automatically removed from said effective set of said process; and

privileges may not be added to or subtracted from a limit set of said process.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0336 →