悪意あるSIMカード経由でIoT機器や一部スマホを制御可能な仕様上の問題が判明、規格準拠コマンドが悪用可能に
要点
-
バーミンガム大学とセキュリティ企業Fuzzwareの研究により、悪意あるSIMカードからモデム経由で不正なコマンドを実行できる問題が明らかになった。
-
テストされた26台の機器のうち、セルラーモジュール6製品とスマートフォン3機種の計9台で攻撃に必要な機能が有効化されていた。
-
商用の電気自動車(EV)充電器に組み込まれた通信モジュールに対し、SIMカード側から任意のコードを実行させる実証に成功した。
-
本問題は通信規格で標準化された機能に起因しており、モデムを提供するQualcommやモジュール製造のQuectelが対応を進めている。
-
英国のバーミンガム大学とセキュリティ企業Fuzzwareの研究チームは、デバイスに挿入された悪意あるSIMカードから通信モデムに対して任意のコマンドを実行させ、システム全体を制御できる問題を発見したと発表しました。この研究成果は、米国ボルチモアで開催されたセキュリティシンポジウム「USENIX WOOT」で公表されました。電気自動車(EV)の充電器や産業用ルーター、車両用テレマティクスユニットなど、セルラー通信機能を持つIoT機器を中心に深刻な影響が及ぶことが確認されています。
SIMカードからモデムを能動制御する標準コマンド「RUN AT」
今回の手法で悪用されているのは、セルラー通信規格の一部として標準化されている「プロアクティブコマンド」と呼ばれる機能です。通常、SIMカードは機器側からの読み出しを待ちますが、プロアクティブコマンドを用いるとSIMカード側からモデムに対して能動的に指示を送信できます。
研究チームによると、その標準コマンド群に含まれる「RUN AT」機能を利用することで、モデムの制御言語である「ATコマンド」をSIMカードから直接実行させることが可能になります。ATコマンドは1981年のHayes Smartmodemに由来する伝統的な制御言語で、各ベンダーが独自に拡張機能を加えています。このため、機器側が「RUN AT」を受け入れる状態になっている場合、SIMカードに対して実質的な汎用コンソールを渡してしまうことになります。
バーミンガム大学のアシスタントプロフェッサーであるマリウス・ミュンヒ(Marius Muench)氏は、SIMのプロアクティブ機能やそれによって生じるアタックサーフェス(攻撃対象領域)について、「セルラー通信の技術仕様に明記されている」と説明しており、規格外の不正な動作ではなく規格に準拠した仕様そのものが原因であると指摘しています。
調査したIoTモジュールの75%とスマートフォン3機種で機能が有効
研究チームが合計26台のスマートフォンおよびセルラーモジュールを対象にテストを実施したところ、9台の機器で「RUN AT」コマンドを受け入れる設定が有効になっていることが確認されました。
内訳として、テストした8つのセルラーモジュールのうち6つがコマンドを受理しました。これら6製品のうち5製品は大手モジュールメーカーであるQuectel製で、EV充電器、産業用ルーター、自動車のテレマティクス制御ユニット(TCU)から取り外されたモジュールが含まれていました。
一方、スマートフォンは18機種中3機種のみがコマンドを受け入れました。該当したのは以下の3機種です。
- OPPO Find X5
- OPPO Reno 14 F 5G
- ASUS Zenfone 9
なお、AppleのiPhoneやGoogleのPixelシリーズはコマンドを受け入れず、影響を受けないことが確認されています。
コマンドを受け入れた9台のデバイスはすべてQualcomm製の通信プロセッサを搭載していました。ただし、調査対象に含まれていた他のQualcomm搭載端末5機種ではコマンドが受け入れられなかったことから、研究チームは各端末ベンダーによるカスタマイズの違いが影響していると分析しています。
IoT機器のアーキテクチャによる影響とEV充電器でのコード実行実証
研究チームは、IoT機器の内部構造がこの問題をより深刻にしていると述べています。調査されたほぼすべてのモジュールでは、無線通信チップの隣でARM Cortex-A7などを採用した小型のアプリケーションプロセッサが動作しており、通常はAndroidやLinuxなどのOSが稼働しています。そして、無線チップ側で処理しきれなかったATコマンドは、このアプリケーションプロセッサ側へ転送される設計になっていました。
研究チームは、Autel製の商用EV充電器(モデルコード: MAXI US AC W12-L-4G)に搭載されていたQuectel製モジュール「EC25AFXDGA」を用いて実証実験を行いました。このモジュール内のデーモン(常駐プログラム)である「atfwd_daemon」には、安全ではないフォーマット文字列によって外部テキストをシェル呼び出しへ渡してしまう脆弱性が存在していました。シェルからの脱出を防ぐ文字ブラックリスト処理が施されていたものの、改行コードによってバイパスされ、最終的にSIMカードが発行したコマンドのみを起点として任意のコード実行に至ったと報告されています。
また、スマートフォンに対する影響の例として、OPPO Reno 14 F 5Gにおいて「AT+COPS=0,,,0」というコマンドを実行させたところ、端末の通信が2Gネットワークに固定され、機内モードの切り替えや手動ネットワーク選択、モバイルデータ通信のオン・オフ、SIMの無効化といった操作を行ってもユーザー側では解除不能になる現象が確認されました。
攻撃の成立条件とベンダーの対策
この攻撃を成立させるには、対象機器のSIMカードスロットに細工された物理SIMカードが直接挿入されている必要があります。そのため、攻撃シナリオとしては、放置されたIoT機器のSIMトレイから手作業でカードを交換する、薄型のインターポーザー(中継基板)を挟み込む、侵害された通信事業者経由で不正なプロファイルが配信される、あるいは製造ラインやソフトウェア上で改ざんされるといったケースが想定されています。電話番号を知っているだけでは遠隔から攻撃することはできません。
対策として、Qualcommは研究チームに対し、インターフェースをデフォルトで無効化する強化設定を作成したと回答しています。またQuectelは、ファイルアクセスの欠陥については緩和策を講じ、インターフェース自体の修正を進めていると説明しています。
研究チームは、今後のデバイスではこのインターフェースを無効化する強化設定がデフォルトになる見込みであるとしつつ、現時点でセルラーIoT機器を運用している管理者に対しては、出荷時のファームウェアで「RUN AT」機能が有効になっているかどうか、またそれを無効化できるかをモジュール供給元に確認することを推奨しています。なお、現時点で本手法を悪用した実際の攻撃事例は報告されていません。