SlideShare a Scribd company logo
1 of 68
Download to read offline
RF Fuzzing // River Loop Security
River Loop SecurityRiver Loop Security
Designing RF Fuzzing Tools to Expose
PHY Layer Vulnerabilities
Matt Knight, Ryan Speers
DEF CON
RF Fuzzing // River Loop Securitywhois
Matt Knight
• Senior Security Engineer at Cruise
Automation
• RF Principal at River Loop Security
• BE in EE from Dartmouth College
• Software, hardware, and RF engineer
• RF, SDR, and embedded systems
Ryan Speers
• Co-founder at River Loop Security
• Director of Research at Ionic Security
• Computer Science from Dartmouth College
• Cryptography, embedded systems, IEEE
. . , automated firmware analysis
River Loop Security
2
RF Fuzzing // River Loop SecurityBackground
“Making and Breaking a Wireless IDS”, Troopers
“Speaking the Local Dialect”, ACM WiSec
• Ryan Speers, Sergey Bratus, Javier Vazquez, Ray Jenkins, bx, Travis Goodspeed, & David Dowd
• Idiosyncrasies in PHY implementations
Mechanisms for automating:
• RF fuzzing
• Bug discovery
• PHY FSM fingerprint generation
3
RF Fuzzing // River Loop SecurityAgenda
Overview of traditional fuzzing techniques (software and networks)
> How these do and don’t easily map to RF
RF fuzzing overview and state of the art
Ideal fuzzer design
TumbleRF introduction and overview
TumbleRF usage example
Introducing Orthrus
4
RF Fuzzing // River Loop Security
Traditional Fuzzing
Techniques
RF Fuzzing // River Loop SecurityWhat is fuzzing?
Measured application of pseudorandom input to a system
Why fuzz?
• Automates discovery of crashes, corner cases, bugs, etc.
• Unexpected input → unexpected state
6
RF Fuzzing // River Loop SecurityWhat can one fuzz?
Fuzzers generally attach to system interfaces, namely I/O:
• File format parsers
• Network interfaces
• Shared memory
7
RF Fuzzing // River Loop SecuritySoftware Fuzzing State of the Art
Abundant fully-featured software fuzzers
• AFL / AFL-Unicorn
• Peach
• Scapy
Software is easy to instrument and hook at every level
What else can one fuzz?
8
RF Fuzzing // River Loop Security
Other Applications of
Fuzzing
RF Fuzzing // River Loop SecurityFuzzing Hardware
Challenges:
• H/W is often unique, less “standard interfaces” to measure on
• May not be able to simulate well in a test harness
Some Existing Techniques:
• AFL-Unicorn: simulate firmware in Unicorn to fuzz
• Bus Pirate: permutes pinouts and data rates to discover digital buses
• JTAGulator: permutes pinouts that could match unlocked JTAG
• …
10
RF Fuzzing // River Loop SecurityFuzzing RF
WiFuzz
● MAC-focused . protocol fuzzer
Marc Newlin’s Mousejack research
● Injected fuzzed RF packets at nRF HID dongles while looking for
USB output
isotope:
● IEEE . . PHY fuzzer
11
RF Fuzzing // River Loop SecurityExisting RF Fuzzing Limitations
RF fuzzing projects are siloed / protocol-specific
● COTS radio chipsets
● Generally limited to MAC layer and up
RF state is hard to instrument
● What constitutes a crash / bug / etc?
Implicit trust in chipset – one can only see what one’s radio tells you is
happening
12
RF Fuzzing // River Loop SecurityTrust and Physical Layer Vulnerabilities
Not all PHY state machines are created equal!
Radio chipsets implement RF state machines differently
• Differences can be fingerprinted and exploited
• Initial results on . . were profound
• Specially-crafted PHYs can target certain chipsets while avoiding
others
13
RF Fuzzing // River Loop Security
RF PHYs: A Primer
RF Fuzzing // River Loop SecurityHow Radios Work
Transmitter: digital data (bits) → analog RF energy
discrete → continuous
Receiver: analog RF energy → digital data (bits)
continuous → discrete
Receiving comes down to sampling and synchronization!
15
RF Fuzzing // River Loop SecurityDigitally Modulated Waveforms
16
RF Fuzzing // River Loop SecurityDigitally Modulated Waveforms
Preamble
Start of Frame Delimiter (SFD) / Sync Word
Data
17
RF Fuzzing // River Loop SecurityRF PHY State Machines
18
RF Fuzzing // River Loop SecurityRF PHY State Machines
19
RF Fuzzing // River Loop Security
…
RF PHY State Machines
20
RF Fuzzing // River Loop SecurityRF PHY State Machines
21
0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
4
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
22
1 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1
1 1 0 1 0 1 0 1
5
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
23
0 1 0 0 0 0 0 0
0 1 0 1 0 1 0 1
0 0 0 1 0 1 0 1
3
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
24
1 0 1 0 0 0 0 0
0 1 0 1 0 1 0 1
1 1 1 1 0 1 0 1
6
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
25
0 1 0 1 0 0 0 0
0 1 0 1 0 1 0 1
0 0 0 0 0 1 0 1
2
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
26
1 0 1 0 1 0 0 0
0 1 0 1 0 1 0 1
1 1 1 1 1 1 0 1
7
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
27
0 1 0 1 0 1 0 0
0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 1
1
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
28
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1
8
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
29
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0
0
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
Hamming Distance
● # bits that are different between two values
● If , values are equal
When Hamming Distance <= some threshold, a
preamble has been detected
RF Fuzzing // River Loop SecurityRF PHY State Machines
30
Repeat the process, correlating for the SFD
value instead, to find the start of the PHY
data unit
0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
4
→ RF Symbol Value
Preamble Correlation Value
XOR Result
→ Shift Register →
Hamming Distance
RF Fuzzing // River Loop SecuritySync Words and Magic Numbers
Turns out not all sync words are created equally
• 0x00000000 == 802.15.4 Preamble
• 0xA7 == 802.15.4 Sync Word
The isotope research showed some chipsets correlated on “different”
preambles / sync words than others
31
RF Fuzzing // River Loop SecuritySync Words and Magic Numbers
Turns out not all sync words are created equally
• 0x00000000 == 802.15.4 Preamble
• 0xA7 == 802.15.4 Sync Word
The isotope research showed some chipsets correlated on “different”
preambles / sync words than others
strategically malformed
32
RF Fuzzing // River Loop SecuritySync Words and Magic Numbers
Turns out not all sync words are created equally
• 0xXXXX0000 == 802.15.4 Preamble
• 0xA7 == 802.15.4 Sync Word
The isotope research showed some chipsets correlated on “different”
preambles / sync words than others
Short preamble?
strategically malformed
33
RF Fuzzing // River Loop SecuritySync Words and Magic Numbers
Turns out not all sync words are created equally
• 0xXXXX0000 == 802.15.4 Preamble
• 0xAF == 802.15.4 Sync Word
The isotope research showed some chipsets correlated on “different”
preambles / sync words than others
Short preamble? Flipped bits in SFD?
strategically malformed
34
RF Fuzzing // River Loop Security
Fuzzing Makes Discovery
Systematic
RF Fuzzing // River Loop Security
Ideal RF Fuzzer Design
RF Fuzzing // River Loop SecurityIdeal Features
Extensible: easy to hook up new radios
Flexible: modular to enable plugging and playing different engines /
interfaces / test cases
Reusable: re-use designs from one protocol on another
Comprehensive: exposes PHY in addition to MAC
37
RF Fuzzing // River Loop Security
TumbleRF
RF Fuzzing // River Loop SecurityTumbleRF
Software framework enabling fuzzing arbitrary RF protocols
Abstracts key components for easy extension:
● Radio API
● Test case generation API
39
RF Fuzzing // River Loop SecurityTumbleRF Architecture
40
RF Fuzzing // River Loop SecurityInterfaces
RF injection/sniffing functions abstracted to generic template
To add a new radio, inherit base Interface class and redefine its
functions to map to the radio driver:
[set/get]_channel()
[set/get]_sfd()
[set/get]_preamble()
tx()
rx_start()
rx_stop()
rx_poll()
41
RF Fuzzing // River Loop SecurityGenerators
Rulesets for generating fuzzed input (pythonically)
Extend to interface with software fuzzers of your choice
Implement functions:
yield_control_case()
yield_test_case()
Three generators currently:
• Preamble length (isotope)
• Non-standard symbols in preamble (isotope)
• Random payloads in message
42
RF Fuzzing // River Loop SecurityHarnesses
Monitor the device under test to evaluate test case results
Manage device state in between tests
Three handlers currently:
• Received Frame Check: listen for given frames via an RF interface
• SSH Process Check: check whether processes on target crashed
(beta)
• Serial Check: watch for specific output via Arduino (beta)
43
RF Fuzzing // River Loop SecurityTest Cases
Coordinate the generator, interface, and harness. Typically very
lightweight.
Extend BaseCase to implement run_test()
or build upon others, e.g.:
Extend AlternatorCase to implement:
does_control_case_pass()
throw_test_case()
Alternates test cases with known-good control case to check for crashes
/ ensure interface is still up
44
RF Fuzzing // River Loop SecurityTumbleRF Architecture: Demo Setup
45
RF Fuzzing // River Loop SecurityExample Generated Data: Preamble Length
Standard . . PHY Header == x + xA + xLL
46
RF Fuzzing // River Loop SecurityExample Generated Data: Preamble Length
Modify GNU Radio gr-ieee802-15-4 to omit PHY header
Generate arbitrary PHY headers via TumbleRF test case generator47
RF Fuzzing // River Loop Security
Demo
RF Fuzzing // River Loop SecurityResults Dump
Test: preamble_length_apimote.json (using Dot15d4PreambleLengthGenerator)
Case 0: 0 valid, 50 invalid example case: a70a230800ffff000007fba6
Case 1: 0 valid, 50 invalid example case: 70aa308220f0ff0f0070d0eafa
Case 2: 45 valid, 5 invalid example case: 00a70a230804ffff00000757b6
Case 3: 0 valid, 50 invalid example case: 0070aa308260f0ff0f007010e0fb
Case 4: 50 valid, 0 invalid example case: 0000a70a230808ffff000007a387
Case 5: 0 valid, 50 invalid example case: 000070aa3082a0f0ff0f007050fff8
Case 6: 50 valid, 0 invalid example case: 000000a70a23080cffff0000070f97
Case 7: 0 valid, 50 invalid example case: 00000070aa3082e0f0ff0f007090f5f9
Case 8: 48 valid, 2 invalid example case: 00000000a70a230810ffff0000074be4
Case 9: 0 valid, 50 invalid example case: 0000000070aa308220f1ff0f0070d0c1fe
Test: preamble_length_cc2531.json (using Dot15d4PreambleLengthGenerator)
Case 0: 0 valid, 50 invalid example case: a70a230800ffff000007fba6
Case 1: 0 valid, 50 invalid example case: 70aa308220f0ff0f0070d0eafa
Case 2: 13 valid, 37 invalid example case: 00a70a230804ffff00000757b6
Case 3: 0 valid, 50 invalid example case: 0070aa308260f0ff0f007010e0fb
Case 4: 48 valid, 2 invalid example case: 0000a70a230808ffff000007a387
Case 5: 0 valid, 50 invalid example case: 000070aa3082a0f0ff0f007050fff8
Case 6: 50 valid, 0 invalid example case: 000000a70a23080cffff0000070f97
Case 7: 0 valid, 50 invalid example case: 00000070aa3082e0f0ff0f007090f5f9
Case 8: 49 valid, 1 invalid example case: 00000000a70a230810ffff0000074be4
Case 9: 0 valid, 50 invalid example case: 0000000070aa308220f1ff0f0070d0c1fe
Test: preamble_length_rzusbstick.json (using Dot15d4PreambleLengthGenerator)
Case 0: 0 valid, 50 invalid example case: a70a230800ffff000007fb
Case 1: 0 valid, 50 invalid example case: 70aa308230f0ff0f007060
Case 2: 0 valid, 50 invalid example case: 00a70a230805ffff000007
Case 3: 0 valid, 50 invalid example case: 0070aa308270f0ff0f0070
Case 4: 0 valid, 50 invalid example case: 0000a70a230809ffff0000
Case 5: 0 valid, 50 invalid example case: 000070aa3082b0f0ff0f00
Case 6: 37 valid, 13 invalid example case: 000000a70a23080effff00
Case 7: 0 valid, 50 invalid example case: 00000070aa308200f1ff0f
Case 8: 41 valid, 9 invalid example case: 00000000a70a230813ffff
Case 9: 0 valid, 50 invalid example case: 0000000070aa308250f1ff
TI CC
TI CC
Atmel AT RF
3 transceivers
2 manufacturers
1 protocol
3 behaviors!
49
RF Fuzzing // River Loop Security
Why Care?
Those results can allow for
WIDS evasion and selective
targeting.
RF Fuzzing // River Loop Security
Developing RF
Interfaces
RF Fuzzing // River Loop SecurityRF Interfaces
Not all radios can generate arbitrary preambles, SFDs, modulations,
packet formats, etc.
PHY manipulation requires:
● Software Defined Radio
● Transceiver chipset with lots of configurations
52
RF Fuzzing // River Loop SecuritySoftware Defined Radio
Prior example used Software Defined Radio:
● GNU Radio and a USRP
● gr-ieee802-15-4 is flexible because it’s well designed
SDR has some drawbacks:
● GNU Radio is complicated and hard to develop for
● SDRs are expensive
● High latency for host-based DSP
● Power hungry: hard to embed
53
RF Fuzzing // River Loop SecurityConfigurable Transceivers
Discrete radio chipsets are purpose built:
● Generally speak protocol really well
● Band-limited
● Low power
● Some kind of API
Examples include:
54
RF Fuzzing // River Loop SecurityFlexible Transceivers
Certain discrete transceivers can be flexible, like SDR!
Some radios expose PHY configuration registers:
● Preamble length
● SFD magic number
● Header symbol error tolerance
● etc.
55
RF Fuzzing // River Loop SecurityApiMote ( / )
ApiMote, designed by Javier & Ryan, exposed PHY registers in TI CC :
● Preamble length
● SFD value
● Digital FSM state status pins for low latency injection
56
Pre-assembled/flashed are available
via team@riverloopsecurity.com
RF Fuzzing // River Loop SecurityApiMote ( / )
However, the ApiMote needs an update:
● CC is EOL
● Expensive BOM
● USB issues
CC and others don’t have the same degree of PHY configuration, so
started looking at other chipsets
57
RF Fuzzing // River Loop SecurityEnter ADF
Most interesting option: Analog Devices ADF
. GHz . . radio with lots of features:
● Several modulations
● Lots of configurability
● SPORT mode
58
RF Fuzzing // River Loop SecuritySPORT Mode?
Streams demodulated symbols over serial, up to Msps
● Bypasses decoding and PHY header / packet framing
● We can implement these parts in software
Full control of PHY for most . GHz protocols!
59
ApiMote . >> . .
RF Fuzzing // River Loop Security
Introducing Orthrus
RF Fuzzing // River Loop SecurityOrthrus ( / )
Spiritual successor to the ApiMote
Named for -headed dog from Greek mythology
● Why? Because Orthrus has two heads!
61
RF Fuzzing // River Loop SecurityOrthrus ( / )
NXP LPC ARM MCU
● Host communication via USB
● Controlling radios
● RF state machine implementation and control
x ADF radios
● ADF has a slow re-tune time
○ allows for pre-emptive re-tune!
● can listen while the other sits ready to transmit
○ High-speed responsive jamming
62
RF Fuzzing // River Loop SecurityInitial Prototype
ADF dev board wired to Teensy:
Custom PCB is in progress
63
RF Fuzzing // River Loop SecurityOrthrus RF Design Flow
Implement event loop in firmware
Blue-Green frontends for fast retuning / channel hopping
TODO: State machine abstraction language?
● e.g. XASM / ASML / SCXML
● Implement PHYs via config definitions rather than code
64
RF Fuzzing // River Loop SecurityPacket-in-Packet Detection
. . Frame Structure:
Packet-in-Packet frame structure:
Traditional radio chipset would see the outer packet only
Software-defined decoder in Orthrus can be written to see both
65
PHY Header PHY Data Unit
Preamble SFD Length Data CRC
PHY Header PHY Data Unit
Preamble SFD Length Preamble SFD Length Data CRC
RF Fuzzing // River Loop SecurityInterested? Get Involved!
Contribute something to TumbleRF:
• Generator for some cool new fuzzing idea you have
• Harness to check the state of a device you care about testing
• Interface to transmit with your favorite radio
Contribute to Orthrus:
• Firmware development
• State machine abstraction definitions
66
RF Fuzzing // River Loop Security
Thank You!
DEF CON 26 Crew
River Loop Security
Cruise Automation
Ionic Security
River Loop Security
https://github.com/riverloopsec/tumblerf
RF Fuzzing // River Loop Security
Questions?
@embeddedsec
@rmspeers
[matt|ryan]@riverloopsecurity.com
River Loop Security
https://github.com/riverloopsec/tumblerf

More Related Content

Similar to Designing and Applying Extensible RF Fuzzing Tools to Expose PHY Layer Vulnerabilities

OSINT RF Reverse Engineering by Marc Newlin
OSINT RF Reverse Engineering by Marc NewlinOSINT RF Reverse Engineering by Marc Newlin
OSINT RF Reverse Engineering by Marc Newlin
EC-Council
 
Smart Security System Using ARM And XBee For Boarder Areas( SYNOPSIS)
Smart Security System  Using ARM And XBee For Boarder Areas( SYNOPSIS)Smart Security System  Using ARM And XBee For Boarder Areas( SYNOPSIS)
Smart Security System Using ARM And XBee For Boarder Areas( SYNOPSIS)
WizApsProjects
 
Rf microwave pc board deign and layout
Rf   microwave pc board deign and layoutRf   microwave pc board deign and layout
Rf microwave pc board deign and layout
锐澔 龙
 
Wpmc2004 phy protection
Wpmc2004 phy protectionWpmc2004 phy protection
Wpmc2004 phy protection
Arpan Pal
 
Habibullah cdmabased
Habibullah cdmabasedHabibullah cdmabased
Habibullah cdmabased
hinalala
 
Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...
Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...
Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...
KevinYangYang
 

Similar to Designing and Applying Extensible RF Fuzzing Tools to Expose PHY Layer Vulnerabilities (20)

OSINT RF Reverse Engineering by Marc Newlin
OSINT RF Reverse Engineering by Marc NewlinOSINT RF Reverse Engineering by Marc Newlin
OSINT RF Reverse Engineering by Marc Newlin
 
Getting started with sdr
Getting started with sdrGetting started with sdr
Getting started with sdr
 
Telecommunications Concentration
Telecommunications ConcentrationTelecommunications Concentration
Telecommunications Concentration
 
Module 5 Pseudo Random Sequence(SEE NOW).pptx
Module 5 Pseudo Random Sequence(SEE NOW).pptxModule 5 Pseudo Random Sequence(SEE NOW).pptx
Module 5 Pseudo Random Sequence(SEE NOW).pptx
 
N5AC 2014-10-11 Pacificon SDR Advances
N5AC 2014-10-11 Pacificon SDR AdvancesN5AC 2014-10-11 Pacificon SDR Advances
N5AC 2014-10-11 Pacificon SDR Advances
 
Smart Security System Using ARM And XBee For Boarder Areas( SYNOPSIS)
Smart Security System  Using ARM And XBee For Boarder Areas( SYNOPSIS)Smart Security System  Using ARM And XBee For Boarder Areas( SYNOPSIS)
Smart Security System Using ARM And XBee For Boarder Areas( SYNOPSIS)
 
Playing in a Satellite environment
Playing in a Satellite environmentPlaying in a Satellite environment
Playing in a Satellite environment
 
Tesis Maestria - 1er Avance
Tesis Maestria - 1er AvanceTesis Maestria - 1er Avance
Tesis Maestria - 1er Avance
 
Networking interview questions
Networking interview questionsNetworking interview questions
Networking interview questions
 
Rf microwave pc board deign and layout
Rf   microwave pc board deign and layoutRf   microwave pc board deign and layout
Rf microwave pc board deign and layout
 
Wpmc2004 phy protection
Wpmc2004 phy protectionWpmc2004 phy protection
Wpmc2004 phy protection
 
Secure Data Transmission
Secure Data TransmissionSecure Data Transmission
Secure Data Transmission
 
Jeudis du Libre / Lorawan & The Things Network
Jeudis du Libre / Lorawan & The Things NetworkJeudis du Libre / Lorawan & The Things Network
Jeudis du Libre / Lorawan & The Things Network
 
Habibullah cdmabased
Habibullah cdmabasedHabibullah cdmabased
Habibullah cdmabased
 
Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...
Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...
Bluetooth Technology-Introduction to Bluetooth, Technical Specifications, Blu...
 
JUNOS: OSPF and BGP
JUNOS: OSPF and BGPJUNOS: OSPF and BGP
JUNOS: OSPF and BGP
 
Wireless security testing with attack by Keiichi Horiai - CODE BLUE 2015
Wireless security testing with attack by Keiichi Horiai - CODE BLUE 2015Wireless security testing with attack by Keiichi Horiai - CODE BLUE 2015
Wireless security testing with attack by Keiichi Horiai - CODE BLUE 2015
 
Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...
Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...
Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...
 
Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...
Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...
Implementation of XOR Based Pad Generation Mutual Authentication Protocol for...
 
(SACON) Harshit Agrawal - On The Wings of Time: Past, Present and Future of R...
(SACON) Harshit Agrawal - On The Wings of Time: Past, Present and Future of R...(SACON) Harshit Agrawal - On The Wings of Time: Past, Present and Future of R...
(SACON) Harshit Agrawal - On The Wings of Time: Past, Present and Future of R...
 

More from Priyanka Aash

More from 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
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Designing and Applying Extensible RF Fuzzing Tools to Expose PHY Layer Vulnerabilities

  • 1. RF Fuzzing // River Loop Security River Loop SecurityRiver Loop Security Designing RF Fuzzing Tools to Expose PHY Layer Vulnerabilities Matt Knight, Ryan Speers DEF CON
  • 2. RF Fuzzing // River Loop Securitywhois Matt Knight • Senior Security Engineer at Cruise Automation • RF Principal at River Loop Security • BE in EE from Dartmouth College • Software, hardware, and RF engineer • RF, SDR, and embedded systems Ryan Speers • Co-founder at River Loop Security • Director of Research at Ionic Security • Computer Science from Dartmouth College • Cryptography, embedded systems, IEEE . . , automated firmware analysis River Loop Security 2
  • 3. RF Fuzzing // River Loop SecurityBackground “Making and Breaking a Wireless IDS”, Troopers “Speaking the Local Dialect”, ACM WiSec • Ryan Speers, Sergey Bratus, Javier Vazquez, Ray Jenkins, bx, Travis Goodspeed, & David Dowd • Idiosyncrasies in PHY implementations Mechanisms for automating: • RF fuzzing • Bug discovery • PHY FSM fingerprint generation 3
  • 4. RF Fuzzing // River Loop SecurityAgenda Overview of traditional fuzzing techniques (software and networks) > How these do and don’t easily map to RF RF fuzzing overview and state of the art Ideal fuzzer design TumbleRF introduction and overview TumbleRF usage example Introducing Orthrus 4
  • 5. RF Fuzzing // River Loop Security Traditional Fuzzing Techniques
  • 6. RF Fuzzing // River Loop SecurityWhat is fuzzing? Measured application of pseudorandom input to a system Why fuzz? • Automates discovery of crashes, corner cases, bugs, etc. • Unexpected input → unexpected state 6
  • 7. RF Fuzzing // River Loop SecurityWhat can one fuzz? Fuzzers generally attach to system interfaces, namely I/O: • File format parsers • Network interfaces • Shared memory 7
  • 8. RF Fuzzing // River Loop SecuritySoftware Fuzzing State of the Art Abundant fully-featured software fuzzers • AFL / AFL-Unicorn • Peach • Scapy Software is easy to instrument and hook at every level What else can one fuzz? 8
  • 9. RF Fuzzing // River Loop Security Other Applications of Fuzzing
  • 10. RF Fuzzing // River Loop SecurityFuzzing Hardware Challenges: • H/W is often unique, less “standard interfaces” to measure on • May not be able to simulate well in a test harness Some Existing Techniques: • AFL-Unicorn: simulate firmware in Unicorn to fuzz • Bus Pirate: permutes pinouts and data rates to discover digital buses • JTAGulator: permutes pinouts that could match unlocked JTAG • … 10
  • 11. RF Fuzzing // River Loop SecurityFuzzing RF WiFuzz ● MAC-focused . protocol fuzzer Marc Newlin’s Mousejack research ● Injected fuzzed RF packets at nRF HID dongles while looking for USB output isotope: ● IEEE . . PHY fuzzer 11
  • 12. RF Fuzzing // River Loop SecurityExisting RF Fuzzing Limitations RF fuzzing projects are siloed / protocol-specific ● COTS radio chipsets ● Generally limited to MAC layer and up RF state is hard to instrument ● What constitutes a crash / bug / etc? Implicit trust in chipset – one can only see what one’s radio tells you is happening 12
  • 13. RF Fuzzing // River Loop SecurityTrust and Physical Layer Vulnerabilities Not all PHY state machines are created equal! Radio chipsets implement RF state machines differently • Differences can be fingerprinted and exploited • Initial results on . . were profound • Specially-crafted PHYs can target certain chipsets while avoiding others 13
  • 14. RF Fuzzing // River Loop Security RF PHYs: A Primer
  • 15. RF Fuzzing // River Loop SecurityHow Radios Work Transmitter: digital data (bits) → analog RF energy discrete → continuous Receiver: analog RF energy → digital data (bits) continuous → discrete Receiving comes down to sampling and synchronization! 15
  • 16. RF Fuzzing // River Loop SecurityDigitally Modulated Waveforms 16
  • 17. RF Fuzzing // River Loop SecurityDigitally Modulated Waveforms Preamble Start of Frame Delimiter (SFD) / Sync Word Data 17
  • 18. RF Fuzzing // River Loop SecurityRF PHY State Machines 18
  • 19. RF Fuzzing // River Loop SecurityRF PHY State Machines 19
  • 20. RF Fuzzing // River Loop Security … RF PHY State Machines 20
  • 21. RF Fuzzing // River Loop SecurityRF PHY State Machines 21 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 4 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 22. RF Fuzzing // River Loop SecurityRF PHY State Machines 22 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 5 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 23. RF Fuzzing // River Loop SecurityRF PHY State Machines 23 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 3 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 24. RF Fuzzing // River Loop SecurityRF PHY State Machines 24 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 6 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 25. RF Fuzzing // River Loop SecurityRF PHY State Machines 25 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 2 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 26. RF Fuzzing // River Loop SecurityRF PHY State Machines 26 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 7 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 27. RF Fuzzing // River Loop SecurityRF PHY State Machines 27 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 28. RF Fuzzing // River Loop SecurityRF PHY State Machines 28 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 8 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 29. RF Fuzzing // River Loop SecurityRF PHY State Machines 29 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance Hamming Distance ● # bits that are different between two values ● If , values are equal When Hamming Distance <= some threshold, a preamble has been detected
  • 30. RF Fuzzing // River Loop SecurityRF PHY State Machines 30 Repeat the process, correlating for the SFD value instead, to find the start of the PHY data unit 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 4 → RF Symbol Value Preamble Correlation Value XOR Result → Shift Register → Hamming Distance
  • 31. RF Fuzzing // River Loop SecuritySync Words and Magic Numbers Turns out not all sync words are created equally • 0x00000000 == 802.15.4 Preamble • 0xA7 == 802.15.4 Sync Word The isotope research showed some chipsets correlated on “different” preambles / sync words than others 31
  • 32. RF Fuzzing // River Loop SecuritySync Words and Magic Numbers Turns out not all sync words are created equally • 0x00000000 == 802.15.4 Preamble • 0xA7 == 802.15.4 Sync Word The isotope research showed some chipsets correlated on “different” preambles / sync words than others strategically malformed 32
  • 33. RF Fuzzing // River Loop SecuritySync Words and Magic Numbers Turns out not all sync words are created equally • 0xXXXX0000 == 802.15.4 Preamble • 0xA7 == 802.15.4 Sync Word The isotope research showed some chipsets correlated on “different” preambles / sync words than others Short preamble? strategically malformed 33
  • 34. RF Fuzzing // River Loop SecuritySync Words and Magic Numbers Turns out not all sync words are created equally • 0xXXXX0000 == 802.15.4 Preamble • 0xAF == 802.15.4 Sync Word The isotope research showed some chipsets correlated on “different” preambles / sync words than others Short preamble? Flipped bits in SFD? strategically malformed 34
  • 35. RF Fuzzing // River Loop Security Fuzzing Makes Discovery Systematic
  • 36. RF Fuzzing // River Loop Security Ideal RF Fuzzer Design
  • 37. RF Fuzzing // River Loop SecurityIdeal Features Extensible: easy to hook up new radios Flexible: modular to enable plugging and playing different engines / interfaces / test cases Reusable: re-use designs from one protocol on another Comprehensive: exposes PHY in addition to MAC 37
  • 38. RF Fuzzing // River Loop Security TumbleRF
  • 39. RF Fuzzing // River Loop SecurityTumbleRF Software framework enabling fuzzing arbitrary RF protocols Abstracts key components for easy extension: ● Radio API ● Test case generation API 39
  • 40. RF Fuzzing // River Loop SecurityTumbleRF Architecture 40
  • 41. RF Fuzzing // River Loop SecurityInterfaces RF injection/sniffing functions abstracted to generic template To add a new radio, inherit base Interface class and redefine its functions to map to the radio driver: [set/get]_channel() [set/get]_sfd() [set/get]_preamble() tx() rx_start() rx_stop() rx_poll() 41
  • 42. RF Fuzzing // River Loop SecurityGenerators Rulesets for generating fuzzed input (pythonically) Extend to interface with software fuzzers of your choice Implement functions: yield_control_case() yield_test_case() Three generators currently: • Preamble length (isotope) • Non-standard symbols in preamble (isotope) • Random payloads in message 42
  • 43. RF Fuzzing // River Loop SecurityHarnesses Monitor the device under test to evaluate test case results Manage device state in between tests Three handlers currently: • Received Frame Check: listen for given frames via an RF interface • SSH Process Check: check whether processes on target crashed (beta) • Serial Check: watch for specific output via Arduino (beta) 43
  • 44. RF Fuzzing // River Loop SecurityTest Cases Coordinate the generator, interface, and harness. Typically very lightweight. Extend BaseCase to implement run_test() or build upon others, e.g.: Extend AlternatorCase to implement: does_control_case_pass() throw_test_case() Alternates test cases with known-good control case to check for crashes / ensure interface is still up 44
  • 45. RF Fuzzing // River Loop SecurityTumbleRF Architecture: Demo Setup 45
  • 46. RF Fuzzing // River Loop SecurityExample Generated Data: Preamble Length Standard . . PHY Header == x + xA + xLL 46
  • 47. RF Fuzzing // River Loop SecurityExample Generated Data: Preamble Length Modify GNU Radio gr-ieee802-15-4 to omit PHY header Generate arbitrary PHY headers via TumbleRF test case generator47
  • 48. RF Fuzzing // River Loop Security Demo
  • 49. RF Fuzzing // River Loop SecurityResults Dump Test: preamble_length_apimote.json (using Dot15d4PreambleLengthGenerator) Case 0: 0 valid, 50 invalid example case: a70a230800ffff000007fba6 Case 1: 0 valid, 50 invalid example case: 70aa308220f0ff0f0070d0eafa Case 2: 45 valid, 5 invalid example case: 00a70a230804ffff00000757b6 Case 3: 0 valid, 50 invalid example case: 0070aa308260f0ff0f007010e0fb Case 4: 50 valid, 0 invalid example case: 0000a70a230808ffff000007a387 Case 5: 0 valid, 50 invalid example case: 000070aa3082a0f0ff0f007050fff8 Case 6: 50 valid, 0 invalid example case: 000000a70a23080cffff0000070f97 Case 7: 0 valid, 50 invalid example case: 00000070aa3082e0f0ff0f007090f5f9 Case 8: 48 valid, 2 invalid example case: 00000000a70a230810ffff0000074be4 Case 9: 0 valid, 50 invalid example case: 0000000070aa308220f1ff0f0070d0c1fe Test: preamble_length_cc2531.json (using Dot15d4PreambleLengthGenerator) Case 0: 0 valid, 50 invalid example case: a70a230800ffff000007fba6 Case 1: 0 valid, 50 invalid example case: 70aa308220f0ff0f0070d0eafa Case 2: 13 valid, 37 invalid example case: 00a70a230804ffff00000757b6 Case 3: 0 valid, 50 invalid example case: 0070aa308260f0ff0f007010e0fb Case 4: 48 valid, 2 invalid example case: 0000a70a230808ffff000007a387 Case 5: 0 valid, 50 invalid example case: 000070aa3082a0f0ff0f007050fff8 Case 6: 50 valid, 0 invalid example case: 000000a70a23080cffff0000070f97 Case 7: 0 valid, 50 invalid example case: 00000070aa3082e0f0ff0f007090f5f9 Case 8: 49 valid, 1 invalid example case: 00000000a70a230810ffff0000074be4 Case 9: 0 valid, 50 invalid example case: 0000000070aa308220f1ff0f0070d0c1fe Test: preamble_length_rzusbstick.json (using Dot15d4PreambleLengthGenerator) Case 0: 0 valid, 50 invalid example case: a70a230800ffff000007fb Case 1: 0 valid, 50 invalid example case: 70aa308230f0ff0f007060 Case 2: 0 valid, 50 invalid example case: 00a70a230805ffff000007 Case 3: 0 valid, 50 invalid example case: 0070aa308270f0ff0f0070 Case 4: 0 valid, 50 invalid example case: 0000a70a230809ffff0000 Case 5: 0 valid, 50 invalid example case: 000070aa3082b0f0ff0f00 Case 6: 37 valid, 13 invalid example case: 000000a70a23080effff00 Case 7: 0 valid, 50 invalid example case: 00000070aa308200f1ff0f Case 8: 41 valid, 9 invalid example case: 00000000a70a230813ffff Case 9: 0 valid, 50 invalid example case: 0000000070aa308250f1ff TI CC TI CC Atmel AT RF 3 transceivers 2 manufacturers 1 protocol 3 behaviors! 49
  • 50. RF Fuzzing // River Loop Security Why Care? Those results can allow for WIDS evasion and selective targeting.
  • 51. RF Fuzzing // River Loop Security Developing RF Interfaces
  • 52. RF Fuzzing // River Loop SecurityRF Interfaces Not all radios can generate arbitrary preambles, SFDs, modulations, packet formats, etc. PHY manipulation requires: ● Software Defined Radio ● Transceiver chipset with lots of configurations 52
  • 53. RF Fuzzing // River Loop SecuritySoftware Defined Radio Prior example used Software Defined Radio: ● GNU Radio and a USRP ● gr-ieee802-15-4 is flexible because it’s well designed SDR has some drawbacks: ● GNU Radio is complicated and hard to develop for ● SDRs are expensive ● High latency for host-based DSP ● Power hungry: hard to embed 53
  • 54. RF Fuzzing // River Loop SecurityConfigurable Transceivers Discrete radio chipsets are purpose built: ● Generally speak protocol really well ● Band-limited ● Low power ● Some kind of API Examples include: 54
  • 55. RF Fuzzing // River Loop SecurityFlexible Transceivers Certain discrete transceivers can be flexible, like SDR! Some radios expose PHY configuration registers: ● Preamble length ● SFD magic number ● Header symbol error tolerance ● etc. 55
  • 56. RF Fuzzing // River Loop SecurityApiMote ( / ) ApiMote, designed by Javier & Ryan, exposed PHY registers in TI CC : ● Preamble length ● SFD value ● Digital FSM state status pins for low latency injection 56 Pre-assembled/flashed are available via team@riverloopsecurity.com
  • 57. RF Fuzzing // River Loop SecurityApiMote ( / ) However, the ApiMote needs an update: ● CC is EOL ● Expensive BOM ● USB issues CC and others don’t have the same degree of PHY configuration, so started looking at other chipsets 57
  • 58. RF Fuzzing // River Loop SecurityEnter ADF Most interesting option: Analog Devices ADF . GHz . . radio with lots of features: ● Several modulations ● Lots of configurability ● SPORT mode 58
  • 59. RF Fuzzing // River Loop SecuritySPORT Mode? Streams demodulated symbols over serial, up to Msps ● Bypasses decoding and PHY header / packet framing ● We can implement these parts in software Full control of PHY for most . GHz protocols! 59 ApiMote . >> . .
  • 60. RF Fuzzing // River Loop Security Introducing Orthrus
  • 61. RF Fuzzing // River Loop SecurityOrthrus ( / ) Spiritual successor to the ApiMote Named for -headed dog from Greek mythology ● Why? Because Orthrus has two heads! 61
  • 62. RF Fuzzing // River Loop SecurityOrthrus ( / ) NXP LPC ARM MCU ● Host communication via USB ● Controlling radios ● RF state machine implementation and control x ADF radios ● ADF has a slow re-tune time ○ allows for pre-emptive re-tune! ● can listen while the other sits ready to transmit ○ High-speed responsive jamming 62
  • 63. RF Fuzzing // River Loop SecurityInitial Prototype ADF dev board wired to Teensy: Custom PCB is in progress 63
  • 64. RF Fuzzing // River Loop SecurityOrthrus RF Design Flow Implement event loop in firmware Blue-Green frontends for fast retuning / channel hopping TODO: State machine abstraction language? ● e.g. XASM / ASML / SCXML ● Implement PHYs via config definitions rather than code 64
  • 65. RF Fuzzing // River Loop SecurityPacket-in-Packet Detection . . Frame Structure: Packet-in-Packet frame structure: Traditional radio chipset would see the outer packet only Software-defined decoder in Orthrus can be written to see both 65 PHY Header PHY Data Unit Preamble SFD Length Data CRC PHY Header PHY Data Unit Preamble SFD Length Preamble SFD Length Data CRC
  • 66. RF Fuzzing // River Loop SecurityInterested? Get Involved! Contribute something to TumbleRF: • Generator for some cool new fuzzing idea you have • Harness to check the state of a device you care about testing • Interface to transmit with your favorite radio Contribute to Orthrus: • Firmware development • State machine abstraction definitions 66
  • 67. RF Fuzzing // River Loop Security Thank You! DEF CON 26 Crew River Loop Security Cruise Automation Ionic Security River Loop Security https://github.com/riverloopsec/tumblerf
  • 68. RF Fuzzing // River Loop Security Questions? @embeddedsec @rmspeers [matt|ryan]@riverloopsecurity.com River Loop Security https://github.com/riverloopsec/tumblerf