Hacking Robotics

Post on 21-Jul-2015

1.137 views 0 download

Transcript of Hacking Robotics

ロボットのハッキング

出村 賢聖 @ken_demu

高校2年生です。

生活支援ロボットの研究開発を行っています。

NII (国立情報学研究所)SIGVerse Project Developer

D.K.T.というロボット教育団体の代表

を務めています。

背景

セキュリティキャンプ 2014全国大会

● Raspberry piの IDS

https://github.com/kendemu/embeddids● 家具インジェクションファービーちゃん、 Roombaのハッキング

世界で最も人気のオープンソース

ロボットミドルウェア /OS

Robot Operating Systemの特徴

・可視化ツール・メッセージ送信( IPC)・豊富なパッケージ・並列プログラミング / クラスタリング・画像 /PointCloud処理・ロボットモデリング / シミュレーション・クロスプラットフォーム・動作計画 /ナビゲーション・ P2P通信アーキテクチャによる プログラミングの拡張性 .etc

疑問

ROSはセキュアなのか

ROS Technical Overview

・メッセージ送信はメッセージ型が簡単に 指定できる XML-RPC(HTTPベース )

・普段は TCP上を流れる、設定すれば UDPも・プロセスのネームシステムであるMasterが サービスクライアントの管理を行う http://wiki.ros.org/ROS/Technical%20Overview

1.サービスがMasterに Nameを登録する2.サービスがMasterに他のサービスを問い合わせる3. サービスが他のサービスとの TCP/IP通信を確立する4.サービスと他のサービスが通信ヘッダを交換する5. サービスがシリアル化されたメッセージを要求する6. 他のサービスがシリアル化されたメッセージで応答する

Node(プロセス /サービス )の通信

通信暗号化については?

資料見当たらず

実験:パケットキャプチャしてみた

協力

ロボットのセキュリティについて一緒に実験をしてく れた じとめすきー 氏

ありがとうございます!

背景Intel Edisonに Debian入れて config弄ったら壊れた (Intelつくば本社で壊してひんしゅく )

ネタになりました

テスト環境Gazebo Simulator with Turtlebot

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

Nodeのネットワーク図

結果:XML-RPCが生で流れていた

ROSの通信の I/O Graph(赤)

ROSの XML-RPCパケットの長さ

テスト環境2 :Roomba

Nodeのネットワーク図

Follow TCP Stream

モータ制御命令が丸見え

何が可能か /まずいか1. パケット改ざんで遠隔操作が可能

2. パケットの改ざん方法

  TCPスプーフィングを行う

3. 最近のロボットはクラウドAI/アプリ連携等

 インターネットにつながるものが多い→

 ネットワークセキュリティが弱いことは現代のロボット

 では致命的な問題

解決策SSH,IPSec,SLL/TLSで暗号化

問題:ロボットの制御には遅い

→高速暗号化プロトコルが必要

※ IPSecや VPNでは生パケットに比べ 6倍以上の

速度差がある

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

※ROSの XML-RPCパケット長は計測結果

400~600バイトくらい (496±99.8バイト ) 

結論

ROS自体のセキュリティは弱い

付録: Pepperの ReverseEngineering(合法(草) )

Pepperをクロス開発でなく

本機でソフトウエア開発したい

通常だとこの GUIプログラミングソフトだけ

※ Pepperには NaoqiOSという

独自 LinuxOSが入っています

Nmapepper:Pepperポートスキャン

ftp, ssh, http, teradataordbms, hydap

サービスがポートオープン

SSHが遅い ......と思っていると

MicroUSBと Ethernetを発見!

MicroUSBを Pepperに繋ごう!

ttyで Pepperにログイン

gcc/g++, openni,opencv,gdb,wget,pulseaudio入っている

X環境 ,パッケージマネージャーはありません

擬似パッケージマネージャー:Pepperに gitを入れよう

Make入っていなかったのでビルドできず泣

まとめPepperは多分本機でソフトウエア開発可能Pepperは改造しやすい→パワフルなロボットになる