JavaOne 2013 BOF2924 HoneySpiderNetwork

50
JavaOne 2013 - BOF2924 Niels van Eijck Principal Consultant, NCIM [email protected] @nvaneijck

Transcript of JavaOne 2013 BOF2924 HoneySpiderNetwork

Page 1: JavaOne 2013 BOF2924 HoneySpiderNetwork

JavaOne 2013 - BOF2924 Niels van Eijck Principal Consultant, NCIM

[email protected] @nvaneijck

Page 2: JavaOne 2013 BOF2924 HoneySpiderNetwork

2

Java Developer Principal Consultant @NCIM Currently @Dutch National Cyber Security

Centre (NCSC-NL)

Page 3: JavaOne 2013 BOF2924 HoneySpiderNetwork

Introduction HoneySpider Network Service Development Demo Summary

3

Page 4: JavaOne 2013 BOF2924 HoneySpiderNetwork

Every piece of software contains vulnerabilities! Browsers (IE, Firefox, Chrome, Opera, WGET) Flash, Acrobat Reader, etc.

4

Page 5: JavaOne 2013 BOF2924 HoneySpiderNetwork

5

Benign content

Benign content

HoneySpider Network

Early warning system Scan periodically Trusted websites

Benign content

Page 6: JavaOne 2013 BOF2924 HoneySpiderNetwork

6

Malicious content

Benign content

Benign content

HoneySpider Network

Early warning system Scan periodically Trusted websites Detect malicious content Report

Page 7: JavaOne 2013 BOF2924 HoneySpiderNetwork

7

Page 8: JavaOne 2013 BOF2924 HoneySpiderNetwork

8

Page 9: JavaOne 2013 BOF2924 HoneySpiderNetwork

9

Page 10: JavaOne 2013 BOF2924 HoneySpiderNetwork

Intelligence gathering

Inject exploit in selected sites

Drop malware on vulnerable

systems

Initiate malicious activity

10

Images courtesy of chanpipat / FreeDigitalPhotos.net

1

2

3

4

Page 11: JavaOne 2013 BOF2924 HoneySpiderNetwork

Major news sites NU.nl Telegraaf.nl

Government sites whitehouse.gov dol.gov

Political related sites rsf.org

11

Page 12: JavaOne 2013 BOF2924 HoneySpiderNetwork

12 Source: threatpost.com / netsecurity.org

Page 13: JavaOne 2013 BOF2924 HoneySpiderNetwork

February 2013 Clients exploited via Java6 vulnerability Apple, Facebook & Twitter compromised

13

Page 14: JavaOne 2013 BOF2924 HoneySpiderNetwork

14 Source: zdnet.com / foxit.com

Page 15: JavaOne 2013 BOF2924 HoneySpiderNetwork

August 2013 First noticed at conrad.nl Visitors are redirected to site serving

Blackhole exploit kit (PDF & Java) Turns out conrad.nl is not the only one

15

Page 16: JavaOne 2013 BOF2924 HoneySpiderNetwork

Hosting provider targeted by phishing email PDF containing malware

One client got compromised Credentials obtained for DNS registrar

DNS Nameserver entry changed

Legitimate action…

16

Page 17: JavaOne 2013 BOF2924 HoneySpiderNetwork

17

Page 18: JavaOne 2013 BOF2924 HoneySpiderNetwork

All this shows a need to invest in early detection and analysis of attacks on clients

Meet HoneySpiderNetwork 2 (HSN)

18

Page 19: JavaOne 2013 BOF2924 HoneySpiderNetwork

Introduction HoneySpider Network Service Development Demo Summary

19

Page 20: JavaOne 2013 BOF2924 HoneySpiderNetwork

Started as joint venture

CERT-Polska

Dutch National Cyber Security Centre (NCSC-NL)

Work on version 2 started in 2011

Code released under GPL license in january 2013

20

Page 21: JavaOne 2013 BOF2924 HoneySpiderNetwork

Early warning system Detects attacks on client applications

Webpages Files

Supports variety of services & analyzers Flexible configuration Scalable Open architecture

21

Page 22: JavaOne 2013 BOF2924 HoneySpiderNetwork

Operational

22

HoneySpider Network

Services Services

Services

Services Services

Jobs

Reporting

Report DB

Web interface

CLI

export

Page 23: JavaOne 2013 BOF2924 HoneySpiderNetwork

Communication RabbitMQ (AMQP) Google Protocol Buffers

Workflows Activiti Git

Storage Apache CouchDB JSON documents

Programming languages Java Python C++

23

Page 24: JavaOne 2013 BOF2924 HoneySpiderNetwork

24

Page 25: JavaOne 2013 BOF2924 HoneySpiderNetwork

HSN Workflow Language (HWL) XML

25

Process

• File with URLs

Each URL

• Service “A”

• Service “B”

Reporter

• Aggregate results from services

• Store in database

Page 26: JavaOne 2013 BOF2924 HoneySpiderNetwork

Input / Output

26

Feeder (file / url)

Reporter

Web Clients

HtmlUnit Thug

Honeypots

Capture HPC Cuckoo

Scanners

Antivirus Shellcode

Analyzers

JavaScript PDF

MS Office Flash

Page 27: JavaOne 2013 BOF2924 HoneySpiderNetwork

High interaction honeypot

Vulnerable system visits website

Activity is recorded

Uses virtualization software Analysis plugins Reporting plugins

27

Page 28: JavaOne 2013 BOF2924 HoneySpiderNetwork

Django framework Supports scheduling of jobs Basic statistics RSS feeds of malicious results

28

Page 29: JavaOne 2013 BOF2924 HoneySpiderNetwork

Introduction HoneySpider Network Service Development Demo Summary

29

Page 30: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...;

public class DemoService implements org.apache.commons.daemon.Daemon {

private GenericService service = null;

@Override

public void init(DaemonContext context) throws DaemonInitException, Exception {

this.service = new GenericService(new DemoServiceTaskFactory(), ...);

}

@Override

public void start() throws Exception {

...

service.run();

...

}

}

30

Page 31: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...;

public class DemoService implements org.apache.commons.daemon.Daemon {

private GenericService service = null;

@Override

public void init(DaemonContext context) throws DaemonInitException, Exception {

this.service = new GenericService(new DemoServiceTaskFactory(), ...);

}

@Override

public void start() throws Exception {

...

service.run();

...

}

}

31

Page 32: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...;

public class DemoServiceTaskFactory implements TaskFactory {

@Override

public Task newTask(TaskContext jobContext, ParametersWrapper parameters, ObjectDataWrapper data)

throws ParameterException {

return new DemoServiceTask(jobContext, data);

}

}

32

Page 33: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...;

public class DemoServiceTaskFactory implements TaskFactory {

@Override

public Task newTask(TaskContext jobContext, ParametersWrapper parameters, ObjectDataWrapper data)

throws ParameterException {

return new DemoServiceTask(jobContext, data);

}

}

33

Page 34: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...;

public class DemoServiceTaskFactory implements TaskFactory {

@Override

public Task newTask(TaskContext jobContext, ParametersWrapper parameters, ObjectDataWrapper data)

throws ParameterException {

return new DemoServiceTask(jobContext, data);

}

}

34

Page 35: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...

/**

* The task class for the HSN2 Demo Service. This is the place where the actual work is being done.

*/

public class DemoServiceTask implements Task {

private TaskContext jobContext;

private String url;

public DemoServiceTask(TaskContext jobContext, ObjectDataWrapper data) {

this.jobContext = jobContext;

this.url = data.getString("url_original");

}

@Override

public void process() throws ParameterException, ResourceException, StorageException {

jobContext.addAttribute("statement", "JavaOne Rocks!");

}

}

35

Page 36: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...

/**

* The task class for the HSN2 Demo Service. This is the place where the actual work is being done.

*/

public class DemoServiceTask implements Task {

private TaskContext jobContext;

private String url;

public DemoServiceTask(TaskContext jobContext, ObjectDataWrapper data) {

this.jobContext = jobContext;

this.url = data.getString("url_original");

}

@Override

public void process() throws ParameterException, ResourceException, StorageException {

jobContext.addAttribute("statement", "JavaOne Rocks!");

}

}

36

Page 37: JavaOne 2013 BOF2924 HoneySpiderNetwork

package nl.ncim.hsn2.service;

import ...

/**

* The task class for the HSN2 Demo Service. This is the place where the actual work is being done.

*/

public class DemoServiceTask implements Task {

private TaskContext jobContext;

private String url;

public DemoServiceTask(TaskContext jobContext, ObjectDataWrapper data) {

this.jobContext = jobContext;

this.url = data.getString("url_original");

}

@Override

public void process() throws ParameterException, ResourceException, StorageException {

jobContext.addAttribute("statement", "JavaOne Rocks!");

}

}

37

Page 38: JavaOne 2013 BOF2924 HoneySpiderNetwork

{

"type":"analysis",

"job":<<@|hsn-job-id>>,

"service":"demo-service",

"node":<<@|hsn-node-ref>>,

"classification":"benign",

"details":

{

"structure":"list",

"name":"Analysis details of Demo Service",

"value":

[

{

"structure":"text",

"name":"Statement",

"value":<<statement>>

},

]

}

}

38

Page 39: JavaOne 2013 BOF2924 HoneySpiderNetwork

Introduction HoneySpider Network Service Development Demo Summary

39

Page 40: JavaOne 2013 BOF2924 HoneySpiderNetwork

Java SE 7 JRE Exploit (CVE-2012-4681)

Vulnerabilities in the JRE allow attackers to escape from the sandbox environment

Fixed in Java SE 7 JRE update 7 currently at 7u40...

40

Page 41: JavaOne 2013 BOF2924 HoneySpiderNetwork

41

HoneySpider Network

Cuckoo Service

VM with Metasploit

Cuckoo

Page 42: JavaOne 2013 BOF2924 HoneySpiderNetwork

42

HoneySpider Network

Cuckoo Service

Job

VM with Metasploit

Cuckoo

Page 43: JavaOne 2013 BOF2924 HoneySpiderNetwork

43

HoneySpider Network

Cuckoo Service

Job

VM with Metasploit

Cuckoo Windows XP

virtual machine

Page 44: JavaOne 2013 BOF2924 HoneySpiderNetwork

Windows XP virtual machine

44

HoneySpider Network

Cuckoo Service

Job

VM with Metasploit

Cuckoo

Page 45: JavaOne 2013 BOF2924 HoneySpiderNetwork

45

HoneySpider Network

Cuckoo Service

Report

VM with Metasploit

Cuckoo

Page 46: JavaOne 2013 BOF2924 HoneySpiderNetwork

Calc.exe aka Hello, world! A hacker would execute more serious stuff

> format C:

botnet client

keylogger

46

Page 47: JavaOne 2013 BOF2924 HoneySpiderNetwork

47

Page 48: JavaOne 2013 BOF2924 HoneySpiderNetwork

Introduction HoneySpider Network Service Development Demo Summary

48

Page 49: JavaOne 2013 BOF2924 HoneySpiderNetwork

HoneySpiderNetwork; a Java based system to hunt down malicious websites

Visit www.honeyspider.net Feel free to try it

Appliance (virtualbox) Installation Guide Github (https://github.com/CERT-Polska/hsn2-bundle)

Call for developers!

49

Page 50: JavaOne 2013 BOF2924 HoneySpiderNetwork

50

Thank you for your attention!

[email protected] @nvaneijck