Page 294 - DCAP103_Principle of operating system
P. 294

Unit 9: System Security



            9.1 Overview                                                                          Notes


            Security systems generally implement a useful subset of a 3-dimentional matrix with dimensions
            of actor, object, and action. Implementing the full matrix is never done for both performance
            and usability reasons.
            Mainstream operating system security is primarily based on access control lists. For each object,
            we can maintain a list of actors which may manipulate it.
            Capability-based systems, not to be confused with the systems that refer to special administrative
            abilities as capabilities, flip things around the other way. For each actor, they maintain a list of
            objects upon which the actor may act.

            Mainstream operating system security is discretionary. That is, an object owner may decide
            who else has access to the object.

            Mandatory access control is non-discretionary. A set of rules acts to enforce security, setting
            up permissions that users are unable to override. This stops insiders from being effective spies,
            selling designs to the competition, sharing medical records with the press, running spyware,
            and making many types of user errors.
            None of the above methods excludes any other of the above methods. DG/UX has capabilities,
            discretionary  ACLs,  and  mandatory  access  control.  Linux  provides  discretionary  ACLs  and
            several choices for mandatory access control. File descriptors, available on all UNIX-like systems,
            can serve as capabilities.

            9.1.1 Protection
            The first security attempts were protection schemes, which controlled the access of programs to
            sensitive areas like the 0 page, where the software interrupts for the operating system calls were
            usually stored for efficient calling, or the operating system areas, where the operating system
            code  was  kept  while  it  was  running.  This  capability  was  required  for  time-sharing  because
            neophyte programmers sometimes overwrote the operating system shutting down the whole
            computer because they didn’t understand the addressing system. CPU’s like the Z80 began to
            be designed to set aside “System” areas so that they couldn’t be overwritten by mistake.
            One way of doing this was to create a separate name space for the system and control access
            to it. Often the documentation of how to access the protected mode was scant, or missing from
            popular books, as an attempt to secure it by obscurity. This turned out to be relatively useless
            since it meant that an underground market for information was created, and only the crackers
            knew for sure how they were breaking into the operating systems.
            Some CPU’s set up complex software interrupts as gateways between the protected mode memory
            and the user areas. Each user area had its own software interrupt area, that did a system call to
            the protected system area because the interrupt area was within the user space, the interrupt
            vectors could be overwritten with impunity, without affecting any other programs use of the
            operating system. This was a useful mechanism because peripheral drivers tended to supply
            their own interrupt service routines for specific peripherals.

            An application like Windows could create a virtualized version of itself, and modify the interrupts
            within that one virtual version, without affecting the rest of the operating system. This is usually
            what  the  difference  is,  between  286  and  386  protective  mode,  the  Virtual  copy  of  windows
            with the ability to modify its own interrupt vectors and not affect the rest of the machine. Up
            to now until the 386 protected mode, all programs shared the same interrupt vectors and one




                                             LOVELY PROFESSIONAL UNIVERSITY                                   287
   289   290   291   292   293   294   295   296   297   298   299