telescope - peering into the depths of tls traffic in real ......telescope peering into the depths...

56
Telescope Peering Into the Depths of TLS Traffic in Real-Time Caragea Radu May 26, 2016 1 / 43

Upload: others

Post on 26-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

TelescopePeering Into the Depths of TLS Traffic in Real-Time

Caragea Radu

May 26, 2016

1 / 43

Page 2: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

About me

- Vulnerability Researcher

PwnThyBytes: CTF team captain

2 / 43

Page 3: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

This presentation

Is not about:

Faults in the TLS protocol/implementation

Attacks on the crypto level of TLS

Is about:

An experiment into what can be done from the hypervisor(powerful adversary; consider cloud providers)

How far you can go and how noticeable it would be to anend-user

Some unexpected results

3 / 43

Page 4: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

This presentation

Is not about:

Faults in the TLS protocol/implementation

Attacks on the crypto level of TLS

Is about:

An experiment into what can be done from the hypervisor(powerful adversary; consider cloud providers)

How far you can go and how noticeable it would be to anend-user

Some unexpected results

3 / 43

Page 5: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Project Genesis

Operating a honeypot farm

weak root (!) credentials: do what you willanalyze traffic (unless it’s encrypted)

Malvertising

Automated in-browser crawlersScour the net with the hope of getting infectedNeed the infection vector (when served through TLS)

4 / 43

Page 6: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: SSLKEYLOGFILE

5 / 43

Page 7: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: SSLKEYLOGFILE

6 / 43

Page 8: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: SSLKEYLOGFILE

7 / 43

Page 9: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: SSLKEYLOGFILE

8 / 43

Page 10: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: SSLKEYLOGFILE

Implemented in libNSS (firefox) and openSSL (chrome) butnot IE/Edge

The downside: it’s blatantly visible

9 / 43

Page 11: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: Custom Root CA

10 / 43

Page 12: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: Custom Root CA

11 / 43

Page 13: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: Custom Root CA

Typical solution used by AVs/proxies to intercept TLS traffic

Visible by malware by scanning the disk.

Moreover, in ”Analyzing Forged SSL Certificates in the Wild”Huang et al show how to do this within the browser

12 / 43

Page 14: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: PANDA keyfind plugin

really cool solution!run the machine under QEMUuse pre-established ”trace points”trace memory writes

13 / 43

Page 15: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Other solutions: PANDA keyfind plugin

huge overhead

non portable

14 / 43

Page 16: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Scavenging the keys from memory?

While connection is still active, the keys must still be in memory.

Problem 1: exact key location is unknown

need to dump all memorydumping memory takes time ( >10 seconds for 4 GB)multiple connections occur one after the other or interspersedspace quickly fills up

Problem 2: we don’t even know how to distinguish the correctkeys from random memory.

To understand our approach we must dig deeper!

15 / 43

Page 17: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Scavenging the keys from memory?

While connection is still active, the keys must still be in memory.

Problem 1: exact key location is unknown

need to dump all memorydumping memory takes time ( >10 seconds for 4 GB)multiple connections occur one after the other or interspersedspace quickly fills up

Problem 2: we don’t even know how to distinguish the correctkeys from random memory.

To understand our approach we must dig deeper!

15 / 43

Page 18: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Scavenging the keys from memory?

While connection is still active, the keys must still be in memory.

Problem 1: exact key location is unknown

need to dump all memorydumping memory takes time ( >10 seconds for 4 GB)multiple connections occur one after the other or interspersedspace quickly fills up

Problem 2: we don’t even know how to distinguish the correctkeys from random memory.

To understand our approach we must dig deeper!

15 / 43

Page 19: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Scavenging the keys from memory?

While connection is still active, the keys must still be in memory.

Problem 1: exact key location is unknown

need to dump all memorydumping memory takes time ( >10 seconds for 4 GB)multiple connections occur one after the other or interspersedspace quickly fills up

Problem 2: we don’t even know how to distinguish the correctkeys from random memory.

To understand our approach we must dig deeper!

15 / 43

Page 20: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

How exactly does TLS work? Client Hello

Client Server

Client hello: version, ciphers, client random

Server hello: certificate, chosen cipher, server random

Client Finished (first encrypted pkt)

Server Finished (first encrypted pkt)

Further traffic is now encrypted

16 / 43

Page 21: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

How exactly does TLS work? Server Hello

Client Server

Client hello: version, ciphers, client random

Server hello: certificate, chosen cipher, server random

Client Finished (first encrypted pkt)

Server Finished (first encrypted pkt)

Further traffic is now encrypted

17 / 43

Page 22: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

How exactly does TLS work? Client Finished

Client Server

Client hello: version, ciphers, client random

Server hello: certificate, chosen cipher, server random

Client Finished (first encrypted pkt)

Server Finished (first encrypted pkt)

Further traffic is now encrypted

18 / 43

Page 23: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

How exactly does TLS work? Server Finished

Client Server

Client hello: version, ciphers, client random

Server hello: certificate, chosen cipher, server random

Client Finished (first encrypted pkt)

Server Finished (first encrypted pkt)

Further traffic is now encrypted

19 / 43

Page 24: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

How exactly does TLS work? Handshake Complete

Client Server

Client hello: version, ciphers, client random

Server hello: certificate, chosen cipher, server random

Client Finished (first encrypted pkt)

Server Finished (first encrypted pkt)

Further traffic is now encrypted

20 / 43

Page 25: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

But wait!

Excerpt from RFC5246/4346:

To generate the key material, compute

key_block = PRF(SecurityParameters.master_secret,

"key expansion",

SecurityParameters.server random +

SecurityParameters.client random);

until enough output has been generated.

Key material = [client_write_MAC_key][server_write_MAC_key]

[client write key][server write key]

[client_write_IV][server_write_IV]

21 / 43

Page 26: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Key events in the TLS handshake

Client Server

Client hello: version, ciphers, client random

Server hello: certificate, chosen cipher, server random

Client Finished (first encrypted pkt)

Server Finished (first encrypted pkt)

Further traffic is now encrypted

Keys have not been generated

Keys have been generated

22 / 43

Page 27: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Implications

Only track memory between events

Events signalled by passing through netfilter queue

Dramatic decrease in memdump size

But how do you actually ”track” pages?

23 / 43

Page 28: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Implications

Only track memory between events

Events signalled by passing through netfilter queue

Dramatic decrease in memdump size

But how do you actually ”track” pages?

23 / 43

Page 29: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Think VM live migration

Logdirty mechanism

t0: start tracking pages written to from t0 and flush the RAMto the target on the network

when this finishes, get the ”dirty” pages (at t1) and send thedelta to target again

repeat this for every ti - ti+1 until number of pages is underthreshold

stop VM1, do iteration one last time, start VM2

24 / 43

Page 30: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Think VM live migration

Logdirty mechanism

t0: start tracking pages written to from t0 and flush the RAMto the target on the network

when this finishes, get the ”dirty” pages (at t1) and send thedelta to target again

repeat this for every ti - ti+1 until number of pages is underthreshold

stop VM1, do iteration one last time, start VM2

24 / 43

Page 31: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Think VM live migration

Logdirty mechanism

t0: start tracking pages written to from t0 and flush the RAMto the target on the network

when this finishes, get the ”dirty” pages (at t1) and send thedelta to target again

repeat this for every ti - ti+1 until number of pages is underthreshold

stop VM1, do iteration one last time, start VM2

24 / 43

Page 32: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Think VM live migration

Logdirty mechanism

t0: start tracking pages written to from t0 and flush the RAMto the target on the network

when this finishes, get the ”dirty” pages (at t1) and send thedelta to target again

repeat this for every ti - ti+1 until number of pages is underthreshold

stop VM1, do iteration one last time, start VM2

24 / 43

Page 33: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Think VM live migration

Logdirty mechanism

t0: start tracking pages written to from t0 and flush the RAMto the target on the network

when this finishes, get the ”dirty” pages (at t1) and send thedelta to target again

repeat this for every ti - ti+1 until number of pages is underthreshold

stop VM1, do iteration one last time, start VM2

24 / 43

Page 34: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Logdirty

Similar mechanisms exist in most (all) modern hypervisors thatsupport VM migration

Page fault based (basic)

EPT A/D

Recently, a processor extension especially for this: Intel PML.Convenient, right ???

25 / 43

Page 35: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Logdirty

Similar mechanisms exist in most (all) modern hypervisors thatsupport VM migration

Page fault based (basic)

EPT A/D

Recently, a processor extension especially for this: Intel PML.Convenient, right ???

25 / 43

Page 36: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Putting the TeLeScope together

Filter target network events and send to netfilter queue

Start logging on Server Hello

Stop logging and dump pages on Client Finished

The result is a micro-memdump

Can be processed offline anytime

26 / 43

Page 37: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

TeLeScope results

on Linux VM per connection: 500K - 10 MB memdump

on Windows VM per connection: 15 MB - 60 MB memdump

VM pause time: under 0.5 ms but on average 0.05 ms

page dump time: 1-10 ms (disguised as packet delay)

27 / 43

Page 38: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Problems revisited

Problem 1: you don’t know where the keys are (partiallysolved)

need to dump all memorydumping memory takes time ( >10 seconds for 4 GB)multiple connections occur one after the other or interspersedspace quickly fills up

Problem 2: we don’t even know how to distinguish the correctkeys from random memory.

28 / 43

Page 39: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Problem 2: key discerning

Apparently multiple unknowns

key format

key parameters: IV, nonce, etc

what to encrypt/decrypt

what it decrypts to

29 / 43

Page 40: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Known Plaintext Attack

The Client/Server Finished messages have a fixed form:

14 00 00 0C [12 random bytes]

1232

chance of a False Positive

This works if you can decrypt the first 4 bytes (think streamciphers, AES/CTR, etc)

30 / 43

Page 41: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Known Plaintext Attack

The Client/Server Finished messages have a fixed form:

14 00 00 0C [12 random bytes]

1232

chance of a False Positive

This works if you can decrypt the first 4 bytes (think streamciphers, AES/CTR, etc)

30 / 43

Page 42: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Alexa top 1000 ciphers

5% RC4

21% AES CBC

73% AES GCM

31 / 43

Page 43: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES CBC

Decrypting each block depends on having the previous block

For the first block you need the IV (not explicit for TLS 1.0)

The known plaintext is exactly in the first block

We use the last block for the padding

32 / 43

Page 44: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES CBC

Decrypting each block depends on having the previous block

For the first block you need the IV (not explicit for TLS 1.0)

The known plaintext is exactly in the first block

We use the last block for the padding

32 / 43

Page 45: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES GCM/CTR

33 / 43

Page 46: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES GCM/CTR Encryption

34 / 43

Page 47: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES GCM/CTR Authentication

35 / 43

Page 48: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES GCM bruteforce attempt

Counter is [8 bytes key material][8 bytes counter]

Here: 0fddf45e89838e700000000000000001

The first half is also from the key material

Implies O(N2) which we don’t like!

36 / 43

Page 49: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

AES GCM tag

Auth Data, the Ciphertexts, Lengths and the Tag KnownEach key K corresponds to one HReverse the Flow and do one extra decryptionKnown Plaintext Attack on Counter format

37 / 43

Page 50: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Telesync benchmarks

1 thread, 240 MB completely random data: 6750 ms

6 threads, 240 MB completely random data: 557 ms (12xspeedup)

6 threads + heuristics, 240 MB typical memdump data: 151ms (44x speedup)

However, a typical memdump size is usually 5-10 times smaller. Sowe can usually consume as fast as we can produce!

38 / 43

Page 51: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Telesync benchmarks

1 thread, 240 MB completely random data: 6750 ms

6 threads, 240 MB completely random data: 557 ms (12xspeedup)

6 threads + heuristics, 240 MB typical memdump data: 151ms (44x speedup)

However, a typical memdump size is usually 5-10 times smaller. Sowe can usually consume as fast as we can produce!

38 / 43

Page 52: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Demo 1 (manual)

39 / 43

Page 53: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Demo 2 (integrated)

40 / 43

Page 54: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Technique genericity

Actually, this can be applied to other protocols that use a similarnegotiation technique for the symmetric keys:

VPN

SSH

Tor

41 / 43

Page 55: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Conclusions and more

Decrypting TLS on current implementations is definitelyfeasible with a hypervisor-in-the-middle attack

We developed a fast and efficient PoC

* You might not observe if you are the one ”under scrutiny”on a VPS

* Actually, if you’re not in control of the bare metal all betsare off

42 / 43

Page 56: Telescope - Peering Into the Depths of TLS Traffic in Real ......Telescope Peering Into the Depths of TLS Tra c in Real-Time Caragea Radu May 26, 2016 1/43

Questions

?

43 / 43