46
CS363 Week 7 - Wednesday

Week 7 - Wednesday. What did we talk about last time? Targeted malicious code Controls against program threats Memory protection

Embed Size (px)

Citation preview

Page 1: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

CS363Week 7 - Wednesday

Page 2: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Last time

What did we talk about last time? Targeted malicious code Controls against program threats Memory protection

Page 3: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Questions?

Page 4: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Project 2

Page 5: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Assignment 3

Page 6: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Security PresentationCody Kump

Page 7: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

OS Security

Page 8: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Access control

Memory is not the only thing we want to protect access to

Other important objects: Files Directories Hardware devices OS internals Passwords The protection mechanism itself

Page 9: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Access control goals

Check every access The user may no longer have rights to a

resource The user may have gained rights

Enforce least privilege Least privilege means you get the bare

minimum to get your job done Verify acceptable usage

Access to an object is not enough: Some actions might be legal and others illegal

Page 10: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Directory based approaches Create a directory that lists all the objects

a given user can access and their associated rights: Examples: read, write, execute, own

The own write gives the user the ability to grant others rights to that object

Problems: Directories can become large How is access revoked? What if two files in different locations in the

system have the same name?

Page 11: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Access control lists

Listing all the objects a user can access can take up too much space

An alternative is to list all the users that have rights for a specific object

Most objects only have a few legal users

Wild cards can make the situation easier Read access can be granted to everyone

Page 12: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Access control matrices

Both directories and access control lists are equivalent

Different implementations are used for different kinds of efficiency

We can also imagine a matrix that holds all subjects and all objects

Although it is far too inefficient for most systems to be implemented this way, security researchers sometimes use this model for theoretical purposes Can you determine if some sequence of operations

could leak read access to your file? Nope, it’s impossible!

Page 13: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Access control matrix example

Objects

Subjects file 1 file 2 process 1 process 2

process 1 read, write, own read

read, write, execute,

ownwrite

process 2 append read, own readread, write,

execute, own

Page 14: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Rights

A few possible rights: Read Write Execute Own Anything else that is useful?

Some rights allow users to change the rights of others

Page 15: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Blackboard system

What would the access control matrix look like for the Blackboard gradebook system?

Page 16: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Extended Unix example

Unix has users, groups, and processes

A user has a unique UID A group has a unique GID A process has a unique PID Each user can belong to many

groups Access is controlled on:

Files Directories

Page 17: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

File permissions

Reading Writing Executing Ownership is also important

Page 18: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Directory permissions

Reading Execution allows moving through the

directory Writing and executing are needed to

create and delete files in a directory There is also a “sticky bit” for

directories If the sticky bit is set, only the directory

owner can rename, move, or delete files owned by other people

Page 19: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Permission example

drwxr-xr-x

First character: directory or not

Next three characters: owner permissions

Next three characters: group permissions

Next three characters: other permissions

Page 20: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

chmod example

We can change permissions using the Unix command chmod

Examples: chmod a+r wombat.txt chmod g+rw combat.txt chmod 664 ramjet.txt

Whoa! 664? What’s that? Would it help if I pointed out that 664

can be written 110110100?

Page 21: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

sudo

It is possible to temporarily use another user’s permissions in Unix using the command sudo

Users can be given special access to files or commands they normally could not access

An administrator can run at a normal privilege level and only occasionally run commands using higher privileges

This strategy prevents the whole system from being corrupted if the administrator gets a virus

Page 22: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Role-based access control

Role-based access control makes an effort to abstract away from specific subjects

The idea is that you should have access based on your role

Examples: Secretaries have access to mailboxes Department heads have access to

performance reports Provosts have access to salaries

Page 23: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

RBAC definitions

A role is a collection of job functions Each role is authorized to perform

one or more transactions The active role of a subject is the

role that s is currently performing The authorized roles of a subject

make up the set of roles that the subject is authorized to assume

Page 24: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Authentication

Page 25: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Definition of authentication Authentication is the binding of an

identity to a subject Example: Bill Gates (external entity) is a

registered user whose identity on this system is gatesw (identity of system subject)

The external identity must provide information to authenticate based on1. What the entity knows (passwords)2. What the entity has (security badge)3. What the entity is (fingerprints or voice ID)4. Where the entity is (using a particular terminal)

Page 26: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Passwords

Page 27: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Passwords

Passwords are one of the most common forms of authentication mechanisms based on what the entity knows

The password represents authentication information that the user must know

The system keeps complementation information that can be used to check the password

As you now know, real systems generally do not store passwords in the clear but store hashes of them

Unix chooses one of 4,096 different hash functions, hashes the password into an 11-character string, and then prepends 2 characters specifying which hash function was used

Page 28: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Attacking a password system A dictionary attack is an attack based on guessing the

password from trial and error A dictionary attack can work on the complementary information

(hashes of passwords) If this information is unavailable, a dictionary attack can directly attack

the authentication functions (literally trying to log in repeatedly) Let P be the probability that an attacker guesses the password

over a certain span of time Let G be the number of guesses that can be made per unit time Let T be the number of time units of guessing Let N be the number of possible passwords Then,

NTG

P

Page 29: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Random passwords

One way of protecting against attacks is by making an attacker search the largest possible number of passwords

You can maximize this time by making all passwords in the set of possible passwords equally likely

To do this, you use a strong source of randomness to generate your password

Advantages and disadvantages?

Page 30: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Pronounceable passwords

Because it is difficult to memorize truly random passwords, randomly generating pronounceable passwords is sometimes used instead

A pronounceable password is one made up of a string of random syllables that can be pronounced together helgoret juttelon

It is not difficult to write a computer program to produce a string of pronounceable phonemes

Advantages and disadvantages?

Page 31: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

User selection of passwords Instead of either of the previous methods

for randomly generating passwords, most systems allow users to pick their own passwords

Unfortunately, users are notoriously bad at picking passwords Everyone picks "babygirl" or, worse,

"password"Proactive password checkers allow

users to pick passwords but reject them if they violate certain conditions

Page 32: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Easy to guess passwords1. Passwords based on account names2. Passwords based on user names3. Passwords based on computer names4. Dictionary words (and reversed versions)5. Dictionary words with some or all letters capitalized (and reversed

versions)6. Dictionary words with some letters turned into control characters or

1337 substitutions7. Conjugations of dictionary words8. Keyboard patterns9. Passwords shorter than 6 characters10. Passwords containing only digits11. Passwords containing just letters, letters and numbers, or letters and

punctuation12. Passwords that look like license plate numbers13. Acronyms14. Past passwords15. Concatenations of dictionary words16. Dictionary words with digits, punctuation, or spaces preceding or

following17. Dictionary words with all vowels deleted18. Dictionary words with white spaces deleted19. Passwords too similar to the previous password

Page 33: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Good passwords

A password should have at least one digit, one letter, one punctuation symbol, and (ideally) one control character (not possible in many environments)

Relatively strong passwords can be generated by taking an unusual phrase or line of a poem and taking (say) the third letter out of each word, leaving in punctuation, and capitalizing some letters according to a rule

Page 34: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Proactive password checker criteria

To be a solid proactive password checker, research suggests it must meet certain criteria:1. It must always be used2. It must be able to reject easily guessed passwords3. It must discriminate on a per-user basis (checking

family names and birthdays, etc.)4. It must discriminate on a per-site basis (no commonly

used site acronyms)5. It should have a pattern matching facility to catch

bad passwords like "aaaaa"6. It needs the ability to execute other programs as

subroutines7. It should be easy to set up

Page 35: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Salting

Some attackers are looking for any password instead of trying to find a specific password

If they have access to the file with the hashes of passwords, they have much less searching to do if the total number of accounts is large (some hash will match, even if the password doesn't)

For this case, salting is used Salting adds random data to the password in stored form so

that an attacker cannot immediately recognize the password In Unix, this is a random choice of 4,096 different hashing

functions (the specific choice is recorded with the password) Other systems can simply add random bits to the end of the

password before hashing (which can all be tried at authentication time)

Salting has little or no impact on an attack against a single password

Page 36: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Attacking authentication functions

In many cases, attackers do not have access to the complementation functions (the raw hash values or the hash functions)

Instead, they must attack the authentication functions themselves

In these situations, authentication functions can be protected by one of several common techniques

Page 37: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Defending authentication functions

Backoff Force the user to wait longer and longer between failed authentication

techniques Exponential backoff means that the first time waits 1 second before allowing a

user to log in, the second waits 2 seconds, the third waits 4 seconds, etc. Disconnection

If the connection is remote and requires significant time to connect (dialing, VPN, etc.), the system can simply break connection after a number of failed attempts

Disabling With n failed attempts, an account is locked until an administrator resets the

account Jailing

In jailing, the user is allowed to enter a fake system that looks like the real one

In theory, jailing can be used to learn more about an attacker's goals Attractive data (called honeypots) can be made available, tempting the

attacker to spend more time on the system (until he can be caught)

Page 38: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Password aging

Password aging is the idea that passwords should be changed in approximately the amount of time it would take to guess them

This concept fuels the requirement that we change our Outlook Web Mail passwords frequently

In principle, this is a sound security idea In practice, over-frequent (or unwarned)

password expirations cause user discontent and unconstructive behavior (changing passwords minimally or writing new passwords on Post-It notes)

Page 39: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Challenge Response

Page 40: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Pass Algorithms

Some systems have a special function f a user (or user's system) must know

Thus, the system will give the user a prompt, and the user must respond

Perhaps the system would issue a random value to the user, who must then encrypt it with his secret key and send it back to the user

Perhaps it's just some other way of processing the data

Monkey Island 2: LeChuck's Revenge hand puzzle

Page 41: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

One-Time Passwords

A one-time password is invalidated as soon as it is used

Thus, an attacker stealing the password can do limited damage He can only log in once He has to act quickly before the legitimate

user logs in first How do you generate all these passwords? How do you synchronize the user and the

system?

Page 42: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

One-time password implementations

RSA SecurID's change the password every 30 or 60 seconds

The user must be synchronized with the system within a few seconds to keep this practical

Using a secure hash function, we start with a seed value k, then h(k) = k1, h(k1) = k2, …, h(kn-1) = kn

Then passwords are in reverse order p1 = kn, p2 = kn-1, … pn-1 = k2, pn = k1

Page 43: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Quiz

Page 44: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Upcoming

Page 45: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Next time…

More on authentication Biometrics Taylor Ryan presents

Page 46: Week 7 - Wednesday.  What did we talk about last time?  Targeted malicious code  Controls against program threats  Memory protection

Reminders

Read Chapter 5 for after Spring Break

Get started on Project 2 Get started on Assignment 3