IoT の I
Internet にアクセスするデバイスは、無線や有線で TCP/IP にアクセスすることができることが必要。
IoT としては小さなデバイスとして、 ESP32 とか nRF53 とかで WiFi とか BLE とか。あるいは IoT でも有線アクセスもやろうとしたらできる。
cf.,
Internet Access から遮断されている状態
実はセキュリティの世界では TCP/IP や WiFi や BLE やそういったものがなくても、制約を飛び越えて感染したり、漏洩したりする手法がある。
サイドチャネル攻撃だとか、あるいは USBメモリを介したものだとか。
有名なのは Stuxnet が インターネットから隔絶されたイランの核濃縮施設を撹乱させたりだとか。
今回は、IoT デバイスのようなライトウェイトなマイコンを使い、電波を使わなくてもデータを外部に送る手法を考えてみる。
考えてみる
ただ単なるイルミネーションUSBケーブルに見せかけて、発光パターンでキーロギングを外部に送信ができるもの。
ゲーミングケーブルを単に見せびらかすことができるけれども実はスマホで情報読み取りが可能、というようにしたら楽しいのではないかと!!
この手法を使えば、データの漏洩として悪いことをするだけではなく、データをインターネットにプッシュする方法として使えるかも。
チャレンジ!
CH32V203 の USB ホスト・デバイス機能を使い、光るゲーミング USB ケーブルのように見えて実は光るパターンで情報漏えいするというおもしろデバイスを作ってみます。
ケーブルは、中央の光ロッド、電線4本、補強線数本からなります。補強線をカット、このようにまとめます。
はんだづけ。
5V | D- | D+ | GND |
---|---|---|---|
太銅 | 細銅 | 細銀 | 太銅銀 |
このくらいのアルミ箔を折りたたみ、光ロッドに巻き付けます。
BluePill+ と白基板両方にピンヘッダとピンソケットをはんだづけ。
専用の基板にすれば、ケーブルっぽくなって悪質度が高まるでしょう。
ファームウェアを工夫して、キーボードの入力情報を光で漏洩するようにします。
(ファームは別途公開)
専用のデバイスでデコードすれば高速通信もできますが、スマホカメラなどで読み取るためには数bps 〜数十bps ぐらいが上限となるでしょう。
IO割当
USB HOST
GPIO | SINGAL | USB TYPE A FELALE |
---|---|---|
5V | 1 VBUS | |
PB6(USB2_DN) | D- | 2 |
PB7(USB2_DP) | D+ | 3 |
GND | 4 |
LED
GPIO | SINGAL | ENCODER |
---|---|---|
PA3 | LED1 | |
PA1 | LED2 | |
PA2 | LED3 |
ソフトウェア
今回はここまでで力尽きました。俺達の戦いはこれからだ!