Hacking Robotics
-
Upload
kensei-demura -
Category
Engineering
-
view
1.137 -
download
0
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は改造しやすい→パワフルなロボットになる