Top Banner
Hacking Robotics Kensei Demura @ken_demu
35
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: Hacking Robotics(English Version)

Hacking Robotics

Kensei Demura @ken_demu

Page 2: Hacking Robotics(English Version)

Robot Engineer/Researcher/Creator

Page 3: Hacking Robotics(English Version)

NII (National Institute of Informatics)SIGVerse Project Developer

Page 4: Hacking Robotics(English Version)

D.K.T. Robot School President

Page 5: Hacking Robotics(English Version)

Background

IPA SecurityCamp 2014

● Raspberry pi IDS Development

https://github.com/kendemu/embeddids● Furniture Injection

Page 6: Hacking Robotics(English Version)

The most popular Robot Middleware/OS

Page 7: Hacking Robotics(English Version)

Robot Operating System

・ visualization・ IPC・ Package management・Multithread/Process/Clustering・ Image/PointCloud Processing ・ Robot Modeling / Simulation・ Cross-platform

・ Navigation・ Program Scalability

Page 8: Hacking Robotics(English Version)

Question

Is ROS Secure?

Page 9: Hacking Robotics(English Version)

ROS Technical Overview

・Message : XML-RPC(HTTP-based)

・ runs through TCP usually

・ The namesystem of process called “Master”

  manages the services  http://wiki.ros.org/ROS/Technical%20Overview

Page 10: Hacking Robotics(English Version)

1. a service register a Name to the Master

2. a service query other services through Master

3. a service establishes TCP/IP connection with other

services

4. the services exchange the connection header

5. a service require the serialized message

6. the other service respond with the serialized message

Connection of ROS Node(Process/Service)

Page 11: Hacking Robotics(English Version)

How about encryption?

No data

Page 12: Hacking Robotics(English Version)

Packet Sniffing

Page 13: Hacking Robotics(English Version)

Special thanks

Page 14: Hacking Robotics(English Version)

Background of meeting @jitomesky

Repairing the Intel Edison which I had made a

fatal error on the Operating System side

Page 15: Hacking Robotics(English Version)

Test Environment:Gazebo Simulator with Turtlebot

http://qiita.com/kendemu/items/f915c7c2498b04e097cc

Page 16: Hacking Robotics(English Version)

Node Network

Page 17: Hacking Robotics(English Version)

Result:XML-RPC Packet is not encrypted

Page 18: Hacking Robotics(English Version)

ROS Connection I/O Graph(Red)

Page 19: Hacking Robotics(English Version)

ROS XML-RPC Packet length

Page 20: Hacking Robotics(English Version)

Test environment2 :Roomba

Page 21: Hacking Robotics(English Version)

Node Network

Page 22: Hacking Robotics(English Version)

Follow TCP Stream

Page 23: Hacking Robotics(English Version)

Motor Commands are not encrypted

Page 24: Hacking Robotics(English Version)

Negative effects

1. Remote Control is possible just by spoofing packets

2. How to spoof packets : TCP Spoofing

3. The robots nowadays connect to the Internet → critical problem for robots

Page 25: Hacking Robotics(English Version)

SolutionSSH,IPSec,SLL/TLS Encryption

Problem : Slow for Robot Control

→Needs of fast encryption※Using IPSec,VPN make network connection more than 6 times slower

http://d.hatena.ne.jp/nori_no/20100919/1284875253

※ROS XML-RPC Packet length is about

400~600 bytes(496±99.8 bytes)

(by my calculation & datasets)  

Page 26: Hacking Robotics(English Version)

Conclusion

The Network Security of ROS is weak

Page 27: Hacking Robotics(English Version)

Pepper ReverseEngineering(Legal)

Page 28: Hacking Robotics(English Version)

Pepper : Cross DevelopmentBut wanted to do in native

environment

Normally, just the GUI Software abovePepper OS is NaoQiOS, customized Gentoo※

Page 29: Hacking Robotics(English Version)

Nmapepper:Pepper port scan

ftp, ssh, http, teradataordbms, hydap

service open

Page 30: Hacking Robotics(English Version)

Doing SSH in Pepper was very slow....

Fortunately, discovered MicroUSB and Ethernet port!

Page 31: Hacking Robotics(English Version)

Connect MicroUSB to Pepper

Page 32: Hacking Robotics(English Version)

Login Pepper with tty

gcc/g++, openni,opencv,gdb,wget,pulseaudio is usable

No X environment, package manager

Page 33: Hacking Robotics(English Version)

Implementing git

No Make & configure tools in pepper

Page 34: Hacking Robotics(English Version)

Conclusion

Pepper is programmable in native environment

Pepper is customizable

Page 35: Hacking Robotics(English Version)

Implementing git

No Make & configure tools in pepper