Security Architecture
Total Page:16
File Type:pdf, Size:1020Kb
COVER STORY RSBAC Architecture of Rule Set Based Access Control (RSBAC) Security Architecture inux security holes typically occur Integrating multiple security models simultaneously in the kernel and in Server programs and S bit tools. LThe best approach would be to detailed logs of any access:The free Rule Set Based Access Control avoid mistakes and update programs immediately if a bug occurs. This is not (RSBAC) security System offers customized protection for a wide range always possible, the next best thing is to of requirements. BY AMON OTT restrict potential damage, and this is where access control systems such as RSBAC come into play [1]. If an attacker exploits the security holes in servers or s bit tools, access to the system should be restricted to a minimum. In this case, even a successful compromise will cause only limited damage, and protective mechanisms can be implemented directly in the operating system kernel. The standard Linux kernel prevents access to various resources such as files, directories or system configurations, but unfortunately the standard mechanisms are fraught with weaknesses: •Poor granularity Ro • Discretionary access control nald Raefle , visipix.com • An all-powerful root user Linux access controls only offer the standard privileges read, write and execute; additionally they only allow distinct privileges to be defined for the owner of a file, the members of a group and all others. Restrictions typically do account used to run that process. kernel a while back, allow a program not apply to the root user. The Thus, an attacker, if fortunate, can launched by root to drop some granularity of these privileges is thus manipulate any files belonging to the privileges, but this is left up to the insufficient for many tasks. compromised account with the gained program itself. access privileges. Linux Privileges – not enough The all-powerful system administrator, Architectural Requirements The owner of a file can do what she root, is the most dangerous of the issues The main aim for the developers of pleases with that file, this is commonly mentioned so far. Many activities RSBAC was to produce a flexible and referred to as DAC, or discretionary are restricted to the root user, from effective access control system as an access control. If an attacker has administrative tasks to simple actions. add-on for existing Linux mechanisms. compromised a process, the attacker’s Thus most service are originally To achieve this goal, the system must activities assume the privileges of the launched with root privileges and have fulfill a number of requirements: superuser access to the whole system, It must provide the underlying Amon Ott is a self-employed com- without ever actually needing these platform to allow the developer to puter scientist and the author of extensive privileges. program access control models quickly the RSBAC system. HOR What is worse is the fact that many and simply. This permits a clear T His mainstay is bespoke develop- services need to be run with root distinction between components that ment and Linux firewalls,preferably privileges (or to be able to assume root make decisions, and components that with RSBAC. He is also working on privileges at any time) to allow them to enforce them. his doctorate,which he hopes to THE AU change to any user account. The POSIX The enforcement components act complete shortly. capabilities introduced to the Linux independently of the components that 36 February 2003 www.linux-magazine.com RSBAC COVER STORY decision facility of the ADF. This Subject function requests individual decisions 1 from all active decision modules. The modules read attributes from data Access 6 request If access is denied: error message (and cancel) Linux Kernel structures (4) and reach a decision: 3 Request decision 7 Notify permitted, not defined, or denied. AEF ADF The central function collates the 5 Answer: Granted or not granted RC individual decisions, and returns a 0 Confirm collective decision (5). The ADF is 2 AUTH q read 9 restrictive in this respect; if a single System values Update Access ACL module returns a negative reply, the ADF 4 8 , will deny access. Actions are only System values Data structures Access to data structures permitted if all the modules agree that they should be permitted. Object In the case of a negative decision, the system call is halted and returns an Figure 1: A subject’s access to an object is monitored by the Access Enforcement Facility (AEF).The Access access error to the process (6). In the Decision Facility (ADF) decides whether to permit or deny access case of positive decisions, the AEF forks to the system call itself. If the call is make decisions. New decision models of access types (request types) that are successful, the AEF sends a message to can use the underlying infrastructure. applied to the object types. this effect to the ADF (7). A large number of tried and trusted Table 2 lists a selection of access types, The central messaging function of the security models exist for various tasks, some of which are used in our practical ADF is responsible for passing the and combinations of these models example later. The entire list is available message to the appropriate module sometimes make sense, depending on in the documentation from [1]. The basic functions. The module functions retrieve the situation. The underlying frame- building blocks of the RSBAC systems the current attributes from the data work should thus support multiple are shown in Figure 1. The enforcement structures (8), update them (9) and security models simultaneously and in- component, or Access Control Enforce- confirm that the call has been completed dependently, allowing the administrator ment Facility, AEF, mainly comprises correctly (10). to choose the most suitable model for enhancements of existing system If a new object was created by the current assignment. No matter what functions. the system call, the message from model is in use, activities and any These enhancements require the the AEF to the ADF will contain the decisions taken need to be logged, and decision making element, or Access type and ID for the new object. The the logs must be protected from Control Decision Facility, ADF, to decision modules then create the attempted manipulation. reach a decision before any access, and attributes of the object. After confirming, The original RSBAC system designed so possible compromise is permitted. the system function passes the requested fulfills nearly all these criteria. Over the If the ADF refuses access, the AEF will course of the last five years the range of return an “access denied” error to Table 1: Target Types functions and monitored objects has the subject. The decision facility and Name Description increased dramatically, allowing RSBAC the data structures used are mostly FILE Also includes special device and to monitor networks. The main elements independent of the kernel version. Only UNIX network files if they are of the original have been tested during AEF requires one or two changes to handled as files this time and the developers see no existing kernel functions. This DIR Directory reason to revise them. component was produced by enhancing FIFO Pipe with name entry in file system existing syscalls. SYMLINK Symbolic link Inner Values IPCInter Process Communication object We need to explain a few terms, in order Components co-operating on System V basis to describe the internal architecture, so Access control involves a number of SCD System Control Data – global bear with us. From the access control steps. The subject (the process) calls a system settings and objects such perspective a subject attempts to invoke system function to request access to an as host names or time a specific type of access to an object. On object (1). An extension of this function USER User object mainly serves the purpose of managing attribute a Linux system, the following occurs: a (the AEF) reads some system values, assignments process (the subject) attempts to read such as the process ID, the type, and PROCESS Process object for receiving signals (access type) a file (object). ID of the target object (2), before calling or reading process statuses The various object types are cate- the decision facility, ADF; and handing NETDEV Network device gorized by target type on an RSBAC on the information it has collected and NETTEMP Network template system (see Table 1 for an overview). the type of access (3). The request is NETOBJ Network object – normally sockets RSBAC also distinguishes a large number originally addressed to the central www.linux-magazine.com February 2003 37 COVER STORY RSBAC Figure 2: Admins can use network templates to assign access privileges to Figure 3:The main administration menu provides the RSBAC user with a network address and port ranges. In our example, the ports on all the hosts straightforward configuration interface, with simple control over all of the in the IP network 192.168.200.0/24 have been selected Decision Module functions data (11) and control back to the a “CREATE” request for the target specific structures provide storage invoking process. directory, creates the file and informs facilities in this case. the decision facility of the new object. The data storage component takes care A Practical Example Otherwise a “TRUNCATE” request is of the thankless task of list management, A practical example is useful to our issued for the file, the open function thus reducing the load on the data understanding of the theoretical path. truncates the file to zero, and reports the storage components; this involves When a process wants to open a file success of the operation. disk storage, SMP locking (for multi- for read and write access, it uses After this preparatory work, the syscall processor systems), and similar tasks.