Professional Documents
Culture Documents
Operating System Concepts – 7th Edition, Jan 10, 2005 15.2 Silberschatz, Galvin and Gagne ©2005
Objectives
Operating System Concepts – 7th Edition, Jan 10, 2005 15.3 Silberschatz, Galvin and Gagne ©2005
The Security Problem
Operating System Concepts – 7th Edition, Jan 10, 2005 15.4 Silberschatz, Galvin and Gagne ©2005
Security Violations
Categories
z Breach of confidentiality
z Breach of integrity
z Breach of availability
z Theft of service
z Denial of service
Methods
z Masquerading (breach authentication)
z Replay attack
Message modification
z Man-in-the-middle attack
z Session hijacking
Operating System Concepts – 7th Edition, Jan 10, 2005 15.5 Silberschatz, Galvin and Gagne ©2005
Standard Security Attacks
Operating System Concepts – 7th Edition, Jan 10, 2005 15.6 Silberschatz, Galvin and Gagne ©2005
Security Measure Levels
Operating System Concepts – 7th Edition, Jan 10, 2005 15.7 Silberschatz, Galvin and Gagne ©2005
Program Threats
Trojan Horse
z Code segment that misuses its environment
z Exploits mechanisms for allowing programs written by users to be
executed by other users
z Spyware, pop-up browser windows, covert channels
Trap Door
z Specific user identifier or password that circumvents normal security
procedures
z Could be included in a compiler
Logic Bomb
z Program that initiates a security incident under certain circumstances
Stack and Buffer Overflow
z Exploits a bug in a program (overflow either the stack or memory
buffers)
Operating System Concepts – 7th Edition, Jan 10, 2005 15.8 Silberschatz, Galvin and Gagne ©2005
C Program with Buffer-overflow Condition
#include <stdio.h>
#define BUFFER SIZE 256
int main(int argc, char *argv[])
{
char buffer[BUFFER SIZE];
if (argc < 2)
return -1;
else {
strcpy(buffer,argv[1]);
return 0;
}
}
Operating System Concepts – 7th Edition, Jan 10, 2005 15.9 Silberschatz, Galvin and Gagne ©2005
Layout of Typical Stack Frame
Operating System Concepts – 7th Edition, Jan 10, 2005 15.10 Silberschatz, Galvin and Gagne ©2005
Modified Shell Code
#include <stdio.h>
int main(int argc, char *argv[])
{
execvp(‘‘\bin\sh’’,‘‘\bin \sh’’, NULL);
return 0;
}
Operating System Concepts – 7th Edition, Jan 10, 2005 15.11 Silberschatz, Galvin and Gagne ©2005
Hypothetical Stack Frame
Operating System Concepts – 7th Edition, Jan 10, 2005 15.12 Silberschatz, Galvin and Gagne ©2005
Program Threats (Cont.)
Viruses
z Code fragment embedded in legitimate program
z Very specific to CPU architecture, operating system,
applications
z Usually borne via email or as a macro
Visual Basic Macro to reformat hard drive
Sub AutoOpen()
Dim oFS
Set oFS =
CreateObject(’’Scripting.FileSystemObject’’)
vs = Shell(’’c:command.com /k format
c:’’,vbHide)
End Sub
Operating System Concepts – 7th Edition, Jan 10, 2005 15.13 Silberschatz, Galvin and Gagne ©2005
Program Threats (Cont.)
Operating System Concepts – 7th Edition, Jan 10, 2005 15.14 Silberschatz, Galvin and Gagne ©2005
A Boot-sector Computer Virus
Operating System Concepts – 7th Edition, Jan 10, 2005 15.15 Silberschatz, Galvin and Gagne ©2005
System and Network Threats
Operating System Concepts – 7th Edition, Jan 10, 2005 15.16 Silberschatz, Galvin and Gagne ©2005
The Morris Internet Worm
Operating System Concepts – 7th Edition, Jan 10, 2005 15.17 Silberschatz, Galvin and Gagne ©2005
Cryptography as a Security Tool
Operating System Concepts – 7th Edition, Jan 10, 2005 15.18 Silberschatz, Galvin and Gagne ©2005
Secure Communication over Insecure Medium
Operating System Concepts – 7th Edition, Jan 10, 2005 15.19 Silberschatz, Galvin and Gagne ©2005
Encryption
Encryption algorithm consists of
z Set of K keys
z Set of M Messages
z Set of C ciphertexts (encrypted messages)
z A function E : K → (M→C). That is, for each k ∈ K, E(k) is a function for
generating ciphertexts from messages.
Both E and E(k) for any k should be efficiently computable functions.
z A function D : K → (C → M). That is, for each k ∈ K, D(k) is a function for
generating messages from ciphertexts.
Both D and D(k) for any k should be efficiently computable functions.
An encryption algorithm must provide this essential property: Given a ciphertext c ∈ C,
a computer can compute m such that E(k)(m) = c only if it possesses D(k).
z Thus, a computer holding D(k) can decrypt ciphertexts to the plaintexts used to
produce them, but a computer not holding D(k) cannot decrypt ciphertexts.
z Since ciphertexts are generally exposed (for example, sent on the network), it is
important that it be infeasible to derive D(k) from the ciphertexts
Operating System Concepts – 7th Edition, Jan 10, 2005 15.20 Silberschatz, Galvin and Gagne ©2005
Symmetric Encryption
Operating System Concepts – 7th Edition, Jan 10, 2005 15.21 Silberschatz, Galvin and Gagne ©2005
Asymmetric Encryption
Operating System Concepts – 7th Edition, Jan 10, 2005 15.22 Silberschatz, Galvin and Gagne ©2005
Asymmetric Encryption (Cont.)
Operating System Concepts – 7th Edition, Jan 10, 2005 15.23 Silberschatz, Galvin and Gagne ©2005
Asymmetric Encryption Example
Operating System Concepts – 7th Edition, Jan 10, 2005 15.24 Silberschatz, Galvin and Gagne ©2005
Encryption and Decryption using RSA
Asymmetric Cryptography
Operating System Concepts – 7th Edition, Jan 10, 2005 15.25 Silberschatz, Galvin and Gagne ©2005
Cryptography (Cont.)
Operating System Concepts – 7th Edition, Jan 10, 2005 15.26 Silberschatz, Galvin and Gagne ©2005
Authentication
Operating System Concepts – 7th Edition, Jan 10, 2005 15.27 Silberschatz, Galvin and Gagne ©2005
Authentication (Cont.)
Operating System Concepts – 7th Edition, Jan 10, 2005 15.28 Silberschatz, Galvin and Gagne ©2005
Authentication – Hash Functions
Basis of authentication
Creates small, fixed-size block of data (message digest, hash
value) from m
Hash Function H must be collision resistant on m
z Must be infeasible to find an m’ ≠ m such that H(m) = H(m’)
If H(m) = H(m’), then m = m’
z The message has not been modified
Common message-digest functions include MD5, which produces a
128-bit hash, and SHA-1, which outputs a 160-bit hash
Operating System Concepts – 7th Edition, Jan 10, 2005 15.29 Silberschatz, Galvin and Gagne ©2005
Authentication - MAC
Operating System Concepts – 7th Edition, Jan 10, 2005 15.30 Silberschatz, Galvin and Gagne ©2005
Authentication – Digital Signature
Operating System Concepts – 7th Edition, Jan 10, 2005 15.31 Silberschatz, Galvin and Gagne ©2005
Authentication (Cont.)
Operating System Concepts – 7th Edition, Jan 10, 2005 15.32 Silberschatz, Galvin and Gagne ©2005
Key Distribution
Operating System Concepts – 7th Edition, Jan 10, 2005 15.33 Silberschatz, Galvin and Gagne ©2005
Man-in-the-middle Attack on Asymmetric
Cryptography
Operating System Concepts – 7th Edition, Jan 10, 2005 15.34 Silberschatz, Galvin and Gagne ©2005
Digital Certificates
Operating System Concepts – 7th Edition, Jan 10, 2005 15.35 Silberschatz, Galvin and Gagne ©2005
Encryption Example - SSL
Operating System Concepts – 7th Edition, Jan 10, 2005 15.36 Silberschatz, Galvin and Gagne ©2005
User Authentication
Operating System Concepts – 7th Edition, Jan 10, 2005 15.37 Silberschatz, Galvin and Gagne ©2005
Implementing Security Defenses
Operating System Concepts – 7th Edition, Jan 10, 2005 15.38 Silberschatz, Galvin and Gagne ©2005
Firewalling to Protect Systems and Networks
Operating System Concepts – 7th Edition, Jan 10, 2005 15.39 Silberschatz, Galvin and Gagne ©2005
Network Security Through Domain Separation Via Firewall
Operating System Concepts – 7th Edition, Jan 10, 2005 15.40 Silberschatz, Galvin and Gagne ©2005
Computer Security Classifications
Operating System Concepts – 7th Edition, Jan 10, 2005 15.41 Silberschatz, Galvin and Gagne ©2005
Example: Windows XP
Operating System Concepts – 7th Edition, Jan 10, 2005 15.42 Silberschatz, Galvin and Gagne ©2005
End of Chapter 15