Nozomi Networks Labs チームによるこのブログ記事は、産業用IoT ネットワークで広く使用されている低電力無線周波数 WAN 技術に対する攻撃を調査したものです。
我々の研究は、IoT ネットワークの送信周波数を発見し、その信号を妨害してネットワーク通信を妨害することの実行可能性に焦点を当てた。調査した攻撃シナリオには現実的な限界があるものの、技術が成熟するにつれて考慮すべき潜在的な攻撃ベクトルが存在することは明らかである。
LoRaWANテクノロジー入門
LoRaWANは、低消費電力広域ネットワーク(LPWAN)に分類される無線技術である。LoRaWANはLoRaアライアンスによって推進されているオープンスタンダードで、特に産業用IoT 。この技術の用途には、無線通信の恩恵を受け、長距離通信と低消費電力の要件を持つデバイスが含まれる。
これには、インテリジェントな水道メーターが含まれ、水道使用量を電力会社に伝達することで、数ヶ月ごとに検査員が住宅を訪問する必要がなくなる。また、適切なインフラがないようなさまざまな地形を長距離にわたって延びるガス・パイプラインからのデータ伝送も考えられる。このようなシナリオでは、ワイヤレス通信技術のコストは、例えば気象データ用にすべての機器を相互接続するのに必要なコストの数分の一で済むだろう。この柔軟性は利用可能なデータ・レートのコストに関係するが、それでも、少量のデータがまさに必要なアプリケーションにとっては魅力的なソリューションである。
このような技術は業界全体で受け入れられているが、我々の生活への影響を考慮する必要がある。LoRaセンサー(LoRaはLoRaWANで使用される変調技術)は、他の多くの無線技術と同様に、受信者がLoRa信号を利用できなくなる干渉攻撃の影響を受けやすい。
興味深いのは、このような攻撃は現実的ではないということだ。変調による対抗策(周波数ホッピングなど)だけでなく、これらのセンサーは長距離に設置できるためだ。LoRa信号を妨害する実験は実施されているが、我々は、そのような攻撃を実世界で実際にどのように展開できるかを探ることに関心があった。我々は、そのような作戦の要件が何であるかを理解し、高度な持続的脅威(APT)がそのようなシナリオで何をするかを調査することに重点を置いた。
これらの制限を理解するために、まず固定周波数の観点から、次に周波数ホッピングの観点から、信号の割り込みを調査した。つ目の用語は、正規の送受信者だけが知っている擬似ランダムシーケンスで送信周波数をわずかに変更することにより、信号を干渉から保護するために使用される戦術を指す。
まずジャマーについて考えた。送信中に攻撃を妨害しようとする選択的なものを実装したかった。それはいくつかの観点から理にかなっていた。まず、無線ジャマーは制御不能な破壊力を持つ。特化したターゲティングができない以上、これは問題だ。自分たちのインフラや、意図しないターゲットを混乱させるかもしれない。また、探知されやすい。
これを実現するために、2つのアプローチを検討した。1つ目は、LoRaパケットの送信時間を計る方法である。LoRaセンサーは1日に数パケットを送信し、通常は事前に定義された時間帯に送信するため、このアプローチが考えられる。第二のアプローチは、センサーが送信を開始した時に攻撃を開始することである。ここでの目標は、センサーからの送信が始まった瞬間に妨害信号を送信し、そのペイロードを妨害することである。周波数ホッピングアプローチよりも利点があるため、2番目のアプローチを使用することにしました。
つ目の手法で問題になったのは、信号を効果的に妨害するためにセンサーの近くにいる必要があったことだ。無線信号からデバイスの位置を特定するために利用できる方法はいくつかある。媒体中を伝播する波は、発信源から離れるにつれて特定の方向を持つ。アンテナのアレイを使うことで、その信号の発信源の位置を導き出すことができる。まさに潜水艦のソナーがそうだ。このようなアプローチでは、信号の到達時間差(TDoA)と方向を計算するための装置の適切な同期が必要となる。波のもう一つの属性は、そのパワーである。ある条件下では、信号の強弱を測定することで、センサーまでの距離を推定することができる。2つ目のアプローチは正確性に欠けるが、同期の必要がなくゲートウェイが1台で済むため、実装コストも抑えられる。
攻撃シナリオの決定
私たちの実験では、それを実施することにした:
- LoRa信号の強さに基づくローカライズ戦略
- センサーがデータを送信するときに作動する妨害攻撃
ローカライズには、受信信号強度インジケータ(RSSI)値を使用した。これはLoRa信号のパワーの測定値である。LoRaにおけるRSSIと距離の関係は以下の式で与えられる:
RSSI= -10*n*log(10d)+A
ここで、dはノードから測定点までの距離、Aは2つのアンテナ間の距離が1mの場合の受信電力、nは環境条件に依存する損失パラメータまたは損失指数である。dを解くと次の式が得られます:
d=10((A-RSSI)/10n)
パラメータAとnは、測定が行われる環境(建物、都市部、農村部など)に大きく影響される誤差を伴って推定することができる。
ある場所からの推定距離があるだけでは不十分で、距離はわかっても方向がわからないからだ。センサーはどの方向にもあり、直径で測定点を囲む円を作る。センサーの位置を特定するためには、少なくとも3つの異なる測定点が必要である。これがトリラテレーション・アルゴリズムであり、3点の測定により、円が交差する点までのLoRaセンサーの位置が得られる。
必要なだけ何度でも測定を繰り返すことができます。また、より精度を高めるために、複数のポイントを追加することもできます。測定値が極めて正確でない場合は、多くの測定値の平均をとって推定値を出すことができます。
信号の位置を特定するために、LoRaゲートウェイとしてプログラム可能なArduino MKR WAN 1310を使用した。ArduinoはPCBに接続され、シリアルポートを介してラズベリーで遠隔操作できる。ラズベリーと4Gで接続することで、複数の遠隔地で検出器を動かすことができる。
LoRaWAN信号の特定とジャミング
ジャマーの目的のために、我々はソフトウェア無線(SRD)モジュールを使用した。これらのデバイスはプログラマブルな信号処理デバイスで、必要に応じて信号の変調と復調を行うことができる。
ジャマー攻撃は2つのフェーズからなる:
- LoRa信号の検出。一連のバンドパスフィルターを使用して、LoRaの範囲で利用可能なすべてのチャンネルをチェックした。これにより、複数のチャンネルを監視することができ、可能性のあるパケット送信を捕捉することができた。
- LoRa信号の妨害。これには、妨害する必要のある周波数にエネルギーのバーストを送ることが含まれる。その結果、LoRa信号が破壊される。正規のゲートウェイはパケットをドロップせざるを得なくなり、貴重な情報が失われる。
我々の実験では、パケットがドロップされるか、パケットのCRCが無効であることに気づいた。これは、パケットの一部がゲートウェイから受信されたが、不正な形式であったため、ゲートウェイがそれを検証できず、ドロップせざるを得なかったことを意味する。
我々のアプローチを実世界で応用するために、ドローンを使うことにした。ドローンはどんな地形でも移動でき、信号を受信するのに十分な高度を得ることができる。RSSIは、同じ場所で数回測定した後、値を平均化することでかなり正確になる。
ここでのアプローチは、施設に近い、半径5~10km圏内のランダムな場所を選択することである。LoRa信号の受信エリア内で、複数回の測定を行い、平均的なRSSI値を設定します。同じポイントでない限り、任意に選んだ少なくとも2箇所でこのプロセスを繰り返す必要があります。三点測位アルゴリズムを使って、センサーの位置を推定することができる。最終段階は、センサーに近づき、選択ジャマーを作動させることです。
結論
我々が実装した攻撃シナリオには、ドローンのバッテリー寿命が約20分であるなど、いくつかの制限があるが、この研究は、産業用通信インフラの一部を自動的に特定し、混乱させるために、ドローンがすべての障壁を迂回することができるため、攻撃者が物理的な制限を完全に無視してターゲットセンサーに近づくことができることを示している。
重要なことは、システムの枠組みや特性を考慮した現実的な攻撃が設計できるということである。技術が進歩するにつれ、私たちはシステムやインフラを安全に保つために、このような配慮を意識しなければならない。