Page 397 - DCAP103_Principle of operating system
P. 397

Principles of Operating Systems



                   Notes         13.3 Security in Windows 2000

                                 Having just looked at encryption in the file system, this is a good time to examine security in
                                 general. NT was designed to meet the U.S. Department of Defense’s C2 security requirements
                                 (DoD 5200.28-STD), the Orange site. This standard requires operating systems to have certain
                                 properties in order to be classified as secured enough for certain kinds of military work. Although
                                 Windows  2000  was  not  specifically  designed  for  C2  compliance,  it  inherits  many  security
                                 properties from NT, including the following:

                                    1.  Secure login with antispoofing measures.
                                    2.  Discretionary access controls.
                                    3.  Privileged access controls.

                                    4.  Address space protection per process.
                                    5.  New pages must be zeroed before being mapped in.

                                    6.  Security auditing.
                                 Let us review these items briefly (none of which are met by Windows 98, incidentally).
                                 Secure login means that the system administrator can require all users to have a password in
                                 order to log in. Spoofing is when a malicious user writes a program that displays the login
                                 prompt or screen and then walks away from the computer in the hope that an innocent user
                                 will sit down and enter a name and password. The name and password are then written to disk
                                 and the user is told that login has failed. Windows 2000 prevents this attack by instructing users
                                 to hit CTRL-ALT-DEL to log in. This key sequence is always captured by the keyboard driver,
                                 which then invokes a system program that puts up the genuine login screen. This procedure
                                 works because there is no way for user processes to disable CTRL-ALT-DEL processing in the
                                 keyboard driver.
                                 Discretionary access controls allow the owner of a file or other object to say who can use it
                                 and  in  what  way.  Privileged  access  controls  allow  the  system  administrator  (superuser)  to
                                 override them when needed. Address space protection simply means that each process has its
                                 own protected virtual address space not accessible by any unauthorized process. The next item
                                 means that when a stack grows, the pages mapped in are initialized to zero so processes cannot
                                 find any old information put there by the previous owner. Finally, security auditing allows the
                                 administrator to produce a log of certain security-related events.

                                 In the next section we will describe the basic concepts behind Windows 2000 security. After
                                 that we will look at the security system calls. Finally, we will conclude by seeing how security
                                 is implemented.
                                 13.3.1 Fundamental Concepts of Security in Windows 2000

                                 Every Windows 2000 user (and group) is identified by a SID (Security ID). SIDs are binary
                                 numbers with a short header followed by a long random component. Each SID is intended to
                                 be unique worldwide. When a user starts up a process, the process and its threads run under
                                 the user’s SID. Most of the security system is designed to make sure that each object can be
                                 accessed only by threads with authorized SIDs.
                                 Each process  has an  access  token  that  specifies  its  SID  and  other  properties.  It  is  normally
                                 assigned at login time by winlogon and is shown in Figure 13.13, although processes should call
                                 GetTokenInformation to acquire this information since it may change in the future. The header
                                 contains some administrative information. The expiration time field could tell when the token
                                 ceases to be valid, but it is currently not used. The Groups fields specify the groups to which the
                                 process belongs: this is needed for POSIX conformance. The default DACL (Discretionary ACL) is



        390                               LOVELY PROFESSIONAL UNIVERSITY
   392   393   394   395   396   397   398   399   400   401   402