Current version
Git/Latestdiff: 1.5.6
Latest Snapshots
Produced after each commit or rebase to new upstream version
GIT
RSBAC source code, can be unstable sometimes
No events planned
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentation:different_models [2005/09/20 07:50] – (old revision restored) 127.0.0.1 | documentation:different_models [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | //RSBAC is module Based\\ | ||
- | \\ | ||
- | It means every decision module implements a different kind of policy.\\ | ||
- | If you need MAC, ACL, or just User Management, etc. You have the choice.\\ | ||
- | \\ | ||
- | Everything in RSBAC is implemented this way, with a very flexible and easy to use Framework.\\ | ||
- | \\ | ||
- | Adding up modules gets very easy !// | ||
- | |||
- | ===== Authenticated User (AUTH) ===== | ||
- | The AUTH module is a __strongly recommended part__ of RSBAC. It provides functionality needed by all other modules. | ||
- | |||
- | AUTH limits the user IDs a process can change to. Together with RSBAC User Management (or the future auth daemon) it can restrict all user IDs used on the system to **AUTH**enticated users and those that have been preset with so-called AUTH capabilities. | ||
- | The Linux implementation of the AUTH module handles requests from a process to change its UID. The configuration data defining if the call to change UID is granted or not is stored in the ACI. If enabled in RSBAC kernel configuration, | ||
- | |||
- | AUTH permissions can be issued on two levels: | ||
- | * You have to give a list of UID's a process may assume (its " | ||
- | * A process is allowed to assume any UID it asks to (with the option " | ||
- | //This second option is just like giving the process all possible UID capabilities// | ||
- | |||
- | < | ||
- | |||
- | //By default this utility will only accept calls from the user Security Officer (defaults to UID 400)// | ||
- | |||
- | For more information on this model, please see the [[documentation: | ||
- | |||
- | |||
- | // | ||
- | |||
- | ===== User Management (UM) ===== | ||
- | |||
- | The User Management in RSBAC is kernel based and complements or totally replaces Linux' | ||
- | Administration of users is enforced with granularity and flexibility.\\ | ||
- | There are several other advantages in the documentation. | ||
- | |||
- | For more information on this model, please see the [[documentation: | ||
- | |||
- | ===== Role Compatibility (RC) ===== | ||
- | As the name implies, RC is a role based model: | ||
- | |||
- | Every user has a default role, which is inherited by all of his processes. | ||
- | The role defines which access to objects of certain types will be granted or denied. | ||
- | |||
- | To fully understand this model, please read the [[documentation: | ||
- | |||
- | ===== Access Control Lists (ACL) ===== | ||
- | Access Control Lists specify, which subject (user, RC role or ACL group) may access which object (of a target type) with which requests (usual RSBAC requests and ACL specials). ACL are precise and allow a fine policy tuning. | ||
- | |||
- | For more information on this model, please see the [[documentation: | ||
- | |||
- | // | ||
- | |||
- | ===== Mandatory Access Control (MAC) ===== | ||
- | The MAC model associates processes with the security level of the user running them. | ||
- | It then grants read access to other processes, files or devices which have the same or lower security level, never above. Write access is limited to objects on the same level. | ||
- | MAC cannot be overridden without special privileges. | ||
- | |||
- | Protection decisions are not made by the object owner, they are enforced by the system. | ||
- | |||
- | The RSBAC MAC implementation is a more fine-grained extension of the Bell and LaPadula model, which is better suited for use in a Linux environment. | ||
- | |||
- | To fully understand this model, please read the [[documentation: | ||
- | |||
- | ===== PaX Support (PAX) ===== | ||
- | The [[wp> | ||
- | |||
- | In a standard PaX installation, | ||
- | Instead, RSBAC administrates the PaX flags in a consistent way and with a central backup facility. | ||
- | |||
- | The RSBAC based settings never touch the program file, so they avoid integrity checker alarms, missing flags when you update the program, and, most importantly, | ||
- | |||
- | If you use this module, make sure to **disable** header marking and to enable __direct MAC system integration__ in the PaX control kernel configuration. Also do not use " | ||
- | |||
- | More PaX information and the PaX patches are available from the PaX homepage at http:// | ||
- | |||
- | This module should be used whenever the (//very recommended// | ||
- | |||
- | ===== Dazuko (DAZ) ===== | ||
- | |||
- | This is not really an access control model, but rather a system protection module against malware. Execution and reading of malware infected files can be prevented. | ||
- | |||
- | For more information on this model, please see the [[documentation: | ||
- | |||
- | ===== Linux Capabilities (CAP) ===== | ||
- | In Linux kernels, all root special rights are grouped in so-called Posix Capabilities, | ||
- | |||
- | For more information on this model, please see the [[documentation: | ||
- | |||
- | // | ||
- | |||
- | |||
- | ===== JAIL ===== | ||
- | |||
- | All Linux kernels provide the [[wp> | ||
- | |||
- | The JAIL module provides a superset of the FreeBSD jail functionality (except individual kernel level hostnames). | ||
- | |||
- | For more information about this module, see the [[documentation: | ||
- | |||
- | //Use this module for simple service encapsulation, | ||
- | |||
- | ===== Linux Resources (RES) ===== | ||
- | |||
- | The Linux kernel allows us to specify the resource limits for processes, for example: | ||
- | * CPU time used | ||
- | * Memory used | ||
- | * Number of processes allowed for the same user | ||
- | * etc. | ||
- | |||
- | Unfortunately, | ||
- | |||
- | The RES module solves this issue by administrating the Linux resource settings, for both users and programs. | ||
- | We define minimum and maximum values for each resource, and apply them at execute and setuid call time (CHANGE_OWNER on PROCESS targets). | ||
- | To set default values which will affect all users by default, you can set thoses to the special user ID 4294967292 (-4, ALL_USERS in RSBAC). | ||
- | |||
- | The RES module should be used whenever you want to mandatory enforce resource limits. | ||
- | |||
- | ===== File Flags (FF) ===== | ||
- | File Flags is a model which allows you to set attributes on files or directories, | ||
- | The settings will be enforced for all users, so this model is recommanded only for global settings. | ||
- | |||
- | For more information about this model, and tables of all the possible attributes, please see the [[documentation: | ||
- | |||
- | ===== Simone Fischer-Hübner' | ||
- | //This model should be used for storage and processing of personal data. To protect system data without the administration overhead of treating them as personal data, other models (FC, SIM, RC or ACL) are the ones to be used.// | ||
- | |||
- | This model was presented on the 17th National Computer Security Conference in Baltimore, USA, in 1994 by its developer [[http:// | ||
- | |||
- | This model and implementation in RSBAC are described with details in [[@doc/ | ||
- | |||
- | The main concept being the module, as the name says, is enforcing privacy, as defined by the above directives on privacy. | ||
- | Confidentiality, | ||
- | |||
- | System control data, like General Settings or Authentification Information can only be protected by declaring them as personal data. When you cannot do this, the data cannot be protected. | ||
- | |||
- | ====== Deprecated Modules ====== | ||
- | |||
- | These modules have been removed in the 1.2.5-pre code. | ||
- | |||
- | ===== Functional Control (FC) ===== | ||
- | //FC can be easily expressed with RC model, so it is kind of obsolete. The RC default settings are very similar. | ||
- | You should only use this model to get some experience before using more powerful models.// | ||
- | |||
- | The role based model of functional control assigns one role to each user, for example: | ||
- | |||
- | * General User | ||
- | * Security Officer | ||
- | * System Administrator | ||
- | |||
- | Every object gets a category, for example: | ||
- | |||
- | * General | ||
- | * Security | ||
- | * System Object | ||
- | |||
- | The security officer states which roles are compatible with which object categories, which means, the user in role x can access objects in the category y. The security system enforces these settings. | ||
- | |||
- | The file/ | ||
- | |||
- | There is also a simple version of the Functional Control implemented in RSBAC, which only protect system data and security relevant data. It already enforces separation of duties between theses two special roles. | ||
- | Without distinction between different access modes this model should only be used as part of a combined system. | ||
- | |||
- | ===== Security Information Modification (SIM) ===== | ||
- | //SIM can be easily expressed with RC model, so it is kind of obsolete. You should only use this model to get some experience before using more powerful models.// | ||
- | |||
- | The Security Information Modification model only allows write access to objects marked as " | ||
- | |||
- | The file/dir attribute data_type can be inherited from the parent dir. | ||
- | |||
- | Like the Functional Control model, SIM should only be used in combination with others. | ||
- | The security relevant information can still be protected against tampering by system administrators, | ||