throbber
PACL’s: An Access Control List Approach
`to Anti-Viral Securityi
`
`David R. WienersiT Douglas M. Cook Ronald A. Olsson
`John Crossley Paul Kerchen Karl N. Levitt Raymond Lo
`
`Division of Computer Science
`Department of Electrical Engineering and Computer Science
`University of California, Davis
`Davis, CA 95616
`
`(916) 752-7004
`
`Abstract—Almost all attempts at anti-viral software have been a reaction to specific viruses that have in-
`fected the user comm unity. These solutions attempt to protect against a specific strain or strains of viruses
`rather than provide general protection against a wide variety of viruses. This paper describes a new, con-
`ceptually simple approach that provides a more general solution to the virus problem. Our approach asso—
`ciates with each file in a system an access control list (ACL) that explicitly specifies which programs can
`modify the file. Thus, a virus cannot modify arbitrary files and its possible effects are greatly reduced.
`Our approach is unique in the way it uses ACL’s to specify which programs can access a file; other
`schemes use ACL’s to specify which users can access a file and how. We use the acronym PACL’s, for
`Program ACL’s. to refer to these ACL‘s and to Our scheme. To see how our ideas can be incorporated
`into an existing operating system, we have designed an extension to the UNIXhuf kernel. We also con-
`structed a simulator that has allowed us to gain operational experience with our ideas in a typical user en-
`vironment. The results indicate that our scheme is a promising approach for preventing the spread of
`viruses without being too intrusive on users.
`
`f This research supported by Lawrence Livermore National Laboratory. the State of California MICRO program. and
`Deloitte, Haskins, and Sells, Inc.
`
`H David Wichers' present address is: Area Systems, Inc... 2841 Junction Ave, Suite 201 San Jose, CA 95134 (408) 434-
`
`6633
`
`"t UNIX is a registered trademark of AT&T.
`
`3 4 0
`
`08-1023
`
`Cisco Systems, Inc. v. Finjan, Inc.
`
`CS-1023
`Cisco Systems, Inc. v. Finjan, Inc.
`
`

`

`1. Introduction
`
`A computer virus is a program that can 'infect’ other programs by modifying them to include a possibly
`evolved copy of itself [6]. One attribute of viruses that allows them to spread so easily is that a virus
`inherits all of a user‘s privileges when the user runs an infected program. Typical operating system pro-
`tection schemes provide no help in such a case—they protect a user's files from other users, but not from
`himlherself. Thus, a virus can quickly infect all of a user's files. Even worse, if the user has special sys-
`tem privileges (e.g.. ‘superuser'), the vims can infect all files on a given system.
`
`A typical virus propagates itself by searching for an uninfected program and copying the viral part
`of its code into that program so that when the newly infected program is run, the viral code will be exe-
`cuted. To prevent propagation. vimses must be prevented from inserting themselves into other programs.
`(We assume that the operating system prevents programs, including viruses, from writing directly to
`disk.)
`
`Two simple observations form the basis of our approach. First, the typical vims carrier is unrelated
`to the programs that it infects. Second, programs executing on behalf of a user have more privileges than
`are necessary to complete their assigned task. For example, an infected game program might have the
`privilege to access all of a user's files. Yet it should only have access to those related to the game, e.g., a
`score file. Our approach, then. is to restrict a program’s privileges to the minimum needed to complete its
`assigned task. Then. if a program is infected. it will not be able to infect unrelated programs (files).
`
`To impose this least privilege restriction, we associate an access control list (ACL) [7, 9] with each
`file in the system.
`In our scheme, a file’s ACL contains the names of all the programs that may modify
`the file. We use the acronym PACL‘s, for Program ACL‘s, to refer to these ACL‘s and to our scheme.
`Thus, to modify (write, append. delete. etc.) the file, a program must be on the file‘s PACL. Our use of
`PACL's differs from that found in standard ACL schemes: we store names of program, as opposed to the
`names of users, that can access each file.
`
`The notion of least privilege fits well with common system usage. Users create files using a number
`of different programs. These files are usually modified only by the programs that create them. For exam-
`ple. consider the typical steps involved in creating. compiling. and linking a C program. To create the
`program, the user uses his/her favorite editor to create source files. During the entire life of those files,
`they are only modified by the same editor that created them. When these files are compiled, the compiler
`generates object files. Each time the program is recompiled. these object files are written over by the
`same compiler, and not by any other program. Similarly. the linker creates the executable and writes over
`the executable file each time the program is relinked. This usage suggests that normal files are modified
`by a small number of programs, usually only one. Of course, more complicated usages exist, but they are
`less common.
`
`Since the number of programs that need to modify a single file is usually very small, we can keep
`track of these programs in order to prevent other programs from deliberately or accidentally modifying
`files. This method is similar to existing computer protection mechanisms based on access control lists.
`The standard ACL scheme is designed to control how each user‘s files can be accessed by other users.
`That is, a file's ACL indicates what users may access the files, and in what ways.
`if the ACL does not
`explicitly state that a user is allowed to perform the function requested. then it is not allowed. The differ-
`ence between this security problem and the virus problem is that a virus security system needs to protect a
`user from him/herself, not from other users. The vinrs problem is inherently a problem of integrity, not
`security. Our PACL-lnrcgrr’ry scheme is therefore simpler. associating with each file a list of all programs
`that can modify the file.
`
`To see how our ideas can be incorporated into an existing operating system. we have designed an
`extension to the UNIX kernel that incorporates our PACL scheme. We have also constructed a simulator
`to allow us to gain experienCe with the PACL—lntegrity model without requiring actual changes to the
`kernel. The experience we have gained shows that the scheme seems reasonable to implement and is not
`too intmsive on the user.
`
`341
`
`

`

`The remainder of this paper is organized as follows. Section 2 discusses our PACL-Integrity model
`in more depth. Section 3 describes how the model can be realized in the UNIX kernel. Section 4 presents
`the simulator and section 5 describes our experience using it. Section 6 discusses the tradeoffs involved
`in our approach and outlines future work. Section 7 summarizes related work. Finally, section 8 contains
`some concluding remarks.
`
`2. The PACL-Integrity Model
`
`The PACL-Integrity model associates a PACL with each file on the system. The PACL for a given file
`names all programs that have the privilege to modify the file. When a file is created, its PACL is set to
`contain the name of the program that created the file. During the life of the file. the file‘s PACL can be
`changed only by a trusted utility program. This utility allows a user to tailor the protection mechanism to
`meet hisfner needs.
`
`The success of a protection scheme depends on how intrusive users find it. A scheme that is too
`intrusive will effectively render a system unusable. For example, requiring an explicit acknowledgement
`from a user eachtime any file is to be accessed might be a secure scheme, but it is not usable. Moreover.
`if a scheme that is too intrusive provides a means by which the user can disable it. then users will simply
`run with security checks disabled, effectively rendering a system insecure.
`
`To make our approach secure yet usable, we include a number of ‘user—friendly' features. These
`features simplify common usages of the PACL-Integrity mechanism. The first feature is an inheritance
`mechanism that allows a user to define a default PACL for a directory. Any file (or subdirectory) created
`in this directory inherits the directory’s default PACL, as well as the name of the program that created the
`file. This feature allows the user to tailor a directory to the type of work being done in it. An entire sys-
`tem (or account) can be tailored in this manner by creating a default at the root (or home) directory and
`then building directories below it.
`
`The second feature allows a user to specify a global inheritance policy. The user can define a
`default PACL for any file based on its extension (suffix). For example, a UNIX object file is typically
`created by an assembler or compiler and given the extension ‘.o’. Later, the linker reads in a number of
`object files. links them together. and generates executable code. When it has successfully generated an
`executable, it sometimes will remove the object files as they are no longer needed. Since the object files
`were created by the compiler, their PACL's will contain the name of the compiler, but not that of ‘ld’ (the
`linker). With the extension-based default mechanism, the user can define a default for '.0' files that con-
`tains ‘ld’, thereby allowing the linker to remove unwanted object files after it has created the executable.
`
`The third feature allows the user to enable/disable the PACL mechaniSm for a particular file. This
`feature is provided by associating a flag with each file. If this flag is enabled, the normal PACL security
`nrles will be applied to that file.
`If the flag is disabled, then all PACL security rules for the file are
`ignored and only the ‘norrnal' security rules will be used when the file is accessed; i.e., any program with
`appropriate access rights can modify the file.
`
`The final feature allows a user to temporarily disable the PACL mechanism for all of his/her files. It
`also allows the system administrator to temperarily disable the PACL mechanism for the entire system.
`This feature is needed to facilitate programs that need to modify many or all of a user’s or system's files.
`For example. a utility program that restores files from backup tapes will typically modify many files dur-
`ing its execution.
`
`These features are provided to allow the system to be tailored to meet each individual user’s needs.
`Once defaults have been set up conectly, each user should be able to use the system while being protected
`from viruses, without being unduly inconvenienced by the PACL mechanism.
`
`The PACL-lntegrity mechanism makes several basic assumptions about the underlying hardware
`and operating system. The devices on which programs are stored (e.g., disk) must be protected so that
`they can only be accessed by kernel code. Without such protection, a virus c0uld write directly to a dev—
`ice, bypassing all protection mechanisms. This requirement rulcs out the possibility that this type of
`
`342
`
`

`

`system would be viable in some personal computer environments where direct disk access is not pro-
`tected. for example. The operating system itself must check all file accesses to make sure the PACL secu—
`rity rules are enforced.
`it must also protect the PACL‘s themselves from illegal modification. The
`hardware and operating system must also protect against standard attacks. such as modifying system
`buffers or kernel code.
`
`3. A PACL-Integrity Model for UNIX
`
`3.1. Overview
`
`Our PACL-Integrity model can be implemented for UNIX by extending the kemel. The PACL scheme
`must be included in the kernel to ensure that all file accesses are checked. The current UNIX protection
`mechanisms. based on user names. are still enforced. If an attempt to write satisfies the existing security
`rules. the PACL mechanism then further verifies the validity of the access.
`
`When a file is created, its PACL is created as well. A file's PACL is stored as part of the header
`information (i.e.. inode) of the file. just like the mode bits. owner. size. date, and time fields. Since the
`PACL is part of a file's inode. the PACL information for a file is removed when the file is deleted. which
`simplifies the task of PACL maintenance.
`
`The kernel builds the PACL for a new file from three items. The first item put in the PACL is the
`name of program that creates the file.
`In UNIX. a program‘s name is its complete pathname. For exam-
`ple. the editor program ‘vi' in the directory 'lusr/ucb‘ has the name “/usr/ucb/vi'. The second item put in
`the PACL is the default PACL of the directory in which the file is created. The final item put in the
`PACL is the default. if any. for the new file's extension. (Note that the defaults put in the PACL are those
`in effect when the file is created: if the defaults are later changed. the PACL's of existing files are not
`modified automatically.)
`
`The specific kinds of access for which the kernel must check include opening a file for writing and
`unlinking a file. The former gives the program the privilege to modify the file in any manner while the
`latter deletes the file. We consider deletion a form of modification.
`
`3.2. New System Calls
`
`Nine new system calls give programs the ability to interact with the PACL mechanism. The first System
`call. serpprivU. is a privileged call that sets the state of the cunent process into a mode that allows it to
`call the other new System calls.
`(This method is analogous to a process setting its user-id to root in regu-
`lar UNIX.) Without executing this initial call. a process is not allowed to use any of the other system
`calls that interact with the PACL‘s. with one exception described below; in such a case. they simply
`retum an error to the calling process. The only programs that are allowed to use semprM) are the pro-
`grams listed in the file 'letc/paclprivs'. One example of an entry in this file is the utility program
`described later.
`
`The second call. paclenableo. is used to enable or disable (based on its argument) the entire PACL
`mechanism for the given process and its children.
`If. the initial system process (init) disables the PACL
`mechanism, then the effect is that the PACL mechanism is disabled for the entire system since all
`processes are children of fair.
`
`It allows the process to
`The third call. clrpprr'v(). removes a process from PACL privileged mode.
`relinquish its privilege when no longer needed. The two calls serpprivO and clrpprivo allow programs to
`create critical regiOns in their code where they have privilege to access PACL‘s. Outside of these regions.
`PACL privileges are not necessary and hence should not be enabled.
`
`The fourth call. getppriv(). is the only call that will not return an error if serppriv() has not been pre-
`viously called.
`It tells the currently running process whether or not it is currently in PACL privileged
`mode, i.e.. the process successfully called setpprivfl without calling a corresponding clrpprivU.
`
`343
`
`
`
`

`

`The next two new system calls allow a program to manipulate PACL's. Only the owner of a file
`can change its PACL. The first. addpacm, adds a program name to a given file's PACL. The second.
`deipaclU. deletes a program name from a given file's PACL. These system calls also allow a file‘s owner
`to enable/disable the PACL mechanism for a particular file.
`
`The remaining three system calls allow a program to query a file's PACL in various ways. These
`calls can only be executed by the file’s owner. The first. gerpacm. returns a list of all the program names
`in a file’s PACL. The second. verpaclmo. determines if a specified program has the privilege to modify a
`given file.
`It compares the program name with those in the file's PACL. handling links if the filename
`provided is a link to another file. The third. verpaclro. determines if the specified program has the
`privilege to remove a given file.
`It is similar to verpaclmO except it does not traverse links because any
`remove reference to a link would be removing the link, and not the file to which the link points.
`
`3.3. The ch Utility
`
`The above eight system calls provide the means for a system program to manage PACL's. The utility
`program. ch. described below uses these calls and is an example of a type of user interface that can be
`provided for user interaction with this mechanism. ch is listed in ‘letc/paclprivs‘ so that it is authorized to
`use these PACL system calls on the user's behalf.
`
`To use the ch utility, the user must first enter his/her password. We make the assumption that a
`virus can assume a user’s login name but it does not know the user's password. Otherwise. we cannot
`distinguish a virus from a legitimate user.
`ch allows the user to:
`
`o add/remove program names from PACL's;
`
`0 display the contents of PACL‘s:
`
`I setfclear the enable flag in PACL’s;
`
`I modify the default PACL‘s for directories and file extensions: and
`
`o temporarily turn off the entire PACL mechanism (e.g., for that user during a single login session).
`
`These features correspond to those described in section 2. Several additional features make the utility
`more usable. One feature allows the user to traverse the directory structure: a user can. therefore. move to
`different directories without exiting the utility. A second feature is that ch provides all the remove
`privileges that exist in a normal shell. The ‘rm’ (remove) program may not have privilege to remove
`most files; i.e.. it may not be in the PACL for every file. The utility. therefore, provides an ‘rrn' com-
`mand with functionality equivalent to that of the ‘rm' program. Without such a command. the user would
`need to add the ‘rm‘ program to a file's PACL, exit the utility. and then use the ‘rm' program to remove
`the program. For the same reason, the utility also provides an ‘rrndir' (remove directory) command.
`Basically. ch provides a subset of the normal shell commands along with the features described ab0ve
`that allow the user to tailor the PACL security system. If the user executes a program from within ch, a
`new process is created to execute that program. This process is subject to the rules that apply to the new
`program. not those that apply to the ch program. Other utility programs can easily be generated by the
`system administrator by writing programs using these system calls and then adding the program names to
`‘letcfpaclpn'vs’.
`
`3.4. The Role of the Superuser
`
`In existing UNIX systems, the superuser—e.g., the ‘root' account—may bypass the normal protection
`mechanisms. Having root privilege is not sufficient to override the PACL protection mechanism in our
`System. In particular. a user (or would-be virus) executing as root can only disable the PACL mechanism
`using the ch utility. for which it must give the root password. A program running as root must. therefore.
`be listed in a file's PACL in order for that program to have the privilege to modify that particular file.
`
`344
`
`

`

`
`
`This approach limits the damage potential of a virus that somehow acquires root privilege.
`
`This restriction. however. requires us to change the eunent method by which the superuser changes
`the root password. Cunently. the supemser uses the 'passwd' program to change the root password. The
`password program prompts for the new password without asking for the old one. Thus. any user (or pro-
`gram) that acquires root privilege can change the root password without knowing the preview password.
`Such a user could then use ch to break System security. Therefore. we now require passwd to ask the
`superuser for the old root password before changing it. This additional requirement prevents a virus from
`changing the root password without knowing the previous password. The one exception is that the
`superuser can change the root password without entering the old password when the system is brought up
`in console (single user) mode. This exception exists to allow access to a system in case its password file
`gets corrupted.
`
`Since the success of our anti -viral scheme depends heavily upon password security. viruses must be
`prevented from obtaining passwords.
`In our scheme. the password file itself is protected so the only pro—
`grams allowed to modify it are 'passwd' and those that modify information about users (e.g.. user names,
`phone numbers. etc.). A new user can be added according to one of two methods. The first method is to
`add an editor. say ‘vi'. to the password file‘s PACL. then edit the file to include the new user. and then
`remove ‘vi' from the PACL. This method is not a major inconvenience to the system administrator if
`new users are added infrequently. On the ether hand. the above method is cumbersome for a system
`where new users are added frequently. A better method. then. is to write a new utility program that is
`specifically designed to add users to the password file and to place the name of this new utility in the
`password file's PACL. Execution of this utility program should be restricted to only the system adminis-
`trator.
`
`4. A PACL-Integrity Model Simulator
`
`We constructed a UNIX-based simulator to allow us to experiment with our ideas. Building a simulator
`required less effort titan making kernel modifications would have. Doing so also had no impact on other
`users of the system as making kernel modifications would have.
`
`11 is not a program itself. The
`The simulator consists of modifications to the standard C library.
`simulator library contains modified versions of the normal system calls that deal with files (e.g.. open)
`and code for the new system calls dealing specifically with PACL's. The normal system calls take the
`same arguments as usual. Thus. the simulation environment is transparent to most programs; they just
`need to be linked with the new library. The code in the library routine that handles a normal system call
`is an interface to the original routine that handles the system call.
`It first does whatever PACL checking
`is needed and then calls the original routine. which has been renamed.
`
`The simulator maintains a virtual root. The virtual root allows any directory to act as the root direc-
`tory during simulation experiments. The simulator maps any reference to root (i.e.. a pathname that starts
`with ‘1‘)
`to the virtual root. For example.
`if “cookftcsl/pacl'
`is the virtual root. the simulator maps
`'Ibinlcp‘.
`the copy program.
`to "oook/test/pacl/binlcp‘. Using a virtual root
`lets us test the PACL
`mechanism by defining a subdireCtory that contains an entire UNIX environment. i.e.. all the standard
`system programs. The programs in such a subdirectory are linked with the simulation library. Using a
`virtual root also allows a user to experiment on a system without requiring roor privileges. Further. it
`allows several users to run experiments at the same time as each one can define their own virtual root
`(The idea of a virtual root is similar to the UNIX ‘chroot' command excopt it works on a per-process
`basis and does not require root permission.)
`
`Section 3 described how a file's PACL information is stored as part of its inode. That is not possi-
`ble without kernel modifications. The simulator. therefore. stores the PACL information for file 1 in
`
`the default directory PACL for a directory is stored in the file
`file. x.pacl. Similarly.
`another
`‘dcfault.pacl'. These files are not visible to the user when running under the simulator. They can only be
`created by the simulator for its purposes.
`
`345
`
`

`

`The default PACL information for file extensions is stored in an environment variable. The simula-
`
`tor uses this information along with the default directory PACL information and the executing program's
`name (see below) when creating the PACL for a new file.
`
`The simulator needs the name of the currently executing program for creating PACL’s and compar—
`ing access rights. The simulator maintains that name in an environment variable. The variable is set in
`the simulator library's cxecveU system call. which is invoked whenever a process is created. It is exam-
`ined whenever a process executes a System call that needs PACL privilege. This method is insecure
`because a process can modify its environment variables—cg. a process can change the simulator’s idea
`of its name to gain illegal access to a file. However. the method is adequate for our simulation purposes.
`In a kemel implementation. the name of the cun'ently executing process would be stored so that only the
`kemel could modify it.
`
`5. Experience
`
`The additions to the C library to form the simulator library required about 1000 lines of code. The addi-
`tional code intercepted system calls. translated pathnames to virtual root-based pathnames. and checked
`PACL permissions.
`
`We have used the simulator in a number of situations and have gained some idea as to the effective-
`ness and intntsiveness of our PACL scheme. Our tests fall into two categories: general interactive use
`and installation of software systems.
`In the first kind of tests, users performed the activities they normally
`would on a system—Le. developing programs. writing papers. etc—and would also occasionally attempt
`to defeat the PACL mechanism.
`In these tests. the PACL mechanism worked as it was intended: It was
`
`successful in preventing simulated viral attacks without being too intrusive. One observed drawback.
`however. was that users needed to be aware of the PACL mechanism. One common problem. for exam-
`ple. was that users had problems removing files since the remove program 'm’ was not on the PACL of
`the file being removed. The utility program proved useful. but it requires the user to team a new tool.
`
`The second kind of simulator test—software installation—was also generally successful. We
`attempted to install two large software systems. GNU Emacs [ll] and the SR concurrent programming
`language [1]. in the simulated environment. Although the installations uncovered several problems with
`our simulator. they did demonstrate the validity of the overall design of our PACL scheme.
`
`6. Discussion
`
`Our PACL-Integrity model is an integrity model only. As such. it protects files from illegal modification
`but not from exposure. One advantage of it being just an integrity model is that the system is greatly
`simplified. PACL checks occur when the file is opened for writing and the checks themselves are very
`fast. A PACL check consists oflooking up the program name to see ifit exists in the file's PACL. Since
`a file’s PACL will typically be very short, that check will be very fast and the space overhead involved
`per file will be minimal.
`(For simplicity. we have restricted in our initial designs a fixed sized space to
`store the PACL for each file.)
`
`Our PACL scheme is obvi0usly not perfect. It can be defeated by exploiting existing operating sys~
`tem security loopholes or trojan horses.
`It also requires that the PACL's for the system are set up
`correctly. which requires user and system administrator cooperation.
`
`One potential vulnerability of our PACL scheme is that a vints could invoke other. more trusted
`programs to do its diny work. For example, a virus could send commands to infect files to 'vi'. One pos-
`sible solution to this problem would be for programs to impose restrictions on how they operate; e.g.. 'vi‘
`might accept only interactive input rather than accepting input from another program. A more general
`solution, however, will require further study. Even with this vulnerability, our PACL scheme substan-
`tially reduces the vulnerability of the overall system.
`
`One issue that we have not fully resolved is exactly what constitutes the name of a program. As
`described earlier, the name of the file is its complete pathname. However. a single file on disk can have
`
`346
`
`

`

`many different names (i.e.. paths to it) through hard or symbolic links. A hard link establishes another
`name for a file by having another directory entry point to the file '5 inode. A symbolic link is a file whose
`contents is a file name; when the symbolic link is opened, the kernel instead opens the contents of the
`link. Given such possibilities of multiple names for a given file. which name or names should be used in
`the PACL checks needs further study.
`
`Another issue related to naming is what to do when the name of a program changes. Since the
`PACL's store full pathnames of a file, they must be changed. One possible solution is to extend the ch
`utility to provide a rename option. However. that is expensive as it needs to search all PACL's for all
`files in the system. Moreover, it requires user intervention. Another possible solution is to store in the
`PACL the program‘s inode number instead of its name. A sequence number w0uld also need to be main-
`tained for each inode to distinguish between different uses of an inode. e.g., to ensure that when a free
`inode is reused, it does not accidentally allow access to the wrong files. Renaming is important because it
`occurs fairly frequently, although more often for user programs than for system programs. Another
`related issue is what to do when a new version of a program is installed. If program names are stored,
`then the PACL scheme works fine.
`if inode numbers are stored. then they would need to be updated.
`which is expensive as described above. One final related issue is how to handle deletion of programs.
`When a program is deleted. it should be removed from all PACL's in which it appears. Otherwise. a
`virus might install a new program in that place. On the other hand, if a program is deleted just before a
`new version of it is installed. then the cost of cleaning up all PACL's should be avoided. These issues are
`important and related to one another. Further work and experience is needed before the ‘right' solution
`can be determined.
`
`One possible objection to the entire PACL approach is that it requires future knowledge to be totally
`effective: it must know for all time what programs will need to access what files. That is clearly impossi-
`ble. especially since new programs can be added to a system. For example. suppose an existing file sys-
`tem has its PACL lists set up so that the C compiler. say located in 'lbirt/cc', is allowed to create '.0' files.
`If an alternate C compiler such as GNU’s. say located in ‘lusrllocal/gcc', is added to the system. then the
`PACL’s for all ‘.0' files should be updated to also allow the new compiler to modify those files. Requir-
`ing users to perform such modifications of PACL's is not attractive; a tool to automate such modifications
`should be straightforward to develop.
`
`The uSe of the extension-based defaults and the directory inheritance in our PACL scheme provides
`a flexible enough environment for a user to perform most tasks without considering the PACL's. A more
`complicated task, especially one involving files with nonstandard extensions. may require the user to
`modify PACL defaults. However, once that is done, the task can be completed with little difficulty. User
`intervention is typically only required to set up defaults for a new task; repetitions of that task do not
`require further intervention.
`
`In particular, the system
`The initial setup of a system that uses PACL's is also a nontrivial task.
`administrator must determine PACL's for each system file, and directory and extension defaults. For-
`tunately. such work needs to be done just once. Of course. this problem will go away if PACL systems
`become the standard; vendors would then ship PACL—equipped systems already set up.
`
`7. Related Work
`
`Recently. Eugene Bacic [2] proposed a similar scheme that was developed independently from that pro-
`posed in this paper. His mechanism also associates an additional ACL—like list with each data object to
`provide integrity controls by constraining the programs that can manipulate an object. His paper
`addresses the subject from a more theoretical slant titan the application specific (UNIX) approach dis-
`cussed here.
`
`Karger [8] and Boebert and Ferguson [4] have proposed solutions similar to each other that attempt
`to address the Trojan Horse problem. Both solutions interpose a protected subsystem between programs
`and the filesystem to protect the filesystem. They are related to the mechanism we described in that they
`
`347
`
`
`
`

`

`use some type of knowledge base (in our case the PACL's) to make access control decisions based on the
`user executing the program. the program being executed and the files being accessed. The methods they
`proposed to generate and use this knowledge base are quite different The intent of our solution is to gen-
`erate this knowledge base as simply and easily as possible. while making it simple to design. simple to
`build, simple to maintain. powerful to us

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket