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

Slides:



Advertisements
Similar presentations
Computer Security Dan Boneh and John Mitchell CS 155Spring 2008
Advertisements

Let’s Talk About Cyber Security
Thank you to IT Training at Indiana University Computer Malware.
Chapter 1  Introduction 1 Introduction Chapter 1  Introduction 2 The Cast of Characters  Alice and Bob are the good guys  Trudy is the bad guy 
Chapter 1  Introduction 1 Chapter 1: Introduction.
Chapter 1  Introduction 1 Chapter 1: Introduction “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”
Computer Threats I can understand computer threats and how to protect myself from these threats.
1 Topic 1 – Lesson 3 Network Attacks Summary. 2 Questions ► Compare passive attacks and active attacks ► How do packet sniffers work? How to mitigate?
Packet Analyzers, a Threat to Network Security. Agenda Introduction The background of packet analyzers LAN technologies & network protocols Communication.
Dan Boneh CS155 Computer Security Looking for undergrad research? Come see me!
Computer Security Dan Boneh and David Mazieres CS 155 Spring 2007
Mod H-1 Examples of Computer Crimes. Mod H-2 Stuxnet.
Silberschatz, Galvin and Gagne  Operating System Concepts The Security Problem A system is secure iff its resources are used and accessed as.
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
19.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 19: Security The Security Problem Authentication Program Threats.
CS426Fall 2010/Lecture11 Computer Security CS 426 Lecture 1 Overview of the Course.
Security: Attacks. 2 Trojan Horse Malicious program disguised as an innocent one –Could modify/delete user’s file, send important info to cracker, etc.
Chapter 1  Introduction 1 Chapter 1: Introduction “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”
CSCD 434 Spring 2011 Lecture 1 Course Overview. Contact Information Instructor Carol Taylor 315 CEB Phone: Office.
Assessing the Threat How much money is lost due to cyber crimes? –Estimates range from $100 million to $100s billions –Why the discrepancy? Companies don’t.
Computer Security Dan Boneh and John Mitchell CS 155Spring 2009
Chapter Nine Maintaining a Computer Part III: Malware.
Data and Applications Security Secure Electronic Voting Machines Lecture #30 Dr. Bhavani Thuraisingham The University of Texas at Dallas April 23, 2008.
LINUX Security, Firewalls & Proxies. Course Title Introduction to LINUX Security Models Objectives To understand the concept of system security To understand.
Lecture 7 Page 1 CS 236 Online Password Management Limit login attempts Encrypt your passwords Protecting the password file Forgotten passwords Generating.
Viruses.
SOFTWARE.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Electronic Voting & Security Avi Rubin Information Security Institute Johns Hopkins University.
A Case Study in Computer System Vulnerability: Electronic Voting
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
Computer Security “Measures and controls that ensure confidentiality, integrity, and availability of IS assets including hardware, software, firmware,
1 Agenda Administration Background Our first C program Working environment Exercise Memory and Variables.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
CSCD 434 Network Security Spring 2014 Lecture 1 Course Overview.
29.1 Lecture 29 Security I Based on the Silberschatz & Galvin’s slides And Stallings’ slides.
Session 7 LBSC 690 Information Technology Security.
Eng. Hector M Lugo-Cordero, MS CIS4361 Department of Electrical Engineering and Computer Science February, 2012 University of Central Florida.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Week 10-11c Attacks and Malware III. Remote Control Facility distinguishes a bot from a worm distinguishes a bot from a worm worm propagates itself and.
Course Overview Ted Baker  Andy Wang COP 5641 / CIS 4930.
Understanding Computer Viruses: What They Can Do, Why People Write Them and How to Defend Against Them Computer Hardware and Software Maintenance.
Computer, Web and Network Security. What is security? System correctness If user supplies expected input, system generates desired output Security If.
Security CS Introduction to Operating Systems.
IT Security. What is Information Security? Information security describes efforts to protect computer and non computer equipment, facilities, data, and.
Lecture Topics: 12/06 SSL Final Exam HW 7 & 8 Important concepts in 410 Other references Evaluations.
1 Day 2 Logging in, Passwords, Man, talk, write. 2 Logging in Unix is a multi user system –Many people can be using it at the same time. –Connections.
SCSC 455 Computer Security Chapter 3 User Security.
CHAPTER 2 Laws of Security. Introduction Laws of security enable user make the judgment about the security of a system. Some of the “laws” are not really.
Computer Security By Duncan Hall.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Protection.
Types of Computer Malware. The first macro virus was written for Microsoft Word and was discovered in August Today, there are thousands of macro.
Lecture 1 Page 1 CS 236 Online Introduction CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Page 1 Viruses. Page 2 What Is a Virus A virus is basically a computer program that has been written to perform a specific set of tasks. Unfortunately,
Engineering Secure Software. Does Security Even Matter?  Find two other people near you Introduce yourself What is your favorite software development.
SAMET KARTAL No one wants to share own information with unknown person. Sometimes while sharing something with someone people wants to keep.
Lecture 19 Page 1 CS 236 Online 6. Application Software Security Why it’s important: –Security flaws in applications are increasingly the attacker’s entry.
Dan Boneh COM-260 Computer & Network Security Course overview.
Chapter 40 Internet Security.
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Common Methods Used to Commit Computer Crimes
Purpose of Class To prepare students for research and advanced work in security topics To familiarize students working in other networking areas with important.
Security architecture & engineering: introduction
Secure Software Development: Theory and Practice
Security.
CS-3013 Operating Systems Hugh C. Lauer
Operating System Concepts
What is keystroke logging?
Presentation transcript:

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)

General course info (see web) Prerequisite: Operating systems (CS140) Textbook: none – reading online Coursework 3 projects, 2 homeworks, final exam grade: 0.3 H P 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)

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

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, …

How big is the security problem? CERT Vulnerabilities reported

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

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

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

Example: voting machine Standard hardware Commercial OS Many run WinCE Programmable Specify election Smartcard authentication Invalidate card when done Data output Network, or Place disk in another computer

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

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

Diebold Case Study Proprietary system Certification mandated by election laws  Without public review: Security through obscurity Diebold system leaked AccuVote-TS DRE system, Oct 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

Some problems Encrypted votes and audit logs #define DESKEY ((des_key*)"F2654hD4") No authentication of smartcard to voting terminal Insufficient code review

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.cpp Diebold Election Systems Unfortunately, linear congruential generators cannot be used for cryptography” Page 369 Applied Cryptography, by Bruce Schneier

Other problems Smartcards use no cryptography Votes kept in sequential order Several glaring errors in cryptography Inadequate security engineering practices Default Security PINs of 1111 on administrator cards Windows Operating System tens of millions of lines of code new “critical” security bugs announced frequently

Difficult problem: insider threat Easy to hide code in large software packages Virtually impossible to detect back doors Skill level needed to hide malicious code is much lower than needed to find it Anyone with access to development environment is capable Requires background checks strict development rules physical security slides: Avi Rubin

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:

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

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

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 unavoidable Intentional security flaws undetectable

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,

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

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 */ }

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

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  picture or movie with malicious code

Questions?