Weird Wired World

Programming, Security

IoTSecJP事前メモ

久しぶりに面白そうな勉強会があったので出てみる。

IoTSecJP東京 #2 - connpass

内容を見る限り普通のLTとは違ったレベルを期待している。本記事に事前にちょこっと調べたメモを残す。

IoTセキュリティ基礎とIoTペンテスト(60min)

参考資料

スライドは発表用なので非常に分かりづらい。

攻撃対象をスマートペットフィーダーとして,ファームウェアの抽出とカメラ映像の盗聴を行っている。

まず前提として,この機器の機能にはWeb上でペットのカメラでの監視機能と,餌やり機能があると推測する。カメラを見てお腹空いてそうなのでボタンを押して餌をあげる的なものだ。

さてまずはファームウェアの抽出。機器から基盤を取り出して,フラッシュメモリ内のファームウェアをSPIから抽出している(次図)。ファームウェアの抽出はbinwalkで内容を解析しddsquashfsのアドレス領域の抽出を行っている。squashfsとは圧縮されたファイルシステムで,組み込み機器等の容量の制約の厳しい媒体への書き込みに使われる。SPI以外の経路であるUART, JTAGからの攻撃は失敗したようだ。

f:id:enufranz:20180105214647p:plain:w400

続いてカメラ映像の盗聴。カメラ映像はRTSPで送られているようだ。抽出したファームウェアRetdecにかけてC言語アセンブラに変換。そこからカメラの送信するアドレスを特定して,それをメディアプレイヤーで開くことによって盗聴しているようだ。Retdec(Retargetable Decompiler)はARMバイナリをC言語アセンブラに変換するツール。

ファームウェア抽出(ハンズオン)

attifyを使ってファームウェアを抽出するハンズオンと思われる。

参考資料

attify-badgeは次の画像のようにUART, SPI, JTAGなどのI/FとのInteractをGUIベースで行うツール。これらの通信は伝統的にはMinicomやBaudrate.pyなどで可能だが,attify-badgeはこれらをより容易にするものと理解した。

f:id:enufranz:20180105211413p:plain:w700

BLE Hacking基礎(ハンズオン)

参考資料

BLE対応の電球に対してリプレイ攻撃を仕掛けてON/OFFを制御する。ここでこの電球は常にBluetoothパケットを受け付け,かつペアリングが不要のものである。また,Androidには電球のON/OFFを制御するアプリがある。

1. ログの収集
AndroidのHCIスヌープログ機能を使って,Androidと電球間のログを収集する。
2. PCからの電球のBDアドレス、MACアドレスの特定
2-a1) hciconfigを使って周辺のデバイスのBDアドレスなどの情報を検索し特定する。
2-a2) hcitool scan(BLEの場合はlescan)を使って周辺のデバイスMACアドレスを検索し特定する。
2-b) ログをWiresharkで開いてBDアドレス,MACアドレスを特定する。
3. PCからの制御情報送信
gatttool -i hci0 -b 20:16:03:10:00:38 -Iインタラクティブモードに入る。
primaryでサービスの一覧を取得する。この中の0x000bが電球のON/OFF。
char-write-cmd 0x000b cc2433で電球をON、2333でOFFにする。

f:id:enufranz:20180105224743p:plain:w600

おわりに

ハンズオン自体初めて参加するので楽しみ。

今コンタクトを切らしていて,明日までに届くかどうかだけが不安 笑