WiFrst: Bridging the Information Gap for Debugging of Networked - - PowerPoint PPT Presentation

wifr st bridging the information gap for debugging of
SMART_READER_LITE
LIVE PREVIEW

WiFrst: Bridging the Information Gap for Debugging of Networked - - PowerPoint PPT Presentation

WiFrst: Bridging the Information Gap for Debugging of Networked Embedded Systems Will McGrath , Jeremy Warner , Mitchell Karchemsky, Andrew Head, Daniel Drew, and Bjoern Hartmann IoT Device Debugging Protocol error? Wiring issue?


slide-1
SLIDE 1

WiFröst: Bridging the Information Gap for Debugging of Networked Embedded Systems

Will McGrath, Jeremy Warner, Mitchell Karchemsky, Andrew Head, Daniel Drew, and Bjoern Hartmann

slide-2
SLIDE 2 2

Defective part? Peripheral not configured? Wiring issue? Protocol error? Program logic bug?

IoT Device Debugging

slide-3
SLIDE 3 3

IoT Device Debugging

slide-4
SLIDE 4 4

IoT System Debugging

slide-5
SLIDE 5 5

Server Down or Overloaded? Router Off or Overloaded? Intermittent Radio Interference? Poorly Formatted API Request? Bad Server Address? Out of Range?

IoT System Debugging

Defective part? Peripheral not configured? Wiring issue? Protocol error? Program logic bug?

Bad Network Configuration or Credentials? Wrong or Invalid API Key?

slide-6
SLIDE 6 6

API Key / Password Sent in Plaintext Abnormal Network Traffic? Using Deprecated API?

IoT System Security

Defective part? Peripheral not configured? Wiring issue? Protocol error? Program logic bug?

Insecure Protocol Usage? Outdated firmware?

slide-7
SLIDE 7

Existing Approaches

JTAG debugger Logic analyzer Network analyzer

slide-8
SLIDE 8 8

Each tool observes only a small slice of device state, and it is generally difficult to trace event causality across tool boundaries due to different representations different representations and a lack of time synchronization a lack of time synchronization

slide-9
SLIDE 9 9

Ubiquitous instrumentation, Ubiquitous instrumentation, visualization, and checking visualization, and checking can help users more effectively debug and understand IoT systems across hardware, software, and device boundaries

slide-10
SLIDE 10

Instrumentation

Program and library instrumentation Router and server Instrumentation WiFröst

10
slide-11
SLIDE 11 11

Server Router Device Capture PC DB WiFröst IDE (MITM proxy)

Our Approach

Logic analyzer Network analyzer

slide-12
SLIDE 12

Introduction Related Projects Related Projects IDE Features Checks Walkthrough Implementation Future Work

slide-13
SLIDE 13

Embedded Systems and Electronics Debugging

  • Visible Breadboard [Ochiai, 2014]
  • CurrentViz [Wu et al., 2017]
  • Scanalog [Strasnick et al., 2017]

Embedded System Resource Usage

  • NesC [Gay et al., 2014]
  • Quanto [Fonseca et al., 2008]
slide-14
SLIDE 14

Network and Distributed System Debugging

  • ndb [Handigol et al., 2012]
  • Netsight [Handigol et al., 2014]
  • Whodunit [Chanda et al., 2007]
  • xtrace [Fonseca et al., 2007]
  • OFRewind [Wundsam et al., 2011]
  • Pinpoint [Chen et al. 2002]
  • Dapper [Sigelman et al. 2010]
  • Pip [Reynolds et al., 2006]
slide-15
SLIDE 15

Integrated Debugging Tools

Toastboard, 2016 WiFröst, 2018 Bifröst, 2017

15
slide-16
SLIDE 16

”Component is backwards” “Invalid parameter to web API call” “Reading from a pin set to output”

16

Toastboard WiFröst BiFröst

Coverage

slide-17
SLIDE 17

Introduction Related Projects IDE Features IDE Features Checks Walkthrough Implementation Future Work

slide-18
SLIDE 18

Trace

18

Network Connections User Code Function Stack Check Results

WiFröst IDE

Console User Code Event Information Application Health Bars

slide-19
SLIDE 19

Trace

19

Network Connections User Code Function Stack Check Results

WiFröst IDE

Console User Code Event Information Application Health Bars

slide-20
SLIDE 20

Trace

20
slide-21
SLIDE 21

Trace

21
slide-22
SLIDE 22

Trace

22
slide-23
SLIDE 23

Trace

23
slide-24
SLIDE 24

Visual Debugging

24

VS

ERROR OK (200)

slide-25
SLIDE 25

Health Bars

25
slide-26
SLIDE 26

Introduction Related Projects IDE Features Checks Checks Walkthrough Implementation Future Work

slide-27
SLIDE 27

Checks

27

Wi-Fi chip connection broken

Incorrect Wi-Fi SSID

Incorrect Wi-Fi password

√ √

Bad host name

Weak connection to router

Buggy web API usage Can't access Internet Incorrect authentication

slide-28
SLIDE 28

Generic Checks

28
slide-29
SLIDE 29

Custom Checks

29
slide-30
SLIDE 30

Introduction Related Projects IDE Features Checks Walkthrough Walkthrough Implementation Future Work

slide-31
SLIDE 31 31

Walkthrough - Weather

Wunderground

slide-32
SLIDE 32 32

Walkthrough – Connecting to WiFi

slide-33
SLIDE 33 33

Walkthrough – Connecting to WiFi

slide-34
SLIDE 34 34

Walkthrough – Incorrect Domain Name

slide-35
SLIDE 35 35

Walkthrough – Incorrect Domain Name

slide-36
SLIDE 36 36

Walkthrough – Incorrect Domain Name

slide-37
SLIDE 37 37

Walkthrough – API Key

slide-38
SLIDE 38 38

Walkthrough – API Usage

slide-39
SLIDE 39 39

Walkthrough – Correct Behavior

slide-40
SLIDE 40

Introduction Related Projects IDE Features Checks Walkthrough Implementation Implementation Future Work

slide-41
SLIDE 41 41

WiFröst - Implementation

Server Router Device Logic Analyzer Capture PC DB WiFröst IDE (Mitmproxy)

slide-42
SLIDE 42

Compilation

42

User Code WiFröst IDE

slide-43
SLIDE 43

Network Instrumentation

43

GET / HTTP/1.1 Content-Type: application/ json Accept: */* x-wftag: 0123

Server Router Device

HTTP/1.1 200 OK Server: nginx Content-Type: application/ json Connection: close Expires: Mon, 1 Aug 2011 09:00:00 GMT HTTP/1.1 200 OK Server: nginx Content-Type: application/ json Connection: close Expires: Mon, 1 Aug 2011 09:00:00 GMT x-wftag: 0123

Connection Begin Connection End Request Received Response Received Request Handled (if instrumented) (Mitmproxy)

slide-44
SLIDE 44 44

Time Domains

Server Router Device Logic Analyzer Capture PC DB WiFröst IDE

μs resolution ms resolution

(Mitmproxy) Ntp

slide-45
SLIDE 45

Time Scaling

45

Actual Logical

slide-46
SLIDE 46 46

Automatic code and network instrumentation, checking, and trace visualization can help users better understand and debug their networked embedded devices.

slide-47
SLIDE 47

Introduction Related Projects IDE Features Checks Walkthrough Implementation Future Work Future Work

slide-48
SLIDE 48

Future Work

Instrumented Breadboard Microcontroller pin capture Program and library instrumentation Router and server Instrumentation

48
slide-49
SLIDE 49

Questions?

49
slide-50
SLIDE 50

extra slides

buried/reference

slide-51
SLIDE 51 51

Trace

51

User Code Console Timeline Checks

slide-52
SLIDE 52 52

WiFröst

slide-53
SLIDE 53

More related work…

  • Bjoern said that he would like 2-3 slides of related work

based on a desire for tying more projects together in a cohesive manner.

53
slide-54
SLIDE 54 54

Preliminary User Feedback

Interfacing with the Phillips Hue API from Arduino using WiFröst Users made effective use of the visualization and automatic checks for guidance ”Auto-formatting logs is nice, it’s work done for me.” ”Helpful for not only debugging, but also learning” ”Takes away the headache of finding [information] manually”

slide-55
SLIDE 55

Our Integrated Electronic Debugging Tools

55

Instrumented Breadboard Microcontroller pin capture Program and library instrumentation Router and server Instrumentation

Toastboard Wifröst Bifröst

Instrumentation Checking +

slide-56
SLIDE 56

Trace

56

Network Connections User Code Function Stack Check Results

WiFröst: Exploration

Console User Code Event Information Application Health Bars

slide-57
SLIDE 57 57

Each tool observes only a small slice of a device's state and it's generally difficult to trace the causality of an event across tool boundaries due to different representations and lack of time synchronization

slide-58
SLIDE 58

Instrumentation

Program and library instrumentation Router and server Instrumentation WiFröst

58