泥棒のIoTパラダイス:一般的なメッセージングプロトコルのセキュリティリスクを理解して軽減するIoTCloud

泥棒のIoTパラダイス:IoTクラウド上の一般的なメッセージングプロトコルのセキュリティリスクの理解と軽減

概要

  • IoTクラウドプラットフォームの通信プロトコルの脆弱性を分析しました
  • mqttプロトコルでメッセージ、セッション、クライアントID、トピックに関連する脆弱性が見つかりました
  • セキュリティ強化方法の設計と実装

抜け穴

1.不正なmqttメッセージ

mqttプロトコルのWillMessageとRetainedMessageのメカニズムと、不正な欠陥の欠如、およびmqttセッション管理の欠陥を使用して、mqttの上記の2つの機能を通じて発行されたコマンドの実行を遅らせ、 IoTデバイスコントロール。
ここに画像の説明を挿入

2.mqttセッションの管理エラー

MQTT仕様では、サーバーがクライアントの特定の操作を承認することを推奨しています。

問題

  • 更新されていないセッションサブスクリプションステータス

デバイスがリセットされてデバイス上のユーザーのすべてのアクセス許可が完全に削除されると、確立されたセッションでは、ユーザーのクライアントは、デバイスのトピックのサブスクライブなどのアクティブなアクションを実行できなくなります。ただし、セッション状態管理を確認したところ、MQTT仕様では、クライアントの特権の変更に応じてセッション状態を更新するためのガイダンスが提供されていないことがわかりました。ガイダンスが不足しているため、実際のIoTシステムでは、特にセッションのサブスクリプションステータスに関して、セッション管理にプライバシー漏洩の欠陥があることが判明している可能性があります。たとえば、顧客が特定のトピック(たとえば、ホテルの部屋のスマートスピーカーのトピック)をサブスクライブしているセッションを確立している限り、ユーザーがそのトピックをサブスクライブすることを許可されなくなった場合でも(たとえば、チェックアウト後)、エージェントは確立されたセッションを通じて顧客にメッセージを継続的に配信していることがわかります。つまり、セッションのサブスクリプションステータスは、ユーザーが特権を失った後も継続します。これにより、デバイスの悪意のある元ユーザーは、個人など、現在のユーザー(被害者)に対してデバイスによって生成されたすべてのメッセージを継続的に受信できます。購入履歴と習慣、健康状態とデータ(心拍データなど)など。

  • 更新されていないセッションライフサイクル

IoT環境のMQTTクライアントは、デバイス(クライアントがデバイスの資格情報を介して認証する場合)とユーザー(クライアントがユーザーの資格情報を介して認証する場合)の2つの異なる役割を表すことができます。IoTクラウドは、セキュリティの観点からこれら2つの役割を異なる方法で管理します。つまり、デバイスはアクセスされるリソースとして使用され、ユーザーは認証と承認の原則です。この違いは、IoTデバイスの共有と撤回のシナリオにおけるセキュリティリスクであることが判明しました。特に、デバイスが新しいユーザーによってリセットされると(前のユーザーのアクセスを削除するため)、デバイスにアクセスする前のユーザー(およびそのクライアント)のアクセス許可が取り消されます(つまり、デバイス)。ただし、テーマにアクセスするためのデバイスの許可を取り消すという概念はありません。したがって、考えられる攻撃の1つは、元のユーザー(攻撃者)がデバイスの使用を許可されたときにデバイスの資格情報を取得し(トラフィック分析やリバースエンジニアリングなど、デバイスの資格情報の取得は通常簡単です)、新しいユーザー前のユーザーの後、攻撃者はいつでもデバイスの資格情報を使用してデバイスを偽装し、デバイスのトピックに偽のメッセージを投稿できます。取得したデバイス資格情報を使用すると、元のユーザー(攻撃者)がセッションを確立し、資格情報の有効期限が切れる前にセッションをオンラインに保つ限り、セッションを通じてデバイスに代わってデバイスのトピックに偽のメッセージをいつでも投稿できます。 。資格情報の有効期限が切れた後でも、前のセッションが閉じられていないために攻撃が続行される可能性があるため、新しいクライアントの認証や新しいセッションの確立に使用できなくなることに注意してください。これには深刻なセキュリティとセキュリティリスクさえあります。たとえば、泥棒や犯罪者は偽のメッセージを使用して、ドアがロックされているかバルブが閉じられていないことをユーザーに示すことができます。偽のメッセージは、 IoTプラットフォーム。

3.未確認のクライアントID

一部のIoTクラウドプラットフォームは、関連付けられたデバイスを担当するclientidフィールドではなく、ユーザーのみを検証します。攻撃者は、通常のユーザー認証に合格した後、clinetidに対してサービス拒否攻撃を実行できます。これは、clientidの競合によりデバイスが切断されるためです。

4.許可されていないトピック

一部のIoTクラウドプラットフォームはトピックを検証および承認しないため、攻撃者は自分が知っているMQTTトピックにサブスクライブでき、トラフィック分析用のデバイスに違反したり、デバイスを使用したりすることでトピックを取得できます。この情報には、健康統計と状態、購入の好みと履歴、良い習慣、家族関係など、デバイスに応じて、機密性の高い情報や個人情報が含まれる場合があります。

安全性の向上

鍵共有エンティティを管理するための不足しているセキュリティモデルと設計原則を追加する

管理プロトコルIDとセッション:MQTTクライアントのClientIdを制限します

メッセージ指向のアクセス制御モデルが提案されています。メッセージをリソース(オブジェクト)として受け取り、サブジェクトとオブジェクトの属性に基づいてサブジェクトのアクセス権限をチェックします。

おすすめ

転載: blog.csdn.net/qq_32505207/article/details/111375635