CSE331: Introduction to Networks and Security. Lecture 1 Fall 2006



Similar documents
CSE331: Introduction to Networks and Security. Lecture 1 Fall 2004

Design Principles for Protection Mechanisms. Security Principles. Economy of Mechanism. Least Privilege. Complete Mediation. Economy of Mechanism (2)

CSCI 454/554 Computer and Network Security. Instructor: Dr. Kun Sun

Host Hardening. Presented by. Douglas Couch & Nathan Heck Security Analysts for ITaP 1

CIS 6930/4930 Computer and Network Security. Dr. Yao Liu

CSC 474 Information Systems Security

CPSC 467: Cryptography and Computer Security

Course mechanics. CS 458 / 658 Computer Security and Privacy. Course website. Additional communication

Introduction to Security

Course Content Summary ITN 261 Network Attacks, Computer Crime and Hacking (4 Credits)

CS 458 / 658 Computer Security and Privacy. Course mechanics. Course website. Module 1 Introduction to Computer Security and Privacy.

Weighted Total Mark. Weighted Exam Mark

EECS 588: Computer and Network Security. Introduction January 14, 2014

Why Security Matters. Why Security Matters. 00 Overview 03 Sept CSCD27 Computer and Network Security. CSCD27 Computer and Network Security 1

Threat Modeling. Frank Piessens ) KATHOLIEKE UNIVERSITEIT LEUVEN

COSC 472 Network Security

Introduction to Computer Security

Network Security 網 路 安 全. Lecture 1 February 20, 2012 洪 國 寶

CMSC 421, Operating Systems. Fall Security. URL: Dr. Kalpakis

Passing PCI Compliance How to Address the Application Security Mandates

Computer Security: Principles and Practice

BBM 461: SECURE PROGRAMMING INTRODUCTION. Ahmet Burak Can

Application Intrusion Detection

Security Goals Services

Security Defense Strategy Basics

Name: 1. CSE331: Introduction to Networks and Security Fall 2003 Dec. 12, /14 2 /16 3 /16 4 /10 5 /14 6 /5 7 /5 8 /20 9 /35.

EECS 588: Computer and Network Security. Introduction

Some principles of secure design. Designing Secure Systems module Autumn 2015

10- Assume you open your credit card bill and see several large unauthorized charges unfortunately you may have been the victim of (identity theft)

CS 356 Lecture 25 and 26 Operating System Security. Spring 2013

CIS 551 / TCOM 401 Computer and Network Security. Spring 2006 Lecture 7

How To Protect Your Network From Attack From Outside From Inside And Outside

CS 203 / NetSys 240. Network Security

8 Steps for Network Security Protection

8 Steps For Network Security Protection

Penetration Testing Service. By Comsec Information Security Consulting

SECURITY PRACTICES FOR ADVANCED METERING INFRASTRUCTURE Elif Üstündağ Soykan, Seda Demirağ Ersöz , ICSG 2014

Understanding and evaluating risk to information assets in your software projects

Information Security Basic Concepts

This chapter covers the following topics: Why Network Security Is Necessary Secure Network Design Defined Categorizing Network Security Threats How

CSE331: Introduction to Networks and Security. Lecture 32 Fall 2004

7 Network Security. 7.1 Introduction 7.2 Improving the Security 7.3 Internet Security Framework. 7.5 Absolute Security?

Network Security. 1 Pass the course => Pass Written exam week 11 Pass Labs

Plain English Guide To Common Criteria Requirements In The. Field Device Protection Profile Version 0.75

CIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 6

What s Wrong with Information Security Today? You are looking in the wrong places for the wrong things.

Secure Software Programming and Vulnerability Analysis

Computer and Network Security

nwstor Storage Security Solution 1. Executive Summary 2. Need for Data Security 3. Solution: nwstor isav Storage Security Appliances 4.

Information Security

Overview of Network Security The need for network security Desirable security properties Common vulnerabilities Security policy designs

ensure prompt restart of critical applications and business activities in a timely manner following an emergency or disaster

Security within a development lifecycle. Enhancing product security through development process improvement

E-commerce. Security. Learning objectives. Internet Security Issues: Overview. Managing Risk-1. Managing Risk-2. Computer Security Classifications

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

SECURING YOUR SMALL BUSINESS. Principles of information security and risk management

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

Who Are The Enemies? What Can They Do?

Developing Network Security Strategies

Notes on Network Security - Introduction

APPLICATION SECURITY: FROM WEB TO MOBILE. DIFFERENT VECTORS AND NEW ATTACK

Network Security. Instructor: Adam Hahn

Chap. 1: Introduction

Department of Computer & Information Sciences. INFO-450: Information Systems Security Syllabus

Juniper Networks Secure

Network Security: Introduction

INTRUSION DETECTION SYSTEM (IDS) D souza Adam Jerry Joseph I MCA

What is Web Security? Motivation

ICTN Enterprise Database Security Issues and Solutions

Second-generation (GenII) honeypots

THE ROLE OF IDS & ADS IN NETWORK SECURITY

Cryptography and Network Security

CIS 551 / TCOM 401 Computer and Network Security

90% of data breaches are caused by software vulnerabilities.

Cyber Security In High-Performance Computing Environment Prakashan Korambath Institute for Digital Research and Education, UCLA July 17, 2014

Principles of Computer Security. Dr George Danezis

Web Application Security

A Decision Maker s Guide to Securing an IT Infrastructure

SY system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users.

CS 5490/6490: Network Security Fall 2015

Chapter 6: Fundamental Cloud Security

Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0

If you know the enemy and know yourself, you need not fear the result of a hundred battles.

Network Security. Text. Administrative. My Information. Course Focus. Evaluation CEN

CSE 5392 Sensor Network Security

SECURITY ISSUES INTERNET WORLD WIDE WEB FOR THE AND THE

CSCI 4541/6541: NETWORK SECURITY

Content Teaching Academy at James Madison University

User. Role. Privilege. Environment. Checkpoint. System

SECURITY CHAPTER 24 (6/E) CHAPTER 23 (5/E)

Network and Host-based Vulnerability Assessment

Columbia University Web Security Standards and Practices. Objective and Scope

Intrusion Detection Systems

Network Security and Firewall 1

Network Security and Privacy

Threat modeling. Tuomas Aura T Information security technology. Aalto University, autumn 2011

BM482E Introduction to Computer Security

FIREWALL CHECKLIST. Pre Audit Checklist. 2. Obtain the Internet Policy, Standards, and Procedures relevant to the firewall review.

Soran University Faculty of Science and Engineering Computer Science Department Information Security Module Specification

Using etoken for SSL Web Authentication. SSL V3.0 Overview

Transcription:

CSE331: Introduction to Networks and Security Lecture 1 Fall 2006

Basic Course Information Steve Zdancewic lecturer Web: http://www.cis.upenn.edu/~stevez E-mail: stevez@cis.upenn.edu Office hours: Tues. 9:30-10:30 Levine 511 Savi Basavaraj TA E-mail: savi@seas.upenn.edu Office hours: TBA Course Web Pages: http://www.cis.upenn.edu/~cse331 Course news group: upenn.cis.cse331 CSE331 Fall 2004 2

Prerequisites Would like to learn network and security fundamentals Programming experience Java: CSE 121/115 C / Assembly: (not mandatory) CSE 240 Have not taken TCOM 500 take CIS 551 instead. CSE331 Fall 2004 3

Recommended Reading No required text: instead, articles (mostly from the web) will be provided. Supplementary reading (available at library): Security in Computing 3 rd edition Charles P. Pfleeger Computer Networks: A Systems Approach Larry L. Peterson & Bruce S. Davie Applied Cryptography Bruce Schneier Slides will be available on the web (PDF) Linked to from the course schedule page. Material: Slides, Lectures, Articles, HW, Projects CSE331 Fall 2004 4

Assessment Individual homework assignments 20% Group projects 40% 2 or 3 people per group Programming (in Java) Midterms I & II 24% Final exam 15% Time & place determined by registrar Covers entire course (mostly security) Participation (mandatory and subjective) 01% CSE331 Fall 2004 5

Course Policies No late homework accepted Unless prior permission Emergency No collaboration on individual homework No individual work on group projects Regrades: Only reasonable requests Entire homework is regraded Scores may go up or down CSE331 Fall 2004 6

Course Topics Software Security / Malicious Code Buffer overflows, viruses, worms, protection mechanisms Networks & Infrastructure Ethernet, 802.11, TCP/IP, Denial of Service, IPSEC, TLS/SSL Basic Cryptography Shared Key Crypto (AES/DES), Public Key Crypto (RSA) Crypto Software & Applications Cryptographic libraries, authentication, digital signatures System Security Hacker behavior, intrusion & anomaly detection, hacker and admin tools CSE331 Fall 2004 7

Plan for today Try to answer the question: What is security? What do we mean by a secure system? Historical context Basic definitions & background Examples General principles of secure design CSE331 Fall 2004 8

Software Vulnerabilities Every day you read about new software vulnerabilities in the news Buffer overflow vulnerabilities Format-string vulnerabilities Cross-site scripting vulnerabilities Check out www.cert.org for plenty of examples CSE331 Fall 2004 9

CERT Vulnerabilities CSE331 Fall 2004 10

CERT Incidents CSE331 Fall 2004 11

What do we mean by security? What does it mean for a computer system to be secure? Comments generated from class discussion: The system only does things the way the designer intended. Should prevent unauthorized use. What about spam? CSE331 Fall 2004 12

When is a program secure? When it does exactly what it should? Not more. Not less. But how do we know what a program is supposed to do? Somebody tells us? (But do we trust them?) We write the specification ourselves? (How do we verify that the program meets the specification?) We write the code ourselves? (But what fraction of the software you use have you written?) CSE331 Fall 2004 13

When is a program secure? 2nd try: A program is secure when it doesn t do something it shouldn t. Easier to specify a list of bad things: Delete or corrupt important files Crash my system Send my password over the Internet Send threatening e-mail to the president posing as me But what if most of the time the program doesn t do bad things, but occasionally it does? Is it secure? CSE331 Fall 2004 14

When is a program secure? Claim: Perfect security does not exist. Security vulnerabilities are the result of violating an assumption about the software (or, more generally the entire system). Corollary: As long as you make assumptions, you re vulnerable. And: You always need to make assumptions! Example: Buffer overflows Assumption (by programmer) is that the data will fit in the buffer. This leads to a vulnerability: Supply data that is too big for the buffer (thereby violating the assumptions) Vulnerabilities can be exploited by an attack. CSE331 Fall 2004 15

When is a program secure enough? Security is all about tradeoffs Performance Cost Usability Functionality The right question is: how do you know when something is secure enough? Still a hard question Requires understanding of the tradeoffs involved Is Internet Explorer secure enough? Depends on context CSE331 Fall 2004 16

How to think about tradeoffs? What is it that you are trying to protect? Music collection vs. nuclear missile design data How valuable is it? In what way is it valuable? Information may be important only to one person (e.g. private e-mail or passwords) Information may be important because it is accurate and reliable (e.g. bank s accounting information) A computer system may be important because of a service it provides (e.g. Google s web servers) CSE331 Fall 2004 17

Historical Context Assigned Reading: Saltzer & Schroeder 1975 The Protection of Information in Computer Systems Chapter 1 of Anderson's book: Security Engineering Both available from course web pages Unauthorized information release Confidentiality Unauthorized information modification Integrity Unauthorized denial of use Availability What does unauthorized mean? CSE331 Fall 2004 18

Example Security Techniques Labeling files with a list of authorized users Access control (must check that the user is permitted on access) Verifying the identity of a prospective user by demanding a password Authentication Shielding the computer to prevent interception and subsequent interpretation of electromagnetic radiation Covert channels Enciphering information sent over telephone lines Cryptography Locking the room containing the computer Physical aspects of security Controlling who is allowed to make changes to a computer system (both its hardware and software) Social aspects of security CSE331 Fall 2004 19

Building Secure Software Source: book by John Viega and Gary McGraw Strongly recommend buying it if you care about implementing secure software. Designing software with security in mind What are the security goals and requirements? Risk Assessment Tradeoffs Why is designing secure software a hard problem? Design principles Implementation Testing and auditing CSE331 Fall 2004 20

Security Goals Prevent common vulnerabilities from occurring (e.g. buffer overflows) Recover from attacks Traceability and auditing of security-relevant actions Monitoring Detect attacks Privacy, confidentiality, anonymity Protect secrets Authenticity Needed for access control, authorization, etc. Integrity Prevent unwanted modification or tampering Availability and reliability Reduce risk of DoS CSE331 Fall 2004 21

Other Software Project Goals Functionality Usability Efficiency Time-to-market Simplicity Often these conflict with security goals Examples? So, an important part of software development is risk assessment/risk management to help determine the design choices made in light of these tradeoffs. CSE331 Fall 2004 22

Risk Assessment Identify: What needs to be protected? From whom? For how long? How much is the protection worth? Refine specifications: More detailed the better (e.g. "Use crypto where appropriate." vs. "Credit card numbers should be encrypted when sent over the network.") How urgent are the risks? Follow good software engineering principles, but take into account malicious behavior. CSE331 Fall 2004 23

Principles of Secure Software What guidelines are there for developing secure software? How would you go about building secure software? Class answers: CSE331 Fall 2004 24

#1: Secure the Weakest Link Attackers go after the easiest part of the system to attack. So improving that part will improve security most. How do you identify it? Weakest link may not be a software problem. Social engineering Physical security When do you stop? CSE331 Fall 2004 25

#2: Practice Defense in Depth Layers of security are harder to break than a single defense. Example: Use firewalls, and virus scanners, and encrypt traffic even if it's behind firewall CSE331 Fall 2004 26

#3: Fail Securely Complex systems fail. Plan for it: Aside: For a great example, see the work of George Candea who's Ph.D. research is about something called "microreboots" Sometimes better to crash or abort once a problem is found. Letting a system continue to run after a problem could lead to worse problems. But sometimes this is not an option. Good software design should handle failures gracefully For example, handle exceptions CSE331 Fall 2004 27

#4: Principle of Least Privilege Recall the Saltzer and Schroeder article Don't give a part of the system more privileges than it needs to do its job. Classic example is giving root privileges to a program that doesn't need them: mail servers that don't relinquish root privileges once they're up and running on port 25. Another example: Lazy Java programmer that makes all fields public to avoid writing accessor methods. Military's slogan: "Need to know" CSE331 Fall 2004 28

#5: Compartmentalize As in software engineering, modularity is useful to isolate problems and mitigate failures of components. Good for security in general: Separation of Duties Means that multiple components have to fail or collude in order for a problem to arise. For example: In a bank the person who audits the accounts can't issue cashier's checks (otherwise they could cook the books). Good examples of compartmentalization for secure software are hard to find. Negative examples? CSE331 Fall 2004 29

#6: Keep it Simple KISS: Keep it Simple, Stupid! Einstein: "Make things as simple as possible, but no simpler." Complexity leads to bugs and bugs lead to vulnerabilities. Failsafe defaults: The default configuration should be secure. Ed Felten quote: "Given the choice between dancing pigs and security, users will pick dancing pigs every time." CSE331 Fall 2004 30

#7: Promote Privacy Don't reveal more information than necessary Related to least privileges Protect personal information Consider implementing a web pages that accepts credit card information. How should the cards be stored? What tradeoffs are there w.r.t. usability? What kind of authentication/access controls are there? CSE331 Fall 2004 31

#8: Hiding Secrets is Hard The larger the secret, the harder it is to keep That's why placing trust in a cryptographic key is desirable Security through obscurity doesn't work Compiling secrets into the binary is a bad idea Code obfuscation doesn't work very well Reverse engineering is not that difficult Software antipirating measures don't work Even software on a "secure" server isn't safe (e.g. source code to Quake was stolen from id software) CSE331 Fall 2004 32

#9: Be reluctant to trust Trusted Computing Base: The set of components that must function correctly in order for the system to be secure. The smaller the TCB, the better. Trust is transitive Be skeptical of code quality Especially when obtained from elsewhere Even when you write it yourself CSE331 Fall 2004 33

#10 Use Community Resources Software developers are not cryptographers Don't implement your own crypto (e.g. bugs in Netscape's storage of user data) Make use of CERT, Bugtraq, developer information, etc. CSE331 Fall 2004 34