+ All Categories
Home > Documents > Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Date post: 19-Jan-2016
Category:
Upload: rodney-casey
View: 213 times
Download: 0 times
Share this document with a friend
13
Zozzle: Low-overhead Mostly Static JavaScript Malware Detection
Transcript
Page 1: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Zozzle: Low-overhead Mostly Static JavaScript Malware Detection

Page 2: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Road MapBackgroundArchitecture and Evaluation

Page 3: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Heap Spraying Create NOP sled/shellcode:

◦Create the shellcode and precedes the shell code with a block of NOP sled.

Spray the NOP sled/shellcode:◦Allocate many copies of the NOP

sled/shellcode in heap to increase the chance of success.

Trigger the vulnerability. ◦ In order to redirect the program to Heap,

where it is possible to hit the NOP sled and then shellcode.

Page 4: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Malware CloakingGenerally, two ways to check

JavaScript Malware.◦Signatures◦Machine Learning

All Need Source Code

Page 5: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Architecture of Zozzle

Deobfuscate

Feature Extraction

Feature Selection

Classifier Training

Samples

Bayesian Classifier

Bayesian Classifier

UnknownJavaScript Benign

Malicious

Page 6: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

De-obfuscated

An exploit must unpack itself to run.◦That is, before an exploit is

executed, it mush show its real source code.

Zozzle intercept calls to Compile function in JavaScript Engine.◦eval() is called◦New code is included in

<iframe> tag◦New code is included in <script>

tag

Page 7: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Feature ExtractionFlat Features VS Hierarchical

Features◦Flat Feature: Text from Source Code◦1-level Hierarchical Feature:

<Context Info, Text>◦n-level Hierarchical Feature:

<Context Info…,Text> Abstract Syntax Tree

function f(){ shellcode… …}

for(i=0; i<5000;i++){…

…Shellcode…⋯}

Page 8: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Feature SelectionZozzle only selects those

features that are most likely to be predictive.

Use χ2 to test correlation

Page 9: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Classifier TrainingZOZZLE uses a naïve Bayesian

classifier, for its simplicity and efficiency

How to calculate P(Fk|Li)? Open Questions

Li = Benign or Malicious

Page 10: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Feature & Throughput

Page 11: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Feature Extraction

Accuracy & Feature

False Positive&False Negative

Page 12: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Compare With Others

Zozzle

AV1 AV2 AV3 AV4 AV50

2

4

6False Positive

False Positive

ZOZZ

LE AV1

AV2

AV3

AV4

AV5

0%

40%

80%

False Negative

False Nega-tive

Page 13: Zozzle: Low-overhead Mostly Static JavaScript Malware Detection.

Questions


Recommended