+ All Categories
Home > Documents > IoTFuzzer: Discovering Memory Corruptions in IoT Through...

IoTFuzzer: Discovering Memory Corruptions in IoT Through...

Date post: 28-May-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
26
1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based Fuzzing Jiongyi Chen 1 , Wenrui Diao 2 , Qingchuan Zhao 3 , Chaoshun Zuo 3 , Zhiqiang Lin 3,4 , XiaoFeng Wang 5 , Wing Cheong Lau 1 , Menghan Sun 1 , Ronghai Yang 1 , Kehuan Zhang 1 The Chinese University of Hong Kong 1 , Jinan University 2 , University of Texas at Dallas 3 , The Ohio State University 4 , Indiana University Bloomington 5
Transcript
Page 1: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

1/22

IoTFuzzer: Discovering Memory Corruptionsin IoT Through App-based Fuzzing

Jiongyi Chen1, Wenrui Diao2, Qingchuan Zhao3, ChaoshunZuo3, Zhiqiang Lin3,4, XiaoFeng Wang5, Wing Cheong Lau1,

Menghan Sun1, Ronghai Yang1, Kehuan Zhang1

The Chinese University of Hong Kong1, Jinan University2, University of Texas atDallas3, The Ohio State University4, Indiana University Bloomington5

Page 2: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

2/22

Introduction

More and more IoT devices are entering the consumer market,forming a huge market:

I Connected ”things” will reach 20.4 billion by 2020 [1]

I Global smart home market will rise to $53.45 billion by 2022

Source: Zion Research Analysis 2017

Page 3: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

3/22

Introduction

I More than 90 independent IoT attack incidents have beenreported from 2014 to 2016 [2]

I Examples: Mirai botnet, Reaper

The firmware of IoT device is poorly implemented and looselyprotected

Page 4: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

4/22

Vulnerability Detection in IoT Devices

1. Firmware acquisition: vendors may not make their firmwareimages publicly available

2. Firmware identification and unpacking: unknownarchitectures, proprietary compression/encryption algorithms

3. Executable analysis:I Static analysis: disassembling errors, inaccurate points-to

analysis, etcI Dynamic analysis: disabled debugging port, emulation

problems for extracted program, etc

Page 5: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

5/22

Motivation

I IoT official apps play an important role in controlling andmanaging IoT devices

I They contain rich information about IoT devices

Command

messages

Protocol specifications & encryption

schemes of messages

Major data input

channel of IoT device

Page 6: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

6/22

IoTFuzzer

A firmware-free fuzzing framework that:

I aims at detecting memory corruptions in IoT devices

I utilizes program logic in official mobile apps of IoT to producemeaningful test messages

I fuzzes in a protocol-guided way without explicitly reverseengineering the protocol

Page 7: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

7/22

Technical Challenges

Blank

Blank

I Diverse protocols andformats (e.g., XML, JSON,key-value pairs)

I Use of homemadecryptographic functions

I Crash monitoring

Page 8: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

8/22

Our Solutions

I Mutate protocol fields before they are constructed as amessage

I Replay cryptographic functions in context

I Insert heartbeat messages

Page 9: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

9/22

System Architecture

I Phase I: App Analysis

I Phase II: Fuzzing

Page 10: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

9/22

System Architecture

I Phase I: App Analysis

I Phase II: Fuzzing

Page 11: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

10/22

Phase I: UI Analysis

I To identify networking UI elements, we construct code pathsfrom networking APIs to UI event handlers

I To reach certain activities and trigger the network sendingevents, we interact with UI elements and record activitytransitions.

Page 12: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

11/22

Phase I: Taint Tracking

The goal is to identify protocol fields and the functions that thefields pass to

I Taint sources: strings, system APIs, user inputs

I Taint sinks: data uses at networking APIs and encryptionfunctions

Page 13: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

12/22

Taint Tracking Output Example

Example code: Taint tracking outputs:

Page 14: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

13/22

Phase II: Runtime Mutation

Hooked functions and mutated parameters in the example code:

I Fuzzing scheduling: to only fuzz a subset of all fieldsI Fuzzing policy:

I Change the length of stringsI Change the integer, double or float valuesI Change the types, or provide empty values

Page 15: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

14/22

Phase II: Response Monitoring

I Response types:I Expected responseI Unexpected responseI No responseI Disconnection

I Crash detection:I TCP-based connection: disconnectionI UDP-based connection: inserting heartbeat messages during

fuzzing to confirm the status of IoT devices

Page 16: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

15/22

Evaluation

We selected 17 products of different categories offered bymainstream manufacturers

Device Type Vendor Device Model Protocol and Format Encryption?IP Camera D-Link DCS-5010L HTTP, K-V Pairs No

Smart BulbTP-Link LB100 UDP, JSON YesKONKE KK-Light UDP, String Yes

Smart PlugBelkin WeMo Switch HTTP, XML NoTP-Link HS110 TCP, JSON YesD-Link DSP-W215 HNAP, XML No

Printer Brother HL-L5100DN LPD & HTTP No

NASWestern Digital

My Passport Pro HTTP, JSON NoMy Cloud HTTP, JSON No

QNAP TS-212P HTTP, K-V Pairs NoIoT Hub Philips Hue Bridge HTTP, JSON No

Home RouterNETGEAR N300 HTTP, XML NoLinksys E1200 HNAP, XML NoXiaomi Xiaomi Router HTTP, K-V Pairs No

Story Teller Xiaomi C-1 UDP, JSON Yes

Page 17: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

16/22

Evaluation

15 memory corruptions were discovered (including 8 zero-days)

Device Vulnerability Type # of IssuesBelkin WeMo (Switch) Null Pointer Dereference 1TP-Link HS110 (Plug) Null Pointer Dereference 3D-Link DSP-W215 (Plug) Buffer Overflow (Stack-based) 4WD My Cloud (NAS) Buffer Overflow (Stack-based) 1QNAP TS-212P (NAS) Buffer Overflow (Heap-based) 2Brother HL-L5100DN (Printer) Unknown Crash 1Philips Hue Bridge (Hub) Unknown Crash 1WD My Passport Pro (NAS) Unknown Crash 1POVOS PW103 (Humidifier) Unknown Crash 1

Page 18: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

17/22

Evaluation

Crashes reported by IoTFuzzer v.s. Vulnerability-led crash

Page 19: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

18/22

Evaluation

Comparison with two popular fuzzers

Page 20: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

18/22

Evaluation

Comparison with two popular fuzzers

Page 21: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

18/22

Evaluation

Comparison with two popular fuzzers

Page 22: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

18/22

Evaluation

Comparison with two popular fuzzers

Page 23: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

19/22

Limitations and Future Work

I Device acquisition: require physical IoT devices

I Connection mode: only support local Wi-Fi connection

I Code coverage: can only fuzz app-related code in IoT devices

I Crash detection: only detect memory corruptions that causeprogram to crash

Page 24: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

20/22

Summary

I We built a firmware-free fuzzing framework for IoT devicesbased on mobile apps

I We developed several new techniques, such as protocol-guidedfuzzing without protocol specifications and in-contextcryptographic and network function replay

I By conducting experiments in real environment, we identified15 memory corruptions in 17 IoT devices with IoTFuzzer

Page 25: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

21/22

Q & A

Thank you!

Page 26: IoTFuzzer: Discovering Memory Corruptions in IoT Through ...web.cse.ohio-state.edu/~lin.3021/file/NDSS18b-slides.pdf1/22 IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based

22/22

References

[1]. Gartner, “Internet of Things (IoT) Market,”https://www.gartner.com/ newsroom/id/3598917, February 2017fake line[2]. N. Zhang, S. Demetriou, X. Mi, W. Diao, K. Yuan, P. Zong,F. Qian, X. Wang, K. Chen, Y. Tian, C. A. Gunter, K. Zhang, P.Tague, and Y. Lin, “Understanding IoT Security Through the DataCrystal Ball: Where We Are Now and Where We Are Going toBe,” CoRR, vol. abs/1703.09809, 2017.


Recommended