Week 15 - Wednesday.  What did we talk about last time?  Finished ethics  Reviewed some of the material before Exam 1.

Slides:



Advertisements
Similar presentations
ITIS 1210 Introduction to Web-Based Information Systems Chapter 44 How Firewalls Work How Firewalls Work.
Advertisements

More on SSL/TLS. Internet security: TLS TLS is one of the more prominent internet security protocols. TLS is one of the more prominent internet security.
Week 3 - Friday.  What did we talk about last time?  AES  Public key cryptography.
Access Control Methodologies
Hacking Presented By :KUMAR ANAND SINGH ,ETC/2008.
Security Awareness: Applying Practical Security in Your World, Second Edition Chapter 5 Network Security.
Security Awareness: Applying Practical Security in Your World
Sanjay Goel, School of Business/Center for Information Forensics and Assurance University at Albany Proprietary Information 1 Unit Outline Information.
Securing TCP/IP Chapter 6. Introduction to Transmission Control Protocol/Internet Protocol (TCP/IP) TCP/IP comprises a suite of four protocols The protocols.
Lesson 9-Securing a Network. Overview Identifying threats to the network security. Planning a secure network.
Gursharan Singh Tatla Transport Layer 16-May
Chapter Threats in Networks Network Security / G. Steffen.
Chapter 8.  Cryptography is the science of keeping information secure in terms of confidentiality and integrity.  Cryptography is also referred to as.
What is in Presentation What is IPsec Why is IPsec Important IPsec Protocols IPsec Architecture How to Implement IPsec in linux.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 9: Cryptography.
Week 5 - Monday.  What did we talk about last time?  Cryptographic hash functions.
Chapter 10: Authentication Guide to Computer Network Security.
Csci5233 Computer Security1 Bishop: Chapter 12 Authentication.
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
SYSTEM ADMINISTRATION Chapter 13 Security Protocols.
1 Chapter 9 E- Security. Main security risks 2 (a) Transaction or credit card details stolen in transit. (b) Customer’s credit card details stolen from.
Characteristics of Communication Systems
ACM 511 Chapter 2. Communication Communicating the Messages The best approach is to divide the data into smaller, more manageable pieces to send over.
Week 8 - Wednesday.  What did we talk about last time?  Authentication  Challenge response  Biometrics  Started Bell-La Padula model.
OV Copyright © 2013 Logical Operations, Inc. All rights reserved. Network Security  Network Perimeter Security  Intrusion Detection and Prevention.
OSI and TCP/IP Models And Some Vulnerabilities AfNOG th May 2011 – 10 th June 2011 Tanzania By Marcus K. G. Adomey.
CHAPTER 11 Spoofing Attack. INTRODUCTION Definition Spoofing is the act of using one machine in the network communication to impersonate another. The.
OV Copyright © 2011 Element K Content LLC. All rights reserved. Network Security  Network Perimeter Security  Intrusion Detection and Prevention.
1 Higher Computing Topic 8: Supporting Software Updated
Attacks On systems And Networks To understand how we can protect our system and network we need to know about what kind of attacks a hacker/cracker would.
1 CHAPTER 3 CLASSES OF ATTACK. 2 Denial of Service (DoS) Takes place when availability to resource is intentionally blocked or degraded Takes place when.
1 CHAPTER 2 LAWS OF SECURITY. 2 What Are the Laws of Security Client side security doesn’t work Client side security doesn’t work You can’t exchange encryption.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
CS1Q Computer Systems Lecture 17 Simon Gay. Lecture 17CS1Q Computer Systems - Simon Gay2 The Layered Model of Networks It is useful to think of networks.
Week 4 - Wednesday.  What did we talk about last time?  RSA algorithm.
Lecture 20 Hacking. Over the Internet Over LAN Locally Offline Theft Deception Modes of Hacker Attack.
Encryption No. 1  Seattle Pacific University Encryption: Protecting Your Data While in Transit Kevin Bolding Electrical Engineering Seattle Pacific University.
Week 4 - Friday.  What did we talk about last time?  Snow day  But you should have read about  Key management.
Switch Features Most enterprise-capable switches have a number of features that make the switch attractive for large organizations. The following is a.
COEN 350: Network Security Authentication. Between human and machine Between machine and machine.
Identification Authentication. 2 Authentication Allows an entity (a user or a system) to prove its identity to another entity Typically, the entity whose.
TCP/IP Protocol Suite 1 Chapter 30 Security Credit: most slides from Forouzan, TCP/IP protocol suit.
EC week Review. Rules of Engagement Teams selected by instructor Host will read the entire questions. Only after, a team may “buzz” by raise of.
Chapter 12: How Private are Web Interactions?. Why we care? How much of your personal info was released to the Internet each time you view a Web page?
Group 9 Chapter 8.3 – 8.6. Public Key Algorithms  Symmetric Key Algorithms face an inherent problem  Keys must be distributed to all parties but kept.
ISDS 4120 Project 1 DWAYNE CARRAL JR 3/27/15. There are seven layers which make up the OSI (Open Systems Interconnection Model) which is the model for.
Private key
science/internet-intro
INTRODUCTION TO COMPUTER & NETWORK SECURITY INSTRUCTOR: DANIA ALOMAR.
Week 4 - Friday.  What did we talk about last time?  Public key cryptography  A little number theory.
Role Of Network IDS in Network Perimeter Defense.
Lect 8 Tahani al jehain. Types of attack Remote code execution: occurs when an attacker exploits a software and runs a program that the user does not.
K. Salah1 Security Protocols in the Internet IPSec.
COMPUTER NETWORKS Hwajung Lee. Image Source:
 Encryption provides confidentiality  Information is unreadable to anyone without knowledge of the key  Hashing provides integrity  Verify the integrity.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Week 8 - Wednesday.  Spam  OS security.
By: Brett Belin. Used to be only tackled by highly trained professionals As the internet grew, more and more people became familiar with securing a network.
Cryptographic Hash Function. A hash function H accepts a variable-length block of data as input and produces a fixed-size hash value h = H(M). The principal.
SESSION HIJACKING It is a method of taking over a secure/unsecure Web user session by secretly obtaining the session ID and masquerading as an authorized.
Domain 4 – Communication and Network Security
Outline Basics of network security Definitions Sample attacks
Layered Architectures
Ken Gunnells, Ph.D. - Networking Paul Crigler - Programming
Topic 5: Communication and the Internet
Crisis and Aftermath Morris worm.
Outline Basics of network security Definitions Sample attacks
Lecture 36.
Lecture 36.
Presentation transcript:

Week 15 - Wednesday

 What did we talk about last time?  Finished ethics  Reviewed some of the material before Exam 1

Richard Fenoglio

 Sometimes, we need something other than a shared secret  We want a public key that anyone can use to encrypt a message to Alice  Alice has a private key that can decrypt such a message  The public key can only encrypt messages, it cannot be used to decrypt messages

 RSA depends in large part on the difficulty of factoring large composite numbers (particularly those that are a product of only 2 primes)  An integer p is prime if  p > 1  p is not divisible by any positive integers other than 1 and itself

 Any integer greater than 1 can be factored into a unique series of prime factors:  Example: 52 = 2 2 ∙ 13  Two integers a and b (greater than 1) are relatively prime or coprime if and only if a shares no prime factors with b

 The greatest common divisor or GCD of two numbers gives the largest factor they have in common  For large numbers, we can use Euclid's algorithm to determine the GCD of two numbers  Algorithm GCD( a, b) 1. If b = 0 ▪ Return a 2. Else ▪ temp = a mod b ▪ a = b ▪ b = temp 3. Goto Step 1  Example: GCD( 1970, 1066)

 If p is prime and a is a positive integer not divisible by p, then: a p –1  1 (mod p)

 Euler’s totient function  (n)   (n) = the number of positive integers less than n and relatively prime to n (including 1)  If p is prime, then  (p) = p – 1  If we have two primes p and q (which are different), then:  (pq) =  (p)∙  (q) = (p – 1)(q – 1)

 Euler’s Theorem: For every a and n that are relatively prime, a  (n)  1 (mod n)  This generalizes Fermat’s Theorem because  (p) = p – 1 if p is prime

 Named for Rivest, Shamir, and Adleman  Take a plaintext M converted to an integer  Create an ciphertext C as follows: C = M e mod n  Decrypt C back into M as follows: M = C d mod n = (M e ) d mod n = M ed mod n

TermDetailsSource MMessage to be encryptedSender CEncrypted messageComputed by sender nModulus, n = pqKnown by everyone pPrime numberKnown by receiver qPrime numberKnown by receiver eEncryption exponentKnown by everyone dDecryption exponentComputed by receiver (n)(n) Totient of nKnown by receiver

 To encrypt: C = M e mod n  e is often 3, but is always publically known  To decrypt: M = C d mod n = M ed mod n  We get d by finding the multiplicative inverse of e mod  (n)  So, ed  1 (mod  (n))

 We know that ed  1 (mod  (n))  This means that ed = k  (n) + 1 for some nonnegative integer k  M ed = M k  (n) + 1  M∙(M  (n) ) k (mod n)  By Euler’s Theorem M  (n)  1 (mod n)  So, M∙(M  (n) ) k  M (mod n)

 You can’t compute the multiplicative inverse of e mod  (n) unless you know what  (n) is  If you know p and q, finding  (n) is easy  Finding  (n) is equivalent to finding p and q by factoring n  No one knows an efficient way to factor a large composite number

 Once you have great cryptographic primitives, managing keys is still a problem  How do you distribute new keys?  When you have a new user  When old keys have been cracked or need to be replaced  How do you store keys?  As with the One Time Pad, if you could easily send secret keys confidentially, why not send messages the same way?

 We will refer to several schemes for sending data  Let X and Y be parties and Z be a message  { Z } k means message Z encrypted with key k  Thus, our standard notation will be:  X  Y: { Z } k  Which means, X sends message Z, encrypted with key k, to Y  X and Y will be participants like Alice and Bob and k will be a clearly labeled key  A || B means concatenate message A with B

 Typical to key exchanges is the idea of interchange keys and session keys  An interchange key is a key associated with a particular user over a (long) period of time  A session key is a key used for a particular set of communication events  Why have both kinds of keys?

 If Bob and Alice have no prior arrangements, classical cryptosystems require a trusted third party Trent  Trent and Alice share a secret key k Alice and Trent and Bob share a secret key k Bob  Here is the protocol: 1. Alice  Trent: {request session key to Bob} k Alice 2. Trent  Alice: { k session } k Alice || { k session } k Bob 3. Alice  Bob: { k session } k Bob

 Purpose  Exchange a session key between two parties  Weaknesses  A trusted third party is required  Protocols are complicated  Some protocols have hard to spot security risks  Practice looking for the holes in the protocols  They always have a "man in the middle" aspect  Always assume that Eve can completely control all communication

 Suddenly, the sun comes out!  Public key exchanges should be really easy  The basic outline is: 1. Alice  Bob: { k session } e Bob  e Bob is Bob's public key  Only Bob can read it, everything's perfect!  Problems can still happen if parties cannot get each other’s public keys reliably

 A cryptographic (or one-way) hash function (called a cryptographic checksum in the book) takes a variable sized message M and produces a fixed-size hash code H(M)  Not the same as hash functions from data structures  The hash code produced is also called a digest  It can be used to provide authentication of both the integrity and the sender of a message  It allows us to store some information about a message that an attacker cannot use to recover the message

 When two messages hash to the same value, this is called a collision  Because of the pigeonhole principle, collisions are unavoidable  The key feature we want from our hash functions is that collisions are difficult to predict

Given a digest, should be hard to find a message that would produce it One-way property Preimage Resistance Given a message m, it should be hard to find a different message that has the same digest Second Preimage Resistance Should be hard to find any two messages that hash to the same digest (collision) Collision Resistance

A small change in input should correspond to a large change in output Avalanching Hash function should work on a block of data of any size Applicability Output should be a fixed length Uniformity It should be fast to compute a digest in software and hardware No longer than retrieval from secondary storage Speed

 Instead of storing the actual passwords, Windows and Unix machines store the hash of the passwords  When someone logs on, the operating system hashes the password and compares it to the stored version  No one gets to see your original password!

 What’s the probability that Ahmad has the same password (or a password that hashes to the same value) as Bai Li?  Very small!  What’s the probability that anyone has the same password (or a password that hashes to the same value) as anyone else?  Not nearly as small!

 Message Digest Algorithm 5  Very popular hashing algorithm  Designed by Ron Rivest (of RSA fame)  Digest size: 128 bits  Security  Completely broken  Reasonable size attacks (2 32 ) exist to create two messages with the same hash value  MD5 hashes are still commonly used to check to see if a download finished without error

 Secure Hash Algorithm  Created by NIST  SHA-0 was published in 1993, but it was replaced in 1995 by SHA-1  The difference between the two is only a single bitwise rotation, but the NSA said it was important  Digest size: 160 bits  Security  Mostly broken  Attacks running in time exist  SHA-2 is a successor family of hash functions  224, 256, 384, 512 bit digests  Better security, but not as widely used  Designed by the NSA

 NIST is currently having a contest for SHA-3  It’s down to five finalists:  BLAKE  Grøstl  JH  Keccak  Skein  The winner is Keccak!

 If a hash value is made up of k bits  2 k can be big  So, we need to check one hash against 2 k - 1 other hashes to have a 50% probability of matching  But, by the birthday paradox   We need a much smaller number to get a collision!

 A buffer overflow happens when data is written past the end (or beginning) of an array  It could overwrite:  User data  User code  System data  System code AAAAAAAAAAB User Data AAAAAAAAAAB User Code AAAAAAAAAAB User DataSystem Data AAAAAAAAAAB User DataSystem Code

 Incomplete mediation happens with a system does not have complete control over the data that it processes  Example URL:   Wrong URL:   The HTML generates the URL, but the URL can be entered manually

 A time-of-check to time-to-use flaw is one where one action is requested, but before it can be performed, the data related to the action is changed  The book’s example is a man who promises to buy a painting for $100 who puts five $20 bills on the counter and pulls one back when the clerk is turning to wrap up the painting  In this flaw, the first action is authorized, but the second may not be

 Terminology is inconsistent  Popular culture tends to call everything a virus  Sometimes we will too, but here are some other terms:  Almost all of these are, by definition, Trojan horses  Worms differ from viruses primarily because they spread across networks Type Characteristics Virus Attaches itself to a program and propagates copies of itself to other programs Trojan horse Contains unexpected, additional functionality Logic bomb Triggers action when condition occurs Time bomb Triggers action when specified time occurs Trapdoor Allows unauthorized access to functionality Worm Propagates copies of itself through a network Rabbit Replicates itself without limit to exhaust resources

 One-time execution  Boot sector  The part of a hard drive that says what code to load to start your OS  Memory resident  Sometimes called TSR (terminate and stay resident)  Inside documents  A few other places that are sensible:  Applications  Libraries  Compilers (infect programs as you create them)  Antivirus software

 Storage patterns  The size of a file  Compare against a hash digest for the program  Execution patterns  Viruses are also suspicious because of the way they execute  The functioning of the code compared to some standard  Suspicious execution patterns (weird JUMP commands)

 Because virus scanners try to match strings in machine code, virus writers design polymorphic viruses that change their appearances  No-ops, code that doesn’t have an impact on execution, can be used for simple disguises  Clever viruses can break themselves apart and hide different parts in randomly chosen parts of code  Similar to code obfuscation  Advanced polymorphic viruses called encrypting viruses encrypt parts of themselves with randomly chosen keys  A scanner would have to know to decrypt the virus to detect it  Virus scanners cannot catch everything

 Trapdoors  A way to access functionality that is not documented  Often inserted during development for testing purposes  Salami attacks  Steal tiny amounts of money when a cent is rounded in financial transactions  Or, steal a few cents from millions of people  Rootkits  Privilege escalation  Keystroke logging

 Unit testing tests each component separately in a controlled environment  Integration testing verifies that the individual components work when you put them together  Function and performance tests sees if a system performs according to specification  Acceptance testing give the customer a chance to test the product you have created  The final installation testing checks the product in its actual use environment

 Regression testing is done when you fix a bug or add a feature  We have to make sure that everything that used to work still works after the change  Black-box testing uses input values to test for expected output values, ignoring internals of the system  White-box or clear box testing uses knowledge of the system to design tests that are likely to find bugs  You can only prove there are bugs. It is impossible to proves that aren’t bugs.

 OS security is fundamentally based on separation  Physical separation: Different processes use different physical objects  Temporal separation: Processes with different security requirements are executed at different times  Logical separation: Programs cannot access data or resources outside of permitted areas  Cryptographic separation: Processes conceal their data so that it is unintelligible

 Protecting memory is one of the most fundamental protections an OS can give  All data and operations for a program are in memory  Most I/O accesses are done by writing memory to various locations  Techniques for memory protection  Fence  Base/bounds registers  Tagged architectures  Segmentation  Paging

 Directory based approaches  Create a directory that lists all the objects a given user can access and their associated rights:  Problems: ▪ Directories can become large ▪ How is access revoked? ▪ What if two files in different locations in the system have the same name?  Access control lists  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  Access control matrices  Both directories and access control lists are equivalent  We can also imagine a matrix that holds all subjects and all objects  It is too inefficient for most systems to be implemented this way, but security researchers sometimes use this model for theoretical purposes

Objects Subjectsfile 1file 2process 1process 2 process 1 read, write, own read read, write, execute, own write process 2appendread, ownread read, write, execute, own

 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 on 1. 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)

 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

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

 Random passwords  Pronounceable passwords  User selected passwords  Many user selected passwords are easy to guess  Proactive password checkers can improve the situation  Passwords age and should be periodically replaced

 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

 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)

 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  We can generate one-time passwords in the following way:  Using a secure hash function, we start with a seed value k, then ▪ h(k) = k 1, h(k 1 ) = k 2, …, h(k n-1 ) = k n  Then passwords are in reverse order ▪ p 1 = k n, p 2 = k n-1, … p n-1 = k 2, p n = k 1

 Fingerprints  Optical scanners  Capacitive scanners (much more common, even available on many laptops)  Voice  System must be trained on your voice  Eye  Iris  Retina  Even the whites!  Face recognition  Considerable computer vision techniques must be used to locate the face, deal with changes in haircut, glasses, etc.  Hand geometry readers  Keystroke dynamics  Actually quite characteristic  Combinations can be used too

 People assume that they are more secure than they are  Attacks:  Fingerprints can be lifted off a champagne glass  Voices can be recorded  Iris recognition can be faked with special contact lenses  False positives and false negatives are possible  It is possible to tamper with transmission from the biometric reader  Biometric characteristics can change

 Confidentiality access control system  Military-style classifications  Uses a linear clearance hierarchy  All information is on a need- to-know basis  It uses clearance (or sensitivity) levels as well as project-specific compartments Unclassified Restricted Confidential Secret Top Secret

 Both subjects (users) and objects (files) have security clearances  Below are the clearances arranged in a hierarchy Clearance LevelsSample SubjectsSample Objects Top Secret (TS)Tamara, ThomasPersonnel Files Secret (S)Sally, Samuel Files Confidential (C)Claire, ClarenceActivity Log Files Restricted (R)Rachel, RileyTelephone List Files Unclassified (UC)Ulaley, UrsulaAddress of Headquarters

 We add compartments such as NUC = Non-Union Countries, EUR = Europe, and US = United States  The possible sets of compartments are:   {NUC}  {EUR}  {US}  {NUC, EUR}  {NUC, US}  {EUR, US}  {NUC, EUR, US}  Put a clearance level with a compartment set and you get a security level  The literature does not always agree on terminology

 The subset relationship induces a lattice {NUC, EUR, US} {NUC, US} {EUR}   {NUC, EUR} {EUR, US} {NUC} {US}

 Let L be a security level and C be a category  We say that security level (L, C) dominates security level (L’, C’) if and only if L’ ≤ L and C’  C  Simple security requires (L S, C S ) to dominate (L O, C O ) and S to have read access  Read down  *-property now requires (L O, C O ) to dominate (L S, C S ) and S to have write access  Write up

 Designed close to real commercial situations  No rigid multilevel scheme  Enforces separation of duty  Certification and enforcement are separated  Enforcement in a system depends simply on following given rules  Certification of a system is difficult to determine

 The Chinese Wall model respects both confidentiality and integrity  It's very important in business situations where there are conflict of interest issues  Real systems, including British law, have policies similar to the Chinese Wall model  Most discussions around the Chinese Wall model are couched in business terms

Bank COI Class Gasoline Company COI Class Bank of America a Bank of America a Citibank c Citibank c Bank of the West b Bank of the West b Shell Oil s Shell Oil s Standard Oil e Standard Oil e Union '76 u Union '76 u ARCO n ARCO n

 We can imagine the Chinese Wall model as a policy controlling access in a database  The objects of the database are items of information relating to a company  A company dataset (CD) contains objects related to a single company  A conflict of interest (COI) class contains the datasets of companies in competition  Chinese Wall rules prevent people from reading and writing data from CDs in different COIs

 Integrity based access control system  Uses integrity levels, similar to the clearance levels of Bell-LaPadula  Precisely the dual of the Bell-LaPadula Model  That is, we can only read up and write down  Note that integrity levels are intended only to indicate integrity, not confidentiality  Actually a measure of accuracy or reliability

 How do we know if something is secure?  We define our security policy using our access control matrix  We say that a right is leaked if it is added to an element of the access control matrix that doesn’t already have it  A system is secure if there is no way rights can be leaked  Is there an algorithm to determine if a system is secure?

 A Turing machine is a mathematical model for computation  It consists of a head, an infinitely long tape, a set of possible states, and an alphabet of characters that can be written on the tape  A list of rules saying what it should write and should it move left or right given the current symbol and state A A

 We can simulate a Turing machine using an access control matrix  We map the symbols, states and tape for the Turing machine onto the rights and cells of an access control matrix  Discovering whether or not the right leaks is equivalent to the Turing machine halting with a 1 or a 0  Because of the halting problem, discovering whether a right is leaked is not possible

 Saltzer and Schroeder wrote an important paper in 1975 that gave 8 principles that should be used in the design of any security mechanisms 1. Least privilege 2. Fail-safe defaults 3. Economy of mechanism 4. Complete mediation 5. Open design 6. Separation of privilege 7. Least common mechanism 8. Psychological acceptability

 Mandatory access control (MAC) means that the controls are enforced by rules in the system, not by user choices  Bell-La Padula is a perfect example of MAC  Discretionary access control (DAC) means that the user has control over who can access the objects he or she owns  Linux and Windows are largely DAC systems  Most real systems have elements of both

 Governments have established criteria for software security evaluation  These include:  U.S. Orange Book Evaluation  ITSEC  U.S. Combined Federal Criteria  Common Criteria

 A database is a collection of data and a set of rules to organize the data by relationships  A database administrator makes the rules and controls access  A database management system (DBMS) is the program through which the user interacts with the database

 Almost all modern databases use the relational database model  The fundamental unit of organization is a table  An older format for databases was hierarchical, like a tree  A table consists of records  A record consists fields or elements, which are each a specific item of data

 The tables in a database are usually related to each other in some way  The logical structure of a database is called a schema  A user may only see part of it, called a subschema  An attribute is the name of a column  A relation is a set of columns

 A query is the name of a command given to a database by a user  Queries can:  Retrieve  Modify  Add  Delete  Most databases allow commands to be issued through a variant of SQL

 Because they are a central part of modern business, several aspects of database security are crucial:  Physical database integrity  Logical database integrity  Element integrity  Access control  User authentication  Availability

 Reliability is a measure of how long a software system can run without failing  Reliability is often quoted in terms of uptime percentage  Or mean time between failures  Database reliability and integrity has three aspects:  Database integrity ▪ Is the database as a whole protected from disk failure or corruption  Element integrity ▪ Are only authorized users allowed to change elements  Element accuracy ▪ Are the values in the elements correct

 A key problem for database integrity is what happens if the system fails in the middle of an update  Then the database is inconsistent  A two-phase update is a common solution  During the intent phase, the DBMS computes the results needed for the update, but does not change the database  During the commit phase, it changes all of the fields to the values computed in the intent phase  If the intent phase fails, the DBMS can start over from the beginning  If the commit phase fails, the DBMS can try to write all the data from the intent phase again

 The most serious disclosure of sensitive data is its exact value  Bounds can also be disclosed  Example: highest salary and lowest salary  If the user can manipulate the bounds, he or she can search for specific values  Negative result  Felonies is not zero  Visits to the oncology ward is not zero  Existence  Knowing that a field even exists means someone is using it  Probable value  How many people are in Bob’s dorm room? 2  How many people in Bob’s dorm room pirate movies? 1  There’s a 50% chance that Bob pirates movies

 In a direct attack on sensitive information, a user will try to determine the values of a sensitive field by finding the right query  Sometimes an unusual query will be used to bypass checks

 To avoid leaking sensitive data, some DBMSs allow statistics to be reported  Each of the following statistics can be attacked in different ways:  Sum  Count  Mean  Median

 Suppress obviously sensitive information  Easy, but incomplete  Track what the user knows  Expensive in terms of computation and storage requirements  Analysis may be difficult  Multiple users can conspire together  Disguise the data  Data is hidden  Users who are not trying to get sensitive data get slightly wrong answers

 Integrity is difficult, but we can assign levels of trust  It is necessarily not going to be as rigorous as Biba  Confidentiality  Difficult and causes redundancies since top secret information cannot be visible in any way to low clearance users  Worse, we don’t want to leak any information by preventing a record from being added with a particular primary key (because there is a hidden record that already has that primary key)  Polyinstantiation means that records with similar or identical primary keys (but different data) can exist at different security levels

 Privacy issues are complex  Sharing data can allow relationships to become evident  These relationships might be sensitive  Integrity  Because data mining can pull data from many sources, mistakes can propagate  Even if the results are fixed, there is no easy way to correct the source databases  Data mining can have false positives and false negatives

 The Internet is a packet switched system  Individual pieces of data (called packets) are sent on the network  Each packet knows where it is going  A collection of packets going from point A to point B might not all travel the same route  Phone lines are circuit switched  This means that a specific circuit is set up for a specific communication  Operators used to do this by hand  Now it is done automatically  Only one path for data

 If a single cut can case a network to go down, that network is vulnerable to a single point of failure  Most important networks like electrical systems have redundancy so that this doesn’t happen to a whole city  Resilience or fault tolerance

 A computer network is at least two computers connected together  Often one is a server and the other is a client  A computer system in a network is called a node  The processor in a node is called a host  A connection between two hosts is a link

 Anonymity: We don’t know who we’re dealing with  Automation: Communication may be entirely between machines without human supervision  Distance: Communications are not significantly impacted by distance  Opaqueness: It is hard to tell how far away other users are and to be sure that someone claiming to be the same user as before is

 Copper wire  Twisted pair is a pair of insulated copper wires  Coaxial cable has a single wire surrounded by an insulation jacket covered by a grounded braid of wire  Repeaters or amplifiers are needed periodically to prevent signal degradation  Optical fiber  Carries light instead of electricity  Higher bandwidth and less signal degradation than copper  Replacing aging copper lines  Wireless  Good for short distance  Uses radio signals  Microwave  Strong signals  Requires line of sight  Infrared  Similar to microwave but weaker signals  Satellites  Need geosynchronous orbits  Secure applications need smaller footprints than broadcasts

 Protocols and standards define each layer  Not every layer is always used  Sometimes user errors are referred to as Layer 8 problems LayerNameActivityExample 7ApplicationUser-level dataHTTP 6PresentationData appearance, some encryptionSSL 5SessionSessions, sequencing, recoveryIPC and part of TCP 4TransportFlow control, end-to-end error detectionTCP 3NetworkRouting, blocking into packetsIP 2Data LinkData delivery, packets into frames, transmission error recovery Ethernet 1PhysicalPhysical communication, bit transmissionElectrons in copper

 The OSI model is conceptual  Most network communication uses TCP/IP  We can view TCP/IP as four layers: LayerActionResponsibilitiesProtocol ApplicationPrepare messagesUser interactionHTTP, FTP, etc. Transport Convert messages to packets Sequencing, reliability, error correction TCP or UDP Internet Convert packets to datagrams Flow control, routingIP Physical Transmit datagrams as bits Data communication

 Transmission Control Protocol (TCP)  Creates a reliable communication session  Wraps information into packets  Uses port numbers to connect processes to information streams  Internet Protocol (IP)  Allows for unreliable transport  Wraps packets into datagrams  Uses IP addresses for routing  User Datagram Protocol (UDP)  Alternative to TCP that is unreliable but has low overhead

 A smart attacker learns everything he or she can about the system before attacking it  Useful methods for reconnaissance of a network include:  Port scans  Social engineering  Dumpster diving  OS and application fingerprinting  Background research

 Eavesdropping means overhearing private information without much effort  Administrators need to periodically monitor network traffic  Wiretapping implies that more effort is being used to overhear information  Passive wiretapping is only listening to information  Active wiretapping means that you may adding or changing information in the stream

 If you are on the same LAN, you can use a packet sniffer to analyze packets  Inductance allows you to measure the signals inside of a wire without a direct physical connection  Wireless is broadcast  Easy to intercept, but can be protected by WPA or WPA2 encryption (and hardly at all by WEP)  Microwave is easy to intercept  Heavy multiplexing makes it hard to untangle individual signals  Satellites are similar (unsecure but heavily multiplexed)  Optical fiber is very difficult to tap  Cutting a single fiber means recalibrating the network  Repeaters and taps that connect the fiber are the best places to attack

 Rather than wiretapping, attackers will more often try to impersonate a legitimate user  Different approaches:  Guess the identity and authentication information  Use other communications or wiretapping to gain such information  Circumvent the authentication mechanism  Use a target that will not be authenticated  Use a target with known authentication data

 Passwords are often easy to guess  Because we’re bad at picking passwords  Because the user may not have realized that the machine would be exposed to network attacks  Passwords are sent in the clear  Bad hashes can give information about the password  Sometimes buffer overflows can crash the authentication system  Sometimes authentication is not needed .rhosts and.rlogin files in Unix  Guest accounts  Default passwords on routers and other devices that never get changed

 Spoofing is when an attacker carries out one end of a networked exchange  A masquerade is spoofing where a host pretends to be another host  URL confusion: someone types hotmale.com (don’t go there!) or gogle.com  Phishing is a form of masquerading  Session hijacking (or sidejacking) is carrying on a session started by someone else  Login is encrypted, the rest of the data often isn’t  Firesheep allows you to log on to other people’s Facebook and Twitter accounts in, say, the same coffeeshop  Man-in-the-middle attacks

 Misdelivery  Data can have bad addresses, occasionally because of computer error  Human error (e.g. James Hughes (student) instead of James Hughes (professor)) is more common)  Exposure of data can happen because of wiretapping or unsecure systems anywhere along the network  Traffic flow analysis  Data might be encrypted  Even so, it is very hard to hide where the data is going to and where it is coming from  Tor and other anonymization networks try to fix this

 Attackers can falsify some or all of a message, using attacks we’ve talked about  Parts of messages can be combined  Messages can be redirected or deleted  Old messages can also be replayed  Noise can degrade the signals  All modern network protocols have error correction built in  Malformed packets can crash systems  Protocols often have vulnerabilities

 Web sites are supposed to be up all the time  They can be studied and attacked over a long period of time  Known vulnerabilities in web servers allow hackers (even unsophisticated ones) to gain control of web sites and deface them  Buffer overflows can crash web applications  URL and SQL injection attacks  If web applications are poorly written, they may blindly execute whatever is passed into the URL  Could point to../../../sensitive.dat, gaining access to files in other directories  Could give SQL to destroy or publicize the contents of the database  Server-side includes can tell the server to do specific things, but they can be manipulated by attackers who cleverly edit the HTTP requests

 Networks are one of the best places to launch an attack on availability  In this setting, these are usually called denial of service (DoS) attacks  Transmission failure can happen because a line is cut or because there is too much noise  Flooding is a common technique  Ask for too many connections  Request too many of some other service  Distributed denial of service (DDoS) attacks are common (often using zombies or botnets) to make a more damaging and hard to trace attack

 TCP SYN floods  Exploit the three-way handshake  Echo-chargen  Chargen sets up a stream of packets for testing  Echo packets are supposed to be sent back to the sender  If you can trick a server into sending echo packets to itself, it will respond to its own packets forever  Ping of death  A ping packet requests a reply  If you can send more pings than a server can handle, it goes down  Only works if the attacker has more bandwidth than the victim (DDoS helps)  Smurf  A ping packet is broadcast to everyone, with the victim spoofed as the originator  All the hosts try to ping the victim  The real attacker is hidden  Teardrop  A teardrop attack uses badly formed IP datagrams  They claim to correspond to overlapping sequences of bytes in a packet  There’s no way to put them back together and the system can crash

 The Domain Name System (DNS) uses Domain Name Servers (also DNS) to convert user readable URLs like google.com to IP addresses  Taking control of a server means that you get to say where google.com is  For efficiency, servers cache results from other servers if they didn’t know the IP  DNS cache poisoning is when an attacker gives a good server a bad IP address

 Cookies  Small files saved by your browser on your disk  Can be per-session or persistent  Intercepted cookies can allow impersonation  Server side scripting  Includes ASP, JSP, and PHP  Again, poorly sanitized inputs can cause arbitrary code to be executed on the server  Active code  Java applets are run in a sandbox, preventing them from accessing most of your system ▪ Some JVM implementations had weaknesses allowing them out  ActiveX is Microsoft’s system for running code in a browser ▪ It has far too much power and can do anything to your system ▪ Usually, you have to click a button to allow the ActiveX control to run

 Encryption is important for network security  Link encryption encrypts data just before going through the physical communication layer  Each link between two hosts could have different encryption  Message are in plaintext within each host  Link encryption is fast and transparent  End-to-end encryption provides security from one end of the transmission to the other  Slower  Responsibility of the user  Better security for the message in transit

 IPSec (IP Security Protocol Suite) is a group of protocols designed to provide security for general IP communication  There is an Authentication Header (AH) mode that provides authentication and integrity by supplying a cryptographic hash of the message and its addresses  There is an Encapsulated Security Payload (ESP) mode that can provide encryption, authentication, or both  In transport mode, IPSec encrypts only the payload of the packet  In tunnel mode, IPSec encrypts the entire packet and puts it inside of another packet, hiding its final destination inside of a private network

 Review everything after Exam 2

 Review Chapters 8 through 11  Keep cracking each other's Project 3  Final report due this Friday