cse543 introduction to computer and network security
play

CSE543 - Introduction to Computer and Network Security Module: - PowerPoint PPT Presentation


  1. �������฀฀���฀฀�������� ��������������฀�������� � � �������฀���฀��������฀��������฀������ ����������฀��฀��������฀�������฀���฀����������� ������������฀�����฀�����������฀����������฀����฀฀�� CSE543 - Introduction to Computer and Network Security Module: Operating System Security Professor Patrick McDaniel Fall 2008 1 CSE543 - Introduction to Computer and Network Security Page

  2. OS Security • An secure OS should provide (at least) the following mechanisms ‣ Memory protection ‣ File protection ‣ General object protection ‣ Access authentication • How do we go about designing a trusted OS? • “Trust” in this context means something different from “Secure” 2 CSE543 - Introduction to Computer and Network Security Page

  3. Trust vs. Security • When you get your medication at a pharmacy, you are “trusting” that it is appropriate for the condition you are addressing. In effect, you are arguing internally: The doctor was correct in prescribing this drug ‣ ‣ The FDA vetted the drug through scientific analysis and clinical trials No maniac has tampered with the bottle ‣ • The first two are are matters “trust”, and the last is a matter of “security” • An OS needs to perform similar due diligence to achieve “trust” and “security” 3 CSE543 - Introduction to Computer and Network Security Page

  4. Access Control Lists • ACL: a list of the principals that are authorized to have access to some object. • Or more correctly: • Eg., O 2 O 1 : S 1 O 2 : S 1 , S 2 , S 3 S 1 Y O 3 : S 3 S 2 Y • We are going to see a lot of S 3 Y examples of these throughout the semester. 4 CSE543 - Introduction to Computer and Network Security Page

  5. ACL in systems • ACLs are typically used to implement discretionary access control • For example: you define the UNIX file system ACLs using the chmod utility …. 5 CSE543 - Introduction to Computer and Network Security Page

  6. Discretionary Access • The UNIX filesystem implements discretionary access control through file permissions set by user • The set of objects is the files in the filesystem, e.g., /etc/passwd ‣ • Each file an owner and group (subjects) The owner is typically the creator of the file, and the entity ‣ in control of the access control policy Note: this can be overridden by the “root” user ‣ • There is a additional subject called world , which represents everyone else 6 CSE543 - Introduction to Computer and Network Security Page

  7. UNIX filesystem rights … • There are three rights in the UNIX filesystem ‣ READ - allows the subject (process) to read the contents of the file. ‣ WRITE - allows the subject (process) to alter the contents of the file. ‣ EXECUTE - allows the subject (process) to execute the contents of the file (e.g., shell program, executable, …) • Q: why is execute a right? • Q: does the right to read a program implicitly give you 7 CSE543 - Introduction to Computer and Network Security Page

  8. The UNIX FS access policy • Really, this is a bit string encoding an access matrix • E.g., rwx rwx rwx World Group Owner • And a policy is encoded as “r”, “w”, “x” if enabled, and “-” if not, e.g, rwxrw--x • Says user can read, write and execute, group can read and write, and world can execute only. 8 CSE543 - Introduction to Computer and Network Security Page

  9. Caveats: UNIX Filesystem • Access is often not really this easy: you need to have certain rights to parent directories to access a file (execute, for example) The reasons for this are quite esoteric ‣ • The preceding policy may appear to be contradictory ‣ A member of the group does not have execute rights, but members of the world do, so … A user appears to be both allowed and prohibited from ‣ executing access ‣ Not really: these policies are monotonic … the absence of a right does not mean they should not get access at all, just that that particular identity (e.g., group member, world) should not be given that right. 9 CSE543 - Introduction to Computer and Network Security Page

  10. Tokens • Like the UID/GID in a UNIX process User ‣ Group ‣ Aliases ‣ Privileges (predefined sets of rights) ‣ • May be specific to a domain • Composed into global SID • Subsequent processes inherit access tokens ‣ Different processes may have different rights 10 CSE543 - Introduction to Computer and Network Security Page

  11. Access Control Entries DACL in the security descriptor of an object • List of access control entries (ACEs) ‣ ACE structure (proposed by Swift et al) • Type (grant or deny) ‣ Flags ‣ Object Type: global UID for type (limit ACEs checked) ‣ InheritedObjectType: complex inheritance ‣ Access rights: access mask ‣ Principal SID: principal the ACE applies to ‣ Checking algorithm • ACE matches SID (user, group, alias, etc) ‣ ACE denies access for specified right -- deny ‣ ACE grants access for some rights -- need full coverage ‣ 11 CSE543 - Introduction to Computer and Network Security Page

  12. Access Checking with ACEs • Example 12 CSE543 - Introduction to Computer and Network Security Page

  13. Window Vista Integrity • Integrity protection for writing • Defines a series of protection level of increasing protection untrusted (lowest) ‣ low (Internet) ‣ ‣ medium (user) high (admin) ‣ system ‣ installer (highest) ‣ • Semantics: If subject’s (process’s) integrity level dominates the object’s integrity level, then the write is allowed 13 CSE543 - Introduction to Computer and Network Security Page

  14. Vista Integrity • Does Vista Integrity protect the integrity of J’s public key file O 2 ? O 1 O 2 O 3 J R RW RW S 2 N R RW S 3 N R RW 14 CSE543 - Introduction to Computer and Network Security Page

  15. UID Transition: Setuid • A special bit in the mode bits • Execute file Resulting process has the effective (and fs) UID/GID of file ‣ owner • Enables a user to escalate privilege For executing a trusted service ‣ • Downside: User defines execution environment e.g., Environment variables, input arguments, open ‣ descriptors, etc. • Service must protect itself or user can gain root access • All UNIX services involves root processes -- many via setuid 15 CSE543 - Introduction to Computer and Network Security Page

  16. /tmp Vulnerability • creat(pathname, mode) • O_EXCL flag if file already exists this is an error ‣ • Potential attack Attacker creates file in shared space (/tmp) ‣ Give it a filename used by a higher authority service ‣ Make sure that service has permission to the file ‣ If creat is used without O_EXCL, then can share the file ‣ with the higher authority process 16 CSE543 - Introduction to Computer and Network Security Page

  17. Other Vulnerabilities • Objects w/o sufficient control Windows registry, network ‣ • Libraries Load order permits malware defined libraries ‣ • Executables are everywhere Web content, Email, Documents (Word) ‣ • Labeling is wrong Mount a new file system; device ‣ • Malware can modify your permissions Inherent to discretionary model ‣ 17 CSE543 - Introduction to Computer and Network Security Page

  18. Sandboxing • An execution environment for programs that contains a limited set of rights A subset of your permissions (meet secrecy and integrity goals) ‣ Cannot be changed by the running program (mandatory) ‣ 18 CSE543 - Introduction to Computer and Network Security Page

  19. UNIX Chroot • Create a domain in which a process is confined Process can only read/write within file system subtree ‣ ‣ Applies to all descendant processes Can carry file descriptors in ‘chroot jail’ ‣ 19 CSE543 - Introduction to Computer and Network Security Page

  20. Chroot Vulnerability • Unfortunately, chroot can trick its own system define a passwd file at <newroot>/etc/passwd ‣ run su ‣ su thinks that this is the real passwd file • gives root access ‣ Use mknod to create device file to access physical memory • • Setup requires great care Never run chroot process as root ‣ Must not be able to get root privileges ‣ No control by chrooted process (user) of contents in jail ‣ Be careful about descriptors, open sockets, IPC that may be ‣ available 20 CSE543 - Introduction to Computer and Network Security Page

  21. Process-specific Permissions • Design the permissions of a process specific to its use • How do we change the permissions of a process in an ACL system? 21 CSE543 - Introduction to Computer and Network Security Page

  22. Confused Deputy Problem • Imagine a multi-client server Clients have a different set of objects that they can access ‣ • In an ACL system, the server always has access to all the objects ‣ What happens if a client tricks the server into accessing into another client’s objects? ‣ Shouldn’t the server only have access to that client’s objects for its requests? 22 CSE543 - Introduction to Computer and Network Security Page

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend