Transcript PPT - CCSS

This Material Will Not be
In Final Exam
Cross-Site Scripting (XSS)
What is XSS?
• A vulnerability in Web applications that lets attackers
inject client-side scripts into third-party Web pages
• Browsers of other visitors of compromised Web page
run the script – expose any data browser handles
• Popularity of these exploits grows and has surpassed
buffer overflow exploits
Non-persistent XSS Vulnerability
• Web server does not properly sanitize user input but
uses it “as is” to generate a dynamic reply (Web
page)
– This reply contains attacker’s script code
• Attacker can craft the URL with his script embedded
in it
– URL points to the target site, supplies some input + script
– Entice user to click on URL
– Script will steal some user info that user shares with the
site, e.g. a cookie
Example
Attacker
Google
1. Click here:
http://www.google.com?something</FORM><SCRIPT>….
3. Attacker’s script
executes with
Google’s privs
2. Send in HTTP GET as argument to Google homepage:
something</FORM><SCRIPT>….
User
Persistent XSS Vulnerability
• Data provided by attacker is stored by server and
displayed to any future user
– E.g. when posts to online message boards are not properly
sanitized
• Such a script can access any content the
compromised server can
Where Do Vulnerabilities Occur
• In server code that processes user input and
dynamically renders the resulting page
• In client code that runs in browser and renders Web
pages with data from the server
– JavaScript mostly
– Document Object Model (DOM) – standard model for
representing HTML and XML content
Defense: Escape User Input
• Ensure that characters of input are treated as data,
not as code
– Translate any dangerous characters into another form of
the same characters that cannot be interpreted as code
– E.g., translate “<“ into “&lt;”
• Some input could be encoded into different charset
– Enforce charset in each server reply so that interpretation
of user’s input is fixed
Defense: Validate User Input
• Some Web sites want to allow users to input and
render HTML
– E.g., use HTML markup in emails and online posts
– Escaping doesn’t help here since it would destroy HTML
markup
– User input must pass through the HTML policy engine to
ensure it does not contain XSS
Defense: Cookie Security
• Because XSS can be used to steal cookies, sites
cannot rely only on cookies for authentication
– Tie cookies to specific IPs
– HTTP Only flag in browsers allows access to cookies from
HTML documents only (scripts cannot access them)
Defense: Disabling Scripts
• Browser-side defense
– Makes some Web pages not render
– Could be turned off for some sites which are trusted to be
well secured against XSS
XML Randomization XSS Defense
• Web application randomizes XML tag prefixes before
delivering a document to client
– Hard for attacker to predict randomized prefixes
– Cannot inject scripts into application input
“Noncespaces: Using Randomization to Enforce Information Flow Tracking and Thwart Cross-Site
Scripting Attacks”, Matthew Van Gundy and Hao Chen. In Proceedings of the 16th Annual
Network and Distributed System Security Symposium (NDSS), 2009.
Insertion Vectors
• Tag body
– review.text = <script>attack()</script>
• Node splitting
– review.text = </p></div><script>attack()</script><div><p>
• Attribute value
– review.contact = javascript:attack()
• Attribute splitting
– review.contact = ’ onclick=’javascript:attack()
• Tag splitting
– review.contact = ’><script>attack()</script>
“Noncespaces: Using Randomization to Enforce Information Flow Tracking and Thwart Cross-Site
Scripting Attacks”, Matthew Van Gundy and Hao Chen. In Proceedings of the 16th Annual
Network and Distributed System Security Symposium (NDSS), 2009.
Tag Prefix Randomization
• XML namespaces
– User chooses a prefix for a tag
– E.g. for <A> tag:
• <p:a xmlns:p=’http://www.w3.org/1999/xhtml’>
• <q:a xmlns:q=’http://www.w3.org/1999/xhtml’>
• Leverage XML prefixes to annotate document with
trust classes
– “Label” of each trust class random and hard to guess by
attacker
• Prefixes randomly chosen on each document delivery
“Noncespaces: Using Randomization to Enforce Information Flow Tracking and Thwart Cross-Site
Scripting Attacks”, Matthew Van Gundy and Hao Chen. In Proceedings of the 16th Annual
Network and Distributed System Security Symposium (NDSS), 2009.
Example From Paper
Attack code
“Noncespaces: Using Randomization to Enforce Information Flow Tracking and Thwart Cross-Site
Scripting Attacks”, Matthew Van Gundy and Hao Chen. In Proceedings of the 16th Annual
Network and Distributed System Security Symposium (NDSS), 2009.
Trust Policy
• Defines tags that are trusted
• Defines HTML tags and operations that are allowed
in untrusted content
• Everything else is denied
• Server delivers both the potentially hazardous
content and the trust policy
• Client browser enforces policy on server-delivered
content
“Noncespaces: Using Randomization to Enforce Information Flow Tracking and Thwart Cross-Site
Scripting Attacks”, Matthew Van Gundy and Hao Chen. In Proceedings of the 16th Annual
Network and Distributed System Security Symposium (NDSS), 2009.
Deployment
• Both client and server need to be modified
• Easy add-on to existing software
• Client proxy can protect multiple clients in a network
“Noncespaces: Using Randomization to Enforce Information Flow Tracking and Thwart Cross-Site
Scripting Attacks”, Matthew Van Gundy and Hao Chen. In Proceedings of the 16th Annual
Network and Distributed System Security Symposium (NDSS), 2009.
MANET Security
What Is MANET?
• Mobile Ad-Hoc Network
–
–
–
–
Wireless nodes
Changing topology
Possibly no trusted authority
Usually battery operated with limited CPU/memory
Security Challenges
• Wireless medium
– Sniffing and jamming are easy, impersonation too
• Peers as routers
– No trust in routers, may sniff, drop or fabricate data
• Changing topology
– Routes are learned, can be manipulated by attackers
• No trust infrastructure or trusted entities
– How to distribute keys
• Limited resources
– Algorithms must be simple and cheap
Physical/Link Layer Attacks
• Sniffing: attackers can easily pick up wireless
transmissions because they are broadcast at specific
frequency (MAC spoofing possible too)
– Frequency hopping
– Directional antennas
– Encryption
• Jamming is easy
– But attacker needs powerful transmitter
– Directional antennas
• MAC protocol misuse to monopolize shared medium
– How to create a distributed protocol that detects and penalizes
misbehavior?
Ad-Hoc Routing
• Routes are learned when needed (due to mobility)
• Dynamic Source Routing (DSR)
– Source puts entire route in packet header
• Route discovery
–
–
–
–
Request messages broadcast
Intermediate nodes add themselves to the message
Reply unicast to the source with full path recorded
Nodes can cache overheard routes and may reply from
cache
– Link breakage results in error messages that delete routes
in the network that use the broken link
Ad-Hoc Routing
• Ad-hoc On-Demand Distance Vector Routing
– Source just specifies destination
– Routers on path forward as they see fit
• Route discovery
– Request messages broadcast
– Intermediate nodes repeat the message,
cache next hop to the source
– Reply unicast to the source, intermediate nodes cache next
hop to the destination
– Intermediate node may reply from cache
– When link breaks intermediate node may attempt to
rediscover new route
– Error messages remove routes that used the broken link
Routing Attacks
• Routing message flooding (DoS)
• Routing table overflow
– Fill with bogus routes
• Routing cache poisoning is easy
– Just fabricate requests or replies with spoofed source
• Fabricate false error messages
Network Layer Attacks
•
•
•
•
Drop packets, modify them or replay them
Delay packets
Inject junk traffic
Wormhole Attack
– Tunnel packets to another location
• Blackhole Attack
– Make the node part of many routes
– Drop all traffic
Wormhole Attacks
• Attacker records traffic at one point in MANET,
tunnels it (perhaps selectively) to another point and
replays it
• Replayed traffic can arrive sooner than original traffic
– This leads to an attacker node becoming part of many
routes
• Attack works even for traffic not going over attacker
nodes directly, and for encrypted traffic
“Wormhole attacks in wireless networks,” Yih-chun Hu , Adrian Perrig , David B.
Johnson, IEEE Journal on Selected Areas in Communications, 2006
Detection of Wormhole Attacks
• Packet leash
– Information added to the packet to restrict the distance it
can travel in one hop
– Geographical – recipient must be close to sender. Sender
records its location and time when packet is sent, recipient
checks for validity.
– Temporal – packet lifetime ends after certain time. Sender
records the time when packet is sent, recipient checks for
validity.
• Requires synchronized clocks
• Recorded information must be signed
“Wormhole attacks in wireless networks,” Yih-chun Hu , Adrian Perrig , David B.
Johnson, IEEE Journal on Selected Areas in Communications, 2006
DoS Attacks
•
•
•
•
•
Consume node battery, CPU or memory
Overflow node’s routing table
Flood the node with routing messages
Flood the node with data traffic
Drop node’s data traffic