- 一般的なUSBデータ/充電ケーブルのように見える S8 data line locator は、プラグ内部にGSM盗聴・位置追跡装置を隠した製品で、低価格の消費者向けハードウェアも物理セキュリティ上の脅威になり得ることを示している
- この装置は電話をかけると内蔵マイクの音声を聞かせ、SMS
1111 で 音声検知コールバック を有効にすると約40dB以上の音で発信し、dw・loc コマンドで位置SMSとgpsui.netリンクを返す
- 位置照会の精度はテストで最大 1.57kmの誤差 にとどまり、照会中にモバイルデータ接続が発生して未知の第三者サーバーへデータが送信される点が主要なリスクとして判明した
- 分解の結果 MediaTek MT6261MA と RDA 6626e が確認され、USBデータ線は単なるパススルーで、別個のDP/DMパッドからMediaTek USBエンドポイントにアクセスしてROM・フラッシュダンプが可能だった
- gpsui.net は位置履歴、リアルタイム追跡、ジオフェンス、リモートコマンドプッシュを提供し、その後 認可回避IDOR 脆弱性により615,817件のアカウント情報が漏えい・改ざんされ得る危険が確認された
ケーブルに偽装されたGSM盗聴装置
- S8 data line locator は、標準的なUSBデータ/充電ケーブルのプラグ内部にGSM送受信装置を隠した製品である
- 対応周波数は GSM 850, 900, 1800, 1900MHz である
- 車内では泥棒がUSBケーブルを位置追跡装置だと見抜きにくい、といった売り文句で販売されていた
- GPSがないため位置報告は大まかで、テストでは実際の位置と最大 1.57km の差があった
- 悪用方法は単純である
- 装置に電話をかけると内蔵マイクのリアルタイム音声を聞ける
- SMSコマンドで音を検知したときにコールバックさせられる
- SIMを入れて設定した後、目立つ痕跡を残さずに梱包ケースへ戻せる
SMSコマンドで動作する盗聴と位置照会
-
Listen in
- S8 data line locator に10秒間電話をかけると通話が成立し、装置のマイク入力を聞ける
-
Call back
- SMS
1111 は音声モニタリング、音声コールバック、感度設定を有効にする
- 応答は
DT: Set voice monitoring, voice callback and sound sensitivity:400 の形式で返る
- 音声レベルが40dBを超えると、
1111 コマンドを送った番号へ装置が発信する
- SMS
0000 は音声トリガーコールバックを無効化し、DT: Voice monitoring cancelled successfully. と応答する
-
Query location
- マニュアルによれば SMS
dw は位置を返す
- 応答には住所、gpsui.netリンク、バッテリー残量が含まれる
- gpsui.netリンクには認証なしでアクセスでき、Google Maps に転送される
- 位置照会中、装置はモバイルデータ接続を使用し、通信事業者の課金明細では「MMS/Internet」と表示された
分解で確認した内部構造
- 装置内部のチップは MediaTek MT6261MA と RDA 6626e である
- MT6261MA は低価格な中国製スマートウォッチでよく使われるチップだが、MediaTekの公式文書や情報はなかった
- RDA 6626e は GSM850, EGSM900, DCS1800, PCS1900 向けのクアッドバンドフロントエンドモジュールである
- USB Aコネクタと Micro-B ケーブルは MT6261MA には接続されていない
- 2つのUSB端子は信号を互いに パススルー しているだけである
- UARTでは起動約3秒後に MTK Bootloader V005 バナーが出力されたが、その後の出力は止まり、入力は無視された
- 別のファームウェアバージョンでは AT モデムコマンドを受け付ける可能性がある
- 別のケーブルの出力には
ZhiPu 関連ログと MTK6261M.T16.17.01.10、ビルド日 2017/01/10 17:33 が現れた
- USBコネクタのDP/DMパッドは実際のUSB D+/D- ラインではなく MT6261MA にルーティングされている
- ここにUSBケーブルをはんだ付けすると
ID 0e8d:0003 MediaTek Inc. MT6227 phone エンドポイントとして認識される
- この接続は「MTK boot repair」「MTK DM DP flash」などと呼ばれ、ROMとフラッシュダンプに使われる
ファームウェアダンプとフラッシュ書き込みの限界
- ファームウェアダンプにはオープンソースの Fernvale 研究用OSが使われた
- もともとは MT6260 用だったが、MT6261 に移植されたブランチが MT6261MA でも動作する
- Urja “urjaman” Rannikko の
fernly6261 ブランチをビルドして使用した
- ROMダンプは
fernly-usb-loader と dump-rom-usb.bin を使って rom.bin を生成する方式で行われた
- フラッシュダンプは flashrom に Fernvale パッチを適用したうえで
fernvale_spi プログラマを通じて実施された
- 対象フラッシュは
MX25L3205(A) として読み取られ、結果は flash.dat に保存された
- 別の装置では
GD25LQ32 4096KB SPI フラッシュが見つかった
- フラッシュ書き込みは
flashrom --write flash.dat で試せたが、フラッシュが ブロック保護 されており、flashrom では保護ビットを無効化できなかった
SIMとネットワーク動作
- SIMtrace でSIMと装置の間の通信をスニッフィングすると、装置は電話帳とSMS保存領域のレコードをすべて参照していた
- 参照したファイルには ADF の EF(ECC), EF(EXT2), EF(SMS), DF(TELECOM) の DF(PHONEBOOK), EF(ADN), EF(ANRA1), EF(SMS) が含まれる
- 装置の機能提供に必要ないアクセスもあった
- OpenBTS と Ettus B100 で GPRS トラフィックをスニッフィングしようとしたが、S8 data line locator は GPRS に接続しなかった
- このとき
dw 位置コマンドは gpsui.net/smap.php?lac=...&cellid=... 形式のリンクを含む代替応答を返した
- 通信事業者の請求明細では位置照会時に「MMS/Internet」の利用が確認された
- 装置をアイドル状態にしている間も、ときどき「MMS/Internet」サービスが使われていた
- テスト中に一部の追跡機能が有効化されていた可能性は残るが、どのデータが送信されているのか、また無効化方法は確認できなかった
フラッシュ内部の設定と隠しコマンド
flash.dat の文字列は、装置が Nucleus RTOS を実行している可能性を示している
Copyright (c) 1993-2000 ATI - Nucleus PLUS - Version ARM 7/9 1.11.19 という文字列が確認された
- FAT12ファイルシステムの抽出はフラッシュ変換レイヤー(FTL)を欠いていたため、破損した結果になった
- 一部にFAT12らしき領域はあったが、大半は orphan ファイルか空ファイルだった
- SIMカードを入れ替えると The Sleuthkit が列挙するファイルが大きく変わり、FAT12ではないか、あるいは変形FAT12である可能性が残った
- フラッシュには挿入されたSIMの IMSI、リモート制御に使われる電話番号、
gpsui.net 文字列が入っていた
- gpsui.net は MCC, MNC, LAI, CID コードを住所と地図リンクに変換するサーバーだと推測されたが、フラッシュ書き込みに失敗したため確認できなかった
dw, 1111, 0000 を検索する過程で複数の隠しコマンドが見つかった
help は dw, qqq, 1111, 0000, ddd, aqb, eee, dde, hhh を返す
loc は dw と同じ動作をする
imsi は IMEI と IMSI を照会する
*3646655* はバージョン情報を照会する
*reboot* は装置を再起動する
- 多くのコマンドは正常に動作せず、LEDやTFカードのようにこの装置にはない機能を指すコマンドもあった
- ファームウェアは複数の位置追跡・盗聴装置で共有されているように見える
- 応答文字列はフラッシュ内で平文では見つからず、一部データが圧縮されているように見える
gpsui.net が生んだ追加の露出
- gpsui.net は単なる地図リンクのリンク先を超え、監視ハブ のように機能していた
- S8 data line monitor に
aqb を文字メッセージで送るとログイン認証情報を受け取れる
- ユーザー名とパスワードはいずれも6桁の数字である
- この値はフラッシュ内で IMSI の直前にも保存されていた
- ウェブインターフェースは位置追跡装置の管理機能を広範に提供していた
- 地図上で装置の位置と最終更新時刻を表示する
- 設定変更、アラーム設定、リアルタイム位置追跡の有効化、過去位置照会の再生、ジオフェンス設定をサポートする
- リモートコマンドを装置へプッシュできる
- 複数の装置を1つのアカウントに追加して管理できる
- 製品パッケージと元のマニュアルは、gpsui.net ウェブサイト、ログイン認証情報、位置履歴保存、ウェブ経由での装置リモート制御をユーザーに知らせていない
- 公開後、Vangelis Stykas が gpsui.net でユーザー制御キーによる認証回避 IDOR 脆弱性を発見した
- この脆弱性は水平権限昇格につながり、1人のユーザーが他の 615,817件のアカウント の情報を閲覧または改ざんできた
- その後の他のGPS位置追跡ウェブサービス調査結果は Trackmageddon にまとめられている
検知方法と残された課題
- S8 data line locator はデータ送信時、低価格RF検知器 CC308+ で検知できる
- 装置はシールドが不十分に見え、
dw 位置要求時に目立つ電子ノイズを発する
- 全体としてさまざまなRF干渉を引き起こしているように見える
- 当初の目標だったモバイルデータ phone-home 機能の無効化には成功しなかった
- flashrom で新しいファームウェアを書き込めず、ブロック保護解除が残る課題である
- SPFlash tool や Flash tool のような別のフラッシュ経路が使える可能性はあるが、オープンソースの方法ではない
- GPRSデータ接続のキャプチャにも失敗した
- 装置が OpenBTS ネットワークで GPRS を使わなかった
- EF(ACL) へのアクセスは SIM trace では見えなかったが、正しい APN 設定がフラッシュにあったため、通信事業者の設定SMS経由で取得しているように見える
- 装置の基板をさらに小さく加工すれば、USBコネクタなしで 5V 1A 電源だけがある場所に隠せるモジュール型盗聴装置にできる
- OpenBTS テスト中、音声検知コールバックを切り忘れたため、仮想番号
3333333 を持つ相手が2分間装置のマイクを聞いていた事例があった
- この通話は後でログを確認するまで気づかなかった
- この小さなハードウェアインプラントは秘匿性が高く危険である
1件のコメント
Hacker Newsのコメント
もっと簡単な方法は改造キーボードだと思う
誰でもキーボードの中にesp32を入れてすり替え、どこかに置いておけば、キー入力を盗み見たりBluetooth/WiFiでアクセスしたりできる
無線送信も特定の時間帯だけオンになるようにできる
物理アクセスがなくても、Bluetoothではなく独自RFドングルを使うワイヤレスマウスは、リモートからのキー入力注入に脆弱
ただし、たいていの人はそこまで気にしないかもしれない
SMSを制御プロトコルとして使うのは良くなさそう
コマンドを送るたびに、通信事業者にほぼ永久保存されるかもしれない証拠を残すことになる
完全に正当な用途としては、盗まれたときに車やUSBポートのある別のデバイスを追跡するのに使える
盗まれやすいKiaやHyundaiの車を持っていたら、こういうものを車内にこっそり入れておいたと思う
興味深いことに、余暇で関連分野の何かを作っているのだけど、まさにその理由でLoRaを選んだ
もちろんペイロード、見通し距離で決まる到達距離、多重化の欠如といった制約は多いが、昨年末の実地テストで出たレンジは本当に印象的だった
既製の開発ボードでメーカー仕様より約20%長く、12.5kmまで届いた
英国のスーパーマーケットでは、すでにチャージ済みのSIMも売っている
電子機器を分解できるなら、やってみるといい
すべてのチップの識別子をDDGで検索すれば、多くのことを学べる
分解の各段階で写真を撮っておくと、部品がどう組み合わさっているか思い出す助けになる
「gpsui.netのログイン情報にアクセスできる人なら誰でもデバイスを制御できる。元の包装や説明書にはそのWebサイトへの言及がない」というのは怖い
その目的で義眼プロテーゼを使うアイデアを考えてきた
今ならカメラ、バッテリー、ストレージ、無線通信がすべて見た目用のプロテーゼの中に入り、それ自体で機能したりスマートフォンで拡張したりできる
https://www.instagram.com/bsmachinist/
Instagramリンクですまない
こういう盗聴器探知機のようなものはあるのだろうか? 映画で見た「バグスイーパー」を思い浮かべている
回路基板を検出できる
「NLJDアンテナヘッドは送受信機であり、電子部品の存在を確認するためにデジタル・スペクトラム拡散信号を放射する。エネルギーが半導体接合部(ダイオード、トランジスタ、回路基板の接続部など)に当たると、高調波信号が受信機に戻ってくる。受信機は高調波信号の強度を測定し、第2高調波または第3高調波を区別する。より強い第2高調波がディスプレイに赤色で表示されれば、電子接合が検出されたという意味だ。この方式により、携帯型ORIONは電子機器がオンかどうかに関係なく、壁、物体、容器、家具、ほとんどの表面を走査して隠された電子機器を探すのに使われる」
要約すると、GSMで通信中は簡単に検出でき、デバイスのシールドもかなり悪いため、動作中に検出しやすいRF干渉が多く発生する
安価なRF検出器だけで十分で、フルスペクトラムアナライザやSDRを使えるならさらに簡単になる
ただしデバイスが休眠状態で、音声起動やコマンドを待っている間はずっと難しくなるので、映画に出てくるような「素早い盗聴器捜索」は思ったより厄介
ホストデバイスはシールドしておいて、選んだ周波数でGSMアンテナだけ焼き切ることはできるだろうか?
新しいハードウェアを事前に消毒するような感じで
包装に追跡装置だという表示がないので、意図された用途は、たとえばビジネスミーティングや子ども、親族に渡す贈り物のようなものだと思う
関連記事:
Inside a low budget consumer hardware espionage implant (2018) - https://news.ycombinator.com/item?id=20190251 - 2019年6月、コメント43件
Inside a low-budget consumer hardware espionage implant - https://news.ycombinator.com/item?id=15676737 - 2017年11月、コメント92件
まだなければ、近いうちに801.11ah内蔵の改造ケーブルが出てくる可能性がある
低コストで電力要件も小さく、到達距離もかなりある技術なので、残念ながら防御は難しそう