Top Banner
Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1
28

Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

May 12, 2018

Download

Documents

nguyenquynh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Reconstructing web pages from browser cache

Iwan Hoogendoorn&

Edwin Schaap

University of Amsterdam

July 4, 2013

1

Page 2: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Demo I

Open Safari

Clear Safari’s cache

Visit www.tweakers.net

2

Page 3: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Criminal research

planning a crime

committing the perfectcrime

Internet used as a resource

3

Page 4: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Evidence by a witness

looking at content that isagainst the law

content is removed by asuspect in a later stage

Internet used as a resource

4

Page 5: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Forensic crime investigation

computer forensics

browser forensics

web cache data forensics

5

Page 6: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Research question

In what ways can one visually reconstruct websites withinformation retrieved from normalized browser cachesthat can be use for computer forensic examiners to builda case?

Raw caching data

Reconstruction methods

Reliability after reconstruction

6

Page 7: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Current forensic web cache tools

Nirsoft

Web Cache View

Digital Detective

Siquest

Foxten Software

7

Page 8: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Netherlands Forensic Institute Tools

XIRAF

HANSKEN

Traces

8

Page 9: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Popular web browsers

Figure 1 : Browser popularity - Worldwide

9

Page 10: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web cache data structure - Google Chrome

Header

hash table

…………

index

data_0 data_1 data_2

Cac

he

(met

a) d

ata

data_3

block files

data_4

Figure 2 : Chrome web cache structure

10

Page 11: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web cache data structure - Mozilla Firefox

Header

32 buckets

256 records

…………

_CACHE_MAP_

_CACHE_001_ _CACHE_002_ _CACHE_003_

Cac

he

(met

a) d

ata

Figure 3 : Firefox web cache structure

11

Page 12: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web cache data structure - Apple Safari

cfurl_cache_response

PK entry_ID

version hash_value storage_policy request_key time_stamp

cfurl_cache_blob_data

PK,FK1 entry_ID

response_object request_object proto_props user_info

cfurl_cache_receiver_data

PK,FK1 entry_ID

receiver_data

Figure 4 : Safari web cache structure

12

Page 13: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web cache data - before sanitazion

Chrome Firefox SafariUnique identification X X XEviction X X X

URL request string X X XTime/Date (first request) X X XTime/Date (last request) X X X

Time/Date (expire) X X X

Fetch count X X X

Client request headers X X XServer response header X X XServer response body X X X

Table 1 : Firefox, Chrome and Safari web cache comparison table

13

Page 14: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Traces - normalised cache data

Unique identification

URL request string

Time/Date (first request)

Server response body

14

Page 15: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web page reconstruction methods - I

pre-processing

post-processing

15

Page 16: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web page reconstruction methods - II

Pre-processing

Advantages:1 Requires no configuration of the rendering browser.2 Can even run in the browser of the user enabling interaction.

Disadvantages:1 Tampering the evidence.2 Hard to parse all resource identifiers, especially if JavaScript is

used.3 Non-parsed resource identifiers are circumventing the

application.

16

Page 17: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Web page reconstruction methods - III

Post-processing

Advantages:1 All resource identifiers are captured by the proxy.

Disadvantages:1 Requires proxy configuration of rendering browser.2 SSL traffic is hard to deal with.

17

Page 18: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Proof of Concept

Proof of Concept

18

Page 19: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Application design

Application

CacheProxy

Rendering browser

User's Browser

Frontend

Traces

Figure 5 : Web page reconstruction application

19

Page 20: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Demo II

Reconstruct web pagevisited at the beginning ofthis presentation

Compare before and after

20

Page 21: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Result - Simple websites I

OriginalReconstructed

21

Page 22: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Result - Simple websites II

Original NetAnalysis

22

Page 23: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Result - complex websites I

OriginalReconstructed

23

Page 24: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Result - complex websites II

Original

NetAnalysis 24

Page 25: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Analysis - Dynamic resources

A Btime

W1

W2

R

resources

1 Browser S displays websiteW1 on time A.

2 Website W1 containsresource R.

3 Browser S displays websiteW2 on time B.

25

Page 26: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Analysis - Runtime dependencies

1 Browser S visits website W.

2 Website W contains a dynamic time T.

3 Time T is taken from the local system time.

26

Page 27: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Conclusion

Prefer post-processing

Normalized data is sufficient

Reliability depends on cache data

27

Page 28: Iwan Hoogendoorn Edwin Schaap - de Laat · Reconstructing web pages from browser cache Iwan Hoogendoorn & Edwin Schaap University of Amsterdam July 4, 2013 1

Thank you

?

28