筆者の今岡通博氏がハッカーの祭典「Black Hat」に投稿した、ハードウェアの改変を中心にしたハッキングの事例を紹介する本連載。第2回は、赤外線リモコンを使ってBadUSBを遠隔操作する「IR-BadUSB」だ。
前回記事の「LANケーブルから直接パケットを取得するワイヤタッピングプローブ」に続いて、「Black Hat USA 2022 Arsenal」で採択された筆者の投稿を紹介します。
⇒連載「Black Hatでハードウェアハック!」バックナンバー
今回取り上げるのは“IR(Infrared) BadUSB attack”です。サイバー攻撃を目的に悪意のあるソフトウェアを組み込んだUSBデバイスは「BadUSB」として広く知られています。本投稿では、従来のBadUSBにIR受信素子を追加することで発生する新たなリスクについて報告します。このIR-BadUSBは、一般家庭用のIR(赤外線)リモコンを使って遠隔操作します。そのため、ターゲットと攻撃者はIRリモコンの赤外線到達範囲内にいる必要があります。
BadUSBを用いて他人のPCへの不正なアクセスなどを行うと犯罪になる場合があります。
不正アクセス行為を行った場合、刑事罰(3年以下の懲役または100万円以下の罰金)の対象となります。
攻撃者は、IR-BadUSBを離れた場所からIRリモコンで操作します(図1)。すると、ターゲットのPCにHID(Human Interface Device)として認識されたマイコンから、攻撃者の意図したキー配列がターゲットPCに送信されます。なお、HIDとは、PCに接続されたキーボードやマウスなどのデバイスのことです。
BadUSBが動作するマイコンに赤外線レシーバー(図2)を接続すると、IR-BadUSBになります。赤外線レシーバーの仕様は以下の通りです。
家庭用のリモコンには、波長940〜950nmの赤外線が使用されています。サブキャリア周波数は38kHzです。このIRリモコンは、「NEC赤外線伝送プロトコル」に従って通信内容をエンコードして赤外線で送出します(図3)。
家電用IRリモコンに用いられている代表的なプロトコルの一つです。赤外線の波長は950nmを、サブキャリアとして38kHzを使用します。1フレームで32ビットを転送します。1フレームの転送時間は67.5msです。
本投稿で使用したマイコンモジュールの「Arduino Pro Micro」をブレッドボードに搭載したのが図4です。USBインタフェースを介してPCと接続するとIR-BadUSBとして動作します。マイコン(ATMega 32U4)にはUSB機能が内蔵されており、PCのHIDとして動作します。プログラムは、ArduinoIDEを使用して開発しました。LEDはテスト用で、38kHzのサブキャリアが変調されている赤外線を受信すると光るように接続しています。
Copyright © ITmedia, Inc. All Rights Reserved.