Top Banner
Database Forensic Analysis with DBCarver James Wagner, Alexander Rasin, Tanu Malik, Karen Heart, Hugo Jehle, Jonathan Grier 1
26

Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Mar 28, 2020

Download

Documents

dariahiddleston
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: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Database Forensic Analysis with

DBCarver

James Wagner, Alexander Rasin, Tanu Malik,

Karen Heart, Hugo Jehle, Jonathan Grier

1

Page 2: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Data Systems and Optimization Lab at DePaul

2

James WagnerTanu Malik

Karen Heart Hugo Jehle Jonathan Grier

Page 3: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Motivation

• Cyber-crime

• Detecting (and proving) data

theft

• JP Morgan/Dow Jones

• Mobile device analysis

• FBI, 4Discovery

• Involves a database

3

Page 4: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Motivation

• Example Queries

• Reconstruct deleted data

• Identify recent access, modifications

• Detect catalog/data tampering

• Un-trusted environment

4

Page 5: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Analysis Targets

• Logs

• Audit, Query, WAL

• RAM

• Buffer cache, intermediate data• Buffer cache, intermediate data

• Query-able DB content

• Tables, MVs, Catalog

• Un-query-able content

• Indexes, Deleted data, Free-listed data

5

Page 6: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Analysis Targets

• Logs

• Audit, Query, WAL

• RAM

• Buffer cache, intermediate data

DB

RECOVERY

• Buffer cache, intermediate data

• Query-able DB content

• Tables, MVs, Catalog

• Un-query-able content

• Indexes, Deleted data, Free-listed data

6

Chain of

Custody?

Page 7: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

File Carving (JPEG)

Header

File Fragment

1

7

1File

Fragment 2

Footer

Page 8: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Analysis Targets

• Logs

• Audit, Query, WAL

• RAM

• Buffer cache, intermediate data

FILE

CARVING

• Buffer cache, intermediate data

• Query-able DB content

• Tables, MVs, Catalog

• Un-query-able content

• Indexes, Deleted data, Free-listed data

8

Page 9: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Generalized Page Carving

Page Header

Row Directory

Other

Structures

Row1 Address

Row2 Address

Row3 Address

Row4 Address

Table Data

Customer

20%

9

Row Data

Row4: 4, Mark, Boston

Row3: 3, Mary, Dallas

Row2: 2, Jane, Chicago

Row1: 1, John, Boston

Row4 Address

Free space,

etc.80%

Page 10: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Analysis Targets

• Logs

• Audit, Query, WAL

• RAM

• Buffer cache, int. data

DB

CARVING

• Buffer cache, int. data

• Query-able DB content

• Tables, MVs, Catalog

• Un-query-able content

• Indexes, Deleted data, Free-listed data

10

Page 11: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Parameter

Detector

Database

Management

System

Iteratively load

synthetic data

Capture DB storage

Generate DB

DBCarver Architecture

DB CarverDB config. files

Generate DB

config. fileDBMS disk

image

DBMS RAM

image

Updated, Deleted rows

Cached index/data pages

Catalog, logs, etc

Unallocated (free) pages

Page 12: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Parameter

Detector

Database

Management

System

Iteratively load

synthetic data

Capture DB storage

Generate DB

DBCarver Architecture

DB CarverDB config. files

Generate DB

config. fileDBMS disk

image

DBMS RAM

image

Updated, Deleted rows

Cached index/data pages

Catalog, logs, etc

Unallocated (free) pages

Page 13: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Oracle PostgreSQL SQLite Firebird DB2 SQLServer MySQL Apache

Derby

Structure

Identifier Yes No Yes No

Unique

Page IDYes No

Row Dir.

SequenceTop-to-bottom insertion Bottom-to-top insertion

Row

IdentifierNo Yes No Yes

Column

CountYes No Yes No Yes

13

Column

CountYes No Yes No Yes

3-column row4, Mark, Boston

Row4 4, Mark, Boston

Row4 4 4, Mark, Boston

Row4 3 4, Mark, Boston

Page 14: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Parameter

Detector

Database

Management

System

Iteratively load

synthetic data

Capture DB storage

Generate DB

DBCarver Architecture

DB CarverDB config. files

Generate DB

config. fileDBMS disk

image

DBMS RAM

image

Updated, Deleted rows

Cached index/data pages

Catalog, logs, etc

Unallocated (free) pages

Page 15: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

DBCarver Output (SQLite on Android)

Number of

Active Rows

Internal

RowID

…Deleted

Row

Page 16: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Value of an Index (Update)

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

Doe

Jack

Employee Index

on (LastName)

Employee Table

16

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

222 I. NotSmith … Emp. 35K

Jack

Locke

NotSmith

Smith

Page 17: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Value of Caching (Update)

17

Disk Storage

Memory (RAM)

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

Data Page

Page 18: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Value of Caching (Update)

Data Page

(a copy in

RAM)

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

18

Disk Storage

Memory (RAM)

Data Page

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

Page 19: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Value of Caching (Update)

Data Page

(a copy in

RAM)

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

222 I. NotSmith … Emp. 35K

19

Disk Storage

Memory (RAM)

Data Page

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

222 I. NotSmith … Emp. 35K

Page 20: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Forensic Value of Caching (Update)

Data Page

(a copy in

RAM)

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

222 I. NotSmith … Emp. 35K

20

Disk Storage

Memory (RAM)

Data Page

111 J. Doe … Emp. 42K

222 J. Smith … Emp. 35K

333 A.Locke … Mgr. 65K

444 P. Jack … Emp. 37K

222 I. NotSmith … Emp. 35K

222 I. NotSmith … Emp. 35K

Page 21: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Delete Progression

• Storage state:

– Issue the delete command

– ??? (Profit?)

– Value is gone– Value is gone

• Observe disk and RAM state

– In Table, Index (e.g., Unique), MV

21

Page 22: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Delete Progression

• T0: Load the data (Table, Index, MV)

• T1: Delete a unique value (222)

• T2: Refresh the MV

• T3: Flush_buffer_cache()

• T4: Overwrite the buffer cache

• T5: Vacuum Table, Index and MV

22

Page 23: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

T0

T1

T2

222 222 222

222 222 222

222 222 222

Disk RAM

222 222

222 222 222

Table Index MV Table Index MV

23

T2

T3

T4

T5

222 222 222

222 222 222

222 222 222

222 222 222

222 222 222

Page 24: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Recover Corrupted Data

• Load SSBM Scale1 data

• Simulate disk corruption (random writes)

24

DWDate

Supplier

Customer

Part

Lineorder

Full JOIN

Page 25: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

Conclusions/Future Work

• DB Carving

• No apriori assumptions

• Forensic Meta-Queries

– Reconstruct deleted data

– Detect recently updated values

– Identify log tampering

25

Page 26: Database Forensic Analysis with DBCarvercidrdb.org/cidr2017/slides/p128-wagner-cidr17-slides.pdfDatabase Forensic Analysis with DBCarver James Wagner, Alexander Rasin, TanuMalik, Karen

26