Lecture #4: OS Security Concepts

Lecture #4: OS Security Concepts

Computer Science 161 Fall 2016 Popa and Weaver Lecture #4: OS Security Concepts 1 Administrivia Computer Science 161 Fall 2016 Popa and Weaver • Project 1 is out now • Start now: Don’t wait for the last minute 2 Access Control Computer Science 161 Fall 2016 Popa and Weaver • Some resources (files, web pages, …) are sensitive. • How do we limit who can access them? • This is called the access control problem • A foundational problem when building a secure system: • We must be able to specify who is allowed and who is forbidden from accessing something • We must be able to enforce our specification 3 Access Control Fundamentals Computer Science 161 Fall 2016 Popa and Weaver • Subject = a user, process, … (something who is accessing resources) Knows Secret # • Object = a file, device, web page, … 123456 (a resource that can be accessed) • Policy = the restrictions we’ll enforce • Mechanism = what enforces the policy • access(S, O) = true if subject S is allowed to access object O • access(S, O) = false if subject S is forbidden to access object O • Defaults matter: • If unspecified, is the default “true” (default-allow) or “false” (default- deny) 4 Example Computer Science 161 Fall 2016 Popa and Weaver • access(Alice, Alice’s Facebook wall) = true • access(Alice, Bob’s Facebook wall) = true • access(Alice, Charlie’s Facebook wall) = false • access(Friend(Alice), Alice’s Facebook wall) = true • Reasoning in terms of “groups” can often make the logic easier • access(nweaver, /home/cs161/gradebook) = true • access(Alice, /home/cs161/gradebook) = false • alert(Alice, attempt to access /home/cs161/gradebook) = hell yah 5 Access Control Matrix Computer Science 161 Fall 2016 Popa and Weaver • access(S, O) = true if subject S is allowed to access object O Alice’s wall Bob’s wall Charlie’s wall … Alice true true false Bob false true false … 6 Permissions Computer Science 161 Fall 2016 Popa and Weaver • We can have finer-grained permissions, e.g., read, write, execute. • access(daw, /cs161/grades/alice) = {read, write} access(alice, /cs161/grades/alice) = {read} access(bob, /cs161/grades/alice) = {} /cs161/grades/alice nweaver read, write alice read bob - 7 Access Control Computer Science 161 Fall 2016 Popa and Weaver • Authorization: who should be able to perform which actions • Nick, Reluca, and the TAs are the only ones authorized to access the grade database • Authentication: verifying who is requesting the action • Yes, this is Nick accessing the grade database • Audit: a log of all actions, attributed to a particular principal • Nick gave John Smith an A+ • Accountability: hold people legally responsible for actions they take • John Smith hijacked Nick’s credentials and now his grade is an F 8 Establishing Identity Computer Science 161 Fall 2016 Popa and Weaver • In order to enforce access control the My Luggage Combination is system needs to know who is whom… #12345 • “Something you know” • Almost certainly a password • “Something you have” • Security token, cellphone, etc • “Something you are” • Fingerprint, iris scan, etc 9 Two Factor Verification Computer Science 161 Fall 2016 Popa and Weaver • Assumption: An attacker can easily grab one factor • Guess/determine your password • Steal your keys • Clone a fingerprint (“Gummy fingers”) • But it is much harder for an attacker to grab two factors • But they have to be independent: If both “factors” are something you know, its not two-factor! • Two-factor can often serve to detect attacks • EG, SMS notification on login • Good 2-factor prevents, not just mitigates attacks • FiDO U2F: The second factor is bound to the site: A phishing link can not use the second factor • If you exclusively use Crome as your web browser, buy yourself a Fido U2F token! 10 Recovery Mechanisms Computer Science 161 Fall 2016 Popa and Weaver • Unfortunately people aren't perfect • They forget passwords, lose authentication tokens, and even suffer accidental amputation... • At scale it gets worse: • If you have 10M users, you're going to have people losing passwords all the time • So recovery proves to be the weakness: • Password recovery channels: email, SMS, etc • But what happens with a lost phone? • "Knowledge Based Authentication": stuff about your finances etc... That the black market knows • Practical upshot: • Lock down the keystone recovery mechanisms: Make sure your phone requires ID in person to change Make sure your master email is well secured 11 Web security Computer Science 161 Fall 2016 Popa and Weaver • Let’s talk about how this applies to web security… 12 Structure of a web application Computer Science 161 Fall 2016 Popa and Weaver (code) /login.php (code) controller database /friends.php (code) /search.php (code) How should we implement access /viewwall.php . control policy? . 13 Option 1: Integrated Access Control record Computer Science 161 Fall 2016 username Popa and Weaver (code) /login.php access check (code) controller database /friends.php access (code) check Record username. /search.php Check policy at each access place in code that (code) check accesses data. /viewwall.php . 14 Option 2: Centralized Enforcement record Computer Science 161 Fall 2016 username Popa and Weaver (code) /login.php access check (code) controller database /friends.php (code) Record username. /search.php Database checks policy for each (code) data access. /viewwall.php . 15 Analysis Computer Science 161 Fall 2016 Popa and Weaver • Centralized enforcement might be less prone to error • All accesses are vectored through a central chokepoint, which checks access • If you have to add checks to each piece of code that accesses data, it’s easy to forget a check (and app will work fine in normal usage, until someone tries to access something they shouldn’t) • Integrated checks might be more flexible • But all it takes is missing ONE check to screw up! • When in doubt, chose the more reliable option 16 Access Control Groups Computer Science 161 Fall 2016 Popa and Weaver • Its often a pain to keep track of everyone individually • So instead lets create groups of people • EG, "cs161-instructors", “cs161-students" • This acts as a convenient shorthand • Now if we define access for a group and if we correctly identify who is in the group • But groups also created of necessity for Unix access control 17 Unix/POSIX File Access Control: User/Group/All Computer Science 161 Fall 2016 Popa and Weaver • Unix and derivatives is old • Development concepts date back to the late 1970s • Legacy often creates security problems and other issues • In the old days, bits were expensive • Hard drives were measured in megabytes rather than terabytes • Idea: each file entry has a small set of permission bits: • User/Group/All: Read/Write/Execute • Execute for programs means its runnable • Execute for folders means you can access files within it • But you need read to see files! • SUID/SETGID: When executed, run as the permissions of the file owner or the specified group 18 Windows File Access Control: ACLs Computer Science 161 Fall 2016 Popa and Weaver • Multi-user Windows is considerably newer with Windows-NT, 1993 • By now, hard drives were starting to be measured in gigabytes • Microsoft’s legacy problems are in a different area • Microsoft uses Access Control Lists • Which can be arbitrarily long • Each Access Control Entry (ACE) describes a user or group and the permissions allowed or denied • Also includes the notion of an “audit” permission noting that items need to be logged • Uses the same mechanism for registry entries as well • Apple’s and Linux’s file system also supports ACLs • Although naturally its a pain to use because the legacy stuff is still the common default for thinking about things 19 The "Superuser" Computer Science 161 Fall 2016 Popa and Weaver • In normal use, the user must not make changes that affect the system or other users • But sometimes you have to, well, fix things • Enter the “Superuser” • An account with extra privileges • Unix: “root” • Windows: “Administrator” 20 Users and SUID programs Computer Science 161 Fall 2016 Popa and Weaver • A SUID program runs as the file’s owner, not the invoking user • A very important property as it means it runs with the privileges of the file owner • Many important things can only be done as the superuser “suid root” • Accept connections on low network ports • Become any other user • An important one being “nobody”: the user with no additional permissions • A vulnerability in a suid root program can generally compromise the entire machine 21 Complete mediation Computer Science 161 Fall 2016 Popa and Weaver • The principle: complete mediation • Ensure that all access to data is mediated by something that checks access control policy. • In other words: the access checks can’t be bypassed • If you don’t have complete mediation, your access control will fail! 22 Reference monitor Computer Science 161 Fall 2016 Popa and Weaver • A reference monitor is responsible for mediating all access to data reference subject monitor object • Subject cannot access data directly; operations must go through the reference monitor, which checks whether they’re OK 23 Criteria for a reference monitor Computer Science 161 Fall 2016 Popa and Weaver • Ideally, a reference monitor should be: • Unbypassable: all accesses go through the reference monitor • Otherwise an attacker will go around • Tamper-resistant: attacker cannot subvert or take control of the reference monitor (e.g., no code injection) • Otherwise an attacker will corrupt the reference monitor • Verifiable: reference monitor should be simple enough that

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    44 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us