SlideShare une entreprise Scribd logo
1  sur  100
Attacking The Internet of
Things
(using time)
Paul McMillan
Who am I?
There are many ways
to attack the
Internet of Things
Demo
(start)
What is a timing attack?
def authenticate_user(user, pass):
stored_hash=get_password_hash(user):
if stored_hash:
test_hash = sha1(password)
if test_hash == stored_hash:
Return True
Else:
Return False
Many Kinds
● User Enumeration
● Blind SQL Injection
● CPU Cache attacks against crypto
– Local
– Cross-VM
● Lucky 13
● Many more...
String Comparison
Timing Attacks
memcmp
while (len != 0)
{
a0 = ((byte *) srcp1)[0];
b0 = ((byte *) srcp2)[0];
srcp1 += 1;
srcp2 += 1;
res = a0 - b0;
if (res != 0)
return res;
len -= 1;
}
MASSIVE Speedup
c = character set
n = Length of string
Brute Force: c^n
Timing Attack: c * n (* x)
(x is # tries to distinguish)
Why are they interesting?
What are the drawbacks?
Let's talk about time
Internet SF-NY 70ms
Spinning Disk 13ms
Ram Latency 83ns
L1 cache 1ns
1 cpu cycle ~0.33ns
Speed of light
in network cable
1 meter in ~5ns
200 meters ~1µs
So... how long does each
byte of that string
comparison take?
nanoseconds
(on a modern
3Ghz machine)
What about something a
little slower?
Network timing precision
Sources of Imprecision
●Graphics drivers
●Background networking
●USB Devices
●Power saving measures
●Audio devices
●Etc.
Software Timestamps
are noisy.
Let's use hardware!
(picture of i350 + adapter)
Data Collection
●Generate repeated traffic
●TCPdump the packets
●Analyze the data
●Feed back to traffic gen
Making things work
● Libpcap 1.5.0+
● TCPDump 4.6.0+ (released July 2, 2014)
● Recent-ish Kernel
Compile these from source.
In theory, this might work on OSX?
It works on Ubuntu 14.04 for me.
Nanoseconds. Ugh!
● Scapy doesn't read the pcap files
● Neither do most other packages
● Wireshark does!
● Nanosecond timestamps lose precision if you
convert them to a float()
● So we subtract a large offset, and don't work with
raw timestamps.
● Use integer Nanoseconds rather than float seconds
What is the Hue API?
● GET /api/<user token>/lights
● Basic RESTful API
● Not very smart - always returns http status 200
even when returning errors.
● User token is the only required auth
(no username, no sessions)
● Not very fast (can handle ~30req/s)
Hue Base Oddities
● Running FreeRTOS/6.0.5
● Network stack is dumber than a sack of rocks
● SSDP implementation ignores most parameters
● Each HTTP response is split into ~8 pieces
● HTTP stack ignores most incoming headers
● Ethernet Frame Check Sequence sometimes
wrong
● Noisy: Broadcasts SSDP, ARPs for OpenDNS
Statistics!
Basic Review
● What is the Null Hypothesis?
● What does it mean to reject the null hypothesis?
● What are we fundamentally trying to do here?
– We're sorting samples into groups, and trying to
identify the outlier
More Stats
● Why can't we use the t-test?
● What is the K-S test, and why does it help us
here?
● What other approaches might we use?
[a series of yet to be
completed example data
graphs]
Data Prep
● Discarding data (2 standard deviations above
the mean?)
● How to do that wrong!
● Why?
● [graph of prepped data]
Code
● In the repo now, public after the talk:
https://github.com/PaulMcMillan/2014_defcon_timing
● 3 separate but related scripts
● Don't forget to save your data for re-analysis
● Starting points for analysis, not full blown attack
tools
[brief browse through the
code]
[Demo discussion,
dissection of working or
failure. Draw some
graphs]
Tips and Tricks
Keep the socket open
(if you can)
Configure your network
card parameters properly
●use hardware timestamps
●turn off queues
●use nanosecond
timestamps (gah!)
●Turn off some offloads
Make everything Quiet
● reduce extraneous traffic to the device
● Slow loris to exclude other traffic
● don't run extra stuff on your attack machine
● Profile your victim – discard noisy periods
Do a warmup run before
starting to collect data!
Find the simplest possible
request
Avoid statistical tests that
assume your data is
normal
Gather data on all
hypothesis concurrently
Randomize the request
order
Don't overwhelm the
device
Don't forget you can stop
and brute force a token
Some code short circuits if
strings aren't the same
length.
Try both:
Fast and Noisy
Slow and Quiet
Which one works best will
vary.
Don't get fooled by your
own data!
When in doubt, take more
samples.
Questions?
http://github.com/
PaulMcMillan/
2014_defcon_timing
Repo contains updated
slides and a copy of many
useful references.
Attacking The Internet of
Things
(using time)
Paul McMillan
Are my presenter notes showing up properly?
Who am I?
Paul McMillan
Security Engineer at Nebula (I build clouds)
Security team for several prominent open source
projects (not as exciting as you think it is)
Developer outreach
Mostly Python
Like building distributed systems
Like taking theoretical vulnerabilities and making
them practical
There are many ways
to attack the
Internet of Things
You generally own the device, so physical attacks all
work:
Take it apart, read the flash memory
Disassemble the firmware from the manufacturer
Exploit shitty embedded C
Fuzzing
Logic errors
RF
Most of the standard network security errors are
present too:
Random open ports
Old and vulnerable OS/application code
Etc.
We could go on forever. However,
We're here to talk about timing attacks.
Demo
(start)
This is a Philips Hue base station. That's a zigbee
connected light. I figured they're a pretty good
example from the “internet of things that are put on
the internet for no good reason”
What is a timing attack?
What is a timing attack, anyway?
Well, at the most basic level, asking the computer to
do any operation takes time. A measurable amount
of time. A timing attack exploits this.
An attacker uses timing measurements to test
hypotheses:
def authenticate_user(user, pass):
stored_hash=get_password_hash(user):
if stored_hash:
test_hash = sha1(password)
if test_hash == stored_hash:
Return True
Else:
Return False
This is a pretty typical example of how user
authentication works (yes, I know, it has problems, I
left stuff out to keep this simple)
<talk through the code>
You'll notice that if it finds a user, it does some extra
work. In this case, that work involves calculating the
sha1 of the provided password. That's an expensive
operation.
An attacker can exploit this code to figure out which
users have accounts in the system. Obviously, this
isn't a vulnerability in all systems (some publish that
data), but it's an unintended behavior.
Many Kinds
● User Enumeration
● Blind SQL Injection
● CPU Cache attacks against crypto
– Local
– Cross-VM
● Lucky 13
● Many more...
The point here is that these all follow a common
pattern:
The attacker makes a guess about something
The computer uses that to compute
The attacker observes how long that takes (over
many samples) and infers whether their hypothesis
was correct
String Comparison
Timing Attacks
However, today we're here to talk about string
comparison timing attacks.
These are often more difficult to exploit, and usually
written off as completely hypothetical vulnerabilities
(Hopefully my demo today will help fix that
misconception)
memcmp
while (len != 0)
{
a0 = ((byte *) srcp1)[0];
b0 = ((byte *) srcp2)[0];
srcp1 += 1;
srcp2 += 1;
res = a0 - b0;
if (res != 0)
return res;
len -= 1;
}
Snippet from http://www.nongnu.org/avr-libc/
<talk through the snippet>
The key takeaway here is that it stops as soon as it
finds 2 non-matching bytes.
Unlike the previous example, we don't have to guess
an entire username at once to get our timing
difference. Instead, we just have to guess the first
character.
MASSIVE Speedup
c = character set
n = Length of string
Brute Force: c^n
Timing Attack: c * n (* x)
(x is # tries to distinguish)
If we're brute forcing an 8 character password with
16 possible characters (I like hex), we have to try a
total of 4.2 billion guesses. That's likely to be
impractical in the real world.
On the other hand, if we're conducting a timing
attack, and let's say it takes us 10000 guesses per
character to determine a timing difference, that works
out to about 1.2 million.
If you bump the length up to 10, you're looking at a
trillion for brute force, and just 1.6 million for the
timing attack.
Obviously, this is a worthwhile attack, if you can pull
it off.
Why are they interesting?
What are the drawbacks?
Why are they interesting?
- They're more "pick the lock on the front door" than
"find a backdoor"
- They don't require "bad code" (just non-security
mindful code)
- Most people don't list them among "practical"
exploits
- Commonly overlooked
What are the drawbacks?
- lots of network traffic
- really time consuming
- work best on a slow devices
- Susceptible to network noise / device contention
Let's talk about time
It's hard to get an intuitive grasp on small amounts of
time.
Let's look at some examples.
Internet SF-NY 70ms
Spinning Disk 13ms
Ram Latency 83ns
L1 cache 1ns
1 cpu cycle ~0.33ns
Numbers more or less from here:
http://duartes.org/gustavo/blog/post/what-your-compu
ter-does-while-you-wait/
Speed of light
in network cable
1 meter in ~5ns
200 meters ~1µs
Remember that 1 microsecond is the minimum
resolution recorded by the default kernel timestamps.
So... how long does each
byte of that string
comparison take?
nanoseconds
(on a modern
3Ghz machine)
And that's the catch, Ladies and Gentlemen...
What about something a
little slower?
120 Mhz STM32 processor
Zigbee to the lights
10 base T network port
The perfect device to demonstrate string comparison
timing attacks.
The comparison is still going to take nanoseconds,
but it's going to take quite a lot of them.
Image from the Philips press kit
Network timing precision
It turns out, if you want timing measurements good to
the millisecond, or so, you're set. The kernel's
networking stack works fine.
However, since the effects we're looking for are
much smaller than that, we need to work harder.
Sources of Imprecision
●Graphics drivers
●Background networking
●USB Devices
●Power saving measures
●Audio devices
●Etc.
For a first try, it makes sense to just try the basic,
default kernel packet timestamping. It turns out, it's
really noisy.
Software Timestamps
are noisy.
Let's use hardware!
It turns out this is easier now than when I started
working on this a year ago. Linux support for
hardware timestamps works out of the box in recent
distros.
Most of the results we're going to discuss in the rest
of the talk CAN be obtained without hardware
timestamp support. You just need many many more
samples.
Try and find a NIC with hardware support – they're
pretty common now. Hardware with support for PTP
(IEEE 1588) usually works.
(picture of i350 + adapter)
Since my laptop hardware doesn't seem to support
hardware timestamps, I went looking for a high-
quality source. It's always better to start with great
hardware and work your way down, than to start with
bad hardware and realize you need better.
This is the Intel i350 NIC, which supports hardware
timestamping with an 8ns resolution (the datasheet
claims). It's connected through an expresscard to
PCIe adapter, allowing me to run it from my laptop.
It is directly connected to the Hue Base Station,
since we don't want extra hardware introducing
unpredictable latency, especially for a live demo.
This is what we're doing the demo with right now.
Data Collection
●Generate repeated traffic
●TCPdump the packets
●Analyze the data
●Feed back to traffic gen
So we have our target, we have the hardware which
will allow us to carefully measure it, and we have our
chosen attack technique. What's next?
Three fairly simple scripts. The first just generates
login attempts over and over again. It takes an
existing guess at the token, and appends a random
character, then fires off the network request.
While it's doing this, a second script makes sure that
TCPDump is capturing all relevant traffic, using
hardware timstamps, at nanosecond level detail.
A third script periodically analyzes all captured data
up to this point, and determines whether to advance
the generator to a new guess.
Making things work
● Libpcap 1.5.0+
● TCPDump 4.6.0+ (released July 2, 2014)
● Recent-ish Kernel
Compile these from source.
In theory, this might work on OSX?
It works on Ubuntu 14.04 for me.
I'm going to take a slight diversion now and explain
the practical steps to get nanosecond level hardware
timestamps out of tcpdump.
Until very recently, tcpdump only supported
microsecond level timestamps. Libpcap added
support a while ago, but tcpdump didn't add it until a
couple months ago. Hardware timestamp support is
also relatively new. The upshot of all this is you need
to install tcpdump 4.6.0 and libpcap 1.5.0+.
Nanoseconds. Ugh!
● Scapy doesn't read the pcap files
● Neither do most other packages
● Wireshark does!
● Nanosecond timestamps lose precision if you
convert them to a float()
● So we subtract a large offset, and don't work with
raw timestamps.
● Use integer Nanoseconds rather than float seconds
Nanosecond timestamps turn out to be inconvenient
to work with.
For starters, very few things understand the new file
format (this will get fixed soon I hope).
Wireshark does understand pcap files with
nansecond captures, and so we use tshark as our
disector to analyse our capture file. This isn't very
efficient.
If you float() a nanosecond capture, you lose the last
couple digits. To avoid imprecision and mistakes
here, we prefer to work only in integers, and subtract
a large offset to avoid overflows.
What is the Hue API?
● GET /api/<user token>/lights
● Basic RESTful API
● Not very smart - always returns http status 200
even when returning errors.
● User token is the only required auth
(no username, no sessions)
● Not very fast (can handle ~30req/s)
Hue Base Oddities
● Running FreeRTOS/6.0.5
● Network stack is dumber than a sack of rocks
● SSDP implementation ignores most parameters
● Each HTTP response is split into ~8 pieces
● HTTP stack ignores most incoming headers
● Ethernet Frame Check Sequence sometimes
wrong
● Noisy: Broadcasts SSDP, ARPs for OpenDNS
Statistics!
(Groan) but don't worry, we're only going to cover
what you need to know
Basic Review
● What is the Null Hypothesis?
● What does it mean to reject the null hypothesis?
● What are we fundamentally trying to do here?
– We're sorting samples into groups, and trying to
identify the outlier
More Stats
● Why can't we use the t-test?
● What is the K-S test, and why does it help us
here?
● What other approaches might we use?
[a series of yet to be
completed example data
graphs]
Data Prep
● Discarding data (2 standard deviations above
the mean?)
● How to do that wrong!
● Why?
● [graph of prepped data]
Don't forget that these stats only work if your data
points are approximately aligned in time, and you
have the SAME NUMBER OF THEM!
This doesn't work at all with lopsided data sets. It's
easy to accidentally get there.
Code
● In the repo now, public after the talk:
https://github.com/PaulMcMillan/2014_defcon_timing
● 3 separate but related scripts
● Don't forget to save your data for re-analysis
● Starting points for analysis, not full blown attack
tools
[brief browse through the
code]
[Demo discussion,
dissection of working or
failure. Draw some
graphs]
Tips and Tricks
These are going to come fairly rapid-fire, but most of
them represent at least an afternoon of learning
associated with failure.
Keep the socket open
(if you can)
Configure your network
card parameters properly
●use hardware timestamps
●turn off queues
●use nanosecond
timestamps (gah!)
●Turn off some offloads
Make everything Quiet
● reduce extraneous traffic to the device
● Slow loris to exclude other traffic
● don't run extra stuff on your attack machine
● Profile your victim – discard noisy periods
Do a warmup run before
starting to collect data!
Yes, physical warmup
Find the simplest possible
request
Avoid statistical tests that
assume your data is
normal
Gather data on all
hypothesis concurrently
You really can't come back later and mix them up.
Randomize the request
order
Don't cycle repeatedly. You're more likely to hit cache
and cyclical timing weirdness.
Don't overwhelm the
device
Don't forget you can stop
and brute force a token
Some code short circuits if
strings aren't the same
length.
Try both:
Fast and Noisy
Slow and Quiet
Which one works best will
vary.
Don't get fooled by your
own data!
When in doubt, take more
samples.
Questions?
http://github.com/
PaulMcMillan/
2014_defcon_timing
Repo contains updated
slides and a copy of many
useful references.

Contenu connexe

Tendances

Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisInside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisChong-Kuan Chen
 
Modern Evasion Techniques
Modern Evasion TechniquesModern Evasion Techniques
Modern Evasion TechniquesJason Lang
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!Peter Hlavaty
 
Outlook and Exchange for the bad guys
Outlook and Exchange for the bad guysOutlook and Exchange for the bad guys
Outlook and Exchange for the bad guysNick Landers
 
Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Daniel Bohannon
 
Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Daniel Bohannon
 
Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemFantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemRoss Wolf
 
Automatic tool for static analysis
Automatic tool for static analysisAutomatic tool for static analysis
Automatic tool for static analysisChong-Kuan Chen
 
BSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on WheelsBSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on Wheelsinfodox
 
Writing malware while the blue team is staring at you
Writing malware while the blue team is staring at youWriting malware while the blue team is staring at you
Writing malware while the blue team is staring at youRob Fuller
 
Malware Analysis Made Simple
Malware Analysis Made SimpleMalware Analysis Made Simple
Malware Analysis Made SimplePaul Melson
 
Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0marcioalma
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashinfodox
 
[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan Knudsen[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan KnudsenTI Safe
 
Sticky Keys to the Kingdom
Sticky Keys to the KingdomSticky Keys to the Kingdom
Sticky Keys to the KingdomDennis Maldonado
 
Introduction to red team operations
Introduction to red team operationsIntroduction to red team operations
Introduction to red team operationsSunny Neo
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco GrassiShakacon
 
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...Zoltan Balazs
 

Tendances (20)

Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisInside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
 
Modern Evasion Techniques
Modern Evasion TechniquesModern Evasion Techniques
Modern Evasion Techniques
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!
 
Outlook and Exchange for the bad guys
Outlook and Exchange for the bad guysOutlook and Exchange for the bad guys
Outlook and Exchange for the bad guys
 
Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017
 
Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016
 
Fantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find ThemFantastic Red Team Attacks and How to Find Them
Fantastic Red Team Attacks and How to Find Them
 
Automatic tool for static analysis
Automatic tool for static analysisAutomatic tool for static analysis
Automatic tool for static analysis
 
Audit
AuditAudit
Audit
 
BSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on WheelsBSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on Wheels
 
Writing malware while the blue team is staring at you
Writing malware while the blue team is staring at youWriting malware while the blue team is staring at you
Writing malware while the blue team is staring at you
 
Malware Analysis Made Simple
Malware Analysis Made SimpleMalware Analysis Made Simple
Malware Analysis Made Simple
 
Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0Internal Pentest: from z3r0 to h3r0
Internal Pentest: from z3r0 to h3r0
 
I hunt sys admins 2.0
I hunt sys admins 2.0I hunt sys admins 2.0
I hunt sys admins 2.0
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trash
 
[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan Knudsen[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan Knudsen
 
Sticky Keys to the Kingdom
Sticky Keys to the KingdomSticky Keys to the Kingdom
Sticky Keys to the Kingdom
 
Introduction to red team operations
Introduction to red team operationsIntroduction to red team operations
Introduction to red team operations
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
 
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
 

En vedette

Defcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fi
Defcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fiDefcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fi
Defcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fiPriyanka Aash
 
Defcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phones
Defcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phonesDefcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phones
Defcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phonesPriyanka Aash
 
Risk Analysis using open FAIR and Adoption of right Security Controls
Risk Analysis using open FAIR and Adoption of right Security ControlsRisk Analysis using open FAIR and Adoption of right Security Controls
Risk Analysis using open FAIR and Adoption of right Security ControlsPriyanka Aash
 
Network Forensics and Practical Packet Analysis
Network Forensics and Practical Packet AnalysisNetwork Forensics and Practical Packet Analysis
Network Forensics and Practical Packet AnalysisPriyanka Aash
 
Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies Priyanka Aash
 
Defcon 22-deviant-ollam-and-howard-payne-elevator hacking-fr
Defcon 22-deviant-ollam-and-howard-payne-elevator hacking-frDefcon 22-deviant-ollam-and-howard-payne-elevator hacking-fr
Defcon 22-deviant-ollam-and-howard-payne-elevator hacking-frPriyanka Aash
 
Defcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internetDefcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internetPriyanka Aash
 
Defcon 22-weston-hecker-burner-phone-ddos
Defcon 22-weston-hecker-burner-phone-ddosDefcon 22-weston-hecker-burner-phone-ddos
Defcon 22-weston-hecker-burner-phone-ddosPriyanka Aash
 
Defcon 22-richard-klafter-and-eric-swanson-check-your-finger
Defcon 22-richard-klafter-and-eric-swanson-check-your-fingerDefcon 22-richard-klafter-and-eric-swanson-check-your-finger
Defcon 22-richard-klafter-and-eric-swanson-check-your-fingerPriyanka Aash
 
Defcon 22-tim-mcguffin-one-man-shop
Defcon 22-tim-mcguffin-one-man-shopDefcon 22-tim-mcguffin-one-man-shop
Defcon 22-tim-mcguffin-one-man-shopPriyanka Aash
 
Defcon 22-tess-schrodinger-raxacoricofallapatorius-with-love
Defcon 22-tess-schrodinger-raxacoricofallapatorius-with-loveDefcon 22-tess-schrodinger-raxacoricofallapatorius-with-love
Defcon 22-tess-schrodinger-raxacoricofallapatorius-with-lovePriyanka Aash
 
Defcon 22-phil-polstra-am-i-being-spied-on
Defcon 22-phil-polstra-am-i-being-spied-onDefcon 22-phil-polstra-am-i-being-spied-on
Defcon 22-phil-polstra-am-i-being-spied-onPriyanka Aash
 
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-tDefcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-tPriyanka Aash
 
Defcon 22-robert-rowley-detecting-defending-against-surveill
Defcon 22-robert-rowley-detecting-defending-against-surveillDefcon 22-robert-rowley-detecting-defending-against-surveill
Defcon 22-robert-rowley-detecting-defending-against-surveillPriyanka Aash
 
Defcon 22-rmellendick-dakahuna-rf-penetration-testing-your-a
Defcon 22-rmellendick-dakahuna-rf-penetration-testing-your-aDefcon 22-rmellendick-dakahuna-rf-penetration-testing-your-a
Defcon 22-rmellendick-dakahuna-rf-penetration-testing-your-aPriyanka Aash
 
Defcon 22-gregory-pickett-abusing-software-defined-networks
Defcon 22-gregory-pickett-abusing-software-defined-networksDefcon 22-gregory-pickett-abusing-software-defined-networks
Defcon 22-gregory-pickett-abusing-software-defined-networksPriyanka Aash
 
Defcon 22-quaddi-r3plicant-hefley-hacking-911
Defcon 22-quaddi-r3plicant-hefley-hacking-911Defcon 22-quaddi-r3plicant-hefley-hacking-911
Defcon 22-quaddi-r3plicant-hefley-hacking-911Priyanka Aash
 
Defcon 22-david-wyde-client-side-http-cookie-security
Defcon 22-david-wyde-client-side-http-cookie-securityDefcon 22-david-wyde-client-side-http-cookie-security
Defcon 22-david-wyde-client-side-http-cookie-securityPriyanka Aash
 
Defcon 22-nir-valtman-a-journey-to-protect-pos
Defcon 22-nir-valtman-a-journey-to-protect-posDefcon 22-nir-valtman-a-journey-to-protect-pos
Defcon 22-nir-valtman-a-journey-to-protect-posPriyanka Aash
 
Defcon 22-metacortex-grifter-darkside-of-the-internet
Defcon 22-metacortex-grifter-darkside-of-the-internetDefcon 22-metacortex-grifter-darkside-of-the-internet
Defcon 22-metacortex-grifter-darkside-of-the-internetPriyanka Aash
 

En vedette (20)

Defcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fi
Defcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fiDefcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fi
Defcon 22-phil-polstra-cyber-hijacking-airplanes-truth-or-fi
 
Defcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phones
Defcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phonesDefcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phones
Defcon 22-fatih-ozavci-vo ip-wars-attack-of-the-cisco-phones
 
Risk Analysis using open FAIR and Adoption of right Security Controls
Risk Analysis using open FAIR and Adoption of right Security ControlsRisk Analysis using open FAIR and Adoption of right Security Controls
Risk Analysis using open FAIR and Adoption of right Security Controls
 
Network Forensics and Practical Packet Analysis
Network Forensics and Practical Packet AnalysisNetwork Forensics and Practical Packet Analysis
Network Forensics and Practical Packet Analysis
 
Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies
 
Defcon 22-deviant-ollam-and-howard-payne-elevator hacking-fr
Defcon 22-deviant-ollam-and-howard-payne-elevator hacking-frDefcon 22-deviant-ollam-and-howard-payne-elevator hacking-fr
Defcon 22-deviant-ollam-and-howard-payne-elevator hacking-fr
 
Defcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internetDefcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internet
 
Defcon 22-weston-hecker-burner-phone-ddos
Defcon 22-weston-hecker-burner-phone-ddosDefcon 22-weston-hecker-burner-phone-ddos
Defcon 22-weston-hecker-burner-phone-ddos
 
Defcon 22-richard-klafter-and-eric-swanson-check-your-finger
Defcon 22-richard-klafter-and-eric-swanson-check-your-fingerDefcon 22-richard-klafter-and-eric-swanson-check-your-finger
Defcon 22-richard-klafter-and-eric-swanson-check-your-finger
 
Defcon 22-tim-mcguffin-one-man-shop
Defcon 22-tim-mcguffin-one-man-shopDefcon 22-tim-mcguffin-one-man-shop
Defcon 22-tim-mcguffin-one-man-shop
 
Defcon 22-tess-schrodinger-raxacoricofallapatorius-with-love
Defcon 22-tess-schrodinger-raxacoricofallapatorius-with-loveDefcon 22-tess-schrodinger-raxacoricofallapatorius-with-love
Defcon 22-tess-schrodinger-raxacoricofallapatorius-with-love
 
Defcon 22-phil-polstra-am-i-being-spied-on
Defcon 22-phil-polstra-am-i-being-spied-onDefcon 22-phil-polstra-am-i-being-spied-on
Defcon 22-phil-polstra-am-i-being-spied-on
 
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-tDefcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
Defcon 22-alex zacharis-nikolaos-tsagkarakis-po s-attacking-t
 
Defcon 22-robert-rowley-detecting-defending-against-surveill
Defcon 22-robert-rowley-detecting-defending-against-surveillDefcon 22-robert-rowley-detecting-defending-against-surveill
Defcon 22-robert-rowley-detecting-defending-against-surveill
 
Defcon 22-rmellendick-dakahuna-rf-penetration-testing-your-a
Defcon 22-rmellendick-dakahuna-rf-penetration-testing-your-aDefcon 22-rmellendick-dakahuna-rf-penetration-testing-your-a
Defcon 22-rmellendick-dakahuna-rf-penetration-testing-your-a
 
Defcon 22-gregory-pickett-abusing-software-defined-networks
Defcon 22-gregory-pickett-abusing-software-defined-networksDefcon 22-gregory-pickett-abusing-software-defined-networks
Defcon 22-gregory-pickett-abusing-software-defined-networks
 
Defcon 22-quaddi-r3plicant-hefley-hacking-911
Defcon 22-quaddi-r3plicant-hefley-hacking-911Defcon 22-quaddi-r3plicant-hefley-hacking-911
Defcon 22-quaddi-r3plicant-hefley-hacking-911
 
Defcon 22-david-wyde-client-side-http-cookie-security
Defcon 22-david-wyde-client-side-http-cookie-securityDefcon 22-david-wyde-client-side-http-cookie-security
Defcon 22-david-wyde-client-side-http-cookie-security
 
Defcon 22-nir-valtman-a-journey-to-protect-pos
Defcon 22-nir-valtman-a-journey-to-protect-posDefcon 22-nir-valtman-a-journey-to-protect-pos
Defcon 22-nir-valtman-a-journey-to-protect-pos
 
Defcon 22-metacortex-grifter-darkside-of-the-internet
Defcon 22-metacortex-grifter-darkside-of-the-internetDefcon 22-metacortex-grifter-darkside-of-the-internet
Defcon 22-metacortex-grifter-darkside-of-the-internet
 

Similaire à Attacking IoT Devices Using Timing Analysis

[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...
[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...
[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...Moabi.com
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
 
Need for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsNeed for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsKonrad Malawski
 
Bugs from Outer Space | while42 SF #6
Bugs from Outer Space | while42 SF #6Bugs from Outer Space | while42 SF #6
Bugs from Outer Space | while42 SF #6While42
 
Velocity 2015: Building Self-Healing Systems
Velocity 2015: Building Self-Healing SystemsVelocity 2015: Building Self-Healing Systems
Velocity 2015: Building Self-Healing SystemsSOASTA
 
Velocity 2015 building self healing systems (slide share version)
Velocity 2015 building self healing systems (slide share version)Velocity 2015 building self healing systems (slide share version)
Velocity 2015 building self healing systems (slide share version)SOASTA
 
Building Hermetic Systems (without Docker)
Building Hermetic Systems (without Docker)Building Hermetic Systems (without Docker)
Building Hermetic Systems (without Docker)William Farrell
 
Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Brian Brazil
 
Unity best practices (2013)
Unity best practices (2013)Unity best practices (2013)
Unity best practices (2013)Benjamin Robert
 
How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)Doug Burns
 
The Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldThe Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldKonrad Malawski
 
Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?Aleksandr Yampolskiy
 
Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)RichardWarburton
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonJAXLondon2014
 
PPU Optimisation Lesson
PPU Optimisation LessonPPU Optimisation Lesson
PPU Optimisation Lessonslantsixgames
 
Testing Wi-Fi with OSS Tools
Testing Wi-Fi with OSS ToolsTesting Wi-Fi with OSS Tools
Testing Wi-Fi with OSS ToolsAll Things Open
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the wayOleg Podsechin
 
Lessons learnt on a 2000-core cluster
Lessons learnt on a 2000-core clusterLessons learnt on a 2000-core cluster
Lessons learnt on a 2000-core clusterEugene Kirpichov
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysisdreamwidth
 

Similaire à Attacking IoT Devices Using Timing Analysis (20)

[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...
[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...
[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Rese...
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Need for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applicationsNeed for Async: Hot pursuit for scalable applications
Need for Async: Hot pursuit for scalable applications
 
Bugs from Outer Space | while42 SF #6
Bugs from Outer Space | while42 SF #6Bugs from Outer Space | while42 SF #6
Bugs from Outer Space | while42 SF #6
 
Velocity 2015: Building Self-Healing Systems
Velocity 2015: Building Self-Healing SystemsVelocity 2015: Building Self-Healing Systems
Velocity 2015: Building Self-Healing Systems
 
Velocity 2015 building self healing systems (slide share version)
Velocity 2015 building self healing systems (slide share version)Velocity 2015 building self healing systems (slide share version)
Velocity 2015 building self healing systems (slide share version)
 
Process management
Process managementProcess management
Process management
 
Building Hermetic Systems (without Docker)
Building Hermetic Systems (without Docker)Building Hermetic Systems (without Docker)
Building Hermetic Systems (without Docker)
 
Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)
 
Unity best practices (2013)
Unity best practices (2013)Unity best practices (2013)
Unity best practices (2013)
 
How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)
 
The Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldThe Need for Async @ ScalaWorld
The Need for Async @ ScalaWorld
 
Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?
 
Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard Warburton
 
PPU Optimisation Lesson
PPU Optimisation LessonPPU Optimisation Lesson
PPU Optimisation Lesson
 
Testing Wi-Fi with OSS Tools
Testing Wi-Fi with OSS ToolsTesting Wi-Fi with OSS Tools
Testing Wi-Fi with OSS Tools
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the way
 
Lessons learnt on a 2000-core cluster
Lessons learnt on a 2000-core clusterLessons learnt on a 2000-core cluster
Lessons learnt on a 2000-core cluster
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysis
 

Plus de Priyanka Aash

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsPriyanka Aash
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfPriyanka Aash
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfPriyanka Aash
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfPriyanka Aash
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfPriyanka Aash
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfPriyanka Aash
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfPriyanka Aash
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdfPriyanka Aash
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfPriyanka Aash
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfPriyanka Aash
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfPriyanka Aash
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldPriyanka Aash
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksPriyanka Aash
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Priyanka Aash
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Priyanka Aash
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Priyanka Aash
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsPriyanka Aash
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security GovernancePriyanka Aash
 

Plus de Priyanka Aash (20)

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdf
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdf
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdf
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdf
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
 
DPDP Act 2023.pdf
DPDP Act 2023.pdfDPDP Act 2023.pdf
DPDP Act 2023.pdf
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdf
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdf
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdf
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdf
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 Battlefield
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware Attacks
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security Governance
 
Ethical Hacking
Ethical HackingEthical Hacking
Ethical Hacking
 

Dernier

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Attacking IoT Devices Using Timing Analysis

  • 1. Attacking The Internet of Things (using time) Paul McMillan
  • 3. There are many ways to attack the Internet of Things
  • 5. What is a timing attack?
  • 6. def authenticate_user(user, pass): stored_hash=get_password_hash(user): if stored_hash: test_hash = sha1(password) if test_hash == stored_hash: Return True Else: Return False
  • 7. Many Kinds ● User Enumeration ● Blind SQL Injection ● CPU Cache attacks against crypto – Local – Cross-VM ● Lucky 13 ● Many more...
  • 9. memcmp while (len != 0) { a0 = ((byte *) srcp1)[0]; b0 = ((byte *) srcp2)[0]; srcp1 += 1; srcp2 += 1; res = a0 - b0; if (res != 0) return res; len -= 1; }
  • 10. MASSIVE Speedup c = character set n = Length of string Brute Force: c^n Timing Attack: c * n (* x) (x is # tries to distinguish)
  • 11. Why are they interesting? What are the drawbacks?
  • 13. Internet SF-NY 70ms Spinning Disk 13ms Ram Latency 83ns L1 cache 1ns 1 cpu cycle ~0.33ns
  • 14. Speed of light in network cable 1 meter in ~5ns 200 meters ~1µs
  • 15. So... how long does each byte of that string comparison take? nanoseconds
  • 16. (on a modern 3Ghz machine)
  • 17. What about something a little slower?
  • 18.
  • 20. Sources of Imprecision ●Graphics drivers ●Background networking ●USB Devices ●Power saving measures ●Audio devices ●Etc.
  • 22. (picture of i350 + adapter)
  • 23. Data Collection ●Generate repeated traffic ●TCPdump the packets ●Analyze the data ●Feed back to traffic gen
  • 24. Making things work ● Libpcap 1.5.0+ ● TCPDump 4.6.0+ (released July 2, 2014) ● Recent-ish Kernel Compile these from source. In theory, this might work on OSX? It works on Ubuntu 14.04 for me.
  • 25. Nanoseconds. Ugh! ● Scapy doesn't read the pcap files ● Neither do most other packages ● Wireshark does! ● Nanosecond timestamps lose precision if you convert them to a float() ● So we subtract a large offset, and don't work with raw timestamps. ● Use integer Nanoseconds rather than float seconds
  • 26. What is the Hue API? ● GET /api/<user token>/lights ● Basic RESTful API ● Not very smart - always returns http status 200 even when returning errors. ● User token is the only required auth (no username, no sessions) ● Not very fast (can handle ~30req/s)
  • 27. Hue Base Oddities ● Running FreeRTOS/6.0.5 ● Network stack is dumber than a sack of rocks ● SSDP implementation ignores most parameters ● Each HTTP response is split into ~8 pieces ● HTTP stack ignores most incoming headers ● Ethernet Frame Check Sequence sometimes wrong ● Noisy: Broadcasts SSDP, ARPs for OpenDNS
  • 29. Basic Review ● What is the Null Hypothesis? ● What does it mean to reject the null hypothesis? ● What are we fundamentally trying to do here? – We're sorting samples into groups, and trying to identify the outlier
  • 30. More Stats ● Why can't we use the t-test? ● What is the K-S test, and why does it help us here? ● What other approaches might we use?
  • 31. [a series of yet to be completed example data graphs]
  • 32. Data Prep ● Discarding data (2 standard deviations above the mean?) ● How to do that wrong! ● Why? ● [graph of prepped data]
  • 33. Code ● In the repo now, public after the talk: https://github.com/PaulMcMillan/2014_defcon_timing ● 3 separate but related scripts ● Don't forget to save your data for re-analysis ● Starting points for analysis, not full blown attack tools
  • 35. [Demo discussion, dissection of working or failure. Draw some graphs]
  • 37. Keep the socket open (if you can)
  • 38. Configure your network card parameters properly ●use hardware timestamps ●turn off queues ●use nanosecond timestamps (gah!) ●Turn off some offloads
  • 39. Make everything Quiet ● reduce extraneous traffic to the device ● Slow loris to exclude other traffic ● don't run extra stuff on your attack machine ● Profile your victim – discard noisy periods
  • 40. Do a warmup run before starting to collect data!
  • 41. Find the simplest possible request
  • 42. Avoid statistical tests that assume your data is normal
  • 43. Gather data on all hypothesis concurrently
  • 46. Don't forget you can stop and brute force a token
  • 47. Some code short circuits if strings aren't the same length.
  • 48. Try both: Fast and Noisy Slow and Quiet Which one works best will vary.
  • 49. Don't get fooled by your own data! When in doubt, take more samples.
  • 51. Attacking The Internet of Things (using time) Paul McMillan Are my presenter notes showing up properly?
  • 52. Who am I? Paul McMillan Security Engineer at Nebula (I build clouds) Security team for several prominent open source projects (not as exciting as you think it is) Developer outreach Mostly Python Like building distributed systems Like taking theoretical vulnerabilities and making them practical
  • 53. There are many ways to attack the Internet of Things You generally own the device, so physical attacks all work: Take it apart, read the flash memory Disassemble the firmware from the manufacturer Exploit shitty embedded C Fuzzing Logic errors RF Most of the standard network security errors are present too: Random open ports Old and vulnerable OS/application code Etc. We could go on forever. However, We're here to talk about timing attacks.
  • 54. Demo (start) This is a Philips Hue base station. That's a zigbee connected light. I figured they're a pretty good example from the “internet of things that are put on the internet for no good reason”
  • 55. What is a timing attack? What is a timing attack, anyway? Well, at the most basic level, asking the computer to do any operation takes time. A measurable amount of time. A timing attack exploits this. An attacker uses timing measurements to test hypotheses:
  • 56. def authenticate_user(user, pass): stored_hash=get_password_hash(user): if stored_hash: test_hash = sha1(password) if test_hash == stored_hash: Return True Else: Return False This is a pretty typical example of how user authentication works (yes, I know, it has problems, I left stuff out to keep this simple) <talk through the code> You'll notice that if it finds a user, it does some extra work. In this case, that work involves calculating the sha1 of the provided password. That's an expensive operation. An attacker can exploit this code to figure out which users have accounts in the system. Obviously, this isn't a vulnerability in all systems (some publish that data), but it's an unintended behavior.
  • 57. Many Kinds ● User Enumeration ● Blind SQL Injection ● CPU Cache attacks against crypto – Local – Cross-VM ● Lucky 13 ● Many more... The point here is that these all follow a common pattern: The attacker makes a guess about something The computer uses that to compute The attacker observes how long that takes (over many samples) and infers whether their hypothesis was correct
  • 58. String Comparison Timing Attacks However, today we're here to talk about string comparison timing attacks. These are often more difficult to exploit, and usually written off as completely hypothetical vulnerabilities (Hopefully my demo today will help fix that misconception)
  • 59. memcmp while (len != 0) { a0 = ((byte *) srcp1)[0]; b0 = ((byte *) srcp2)[0]; srcp1 += 1; srcp2 += 1; res = a0 - b0; if (res != 0) return res; len -= 1; } Snippet from http://www.nongnu.org/avr-libc/ <talk through the snippet> The key takeaway here is that it stops as soon as it finds 2 non-matching bytes. Unlike the previous example, we don't have to guess an entire username at once to get our timing difference. Instead, we just have to guess the first character.
  • 60. MASSIVE Speedup c = character set n = Length of string Brute Force: c^n Timing Attack: c * n (* x) (x is # tries to distinguish) If we're brute forcing an 8 character password with 16 possible characters (I like hex), we have to try a total of 4.2 billion guesses. That's likely to be impractical in the real world. On the other hand, if we're conducting a timing attack, and let's say it takes us 10000 guesses per character to determine a timing difference, that works out to about 1.2 million. If you bump the length up to 10, you're looking at a trillion for brute force, and just 1.6 million for the timing attack. Obviously, this is a worthwhile attack, if you can pull it off.
  • 61. Why are they interesting? What are the drawbacks? Why are they interesting? - They're more "pick the lock on the front door" than "find a backdoor" - They don't require "bad code" (just non-security mindful code) - Most people don't list them among "practical" exploits - Commonly overlooked What are the drawbacks? - lots of network traffic - really time consuming - work best on a slow devices - Susceptible to network noise / device contention
  • 62. Let's talk about time It's hard to get an intuitive grasp on small amounts of time. Let's look at some examples.
  • 63. Internet SF-NY 70ms Spinning Disk 13ms Ram Latency 83ns L1 cache 1ns 1 cpu cycle ~0.33ns Numbers more or less from here: http://duartes.org/gustavo/blog/post/what-your-compu ter-does-while-you-wait/
  • 64. Speed of light in network cable 1 meter in ~5ns 200 meters ~1µs Remember that 1 microsecond is the minimum resolution recorded by the default kernel timestamps.
  • 65. So... how long does each byte of that string comparison take? nanoseconds
  • 66. (on a modern 3Ghz machine) And that's the catch, Ladies and Gentlemen...
  • 67. What about something a little slower?
  • 68. 120 Mhz STM32 processor Zigbee to the lights 10 base T network port The perfect device to demonstrate string comparison timing attacks. The comparison is still going to take nanoseconds, but it's going to take quite a lot of them. Image from the Philips press kit
  • 69. Network timing precision It turns out, if you want timing measurements good to the millisecond, or so, you're set. The kernel's networking stack works fine. However, since the effects we're looking for are much smaller than that, we need to work harder.
  • 70. Sources of Imprecision ●Graphics drivers ●Background networking ●USB Devices ●Power saving measures ●Audio devices ●Etc. For a first try, it makes sense to just try the basic, default kernel packet timestamping. It turns out, it's really noisy.
  • 71. Software Timestamps are noisy. Let's use hardware! It turns out this is easier now than when I started working on this a year ago. Linux support for hardware timestamps works out of the box in recent distros. Most of the results we're going to discuss in the rest of the talk CAN be obtained without hardware timestamp support. You just need many many more samples. Try and find a NIC with hardware support – they're pretty common now. Hardware with support for PTP (IEEE 1588) usually works.
  • 72. (picture of i350 + adapter) Since my laptop hardware doesn't seem to support hardware timestamps, I went looking for a high- quality source. It's always better to start with great hardware and work your way down, than to start with bad hardware and realize you need better. This is the Intel i350 NIC, which supports hardware timestamping with an 8ns resolution (the datasheet claims). It's connected through an expresscard to PCIe adapter, allowing me to run it from my laptop. It is directly connected to the Hue Base Station, since we don't want extra hardware introducing unpredictable latency, especially for a live demo. This is what we're doing the demo with right now.
  • 73. Data Collection ●Generate repeated traffic ●TCPdump the packets ●Analyze the data ●Feed back to traffic gen So we have our target, we have the hardware which will allow us to carefully measure it, and we have our chosen attack technique. What's next? Three fairly simple scripts. The first just generates login attempts over and over again. It takes an existing guess at the token, and appends a random character, then fires off the network request. While it's doing this, a second script makes sure that TCPDump is capturing all relevant traffic, using hardware timstamps, at nanosecond level detail. A third script periodically analyzes all captured data up to this point, and determines whether to advance the generator to a new guess.
  • 74. Making things work ● Libpcap 1.5.0+ ● TCPDump 4.6.0+ (released July 2, 2014) ● Recent-ish Kernel Compile these from source. In theory, this might work on OSX? It works on Ubuntu 14.04 for me. I'm going to take a slight diversion now and explain the practical steps to get nanosecond level hardware timestamps out of tcpdump. Until very recently, tcpdump only supported microsecond level timestamps. Libpcap added support a while ago, but tcpdump didn't add it until a couple months ago. Hardware timestamp support is also relatively new. The upshot of all this is you need to install tcpdump 4.6.0 and libpcap 1.5.0+.
  • 75. Nanoseconds. Ugh! ● Scapy doesn't read the pcap files ● Neither do most other packages ● Wireshark does! ● Nanosecond timestamps lose precision if you convert them to a float() ● So we subtract a large offset, and don't work with raw timestamps. ● Use integer Nanoseconds rather than float seconds Nanosecond timestamps turn out to be inconvenient to work with. For starters, very few things understand the new file format (this will get fixed soon I hope). Wireshark does understand pcap files with nansecond captures, and so we use tshark as our disector to analyse our capture file. This isn't very efficient. If you float() a nanosecond capture, you lose the last couple digits. To avoid imprecision and mistakes here, we prefer to work only in integers, and subtract a large offset to avoid overflows.
  • 76. What is the Hue API? ● GET /api/<user token>/lights ● Basic RESTful API ● Not very smart - always returns http status 200 even when returning errors. ● User token is the only required auth (no username, no sessions) ● Not very fast (can handle ~30req/s)
  • 77. Hue Base Oddities ● Running FreeRTOS/6.0.5 ● Network stack is dumber than a sack of rocks ● SSDP implementation ignores most parameters ● Each HTTP response is split into ~8 pieces ● HTTP stack ignores most incoming headers ● Ethernet Frame Check Sequence sometimes wrong ● Noisy: Broadcasts SSDP, ARPs for OpenDNS
  • 78. Statistics! (Groan) but don't worry, we're only going to cover what you need to know
  • 79. Basic Review ● What is the Null Hypothesis? ● What does it mean to reject the null hypothesis? ● What are we fundamentally trying to do here? – We're sorting samples into groups, and trying to identify the outlier
  • 80. More Stats ● Why can't we use the t-test? ● What is the K-S test, and why does it help us here? ● What other approaches might we use?
  • 81. [a series of yet to be completed example data graphs]
  • 82. Data Prep ● Discarding data (2 standard deviations above the mean?) ● How to do that wrong! ● Why? ● [graph of prepped data] Don't forget that these stats only work if your data points are approximately aligned in time, and you have the SAME NUMBER OF THEM! This doesn't work at all with lopsided data sets. It's easy to accidentally get there.
  • 83. Code ● In the repo now, public after the talk: https://github.com/PaulMcMillan/2014_defcon_timing ● 3 separate but related scripts ● Don't forget to save your data for re-analysis ● Starting points for analysis, not full blown attack tools
  • 85. [Demo discussion, dissection of working or failure. Draw some graphs]
  • 86. Tips and Tricks These are going to come fairly rapid-fire, but most of them represent at least an afternoon of learning associated with failure.
  • 87. Keep the socket open (if you can)
  • 88. Configure your network card parameters properly ●use hardware timestamps ●turn off queues ●use nanosecond timestamps (gah!) ●Turn off some offloads
  • 89. Make everything Quiet ● reduce extraneous traffic to the device ● Slow loris to exclude other traffic ● don't run extra stuff on your attack machine ● Profile your victim – discard noisy periods
  • 90. Do a warmup run before starting to collect data! Yes, physical warmup
  • 91. Find the simplest possible request
  • 92. Avoid statistical tests that assume your data is normal
  • 93. Gather data on all hypothesis concurrently You really can't come back later and mix them up.
  • 94. Randomize the request order Don't cycle repeatedly. You're more likely to hit cache and cyclical timing weirdness.
  • 96. Don't forget you can stop and brute force a token
  • 97. Some code short circuits if strings aren't the same length.
  • 98. Try both: Fast and Noisy Slow and Quiet Which one works best will vary.
  • 99. Don't get fooled by your own data! When in doubt, take more samples.