home *** CD-ROM | disk | FTP | other *** search
-
- **************************************************************************
- Info: Windows NT Security Issues
- Source: http://www.somar.com/
- **************************************************************************
-
- Lax registry permissions
-
- NT installs by default with Everyone given write access to much of the
- registry. To see just how much, use the Somar DumpAcl program. This is a
- major problem because the registry on any machine running NT, both servers
- and workstations, can be accessed remotely using Registry Editor. So a
- user running on some workstation can modify the registry on any server or
- workstation on which this user has an account (normally this means all
- servers), or on which the guest account is enabled.
-
- Since the registry is similar to a file system, the obvious solution is
- either to stop sharing the registry or else set registry permissions
- securely. Unfortunately, there is no way to stop sharing the registry
- currently. As far as setting permissions, this is possible in theory but
- impractical because of the complexity of the registry. It is doubtful that
- anyone besides Microsoft can give guidance as to exactly which registry keys
- can be made read-only for ordinary users and which must be writeable by
- ordinary users. It is not acceptable to set permissions on the
- HKEY_LOCAL_MACHINE root key and let those permissions be propagated to all
- subkeys. This will cause various problems with the functioning of NT (it
- did when I tried it at least). If it is possible, then Microsoft needs to
- explicitly say so.
-
- It is possible to enable auditing of the successful change of all registry
- keys and then write a program to scan the audit log looking for changes
- made by other than the admininstrator, but this seems a poor way to run a
- system. It is analogous to letting all users write to all files, then
- auditing the changes and punishing users who changed files they weren't
- supposed to change. It is clearly better to just deny write permission to
- begin with if you don't want the user changing the file or registry key.
-
- Consider various scenarios. A malicious user changes a few registry entries
- so that various services begin functioning strangely, but not so strangely
- that it is obvious what has happened. The problems are not reproducible at
- other sites and the sysadmin feels like a fool. If logging is enabled, the
- sysadmin might eventually track the problem to the user who made the changes,
- but in reality, most sysadmins will just reinstall NT. The user might then
- wait a few months, then make the changes again. So the sysadmin comes to
- the conclusion that NT needs reinstallation every few months to keep things
- running properly.
-
- It is also possible for a user to make the changes while logged on using
- another users account (the other user stepped out of the room without
- locking their workstation, or they wrote their password down in a notebook
- and the malicious user found it, etc, etc). In this case, even if the
- sysadmin traces the changes using the registry audit logs, they won't find
- the real culprit.
-
- I have raised this isues of lax permissions with Microsoft and they looking
- into it.
-
- Permissions set improperly
-
- If the file system has a large number of files (say 500,000), it is
- impractical to examine the permissions on each file using file manager.
- Somar DumpAcl produces a report of permissions which groups files and
- directories with the same permissions, so the report of file system
- permissions is much shorter. Permissions are only shown for the root
- directory and files and directories below the root whose permissions differ
- from those of the root. If all files and directories have the same
- permissions, a report of permissions consists of a single item.
-
- One of common ways for files to get "wrong" permissions is due to
- differences between the way permissions are treated when copying versus
- moving a file. Copying a file causes the file to inherit permissions from
- the directory into which the file is copied. Moving a file preserves
- existing permissions on the file. So, a user might create a file in a
- temporary directory whose initial permissions give Everyone full control.
- This user then decides to add some data to the file that they don't want
- other users to change. So they move the file to a directory where only they
- have write permission. However, the file will still have the original
- permissions, giving Everyone write permission. If the user had copied the
- file and then deleted the original, the file would have the same
- permissions as the directory. The Somar DumpAcl report makes it very easy
- to spot files with "wrong" permissions.
-
- Remote procedure calls
-
- NT programs use remote procedure calls (RPCs) to allow various system
- services to be performed on a remote computer (i.e. a computer other than
- the local computer where the program is executing). For example, the
- ability to modify the registry on remote computers is implemented using
- remote procedure calls.
-
- There are mechanisms in NT for the RPC server to learn the username of the
- RPC client and then to limit the functions it will perform based on that
- username. However, as shown too many times in this document, there is a big
- difference between having good security mechanisms and having good
- security. If the RPC server ignores the username or incorrectly gives too
- many capabilities to the Everyone account or whatever, then there is a
- security hole. Since this whole aspect of NT seems poorly documented,
- there is really no telling how many security holes there are in this area.
-
- Securing a shared workstation
-
- Many users have asked how to secure a shared workstation so users cannot do
- any damage to the machine. For example, a workstation in a computer lab at
- a university. As described above, there is no way to secure the registry.
- The file system can be secured by setting the entire drive to the following
- permissions:
-
- SYSTEM full control
- Administrators full control
- Everyone or Users read only
-
- Permissions should then be reset on the %SYSTEMROOT%\SYSTEM32\CONFIG
- dirctory as follows:
-
- SYSTEM full control
- Administrators full control
- CREATOR OWNER full control
- Everyone or Users add permission only
-
- These settings allow users to create a profile, but prevent them from
- reading other users profiles, to avoid the security issues described in
- the section on Profiles contain sensitive information.
-
- Permissions should also be reset on the TEMP directory
- (C:\TEMP or whatever) as follows:
-
- SYSTEM full control
- Administrators full control
- CREATOR OWNER full control
- Everyone or Users add permission only
-
- These settings allows users to use the TEMP directory, but avoid problems
- with users being able to read temporary files containing sensitive
- information that were created (and never deleted) by other users. Even if
- user remove files with sensitive information from the temporary directory,
- there is the issue of permissions being retained when a file is moved
- instead of copied (discussed in the section on Permissions set improperly).
- So the permissions on the TEMP directory should be set so initial
- permissions on a file are restrictive. Users can later make the file
- world-readable if they want to.
-
- There are other files and directories to which users of a shared
- workstation may need write access:
-
- * Some applications require write access to the application directory
- to store data. cc:Mail is an example.
- * Many older Windows applications require write access to the
- %SYSTEMROOT% directory to store .INI files. Newer 32 bit
- applications should use the user registry instead of .INI files.
- * DOS graphic programs require write access to
- %SYSTEMROOT%\SYSTEM32\CMOS.RAM.
- * The builtin NT backup program requires write access the
- %SYSTEMROOT%\SYSTEM32 directory to store temporary files.
-
- The above list is not all-inclusive. You can enable failure auditing on all
- files and then examine the audit logs after making the most of the file
- system read-only to determine what files users need write access to. You
- can also use the Somar DumpAcl program to dump and print file permissions
- prior to making any changes.
-
- Macro runs when document is opened
-
- A WinWord document can contain a macro which runs when the file is opened.
- These macros can perform very powerful operations, including file i/o,
- sending mail or calling Win32 services. So a malicous user might ask
- another, unsuspecting user to read a document the first user wrote. This
- document contains a WordBasic macro which runs when the document is opened.
- The macro copies all files from the unsuspecting user's personal
- directories to a directory to which both users have read and write
- permission. The macro then sends mail to the malicious user notifying them
- of what happened. The document may take a while to start up, but the
- unsuspecting user assumes this is because the document is long. The
- malicous user later deletes the WordBasic macro from the document and
- notifies the unsuspecting user to replace any copy they made, so that
- all potentially incriminating evidence is destroyed.
-
- It is also possible to write the macro so it calls a user written DLL that
- does something useful, as well as copying files and performing other
- hostile acts. This DLL might be large and complicated so that it would
- be very difficult to disassemble it and prove that it was doing something
- wrong. Even if you were able to prove that the DLL was accessing your
- files, the author could say this was due to a bug in the DLL. If you
- demanded the source from which the DLL was compiled, the auther could give
- you some modified source. When you pointed out that this source could not
- be used to build the DLL exactly, the author could reply that the source
- had been modified to fix bugs since the DLL was originally built, which is
- a perfectly reasonable explanation. By using a DLL in other words, there is
- never any incriminating evidence.
-
- There are other programs besides WinWord which can create files which
- contain embedded macros which execute automatically when the file is opened
- in the creating application. For example, Microsoft Access and Lotus Ami
- Pro (these are just the programs I am aware of, I am sure there are many
- others). Also, Postscript files, believe or not, have file i/o capability.
- So if you open a postscript file in an interpretor, it might go out and
- modify any files to which you have write access. Also, Windows Help files
- (.HLP extension) can call DLLs (typical use is to customize the Help
- program in some way).
-
- So, suppose you receive a package containing a .HLP, .EXE and a .DLL file
- all together. You want to browse the .HLP file to see what this package is
- all about and whether you trust it enough to run the .EXE file. You assume
- the .DLL is called by the .EXE only. When you open the .HLP file, the .DLL
- is executed and it's too late if you decide the package is untrustworthy.
-
- WinWord and Access both allow the user to hold down the shift key when
- opening a document to prevent any macro from running. It is difficult to
- get in the habit of doing this (I am speaking from experience), especially
- when most of the Word or Access documents you open are your own, and
- therefore known to be safe.
-
- Why authors of programs feel the need to include powerful embedded macro
- languages is something I really don't understand. It is possible to
- accomplish most of what embedded languages do using DDE or OLE automation.
- The advantage is that the end user learns one scripting language
- environment and then applies it to different applications, as opposed to
- learning a new language for each application. Microsoft has decided to
- include VBA in all of their products, which reduces the amount of learning
- to some extent. But why, I ask, not just provide good OLE Automation
- capabilities so we don't need embedded macro languages at all, but can
- instead use a separate Visual Basic program?
-
- In any case, if it is absolutely necessary (for political or marketing
- reasons) to include an embedded scripting language in an application, then
- users should be allowed to set an option in the application so that they
- are prompted before any macros are run (e.g. "this document contains an
- embedded macro. Do you want to run this macro?"). There should be no way
- for the document to override this option and the option setting should be
- persistent (saved in a .INI file or the user's registry profile). If
- absolutely necessary, the application can be designed so that if the user
- refuses to run the macro, the application will refuse to open the document.
-
- Interesting Note. I was just reading about the Good Times mail "virus".
- This is a hoax which alleged that there was a way to write a mail message
- such that if you read the mail message, all your files would be deleted.
- Users reading this hoax become frantic that they can no longer read any
- mail without endangering their system. Actually, there is an element of
- truth to this. If the mail message included an attached Word document, then
- reading that attachment might cause a macro to be run which deleted all
- your files. These attachments can be sent using SMTP MIME or Microsoft
- and other propertiary mail systems.
-
- File sharing issues
-
- The SMB file and print server protocol used by NT is much more resistant to
- impersonation and session hijacking than the NFS file sharing protocol used
- on Unix. This is significant since NFS is one of the biggest security
- weaknesses on Unix.
-
- It is remotely conceivable that a gateway machine could hijack an SMB
- session and then read/write any files to which the true user of that
- session had access. However, the likelihood of this happening is very small,
- since true gateway machines are seldom used on LANs due to performance
- reasons. If the machine attempting the impersonation or hijacking is merely
- a node on the same Ethernet or Token Ring as the client and/or server, then
- it would probably be very difficult to perform the impersonation or
- hijacking. In particular, it would be difficult to get packets routed to
- the impersonating machine instead of the true destination machine.
-
- In any case, the much more relevant security risk is that user data is
- transmitted in the clear and so can be easily read by any computer on any
- LAN over which the data passes. Remember that if you connect to a remote
- network drive over the Internet or other insecure connection, you are
- passing data back and forth whenever you read or write a file on the
- network drive. File manager gives the illusion of the data being local,
- which makes remote files easy to use, but which can also lead to security
- breaches.
-
- This risk of eavesdropping does not exist for logons passwords, since these
- are never transmitted in the clear over the network, but rather a
- challenge-response protocol is used instead.
-
- In the long run, it would be nice if Windows NT were designed so that all
- SMB protocol data passed over the network was automatically encrypted,
- using a key which was randomly chosen for each NetBios session. No directly
- competing operating systems have this feature and, until some do, it is
- unlikely NT will. If you have a need to transmit data over an insecure
- network and you want to be protected from eavesdroppers, you will need to
- use some sort of encryption. For example, there are router boxess that can
- encrypt all TCP data, but not the IP header which is used for routing. Put
- one of these routers at two sites and configure with the same key all data
- passed between those sites with be secure. You are still open to traffic
- analysis, however. Traffic analysis is a concern, for example, when an
- undercover spy wants to send reports back to the home office, or similar
- scenarios.
-
- Profiles contain sensitive information
-
- Some users put their userid and password on the command line of the program
- manager item, for example for Microsoft Mail. This way they can start mail
- by just double-clicking the mail icon, without having to type in their
- password. This password will be embedded in the user profile.
-
- The local user profile is stored in %SYSTEMROOT%\SYSTEM32\CONFIG and also
- on a file server share, if a named, domain-wide user profile has been
- assigned for the user. Permissions on these directories should
- be like:
-
- SYSTEM full control
- Administrators full control
- CREATOR OWNER full control
- Everyone or Users add permission only
-
- This is how permissions are initially set on %SYSTEMROOT%\SYSTEM32\CONFIG.
- Since CREATOR OWNER has full control, each user will have full control of
- their own profile. Since Everyone and Users have only add permission, they
- will be able to create a profile, but won't be able to read other users
- profiles.
-
- In some cases, such as with 3270 emulator programs, passwords are included
- in keyboard macros (so the user can use F12 or whatever to initiate the
- entire logon sequence). These macros may be stored in the user profile or
- a file. If a file, users should be warned to make sure the directory where
- this file is stored is not world-readable. This is primarily a concern on
- shared workstations.
-
- Passwords in general
-
- If a password is short and obvious, then it can be guessed. If it is
- written down in a notebook, it can be discovered. So pick a long password,
- consisting of a mixture of upper and lower case letters and punctuation,
- never write it down, and change it often (but not so often you feel the
- need to write it down). This is all well-known, but so important that it is
- worth repeating nonetheless. Finding someone's password written down is
- the lowest-tech way to break into a system, but unfortunately also the
- most common.
-
- Special shares
-
- NT shares the %SYSTEMROOT%\SYSTEM32\REPL\EXPORT\SCRIPTS directory, so that
- users can read their login script during login. Normally, all of the
- scripts are readable by Everyone. So be careful what you put in these
- scripts and this directory. Other special shares are created by other
- installed services, such as SNA server or SMS. Use Somar DumpAcl to dump
- a list of shares and their permissions. And examine the permissions on the
- directories underlying the shares. Remember that the final access
- permission on a shared directory is the intersection of the share and NTFS
- permissions. So while you are setting permissions to restrict access, be
- careful you don't unintentionally completely remove access.
-
- Win32 services default to running under SYSTEM account
-
- Many of the internet Unix breakins occurred when someone discovered a bug
- in a TCP/IP service and took advantage of this bug to break into the
- system. For example, the infamous Internet worm took advantage of a bug
- which caused the stack to be overwritten if the finger daemon received bad
- input. Obviously, you should try to only run services which do not have
- bugs. However, the danger if there is a bug is greatly reduced if the
- service runs under an ordinary user account with restricted permissions,
- instead of under the SYSTEM account (which corresponds to the Unix root
- account). So, for example, run your SMTP service under an smtpuser account,
- and give this account limited privileges, instead of running it under the
- SYSTEM account.
-
- Viruses
-
- If you are not familiar with viruses, there are many good books on the
- subject. NT is better secured than DOS from viruses, provided you normally
- run under an ordinary user account (not administrator), and keep most
- system files protected against modification by user accounts. NT is also
- secure against boot sector viruses, which are the most difficult to
- eradicate, provided you never boot with a floppy in the drive, since NT
- does not allow non-privileged programs to write directly to disk.
-
- Data on disk not encrypted
-
- Anyone who has physical access to a machine can read file system data by
- either reinstalling NT (the installer can pick the initial Administrator's
- password and Administrator can read all files) or booting from a DOS floppy
- and reading raw sectors using a low level disk utility. In both cases, the
- user would need access to the floppy drive. On many machines, the floppy
- can be disabled via the BIOS. There are two ways to get around a disabled
- floppy:
-
- * Resetting the BIOS. Typically this is done by setting a jumper which
- causes a slow discharge of the battery needed to preserve the BIOS settings
- in CMOS. Discharge might take several hours, or several minutes, depending
- on your motherboard. Don't trust manufacturer's specs, since this is not
- something anyone tests.
- * Moving the hard drive to another machine and reading it there.
-
- These techniques require opening the computer case, so there should be no
- risk for machines stored in open areas where opening a case would be
- immediately noticed.
-
- If the case can be opened, then you will need to encrypt data on disk.
- There are various products which allow you to do this, with varying degress
- of user-friendliness and transparency. (Any manufacturers who would like me
- to list there product and add hypertext links to their Web pages, just drop
- me a note).
-
- If you need military grade security, it should be noted that fragments of
- any file that is stored unencrypted in memory can be written to the paging
- file. So software encryption products will not be sufficient in this case.
- What you need instead is a disk controller which encrypts data on the fly
- as it is transferred between memory and disk. Typically, the user would be
- prompted for a password by the disk controller BIOS during cold boot. An
- examples of where military grade security is needed is a embassy which
- contains secret data on PCs. These PCs might fall into the hands of a
- hostile intelligence agency with adequate resources to extract information
- from the fragments of data in the paging file. For most users, such
- military grade security is not really necessary.
-
- Backup/Restore user rights allow reading/writing all files
-
- It is obvious that to perform a backup, the operator needs to be able to
- read all files. What is not obvious is that tape need not be involved. It
- is trivial to write a program in C which takes advantage of the backup right
- to read any file in the system. So be careful of who you give the backup
- right to. The use of the backup right as well as accesses to files can be
- logged in the Audit log. Users who have both backup and restore rights can
- read any file, modify it and write it back. As with the Backup right, use
- of the restore right can be logged. User Manager is used to assign rights
- to users and enable auditing of the use of user rights.
-
- Data on backup tapes not encrypted
-
- The NT backup program does not encrypt data on tape. So anyone who has a
- tape can read it on another machine on which the user has restore
- privileges, such as their personal NT workstation.
-
- FTP/Telnet passwords
-
- Microsoft does a good job of warning people about the fact that FTP
- passwords are transmitted in the clear. Especially for machines connected
- to the Internet, it is probably best to allow only anonymous FTP, so that
- no one ever attempts to transmit a password to your machine over the
- internet. If you FTP or Telnet from your machine to another machine on the
- internet, the same warning applies: any password you enter or any
- data you transmit, could be intercepted by other machines on networks over
- which the data is passed.
-
- FTP service directory
-
- The home directory you specify for the FTP service is only the initial
- current directory. Ftp users can change their current directory. So if you
- specify a home directory of c:\ftp, any ftp user can change to c:\ and thence
- change to any subdirectories under c:\. Normal NTFS permissions will apply,
- of course, to whatever account the ftp user is running under. If you don't
- want ftp users to be able to see the root directory of your primary
- partition, you should create a separate partition for ftp and then
- configure ftp so that it can only read and/or write to that partition.
-
- Application software issues
-
- The really valuable data on a computer system is what is produced by
- applications and stored in file and databases. It is very important to
- write and install these applications with an eye on security. It does no
- good to follow all the guidelines above and then have SQL Server setup in
- such a way that anyone with an account can read the entire database. Or to
- have an transaction processing monitor which runs under a privileged
- account and allows unprivileged users to submit requests that give them
- access to the entire file system.
-
- Send comments and questions to info@somar.com
- All material Copyright ⌐ 1995 Somar Software. Last updated 3 June 1995.
-
-