Nozomi Networks BlueMark DroneScout ds230リモートIDレシーバーに影響を及ぼす3つの脆弱性を発見

Nozomi Networks BlueMark DroneScout ds230リモートIDレシーバーに影響を及ぼす3つの脆弱性を発見

空域に自由にアクセスできる民生用ドローンは、航空を根本的に変え、安全とセキュリティに新たな課題をもたらしている。このため、近年、世界中の民間航空局(CAA)は、遠隔識別(Remote IDまたはRID)の採用を推進し始めた。これは、民生用無人航空機(UA)に対して、定期的にテレメトリ情報(緯度、経度、オペレーターの位置、速度、識別子、その他多数)をブロードキャストすることを義務付ける規則とプロトコルであり、法執行機関や重要インフラ保護システムなどの第三者機関がドローンとそのオペレーターを識別し、位置を特定できるようにするものである。

BlueMark Innovations社製のDroneScout ds230アプライアンスは、ドローンから定期的にブロードキャストされるテレメトリメッセージを受信・解釈できる(ダイレクト/ブロードキャスト)リモートIDレシーバーである。特に、DroneScoutはOpen Drone ID(ODID)オープンソースフレームワークに基づいており、DIN EN 4709-002規格(EU)とASTM F3411-22a-RID-B規格(米国)の両方に対応している。このデバイスは、2つの独立したWi-Fi (802.11)インターフェースと1つのBluetoothインターフェースを装備しており、異なるリモートID規格で現在必要とされているすべての伝送プロトコル(Bluetooth legacy、Bluetooth Long Range、WiFi NaN、WiFi Beacon)とすべての周波数帯域(2.4、5.2、5.8 GHz)をサポートしています。

本ブログ記事では、DroneScout ds230デバイスに影響を及ぼす3つの脆弱性(クリティカル、ハイリスク、ミディアムリスク)を公表する。これらの脆弱性のうち2つは、攻撃者がリモートID情報を詐称し、DroneScout ds230に正規に通信しているドローンから送信されたリモートID情報をドロップさせる可能性がある。この結果、攻撃者は、DroneScoutによって検出された正規のドローンに関連する偽の場所を注入することができる。発見された3つ目の脆弱性は、DroneScoutアプライアンスに悪意のあるファームウェアアップデートをインストールする機能を示している。細工されたアップデートは、任意のファイルを含む可能性があり、その結果、攻撃者は基礎となるLinuxオペレーティングシステム上で管理者権限を獲得する可能性がある。

製造元のBlueMark Innovations社は、発見次第、ファームウェアバージョン20230605-1350の脆弱性を解決しました。ds230のユーザーは、デバイスを最新のファームウェアにアップグレードするようお願いいたします。

DroneScout ds230:背景情報

脆弱性の詳細に入る前に、DroneScout ds230の背景について少し説明する必要がある。DroneScout ds230は最終ユーザー向けのデバイスではなく、DroneScoutが提供する機能を自社製品に統合したいシステムインテグレーター向けに設計されている。また、DroneScoutはスタンドアローンのデバイスではなく、ds230アプライアンスが検出したリモートID情報を収集するためにMQTTブローカー(通常、システムインテグレーターが提供)を必要とします。最後に、DroneScoutは、先に紹介したワイヤレスインターフェース以外にも、資産所有者が自身のネットワークに接続できるイーサネットインターフェースを装備しており、デバイスがMQTTブローカーと通信するために使用される。DroneScoutは次のように動作する:

  • 内蔵の無線インターフェースを使い、Wi-FiとBluetoothの両方のチャンネルを継続的にスキャンする。ワイヤレスの観点からは、DroneScoutは完全にパッシブなデバイスである。無線で何かを送信することはなく、無線インターフェースはモニターモードに設定されている。
  • リモートID情報を含むフレーム(Wi-FiまたはBluetooth)が検出されると、Open Drone IDメッセージの内容を解析し、解析されたリモートID情報をリモートIDメッセージを送信したドローンの送信元MACアドレスに関連付ける。
  • 収集されたリモートID情報は、イーサネットインターフェースを介して、サードパーティが管理するMQTTブローカー(システムインテグレーター)に定期的に送信される。MQTTメッセージの内容はJSON形式です。

脆弱性分析:BlueMark Innovations DroneScout ds230

BlueMark Innovations社のDroneScout ds230を分析したところ、以下の3つの脆弱性が見つかりました:

クリティカル・リスク

  • CVE-2023-31191情報の紛失または遺漏 (CWE-221)
  • ベーススコア:9.3
  • CVSS 3.1 ベクターCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:H

ハイリスク

  • CVE-2023-31190: 不適切な認証 (CWE-287)
  • ベーススコア:8.1
  • CVSS 3.1 ベクターCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

中程度のリスクだ:

  • CVE-2023-29156: 情報の損失または省略 (CWE-221)
  • ベーススコア:4.7
  • CVSS 3.1 ベクターCVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L L

CVE-2023-31191で偽ドローンの軌道を注入する

最も影響力のある脆弱性は、CVE-2023-31191である。この脆弱性により、DroneScoutは、本物のドローンによってブロードキャストされたリモートID遠隔測定情報をドロップさせられ、代わりに攻撃者によって注入された偽のリモートID情報を含むJSONエンコードされたMQTTメッセージを生成し、送信させられる。その結果、MQTTブローカーを実行するシステムインテグレーターは、正規のドローンのリモートID遠隔測定情報にアクセスできなくなる。

さて、これがどのように可能なのか見てみよう。

DroneScoutのロジックは、ファームウェアのメイン実行ファイルdronescout.arm64によって処理される。ソースMACアドレスMdを持つ新しいドローン(Dと呼ぶ)がDroneScoutによって検出されると(すなわち、Dが リモートID情報を含むODIDメッセージを送信 し、これらのメッセージがDroneScoutによってキャプチャされると)、dronescout.arm64は、特に以下を含む、Mdによってインデックス付けされたメモリ内のグローバルリンクリストエントリーを作成する:

  • Md->channel:Dによって送信されたODIDメッセージがキャプチャされたWi-FiチャンネルC
  • Md->RSSI:Wi-Fiフレーム受信RSSI。

DroneScoutのファームウェアバージョン20230104-1650は、リリースノートに記載されているように、アルゴリズムを導入した:「RSSIが非常に強い場合、隣接チャンネル上のWLANトランスポンダ信号を抑制するアルゴリズムを実装しています。(例えば、トランスポンダがチャネル 6 で -45 dBm で検出された場合、チャネル 4、5、7、8 でも検出されます。アルゴリズムは、隣接チャンネルでのこれらの検出を抑制します)。

このアルゴリズムは関数wlan_pcap_handler(0x408a80)に実装されており、デコンパイルしたスニペットを図1に示す。

隣接チャンネルフィルタリングアルゴリズム。
図1.隣接チャンネルフィルタリングアルゴリズム。

要するに、ODIDメッセージを含む新しいWi-FiフレームがRSSI RでチャネルC1のMACアドレスMdから受信されると、このアルゴリズムは以下のロジックを実行する:

  • If C1 is an adjacent channel (i.e., ((Md->channel – C1) + 3) < 7) and the reception RSSI R is greater than the last RSSI registered for Md (i.e., (R – Md->RSSI) > 6), then Md->channel is set to C1, Md->RSSI is set to R and the new ODID message is accepted and used to fill the Remote ID information in the global entry corresponding to Md.
  • そうでない場合、新しいODIDメッセージは、C1が C(すなわち、Md->チャネル)と同じ場合にのみ受け入れられる。言い換えれば、新しいWi-Fiフレームは、Mdに対して以前に登録されたのと同じチャネルで受信された場合にのみ受け入れられる。

上記の説明は、Mdから受信したODIDメッセージのタイムスタンプや、特定のドローンDから最初に受信したODIDメッセージの場合など、他の詳細を処理するアルゴリズムの簡略版である。しかし、これらの詳細は、ここで議論する脆弱性に影響を与えないため、あまり散漫にならないように省略している。

攻撃者は以下の手順で上記のアルゴリズムを悪用することができる:

  • 送信元MACアドレスMdを偽装し、細工したリモートIDデータを含むODIDメッセージを作成する。
  • 隣接するチャネルCa(例えば、ドローンDがチャネル6で送信している場合、攻撃者はチャネル8で送信することができる)でスプーフィングされたソースMACアドレスを持つODIDメッセージをインジェクトする。
  • Wi-Fiフレームを、上述の条件(すなわち、(Ra - Md->RSSI)> 6)を満たすRSSIRaでDroneScoutによって受信されるように、十分に高い電力で送信する。これは、送信アンプまたは高ゲイン/指向性アンテナを使用することで達成できる。

上記の条件が満たされた場合、DroneScoutは攻撃者によって詐称されたODIDメッセージを受信すると、Md->channelを Caに Md->RSSIを Raに設定し、この瞬間からチャネルCでドローンDから受信したODIDメッセージをドロップし始める。

図2は説明した攻撃の潜在的な影響を示している。この例では、攻撃者は隣接チャネルになりすましのODIDメッセージを注入し、ドローンDが特定の方向(この例では西)に向かっているように見せている。

 攻撃者によって注入されたドローンの軌道。
図2. 攻撃者によって注入されたドローンの軌道。

これは、ドローンDが実際には別の場所にいるにもかかわらず起こる。これは図3に示されており、攻撃者がスプーフィングされたODIDメッセージの注入を止めると、ドローンDの位置が表示される。

本物のドローンの位置
図3.実際のドローンの位置。

攻撃者はCVE-2023-29156でも同じような結果を得ることができる。しかしその場合、脆弱性はより複雑で、悪用の信頼性も低いため、リスク・ベース・スコアは低くなります。

注:本情報およびスクリーンショットは、DroneScout のファームウェア20230329-1042 に 関するものです。しかし、議論されている脆弱性は、バージョン20230104-1650から始まる、全ての以前のファームウェアリリースに適用される。また、ファームウェア解析に使用されるベースアドレスは0x400000 です。

CVE-2023-31190による悪意のあるファームウェアのアップデート

CVE-2023-31190により、中間者攻撃(例えば、DNSポイズニング、ARPポイズニング、エンドポイントへの経路上のノードの制御など)を実行する能力を持つ攻撃者は、DroneScout ds230に、任意のファイル(実行可能ファイルや設定ファイルなど)を含む、細工された悪意のあるファームウェアアップデートをインストールするよう促し、基盤となるLinuxオペレーティングシステム上で管理者(root)権限を獲得する可能性があります。

これは、DroneScoutアプライアンスで使用される更新手順に脆弱性があるためです。ユーザーは、アップデートスクリプト/root/update.sh を実行することで、DroneScout を最新のファームウェアに手動でアップデートすることができます。このスクリプトは、図 4 に示すようにhttps://download.bluemark.io/dronescout/firmware/stable/ds230.tar.bz2からファームウェアをダウンロードします。

curlによるファームウェアのダウンロード。
図4. curlによるファームウェアのダウンロード。

図4に示すように、ファームウェアは、オプション"-insecure "付きのcurlを使用してダウンロードされる。curlのドキュメントに記載されているように、"-insecure "オプションは、"そうでなければ安全でないとみなされるサーバー接続であっても、curlを続行し、動作させることができます... 警告:これは、転送を安全でなくします"。つまり、"-insecure "オプションが使用されると、curlはbluemark.io HTTPSサーバーが提供するTLS証明書を無視するということです。"bluemark.io "に向けられた接続を、自分の制御下にあるホストにリダイレクトできる攻撃者(例:中間者)は、自己署名の TLS 証明書を持つ静的な HTTPS ファイルサーバーを設定し、update.sh スクリプトを騙して、悪意を持って細工されたファームウェアアップデートファイル(ds230.tar.bz2)をダウンロードさせることができる。

我々の PoC では、ファームウェア・バージョン 20230329-1042 用の、細工された ds230.tar.bz2 アップデート・アーカイブを作成した。この細工されたアーカイブでは、"media/root-root/version.txt"("/root/version.txt "にインストールされる)ファイルが、"20230329-1042-pwned "という文字列を含むように修正されている。次に、アップデートスクリプトがファイルds230.tar.bz2の完全性を検証するために使用する、対応するds230.tar.bz2.md5sumファイルを作成しました。 md5sum ds230.tar.bz2 > ds230.tar.bz2.md5sum

「download.bluemark.io」という名前が解決されたときに、攻撃者の管理下にあるサーバーのアドレスを返すように、ローカルのDNSサーバーを設定しました。そして、攻撃者のサーバー上に、図5に示すディレクトリ構造を作成しました。

静的 HTTPS ファイルサーバーのディレクトリ構造。
図5. 静的HTTPSファイルサーバーのディレクトリ構造。

次に、自己署名TLS証明書を使用したHTTPS静的ファイルサーバーであるssfsを実行した。最後に、DroneScoutアプライアンス上でアップデートスクリプト/root/update.shを実行した。DroneScoutは、模擬攻撃者が制御するサーバーに接続し、細工されたファームウェアのインストールを進めた。これは、図 6 に示すように、アップデートプロセスの最後に、DroneScout 上の /root/version.txt ファイルをダンプすることで確認できる。

ファームウェアを細工したDroneScout。
図 6.ファームウェアを細工したDroneScout。

資産所有者およびシステム・インテグレーターは、BlueMark Innovations が 2023 年 6 月 5 日にリリースしたアップデート・ファームウェア(バージョン 20230605-1350)(または入手可能な場合はより新しいファームウェア・リリース)を速やかに適用することを推奨する。

概要  

BlueMark InnovationのDroneScout ds230は、最新のブロードキャスト・リモートID規格をサポートする最初の市販アプライアンスの1つです。我々は、DroneScout ds230を分析する機会を得たので、この記事では、リモートIDレシーバーに影響を及ぼす3つの脆弱性を公開した。このうち2件はクリティカルかつハイリスクと評価され、DroneScoutアプライアンスから提供されるデータの信頼性および資産所有者のネットワークのセキュリティに影響を与える可能性があります。我々は、BlueMark DroneScout ds230 の所有者、およびこのデバイスを使用しているシス テムインテグレーターに対し、利用可能なファームウェアアップグレードを適用し、敵対者が提示され た脆弱性を悪用することを防ぐよう強く要請する。

ドローンが定期的にテレメトリ情報をブロードキャストすることを要求するリモートIDポリシーと標準は、将来の航空において不可欠な役割を果たすだろう。これは、低空飛行の取締り機関や重要インフラ当局などのエンティティが、特定のエリアを取り囲むドローンを認識することを可能にするため、空域のセキュリティと安全の両面で当てはまる。脆弱性に対処しなければ、増加する商業用ドローン全体で正当な遠隔測定データを詐称する可能性があり、リモートIDポリシーと放送される遠隔測定情報の完全性に潜在的に危険なリスクをもたらす。