27
Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Computer Security

Dan Boneh and John Mitchell

CS 155 Spring 2006

Page 2: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

What’s this course about?

Some challenging fun projects Learn about attacks Learn about preventing attacks

Lectures on many topics Application security Operating system security Network security not a course on Cryptography (take

CS255)

Page 3: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

General course info (see web)

Prerequisite: Operating systems (CS140)Textbook: none – reading onlineCoursework 3 projects, 2 homeworks, final exam grade: 0.3 H + 0.5 P + 0.2 F

Teaching assistants Colin Jackson, Eu-Jin Goh Office hours: see web site

Optional section Friday, 3:15 - 4:05, Gates B01 (live on E3)

Page 4: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Why computer security?

People attack systems and do damage Why do they do it?

Bored teenagers, Ukrainian criminals, rogue states, industrial espionage, angry employees, …

How do they do it? Physical access, network attacks Exploit vulnerabilities in applications and security

mechanisms How can we prevent attacks and/or limit

their consequences? No silver bullet; buggy code is serious problem Large collection of specific methods for specific

purposes

Page 5: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Security concepts and terms

Secure Guarantee specific properties against a

class of possible attacks

Sample security properties Confidentiality, integrity, availability, …

Threat models Access to network, keyboard, memory bus Can install code on system? As what user? Password dictionary, timing information, …

Page 6: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

How big is the security problem?

0

1000

2000

3000

4000

5000

6000

1995 1997 1999 2001 2003 2005

http://www.cert.org/stats/

CERT Vulnerabilities reported

Page 7: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Why does this happen?

Lots of buggy software... Why do programmers write insecure code? Awareness is the main issue

Some contributing factors Few courses in computer security Programming text books do not emphasize security Few security audits C is an unsafe language Programmers are lazy Legacy software (some solutions, e.g. Sandboxing) Consumers do not care about security Security is expensive and takes time

Page 8: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Ethical use of security information

We discuss vulnerabilities and attacks Most vulnerabilities have been fixed Some attacks may still cause harm Do not try these at home

Purpose of this class Learn to prevent malicious attacks Use knowledge for good purposes

Page 9: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Law enforcement

Sean Smith Melissa virus: 5 years in prison, $150K fine

Ehud Tenenbaum (“The Analyzer”) Broke into US DoD computers 6 mos service, suspended prison, $18K fine

Dmitry Sklyarov Broke Adobe ebooks Prosecuted under DMCA

Page 10: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Example: voting machine

Standard hardwareCommercial OS

Many run WinCEProgrammable

Specify electionSmartcard authentication

Invalidate card when done

Data output Network, or Place disk in another

computer

Page 11: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Basic security analysis

What is voting system supposed to do? Correctly count votes One person, one vote Voter privacy Prohibit vote selling Allow recount, provide confidence in results

Who might attack system? Voter wants to vote twice Election worker Programmer working for voting machine

company

Page 12: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Assurance

Testing “Testing can reveal the presence of bugs

but not their absence”

Follow design and coding process Many certification processes involve process

but not quality of results

Code analysis Third-party code walkthroughs Automated tools

Page 13: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Diebold Case Study

Proprietary system Certification mandated by election laws

Without public review: Security through obscurity

Diebold system leaked AccuVote-TS DRE system, Oct 2000 - April

2002 Available on open ftp server Identified by activist Bev Harris Some zip files, cvs repository

DMCA concern over zip “encryption” Available on New Zealand site

T. Kohno, A. Stubblefield, A. Rubin, D. Wallach

Page 14: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Some problems

Encrypted votes and audit logs #define DESKEY

((des_key*)"F2654hD4")

No authentication of smartcard to voting terminalInsufficient code review

Page 15: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Sample comment in code

// LCG - Linear Conguential Generator// used to generate ballot serial numbers// A psuedo-random-sequence generator // (per Applied Cryptography, // by Bruce Schneier, Wiley, 1996)

- BallotResults.cppDiebold Election Systems

Unfortunately, linear congruential generators cannot be used for cryptography”

Page 369Applied Cryptography, by Bruce Schneier

Page 16: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Other problemsSmartcards use no cryptographyVotes kept in sequential orderSeveral glaring errors in cryptographyInadequate security engineering practicesDefault Security PINs of 1111 on administrator cardsWindows Operating System tens of millions of lines of code new “critical” security bugs announced

frequently

Page 17: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Difficult problem: insider threat

Easy to hide code in large software packagesVirtually impossible to detect back doorsSkill level needed to hide malicious code is much lower than needed to find itAnyone with access to development environment is capableRequires background checks strict development rules physical security

slides: Avi Rubin

Page 18: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Example insider attack

Hidden trap door in Linux, Nov 2003 Allows attacker to take over a computer Practically undetectable change Uncovered by anomaly in CVS usage

Inserted line in wait4()

Looks like a standard error check Anyone see the problem?

if ((options == (__WCLONE|__WALL)) && (current->uid = 0))

retval = -EINVAL;

See: http://lwn.net/Articles/57135/

Page 19: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Example #2

Rob Harris case - slot machines an insider: worked for Gaming Control Board

Malicious code in testing unit when testers checked slot machines

downloaded malicious code to slot machine was never detected special sequence of coins activated “winning

mode”

Caught when greed sparked investigation $100,000 jackpot

Page 20: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Example #3

Breeder’s cup race Upgrade of software to phone betting

system Insider, Christopher Harn, rigged software Allowed him and accomplices to call in

change the bets that were placed undetectable

Caught when got greedy won $3 million

http://horseracing.about.com/library/weekly/aa110102a.htm

Page 21: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Software dangers

Software is complex top metric for measuring number of flaws

is lines of code

Windows Operating System tens of millions of lines of code new “critical” security bug announced

every week

Unintended security flaws unavoidableIntentional security flaws undetectable

Page 22: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Ken Thompson

What code can we trust? Consider "login" or "su" in Unix Is RedHat binary reliable? Does it send your passwd to someone?

Can't trust binary so check source, recompile Read source code or write your own Does this solve problem?

Reflections on Trusting Trust, http://www.acm.org/classics/sep95/

Page 23: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Compiler backdoor

This is the basis of Thompson's attack Compiler looks for source code that

looks like login program If found, insert login backdoor (allow

special user to log in)

How do we solve this? Inspect the compiler source

Page 24: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

C compiler is written in C

Change compiler source S compiler(S) {

if (match(S, "login-pattern")) { compile (login-backdoor) return } if (match(S, "compiler-pattern")) { compile (compiler-backdoor) return } .... /* compile as usual */ }

Page 25: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Clever trick to avoid detection

Compile this compiler and delete backdoor tests from source

Someone can compile standard compiler source to get new compiler, then compile login, and get login with backdoor

Simplest approach will only work once Compiling the compiler twice might lose the backdoor But can making code for compiler backdoor output

itself (Can you write a program that prints itself? Recursion thm)

Read Thompson's article Short, but requires thought

Page 26: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Social engineering

Many examples We are not going to talk about social

engineering a lot, but good to remember that there are many attacks that don't use computers

Call system administrator Dive in the dumpster Online version

send trojan in email picture or movie with malicious code

Page 27: Computer Security Dan Boneh and John Mitchell CS 155 Spring 2006

Questions?