hot or not: fingerprinting hosts through clock skew · effect on clock skew • skew of typical...

38
Hot or Not: Fingerprinting hosts through clock skew Time (hh:mm) 01:00 05:00 09:00 Non-linear offset component (ms) - -4 -3 -2 -1 0 s ^c=95, min s ^(t29 =-0.11, max s ^(t29 =0.22 ppm ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● 37.5 38.0 38.5 39.0 Temperature (°C) Steven J. Murdoch www.cl.cam.ac.uk/users/sjm217 Sebastian Zander caia.swin.edu.au/cv/szander Computer Laboratory www.torproject.org EuroBSDCon, 14–15 September 2007, Copenhagen, Denmark

Upload: others

Post on 13-Apr-2020

25 views

Category:

Documents


0 download

TRANSCRIPT

Hot or Not: Fingerprinting hoststhrough clock skew

Time (hh:mm)

01:00 05:00 09:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−4

−3

−2

−1

0

sc = 95, min s(t) = −0.11, max s(t) = 0.22 ppm

●●

●●

● ●

●●

● ●

●●

●●

●●

●●

●●

●●

● ●

●●

● ●

●●

● ●

37.5

38.0

38.5

39.0

Tem

pera

ture

(°C

)

Steven J. Murdochwww.cl.cam.ac.uk/users/sjm217

Sebastian Zandercaia.swin.edu.au/cv/szander

Computer Laboratory

www.torproject.org

EuroBSDCon, 14–15 September 2007, Copenhagen, Denmark

This presentation introduces clock skew and how itcan introduce security vulnerabilities

Time

Fri 11:00 Fri 21:00 Sat 07:00 Sat 17:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−2.0

−1.5

−1.0

−0.5

0.0

●●

●●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●●

●●

●●

●●●

25.8

25.9

26.0

26.1

26.2

26.3

26.4

Tem

pera

ture

(°C

)

Non−linear offset

De−noised

Variable skew

Temperature

Clock skew, its link to temperature, and measurement

Hidden Service

Introduction

Point (IP)

Rendevous

Point (RP)

Directory

Server

Client

Service Publication Connection Setup Data Transfer

1

2

3

4

5

6

7

8

IP

IP

RP

RP

data

*

Tor and hidden services

Attacker Tor Network Hidden Server

Measurer

Pattern measured

Pattern injected

Resulting pattern Attacking Tor with clock skew

Applications and improvements

Computers have multiple clocks which are constructedfrom hardware and software components

A clock consists of an:• Oscillator, controlled by a crystal,

ticks at a nominal frequency• Counter, counts the number of ticks

produced by the oscillatorOn FreeBSD there are several clocksavailable (other OS are similar):

• Tick counter: An uncorrected clockused internally to the OS

• System clock: A clock corrected byNTP (used by applications)

• BIOS clock (also known as CMOSclock): runs even when PC is off

Computers have multiple clocks which are constructedfrom hardware and software components

A clock consists of an:• Oscillator, controlled by a crystal,

ticks at a nominal frequency• Counter, counts the number of ticks

produced by the oscillatorOn FreeBSD there are several clocksavailable (other OS are similar):

• Tick counter: An uncorrected clockused internally to the OS

• System clock: A clock corrected byNTP (used by applications)

• BIOS clock (also known as CMOSclock): runs even when PC is off

Computers have multiple clocks which are constructedfrom hardware and software components

A clock consists of an:• Oscillator, controlled by a crystal,

ticks at a nominal frequency• Counter, counts the number of ticks

produced by the oscillatorOn FreeBSD there are several clocksavailable (other OS are similar):

• Tick counter: An uncorrected clockused internally to the OS

• System clock: A clock corrected byNTP (used by applications)

• BIOS clock (also known as CMOSclock): runs even when PC is off

Computers have multiple clocks which are constructedfrom hardware and software components

A clock consists of an:• Oscillator, controlled by a crystal,

ticks at a nominal frequency• Counter, counts the number of ticks

produced by the oscillatorOn FreeBSD there are several clocksavailable (other OS are similar):

• Tick counter: An uncorrected clockused internally to the OS

• System clock: A clock corrected byNTP (used by applications)

• BIOS clock (also known as CMOSclock): runs even when PC is off

Computers have multiple clocks which are constructedfrom hardware and software components

A clock consists of an:• Oscillator, controlled by a crystal,

ticks at a nominal frequency• Counter, counts the number of ticks

produced by the oscillatorOn FreeBSD there are several clocksavailable (other OS are similar):

• Tick counter: An uncorrected clockused internally to the OS

• System clock: A clock corrected byNTP (used by applications)

• BIOS clock (also known as CMOSclock): runs even when PC is off

Some of these clocks can be queried over the Internetthrough ICMP and TCP

• ICMP timestamp request• Generated from system clock,

1 kHz, commonly disabled orblocked by firewalls

• TCP sequence numbers• Works for Linux, 1 MHz, generated

from system clock, rewriting needsstate on firewalls, (more in my22C3 talk)

• TCP timestamp• Newer feature than ICMP

timestamps, 2 Hz–1 kHz,generated from tick counter,enabled by default on all modernTCP stacks, hard to block onfirewalls, required on fast networks

Some of these clocks can be queried over the Internetthrough ICMP and TCP

• ICMP timestamp request• Generated from system clock,

1 kHz, commonly disabled orblocked by firewalls

• TCP sequence numbers• Works for Linux, 1 MHz, generated

from system clock, rewriting needsstate on firewalls, (more in my22C3 talk)

• TCP timestamp• Newer feature than ICMP

timestamps, 2 Hz–1 kHz,generated from tick counter,enabled by default on all modernTCP stacks, hard to block onfirewalls, required on fast networks

Some of these clocks can be queried over the Internetthrough ICMP and TCP

• ICMP timestamp request• Generated from system clock,

1 kHz, commonly disabled orblocked by firewalls

• TCP sequence numbers• Works for Linux, 1 MHz, generated

from system clock, rewriting needsstate on firewalls, (more in my22C3 talk)

• TCP timestamp• Newer feature than ICMP

timestamps, 2 Hz–1 kHz,generated from tick counter,enabled by default on all modernTCP stacks, hard to block onfirewalls, required on fast networks

Measured clock skew acts as a fingerprint of acomputer (Kohno et al., 2005)

Offset:

• The difference between twoclocks (ms)

Skew:

• The rate of change of offset (ppm)• Stable on one machine (±1–2 ppm),

but varies over different machines(up to ±50 ppm)

• Can give 4–6 bits of information onmachine identity

Time (mm:ss)

Offs

et (

ms)

37:00 37:30 38:00 38:30 39:00 39:30 40:00

−20

−10

010

20

++++++++++++++++ +++++++++++

+++++++++++++++++++++++++++++++++++

++ ++++++++++++++++++++

+++++++

Fingerprinting computers allows identification of hostsand virtual machines

• Identify machines, as they change IP address, ISP and evenphysical location

• De-anonymise network traces• Detecting whether a host is running on a virtual machine• Confirming whether a group of hosts are running on the same

hardware (e.g. a honeynet)• Honeyd has now been modified to produce different clock-skew

fingerprints for virtual hosts

• Counting number of hosts behind a NAT• The paper did note that clock skew can be affected by

temperature, but did not explore the full potential

Temperature has a small, but remotely measurable,effect on clock skew

• Skew of typical clock crystal willchange by ±20 ppm over 150 ◦ Coperational range

• In typical PC temperatures, onlyaround ±1 ppm

• By requesting timestamps andmeasuring skews, an estimate oftemperature changes can be derived

• Even in a well-insulated building,changes in temperature over the daybecome apparent

Temperature (°C)

Clo

ck s

kew

(pp

m)

−50 0 50 100

−20

−10

010

20

Temperature has a small, but remotely measurable,effect on clock skew

• Skew of typical clock crystal willchange by ±20 ppm over 150 ◦ Coperational range

• In typical PC temperatures, onlyaround ±1 ppm

• By requesting timestamps andmeasuring skews, an estimate oftemperature changes can be derived

• Even in a well-insulated building,changes in temperature over the daybecome apparent

Temperature (°C)

Clo

ck s

kew

(pp

m)

Observedskew range

Observed temperature range

26.5 27.0 27.5 28.0 28.5 29.0 29.5

−1.

5−

1.0

−0.

50.

0

Clock skew variations are not visible in raw networktraces, but can be extracted with numerical analysis

Measure offset ofcandidatemachine(s)

Remove constantskew from offset

Remove noise

Differentiate

Compare totemperature

Time (mm:ss)

Offs

et (

ms)

37:00 37:30 38:00 38:30 39:00 39:30 40:00

−20

−10

010

20++++

++++++++++++ ++++++++++++++++++++++++++++++++++++

++++++++++++ ++

++++++++++++++++++++++

+++

Clock skew variations are not visible in raw networktraces, but can be extracted with numerical analysis

Measure offset ofcandidatemachine(s)

Remove constantskew from offset

Remove noise

Differentiate

Compare totemperature

Time

Fri 11:00 Fri 21:00 Sat 07:00 Sat 17:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−2.0

−1.5

−1.0

−0.5

0.0

Non−linear offset

Clock skew variations are not visible in raw networktraces, but can be extracted with numerical analysis

Measure offset ofcandidatemachine(s)

Remove constantskew from offset

Remove noise

Differentiate

Compare totemperature

Time

Fri 11:00 Fri 21:00 Sat 07:00 Sat 17:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−2.0

−1.5

−1.0

−0.5

0.0

Non−linear offset

De−noised

Clock skew variations are not visible in raw networktraces, but can be extracted with numerical analysis

Measure offset ofcandidatemachine(s)

Remove constantskew from offset

Remove noise

Differentiate

Compare totemperature

Time

Fri 11:00 Fri 21:00 Sat 07:00 Sat 17:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−2.0

−1.5

−1.0

−0.5

0.0

Non−linear offset

De−noised

Variable skew

Clock skew variations are not visible in raw networktraces, but can be extracted with numerical analysis

Measure offset ofcandidatemachine(s)

Remove constantskew from offset

Remove noise

Differentiate

Compare totemperature

Time

Fri 11:00 Fri 21:00 Sat 07:00 Sat 17:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−2.0

−1.5

−1.0

−0.5

0.0

●●

●●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●●

●●

●●

●●●

25.8

25.9

26.0

26.1

26.2

26.3

26.4

Tem

pera

ture

(°C

)

Non−linear offset

De−noised

Variable skew

Temperature

Tor is a low-latency, distributed anonymity system

• Real-time TCP anonymisationsystem (e.g. web browsing)

• Supports anonymous operation ofservers (hidden services)

• These protect the user operating theserver and the service itself

• Constructs paths through randomlychosen nodes (around 1 000 now)

• Multiple layers of encryption hidecorrelations between input andoutput data

• No intentional delay introduced

Hidden services are built on top of the anonymityprimitive the Tor network provides

Hidden Service

Introduction

Point (IP)

Rendevous

Point (RP)

Directory

Server

Client

Service Publication Connection Setup Data Transfer

1

2

3

4

5

6

7

8

IP

IP

RP

RP

data

*

The IP address of hidden services can be foundthrough traffic analysis (Øverlier, Syverson, 2006)

• One Tor node (∗), selected at random bythe hidden service, knows the hiddenservice’s real IP address

• If a malicious client also controls a Tornode (easy), then eventually his node willbe selected on that path

• Data is encrypted, so the malicious Tornode cannot trivially detect when it isbeing used to access the hidden service

• However enough timing patterns remain toidentify this event, and so allowing themalicious client to locate the hidden server

• This attack is now resisted by the hiddenservice selecting fixed guard nodes for ∗

Hidden Service

Rendevous

Point (RP)

Client

Data Transfer

7

8data

*

Even if an attacker cannot observe the network, trafficanalysis is still possible (Murdoch, Danezis, 2005)Attacker inserts traffic pattern into anonymous streamMeasurer probes all Tor nodes for their latency

Nodes along path that the anonymous stream takes will exhibit thesame pattern

Attacker

webserverTor NetworkVictim client

Measurer

The latency of one connection going through a Tornode is strongly affected by its network load

time (s)

late

ncy

(ms)

0 200 400 600 800

116.

0050

010

0015

0020

00

Induced load

Latency

The attack can be resisted with QoS features but thereremains a temperature covert channel

• Prevent one stream going through a node from interfering withany others

• Hard QoS guarantee on every stream, and no more connectionsaccepted than there is capacity

• When one stream is not used, no other streams may use theresources released, so CPU will be idle

• Then the CPU will cool down so the clock skew will changeaccordingly, allowing connections to be tracked

• Validated with Tor hidden services on a private Tor network

Attacker Tor Network Hidden Server

Measurer

Pattern measured

Pattern injected

Resulting pattern

The load of a hidden service can be estimated bymeasuring temperature induced clock skew

• Attacker induces load by making requests to the hidden server• Here, a periodic 2 hour on, 2 hour off pattern was used• Measurer records clock offset and derives temperature

Time (hh:mm)

01:00 05:00 09:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−4

−3

−2

−1

0

sc = 95, min s(t) = −0.11, max s(t) = 0.22 ppm

●●

●●

● ●

●●

● ●

●●

●●

●●

●●

●●

●●

● ●

●●

● ●

●●

● ●

37.5

38.0

38.5

39.0

Tem

pera

ture

(°C

)

This temperature covert channel can be applied in avariety of different situations

• Inter-process communicationthrough modulating load andhence temperature

• Fixed scheduling will not defendagainst this

• Relies on second time source,affected differently bytemperature; could be remote(NTP) or local (sound card)

• Temperature effects can cross“air-gap” security barriers

• Confirmed in rack-mountcomputers; plausible for “blade”arrangements too

• General purpose communication Time (hh:mm)

13:00 17:00 21:00 01:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−2.0

−1.5

−1.0

−0.5

0.0

sc == 179, min s((t)) == −0.11, max s((t)) == 0.075 ppm

●●●●

●●●

●●●●●●●●

●●●

●●

●●●●

●●

●●●

●●●

●●●●

●●●

●●●●

●●

●●●●●

●●●

●●●

●●●

●●●●●●●●●

●●●●

●●●●●●

●●●

●●●

●●●●●●●

●●●●

●●

●●●●

●●●●●

●●●

●●●

●●●

●●●●

●●●●●●●●

●●

●●●●

●●

●●●●

●●●

●●●

●●●●●●●●

●●●●●

●●●

●●●

●●●

●●●●

●●●●●●

●●●●●●●●

●●●

●●●

●●●●●●●

●●●●●●●●

●●●●●●●

●●●

●●●

●●●●●●●

27

28

29

30

Tem

pera

ture

(°°C

)

Clock skew identifies both machine identity(absolute skew) and environment (relative)

• Computers can be identified by clock skew• Temperature information can indicate environment• Applied to investigate suspected “Sybil” attack on Tor, to discover

than the 30 suspicious Tor nodes were actually 2 physicalmachines

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−15

−10

−5

0

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

From the changes in temperature of a machine, wecan even estimate its location

• If length of day and middle/start/end of day can be found,locations of targets can be found

• Imprecise, time-consuming and affected by local conditions (airconditioning) but perhaps could provide coarse-grainedcoordinates

Measurement errors have two sources: quantizationnoise and network jitter

21:00 01:00 05:00 09:00

Time (hh:mm)

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−6

−5

−4

−3

−2

−1

0

−0.63

0

0.88

Clo

ck S

kew

Cha

nge

(ppm

)

Quantisation Noise

Network Jitter

sc == 279, min s((t)) == −0.63, max s((t)) == 0.88 ppm

Many samples, over a long time, are needed to eliminate this noise

Quantization noise of a sample depends on how closeit was to a clock-edge

Time

Tar

get T

imes

tam

p

Quantisation Error

● Random Sample

Only the samples made near clock edges contribute to the accuracyof the skew measurement

Quantization noise level depends on the period of thetimestamp clock

• For the 1 kHz clockshown here, themaximum quantizationerror is 1 ms

• 250 Hz clocks in someversions of Linux have aperiod of 4 ms

• 1 Hz HTTP timestamps,which may be the onlyone available, have a 1 speriod

Median: 0.53ms

Noise (ms)

Den

sity

0.0

0.2

0.4

0.6

0.8

1.0

0.0 0.5 1.0 1.5 2.0 2.5

Quantization noise can be effectively eliminated bysampling just before or after clock ticks

Time

Tar

get T

imes

tam

p

Quantisation Error

● Random SampleSynchronised Sample

Now the noise level is independent of clock frequency

The improved mechanism works like a binary search

• The algorithm first locksonto a clock tick, andpredicts the position

• Then it alternatelysamples a little beforeand after this point

• If it guessed right, thebounds are tightened, ifwrong, it opens them up

• The resulting noise is farlower than randomsampling

Median: 0.08ms

Noise (ms)

Den

sity

0

2

4

6

0.0 0.5 1.0 1.5 2.0

NTP causes problems for some, but not all variants oftimestamp attacks

• By synchronising a clock with NTP, theconstant skew is eliminated, defeatingfingerprinting attacks

• Variable skew is distorted, but notremoved, as the synchronisationprocess is slow

• Under Linux, the ICMP timestamps andTCP sequence number clocks areNTP-synced, whereas TCP timestampsare not (for good reason)

• Under FreeBSD, ICMP timestamps arealso NTP-synced, TCP timestamps arenot and TCP sequence numbers arepartially randomised so not useful

Defending against clock skew attacks is difficult anddoesn’t come for free

Defence Limitations

Block timing information Many low-level events are triggeredon timer interrupts and this could bedetected remotely

Run CPU at full load Inefficient and must be done withcare since different types of taskscan have varying temperature ef-fects

Install a temperature com-pensated clock crystal

These might not have an adequate< ±1 ppm accuracy

Install an oven compensatedcrystal

Expensive, power hungry, but bet-ter accuracy

In summary, temperature covert channels are a viableattack even when other vectors are blocked• Through clock skew, temperature and thus

CPU load can be remotely measured,over tens of router hops

• By inducing load on a Tor hidden serverand measuring the resulting clock skew,the hidden service pseudonym can belinked to its IP address

• Thermal covert channels are applicable inseveral other situations

• Even when a system is secure in onemodel of abstraction, stepping outsidethese limits can reveal additional attacks

More at www.cl.cam.ac.uk/users/sjm217

Time (hh:mm)

01:00 05:00 09:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−4

−3

−2

−1

0

●●●●●●●

●●●●●●●●●●

●●●

●●

●●●●

●●●●

●●●●

●●●●●●●●●●●

●●●

●●

●●

●●●●●

●●●●

●●●●

●●●

●●

●●

●●●●

●●

●●●

●●●●

●●●●

●●●●●

●●

●●●

●●●

●●

●●●

●●

●●●●

●●●

●●●●

●●●

●●●●

●●●

●●●●●●●

●●

●●●

●●●●

●●●●●●●●●●●

●●●●●●●

●●●●●

●●

●●●

●●

●●●

●●●●●●●

●●●

●●●●●

●●

37.5

38.0

38.5

39.0

Tem

pera

ture

(°C

)

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

In summary, temperature covert channels are a viableattack even when other vectors are blocked• Through clock skew, temperature and thus

CPU load can be remotely measured,over tens of router hops

• By inducing load on a Tor hidden serverand measuring the resulting clock skew,the hidden service pseudonym can belinked to its IP address

• Thermal covert channels are applicable inseveral other situations

• Even when a system is secure in onemodel of abstraction, stepping outsidethese limits can reveal additional attacks

More at www.cl.cam.ac.uk/users/sjm217

Time (hh:mm)

01:00 05:00 09:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

−−4

−3

−2

−1

0

●●●●●●●

●●●●●●●●●●

●●●

●●

●●●●

●●●●

●●●●

●●●●●●●●●●●

●●●

●●

●●

●●●●●

●●●●

●●●●

●●●

●●

●●

●●●●

●●

●●●

●●●●

●●●●

●●●●●

●●

●●●

●●●

●●

●●●

●●

●●●●

●●●

●●●●

●●●

●●●●

●●●

●●●●●●●

●●

●●●

●●●●

●●●●●●●●●●●

●●●●●●●

●●●●●

●●

●●●

●●

●●●

●●●●●●●

●●●

●●●●●

●●

37.5

38.0

38.5

39.0

Tem

pera

ture

(°C

)

Time (hh:mm)

13:00 17:00 21:00 01:00 05:00

Non

−lin

ear

offs

et c

ompo

nent

(m

s)

− −15

−10

−5

0

Questions?