Top Banner
SESSION ID: #RSAC Dr Simon R Wiseman POISON PIXELS: COMBATTING IMAGE STEGANOGRAPHY IN CYBERCRIME HTA-W02 CTO Deep Secure @srw_deepsecure
39

HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

Jul 30, 2018

Download

Documents

dangtuyen
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: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

SESSION ID:

#RSAC

Dr Simon R Wiseman

POISON PIXELS: COMBATTING IMAGE STEGANOGRAPHY IN CYBERCRIME

HTA-W02

CTO Deep Secure @srw_deepsecure

Page 2: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Steganography in cyber aDacks

What is it?

Why is it a problem?

How does it work?

Where might it be?

What can we do about it?

Poison Pixels

Resources online : hDps://rsa2018.deep-secure.com

Page 3: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

STEGANOGRAPHY

What is it?

Page 4: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Steganography is…

Steg = Concealed wriQng

The word steganography combines the Greek words steganos, meaning "covered, concealed, or protected" and graphein meaning "wriQng".

How well concealed does a message have to be to

count as Steganography?

Page 5: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Steganography is…

You can see the symbols and they make sense

But there’s another meaning that isn’t obvious

John has a long moustache

Looks like an anodyne statement

But is there a hidden meaning?

(the invasion starts tomorrow)

Page 6: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

How Un-Obvious?

Steganography is data with double meaning One overt One hidden

Cannot discover presence of hidden meaning with normal tools

Two grades of steganography Can’t be detected, even with specialist tools Discoverable using specialist analysis tools

The real thing!

Amateur stuff

Page 7: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

STEGANOGRAPHY

Why is it a problem?

Page 8: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Stegware

ADackers use Steg to evade detecQon Hiding dangerous looking code Hiding command and control Hiding exfiltrated sensiQve data

Page 9: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Hiding Dangerous Code

Code appended to an image file A small boring image

With a hidden message

AnG-Virus scanning: Sees harmless image

Page 10: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Covert Command & Control

AKacker back at base

Hide command in an image

Compose a Tweet including image

Add agreed hash tag to Tweet

Send Tweet

AKack in target system

Poll TwiDer for agreed hash tag

Fetch Tweets, extract aDached image

Extract command from image

Execute command

Network monitoring: Sees Tweets fetched from TwiDer

Page 11: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Covert Egress

AKacker back at base

Send URL of a drop box to the target Using Steg in a Tweet

Different and varied desQnaQons

Wait for data to be uploaded to URL

Decode stolen data from image

AKack in target system

Receive URL via a Tweet

Put stolen data in an image using Steg

Upload image to URL

Network monitoring: Sees Tweets and occasional harmless uploads

Page 12: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

STEGANOGRAPHY

How does it work?

Page 13: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Encoding InformaQon in Redundant Data

Irrelevant data Data appended to a file, e.g the GIF we’ve just seen

The order of lists that implement sets Order of colours in a paleDe, e.g. a GIF

Redundant encodings Duplicate colours in a paleDe, e.g. a GIF

The low order bits of an audio / visual signal Low order bits of a True Colour image, e.g. a PNG

Page 14: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Order of Lists that Implement Sets

Order of colours in a paleDe

3 x 2 x 1 = 6 possible orderings equivalent to log2(6) = 2.58 bits

8’ paleDe has 256! possible orderings equivalent to log2(256!) = 1683.99 bits = 210bytes

0 1 2 3 4 5

0

10000

20000

30000

40000

50000

60000

70000

80000

90000

100000

0 2000 4000 6000 8000 10000

Byte

s En

code

d

Number of Items

ExponenQal growth in capacity

Page 15: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Using PaleDe Ordering

15

256-colour BMP, GIF & PNG Encoding/decoding algorithm complicated, but given in Knuth Offsets to paleDe and pixel data (can be) fixed Encoding requires pixel data to be adjusted – no problem for infiltraQon

Page 16: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Redundant Encodings

Duplicate colours in a paleDe

0

1

2

3

PaleDe 1 0 2 3 1 2 3 0 1 Colour indices

Encoded colours

1 bit per duplicated colour 0 1 1 0

Page 17: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Using Duplicate Colours

17

256-colour BMP Easy encoding/decoding algorithm PaleDe with duplicates in fixed index posiQons can be agreed Offset to pixel data can be fixed

256-colour GIF & PNG Harder to encode/decode as pixel data is compressed

Page 18: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

1

Low Order Bits in Audio / Visual Signal

Low order bits of a True Colour image

Encoded colours 1 bit per pixel per colour component = 3 bits per pixel

1

(0,255,0)

(255,0,0)

(0,0,255)

(0,254,0)

(254,0,0)

(0,0,254)

R,G,B

1 0 0 0

4032 × 3024 pixels Hiding 725kBytes of text “Pride and Prejudice”

Page 19: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Using Low Order Bits

19

24’ BMP Easy encoding/decoding algorithm

24’ PNG & JPEG Difficult encoding/decoding algorithm as pixel data is compressed — But image libraries could be used

Page 20: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

JPEG Compression

JPEG compression uses a DCT transformaQon then Huffman encoding

8x8 block of pixel values, one colour component DCT coefficients

Not very compressible Highly compressible

Page 21: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

JPEG Least Significant Bit Steganography

Exact values of DCT coefficients are not very important visually InformaQon can be encoded in LSB of coefficients

Page 22: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

JPEG Steganalysis

LSB steganography in DCT is detectable to a degree

0 -1 -2 -3 -4 1 2 3 4 0 -1 -2 -3 -4 1 2 3 4

000x 001x 111x 111x

0 -1 -2 -3 -4 1 2 3 4

Natural images have normal

distribuQon of coefficients

Randomising least significant bits flaDens out the

histogram

Chi2 test measures flaDening

Page 23: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

F3 Steganography Algorithm

F3 decrements absolute value Cannot encode values in zero coefficients Preserves symmetry of histogram Defeats Chi2 test

Greatly increases zeroes Detectable because slope gradient is unusual

0 -1 -2 -3 -4 1 2 3 4

loss gain

gain gain

loss

loss

gain

gain

23

Page 24: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Coefficient Swapping

InformaQon encoded in relaQve ordering of coefficients Does not change coefficient values, so preserves first order staQsQcs Reduced capacity but undetectable

R > G => 0 R < G => 1 10 pairs => 3 bytes/64 pixels

Page 25: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

STEGANOGRAPHY

Where might it be?

Page 26: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

OpportuniQes for Hiding

There’s a Steg opportunity in every file format…

Images Colour paleDe ordering, Pixel Least Significant Bit, Coefficient ordering Scan line padding, Redundant paleDes, Pixel overwriQng, Transparency

GIF

256x3 bytes

Monochrome BMP 31bits/row

BMP with RLE unlimited PNG

8bits/pixel

Page 27: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

OpportuniQes for Hiding

There’s a Steg opportunity in every file format

JSON, XML, Office ADribute ordering

Whitespace —  Space, tab, linefeed, carriage return => 4 codes = 2 bits per character

<w:boDom w:val="single" w:sz="8" w:space="4" w:color="4F81BD" />

<w:boDom w:color="4F81BD" w:space="4" w:sz="8" w:val="single" />

4 aDributes => log2(4!) = 24 => 4 bits

Page 28: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

OpportuniQes for Hiding

There’s a Steg opportunity in every file format

Plain Text Unicode combining diacriQcs vs. precomposed characters

Cyrillic у + breve = ў (U+0443) (U+02D8) (U+045E)

Page 29: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

STEGANOGRAPHY

What can we do about it?

Page 30: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

DetecQon

Detectable steganography Well yes, it’s detectable But can be difficult to avoid false posiQves

Undetectable steganography Er well, it’s not detectable At best, only with considerable false posiQves and false negaQves At worst, completely invisible to the eye and to analysis No more difficult to encode/decode than detectable steg

DetecQon isn’t going to defeat Stegware

Page 31: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

AnnihilaQon

Don’t try to detect it

Eliminate the places it hides

Remove redundant data

Replace redundant data NormalisaQon

Only use one way to encode informaQon

Page 32: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Content Threat Removal

CTR is a method of defeaQng aDacks in digital content

Does not rely on detecQon

Transforms the way informaQon is represented

Annihilates steg as a by-product

Page 33: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

ExtracQon not DetecQon

1 Data arrives 2 InformaQon extracted

3 Original data always discarded

(whether it is safe or not)

Page 34: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Build New not Fix Up Old

4 InformaQon extracted 5 New data built for delivery

Business informaQon delivered Any aDacks discarded

Page 35: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Stegware Removal

CTR TransformaQon process naturally normalises data Eliminates irrelevant data Orders structures in a fixed way Always uses same encoding

Easy addiQon to remove audio/visual redundancy Reduce resoluQon to match usage Replace redundant bits with zero

Annihilates discoverable steganography

Annihilates undetectable steganography

Page 36: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

WRAPPING UP

Page 37: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

Summary

Steganography is being used by cyber aDackers

DetecQon strategies are flawed You can’t detect steganography when it is done properly

Look for strategies that annihilate steganography Not just re-wriQng images to eliminate cross-site aDacks

Page 38: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

When you get back to the office…

If you are accepQng images from the public Check your servers are washing the images properly

If you allow social media Keep it away from sensiQve data and systems

Start thinking that detecQon is not the answer

Page 39: HTA-W02 POISON PIXELS: COMBATTING IMAGE … · Resources online : hDps://rsa2018.deep-secure.com . #RSAC STEGANOGRAPHY What is it? #RSAC Steganography is… Steg = Concealed …

#RSAC

THANK YOU FOR COMING ALONG

QuesGons? Follow up at the Deep Secure

stand #4522 in North Expo

[email protected]