Top Banner
The Internet Of Things We’ve Got To Chat
37

The Internet of Things: We've Got to Chat

Jan 15, 2015

Download

Technology

Mark Stanislav

Similar to the explosive growth of cloud computing, the "Internet of Things" (IoT) has reached a tipping point where a serious look at the nexus of convenience versus security needs to take place. The cost, size, and complexity of chipsets that allow for Internet-enabled devices have all dramatically shrunk, making the barrier to entry into the IoT market negligible. With Kickstarter and Indiegogo helping to enable entrepreneurs to have their ideas come to market quicker than ever, the IoT expansion is happening faster than most consumers (or security professionals) realize.

This presentation will examine some of the recent failures of IoT security, engineering challenges facing entrepreneurs, and a look at the IoT security researcher quandary. Details will be given about a new effort to help all parties involved proceed with the IoT in a safer, more successful manner. Whether you're a security researcher, software engineer, or product designer, this presentation will represent the thoughtful look at the state of IoT security we desperately need.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Internet of Things: We've Got to Chat

The Internet Of ThingsWe’ve Got To Chat

Page 2: The Internet of Things: We've Got to Chat

Introduction

Mark Stanislav

Security Evangelist

Zach Lanier

Sr. Security Researcher

Page 3: The Internet of Things: We've Got to Chat

The Internet of Things

Page 4: The Internet of Things: We've Got to Chat

About The Internet Of Things“The Internet of Things is the network of physical objects that contain embedded technology to communicate and sense or interact with their internal states or the external environment.”, Gartner IT Glossary1

“Machine to machine (M2M) refers to technologies that allow both wireless and wired systems to communicate with other devices of the same type.”, Wikipedia2

IoT Growth Estimates

* Gartner: 26 billion units by 20203

* ABI Research: 30 billion units by 20204

4. https://www.abiresearch.com/press/more-than-30-billion-devices-will-wirelessly-conne

3. http://www.gartner.com/newsroom/id/26360731. http://www.gartner.com/it-glossary/internet-of-things/

2. http://en.wikipedia.org/wiki/Internet_of_Things

Page 5: The Internet of Things: We've Got to Chat

There’s A Shift Underway You Should Know About• The IoT growth that we’re all expecting won’t just

be from large vendors like Belkin, TRENDnet, Cisco, and Ericsson

• Postscapes1 and Wolfram Alpha2 list a few hundred IoT-related companies, most of which you’ve likely never heard of

• Crowd-funding web sites are going to produce many of the newest IoT devices we all want to use

• Entrepreneurs likely have no experience with information security, nor the budget to afford help

• They also won’t know what a “security researcher” is or why you’re contacting them…

1. http://postscapes.com/companies/ 2. http://devices.wolfram.com

Page 6: The Internet of Things: We've Got to Chat

The Internet of Things “Line of Insanity”TM

Sane Reasonable InsaneQuestionable

Egg TrayIP Camera Door LockDoor Bell

Page 7: The Internet of Things: We've Got to Chat

Cheap Hardware, Unlimited Possibilities

Electric Imp ($25) Gumstix ($169) Arduino ($75)

Raspberry Pi ($35)Intel Quark ($?)

Page 8: The Internet of Things: We've Got to Chat

Plenty Of Choices, How Do You Determine Security?

Philips ($60) LimitlessLED ($23)INSTEON ($30)

Vendors could each use different hardware, software, APIs, third-party service providers, and patching mechanisms

Page 9: The Internet of Things: We've Got to Chat

The Government Is Watching

January 8th, 2014 FTC Commissioner Maureen Ohlhausen sits on panel at CES about IoT3

November 21st, 2013 Internet of Things - Privacy and Security in a Connected World Workshop2

February 7th, 2014 FTC approves final order settling charges against TRENDnet, Inc.4

June 3rd, 2013 Software & Information Industry Association asks FTC to be careful with IoT1

1. https://www.siia.net/blog/index.php/2013/06/siia-to-ftc-internet-of-things-requires-technology-neutral-policies-and-flexible-privacy-framework/

3. http://www.adweek.com/news/technology/will-washington-move-quickly-regulate-internet-things-154863

2. http://www.ftc.gov/news-events/events-calendar/2013/11/internet-things-privacy-and-security-connected-world

4. http://www.ftc.gov/news-events/press-releases/2014/02/ftc-approves-final-order-settling-charges-against-trendnet-inc

February 18th, 2014 US CERT works with IOActive to resolve Belkin WeMo vulnerabilities5

5. http://www.kb.cert.org/vuls/id/656302

Page 10: The Internet of Things: We've Got to Chat

A Case Study in IoT Failure - IZON

Page 11: The Internet of Things: We've Got to Chat

IoT Ecosystem

Page 12: The Internet of Things: We've Got to Chat

CrowdFunding & IoTPinoccio

Wunderbar

KoolThings

Twine

Knut

Tessel

Canary

Piper

Page 13: The Internet of Things: We've Got to Chat

Challenges Faced

Page 14: The Internet of Things: We've Got to Chat

What’s Better Than One Vulnerable Device?

Interconnected Vulnerable Devices!

• If-This-Then-That (IFTTT) supports over 80 platforms, services, and devices

• Allows for event-based actions across disparate technologies

• If the CO2 in this room is unsafe, change my lightbulb to be red to warn me

• This behavior will become a consumer expectation rather than merely a “nice to have”

Page 15: The Internet of Things: We've Got to Chat

Challenges

•Hardware security

•Software security

•Comms/Network security

•Platform security

•User awareness & behavior

•Vulnerability handling & disclosure awareness

Page 16: The Internet of Things: We've Got to Chat

Challenges: Hardware Security

• Many devices use generic SoCs/boards

• Quick development, few security features

• i.e. “HW hacking made easy” - serial consoles, FW dumping/JTAGs, etc.

• HW-based trusted execution and HSMs are practically nil

• Prevalence/distribution of same components, firmware, etc. means one bug could affect many products

• Little expertise required to design, build, and ship an “IoT Product”

Page 17: The Internet of Things: We've Got to Chat

Challenges: Hardware Security (Cont’d…)

+ =+

Least common denominator:

Logic analyzer Bus Pirate UART headers Console!

Page 18: The Internet of Things: We've Got to Chat

Challenges: Software Security• Development environments don’t

necessarily make security controls/options “clear”

• Selected platform may drive/restrict language choices

% grep -Er "\s(mem|str)cpy\(" . … ./apps/http-post-auth/http-post-auth.c: strcpy(s->message, "status="); ./apps/http-post-auth/http-post-auth.c: strcpy(&s->message[7], msg); ./apps/irc/irc.c: memcpy(log, &log[LOG_WIDTH], LOG_WIDTH * (LOG_HEIGHT - 1)); ./apps/irc/irc.c: memcpy(log, &log[LOG_WIDTH], LOG_WIDTH * (LOG_HEIGHT - 1)); ./apps/ping6/ping6.c: memcpy(command, (void *)"ping6", 5); ./apps/rest-coap/coap-common.c: memcpy( ./apps/rest-coap/coap-common.c: memcpy((char*)&buffer[index], option->value, option->len); ./apps/rest-coap/coap-common.c: memcpy(&buffer[index], packet->payload, packet->payload_len); ./apps/rest-coap/coap-server.c: memcpy(option->value, value, len); ./apps/rest-common/buffer.c: memcpy(buffer, data, len); ./apps/rest-common/buffer.c: strcpy(buffer, text); ./apps/rest-common/rest-util.c: memcpy(p + 4 - size, buf, size); ./apps/rest-common/rest-util.c: memcpy(buf, ((char*)(&data)) + 4 - size, size); ./apps/rest-common/rest.c: memcpy(temp_etag, etag, size); ./apps/rest-http/http-server.c: strcpy(current_header->value, value); ./apps/rest-http/http-server.c: strcpy(current_header->value, buffer); ./apps/rest-http/http-server.c: memcpy(buffer + index, response->payload, response->payload_len);

• “Me write Python/Ruby/Node/… pretty one day” (or worse, C)

• History repeating…?

Quick grep for potentially dangerous functions in someone’s Contiki project

Page 19: The Internet of Things: We've Got to Chat

Challenges: Software Security (Cont’d…)• Selected platform often locks dev/

vendor into given OS choice

• Proprietary OSes (such as ElectricImp) - don’t peek inside the black box!

• Linux, Contiki, QNX, et. al (all with their own issues)

• Little consideration given to least-priv, mitigations, hardening, etc.

• Third-party dependencies

• Inherited bugs/attack surface

Proprietary and Confidential. Do Not Distribute. © 2013 Accuvant, Inc. All Rights Reserved.

Bro, do you even PIE?

Proprietary and Confidential. Do Not Distribute. © 2013 Accuvant, Inc. All Rights Reserved.

Bro, do you even PIE?

Bro, do you even randomize?

Page 20: The Internet of Things: We've Got to Chat

Challenges: Software Security Cont’d• iOS/Android/other mobile

apps with their own security issues

• See also “OWASP Mobile Top 10 Risks”

• Developer naïveté:“HOW COULD/WHY WOULD YOU DO THIS? IT WASN’T SHOWN IN THE MOBILE APP USER INTERFACE!”

“Relayr says that developers can have their first Internet of Things App up and running in less than 10 minutes”

Page 21: The Internet of Things: We've Got to Chat

Challenges: Comms/Network Security

• WiFi goofiness (“device as AP”, no WPA, exploitable behavior, etc.)

• Plaintext protocols or poor crypto at transport layer

• …or lack of cert pinning where SSL/TLS actually used

• Unprotected FW updates/downloads

• Otherwise seemingly unnecessary services listening

• Telnet, SSH, FTP, you name it…

• Shared accounts/auth material for “support” or updates

• Use of technologies such as ZigBee and cellular introduce additional security considerations

Page 22: The Internet of Things: We've Got to Chat

Example: Sparqee Cell

"Cellular made easy"

Page 23: The Internet of Things: We've Got to Chat

Wat?

TRUST US WITH CREDENTIALS TO YOUR CLEARTEXT PROTOCOL SERVERS

Page 24: The Internet of Things: We've Got to Chat

Example: GoPro WiFi Remote

• Remote acts as access point, camera acts as mobile station

• Remote/AP does not use any security - totally open

• Camera scans for HERO-RC-XXXXXX (where XX... are the last three octets of the BSSID/ MAC of the remote)

• Prefers known BSSID, but can be configured to “pair” with new remote

Proprietary and Confidential. Do Not Distribute. © 2013 Accuvant, Inc. All Rights Reserved.

Conversation (UDP) - RC Mode

8484/udp

OO

se

lc

lc

lc + bitmap

se

lc

lc + bitmap

...

sh

sh

Proprietary and Confidential. Do Not Distribute. © 2013 Accuvant, Inc. All Rights Reserved.

Conversation (UDP) - RC Mode

8484/udp

OO

se

lc

lc

lc + bitmap

se

lc

lc + bitmap

...

sh

sh

Scan for "HERO-RC-XXXXXX"

HERO-RC-123456HERO-RC-123456

WiFi RCFake AP/Evil twin

GoPro Camera

Page 25: The Internet of Things: We've Got to Chat

Example: “Home Automation Gateway”

Magical cloud

service/site

M ZigBee

ZigBee

ZigBee

HTTPS

HTTPS

HTTPS

Mobile app

Web browser

"Gateway"

Lights

Pool pump

Automatedcat entertainment

toyXSS, CSRF,auth bugs, etc.

Key extraction, replay,injection, etc.

Unfettered console access,no priv sep for services,same "support" creds on

multiple devices

Linux-based gateway talks RESTful HTTP to “cloud”-based service, receives commands (schedules, metering data, etc.), relays commands to smart plugs/meters via ZigBee

Page 26: The Internet of Things: We've Got to Chat

Challenges: Platform* Security• Everything that uses an HTTP GET/POST has

become an “API” to the average developer

• Authentication? Signed requests? Unlikely.

• Input manipulation is a less obvious concern when developers do mobile and embedded

• Yup… OWASP {Mobile,Web} Top 10

• Leveraging third-party service providers introduce exponential complexities and further increases potential attack surface

• Quick & Dirty cloud infrastructure yields poor accessibility and potentially confidentiality* for our purposes “Platform” also includes supporting infrastructure, services, frameworks, etc.

Page 27: The Internet of Things: We've Got to Chat

Real-World IoT Failures

TRENDnet, January 20121

Various IP camera products would allow anyone with a generic URL to access the camera’s live feed without requiring authentication

Belkin, July 20122

The WeMo Switch allowed for UPnP actions (e.g. power cycle) that didn’t require authentication to be performed to do so

Philips, August 20133

The Hue Lighting System utilized the MD5 hash of the MAC address of an authorized system as a “secret token” to control the platform

1. http://console-cowboys.blogspot.com/2012/01/trendnet-cameras-i-always-feel-like.html

2. http://www.issackelly.com/blog/2012/07/30/wemo-hacking/

3. http://www.dhanjani.com/blog/2013/08/hacking-lightbulbs.html

Page 28: The Internet of Things: We've Got to Chat

Real-World IoT Failures, cont’dIZON, October 20131

Video clips of “alerts” were saved in an AWS S3 bucket unencrypted, with no access control preventing someone from viewing the file

[Redacted], December 20132

API call to purchase in-app credits for service was done without purchase verification and via clear-text HTTP calls

Belkin, February 20143

The WeMo Home Automation API allowed XML injection (XXE) allowing for the potential revealing of filesystem contents

1. https://speakerdeck.com/mstanislav/eyes-on-izon-surveilling-ip-camera-security

3. http://www.dhanjani.com/blog/2013/08/hacking-lightbulbs.html

2. [Redacted] =)

Page 29: The Internet of Things: We've Got to Chat

User Awareness & Behavior• Users may not know (let alone care)

how to update device firmware or apps

• Disparity in management: web console v. mobile app v. physical “update” button

• Also they just want to use the !@#$ thing now!

• Lack of feedback or notification for updates or errors

• How does a user know their IoT device was updated or, worse, compromised?

Page 30: The Internet of Things: We've Got to Chat

Vulnerability Handling & Disclosure Awareness

• Small vendors (and some big ones) fail to get it, or just simply don’t know

• “But, why would anyone want to hack this device? And why would they want to tell us or talk about it publicly?”

• Few-to-no resources for small vendors to handle this

• Nascency of “IoT” means some researchers may not know either

• And we’d like for them to stay out of jail

Page 31: The Internet of Things: We've Got to Chat

A New Initiative

Page 32: The Internet of Things: We've Got to Chat

Announcing BuildItSecure.lyOur Mission

• Provide resources, guidance, community for small IoT developers/builders to make informed security decisions

• Incentivize vulnerability research and reporting for these devices

!

Our GoalHelp secure the "Internet of Things”

!

This ISN’T…

• “saving the world”

• something that’s happening tomorrow

Page 33: The Internet of Things: We've Got to Chat

BuildItSecure.ly Phase 1 - Build Out

• Establish a core team of advisors and content contributors

• Curate secure development documents and disclosure guidelines

• Build new diagrams, flow charts, info graphics to transfer knowledge

• Form relationships with crowd-funding sites, IoT-centric hardware vendors/platform providers, and other relevant organizations

Gather Advisors& Contributors

Collect/buildand shareresources

Establishrelationshipsw/vendors,

funding sites

Page 34: The Internet of Things: We've Got to Chat

BuildItSecure.ly Phase 2 - Rewards/Incentives

• Build a reporting and reward/incentive program

• Partnering with Bugcrowd on this

• Rewards could include:

• Recognition

• Monetary reward

• Device reward

• Schwag!

Page 35: The Internet of Things: We've Got to Chat

Conclusion

Page 36: The Internet of Things: We've Got to Chat

Conclusion• Very few green fields in infosec

to impact early on

• IoT at this level is still malleable

• Much work to be done, but we can leverage lessons learned in the past

• BuildItSecure.ly could help keep IoT from spinning any further out of control

• Plus, it’ll be fun!

Page 37: The Internet of Things: We've Got to Chat

Thanks! Questions?Mark Stanislav

[email protected]@markstanislav

Zach Lanier

[email protected]@quine

http://BuildItSecure.ly/

@BuildItSecurely

greeted = sendGreetz(terp, bNull, cji, jono, dugsong, donb, cesar, sa7ori, bkelly, jcran, mortman, banshee, jack_daniel, m0nk_dot, natron, zek, blueroses, procto, alexhutton, int0x80, k8em0, treyford, hypatia, mthrailkill, G13, wendy); if(!greeted) " goto fail;