IceShield: Detection and Mitigation of Malicious Websites
Download
Report
Transcript IceShield: Detection and Mitigation of Malicious Websites
Introduction
Related Work
Design Overview
System Implementation
Evaluation
Limitations
A Seminar at Advanced Defense Lab
2011/7/19
2
There are many different kinds of threats
and attack vectors against current
browsers.
› Drive-by-Download attacks
› Cross-Site Scripting (XSS)
› Clickjacking
A Seminar at Advanced Defense Lab
2011/7/19
3
The root cause of this problem is the fact
that an attacker can compromise the
integrity of almost all DOM properties of
a website by injecting malicious
JavaScript code.
A Seminar at Advanced Defense Lab
2011/7/19
4
We introduce IceShield, a novel
approach to perform light-weight
instrumentation of JavaScript, detecting
a diverse set of attacks against the DOM
tree.
A Seminar at Advanced Defense Lab
2011/7/19
5
Offline
Auto-Selected
Features
Online
Cujo, Zozzle
Machine Learning
Manual-Selected
Features
Security Policy
A Seminar at Advanced Defense Lab
Wepawet[link]
(JSAND)
IceShield
Gatekeeper[link],
Caja[link]
Gazelle
[link]
2011/7/19
6
We assume that almost every JavaScript
based attack will have to use native
methods at some point in order to
prepare necessary data structures.
› Heap spray
› JIT spray
A Seminar at Advanced Defense Lab
2011/7/19
7
An attacker can render any signature
based malware detection lacking
advanced de-obfuscation routines
useless.
A Seminar at Advanced Defense Lab
2011/7/19
8
We do not rely on any form of static
code analysis.
We instrument objects and functions
dynamically, and providing an
execution context in which we can
analyze their behavior.
A Seminar at Advanced Defense Lab
2011/7/19
9
Our heuristics are based on a manual
analysis of current attacks, and we tried
to generalize the heuristics such that
they are capable of detecting a wide
variety of attacks.
A Seminar at Advanced Defense Lab
2011/7/19
10
External domain injection
› <embed>, <iframe>, <script>, …
Dangerous MIME type injection
Suspicious Unicode characters
› %u0c0c
Suspicious decoding result
A Seminar at Advanced Defense Lab
2011/7/19
11
Overlong decoding results
› 4096 characters
Dangerous element creation
› <iframe>, <script>, …
URI/CLSID pattern in attribute setter
Dangerous tag injection via the innerHTML
property
A Seminar at Advanced Defense Lab
2011/7/19
12
We overwrite and wrap the native
JavaScript methods into a context that
allows us to inspect dynamically.
IceShield utilizes an ECMA Script 5
feature called
Object.defineProperty() to
implement the instrumentation in a
robust way.
A Seminar at Advanced Defense Lab
2011/7/19
13
The most relevant descriptor for IceShield
is configurable and the possibility to set it
to false, thereby freezing the property
state.
All modern user agents such as Firefox 4,
Chrome 6-10, and Internet Explorer 9
support object freezing.
A Seminar at Advanced Defense Lab
2011/7/19
14
Linear Discriminant Analysis (LDA)[link]
A Seminar at Advanced Defense Lab
2011/7/19
15
To avoid interference with the user
experience, we null the payload of the
possible exploit, which mitigates the
danger to the user, but in most cases has
no visible impact.
A Seminar at Advanced Defense Lab
2011/7/19
16
New window context
› <iframe> point to Javascript URI
<iframe src=“javascript:evil()”>
› Data URI
<object data =" data:x ,%3cscript >
evil()%3c/script >" >
› <a> and target=_blank
› <meta> redirection
A Seminar at Advanced Defense Lab
2011/7/19
17
The solution to the problems discussed
above can be found in scanning and
analyzing the website's markup during
parsing of the DOM tree.
A Seminar at Advanced Defense Lab
2011/7/19
18
We implement:
› Extension for Gecko based browser
› BHO for Internet Explorer
› Greasemonkey[link] user script
A Seminar at Advanced Defense Lab
2011/7/19
19
Known-good dataset
› Top 61,554 websites from Alexa ranking
› Check the malwaredomainlist.com
(MDL)[link] block-list
Known-bad dataset
› 81 URLs selected from MDL
› all URLs point to exploit kits
A Seminar at Advanced Defense Lab
2011/7/19
20
High-end workstation
› Intel Core i7-870 and 8GB RAM
› Ubuntu 10.04 and Firefox 3.6.8
Mid-range system
› ASUS EeePC 1000H
› Intel Atom N270 and 1 GB RAM
› Ubuntu 10and Firefox 3.6.12
Low-end device
› Nokia n900
› 600 MHz ARM7 Cortex-A8and 256 MB RAM
› Maemo and Firefox 3.5 Maemo Browser 1.5.6 RX-51
A Seminar at Advanced Defense Lab
2011/7/19
21
A Seminar at Advanced Defense Lab
2011/7/19
22
Training set
› Top 50 sites from Alexa ranking
› 30 sites from known-bad dataset
Testing set
› 61,504 sites from known-good dataset
› 51 sites from known-bad dataset
A Seminar at Advanced Defense Lab
2011/7/19
23
Correct
Incorrect
Known-good
97.83%
2.17%
Known-bad
98.04% (50)
1.96% (1)
A Seminar at Advanced Defense Lab
2011/7/19
24
To protect the user, IceShield does not
need to block access to a site that
triggers an alert.
We can strip malicious data from the site,
and thus mitigate the attack.
A Seminar at Advanced Defense Lab
2011/7/19
25
We manually evaluated a 10% sample
set (134 sites) randomly chosen from the
false positives to confirm that the
majority of pages remain usable.
› not noticeable: 82.9%
› partially usable: 9.6%
› Unusable: 7.5%
A Seminar at Advanced Defense Lab
2011/7/19
26
2 ms to 760 ms, average 11.6ms
› 99.5% sites are smaller than 25 ms
› Average overhead 6.27%
A Seminar at Advanced Defense Lab
2011/7/19
27
A Seminar at Advanced Defense Lab
2011/7/19
28
In case an attacker deploys a malicious
PDF, Java Applet, or Flash le without
using any native DOM methods.
The lack of heuristic coverage on
ActiveX based attacks
The lack of tamper resistance support for
older user agents.
A Seminar at Advanced Defense Lab
2011/7/19
29
A Seminar at Advanced Defense Lab
2011/7/19
30
!’’
› “true”
[!{}]
› “false”
{}
› an object
!’’+[!{}]+{}
› “trueflase[object Object]”
A Seminar at Advanced Defense Lab
2011/7/19
31
_ =[[$,__,,$$,,_$,$_,_$_,,,$_$]=!
‘'+[!{}]+{}][_$_+$_$+__+$],
_()[_$+$_+$$+__+$](-~$)
A Seminar at Advanced Defense Lab
2011/7/19
32
jjencode[link]
aaencode[link]
JSF*ck[link]
A Seminar at Advanced Defense Lab
2011/7/19
33
Because IE 8 include DEP
Some exploit may not use heap spray
Dion Blazakis propose JIT spraying at
BlackHat DC 2010
› INTERPRETER EXPLOITATION: POINTER
INFERENCE AND JIT SPRAYING
› Generate executable code at runtime
A Seminar at Advanced Defense Lab
2011/7/19
34
var y = (
0x3c54d0d9
0x3c909058
0x3c59f46a
0x3c90c801
0x3c9030d9
0x3c53535b
...
^
^
^
^
^
^
A Seminar at Advanced Defense Lab
2011/7/19
35