Things Cloudのセキュリティ

ここではThings Cloudの複数のセキュリティ面(物理的セキュリティ、ネットワークセキュリティ、アプリケーションセキュリティ、アクセス制御)について詳しく説明していきます。さらに、Things Cloud が IoT ソリューションのセキュリティ管理をどのように手助けできるか説明します。

このセクションは、特に IT セキュリティ担当者と管理者を対象としています。Things Cloudを実行するには、IT セキュリティの専門知識が必要です。

詳細については、Things Cloud OpenAPI仕様 の RESTの実装User API など、ドキュメントのセキュリティ関連のセクションを参照してください。個々の API コールに必要なアクセス権限については、該当の Things Cloud OpenAPI仕様 の API セクションに記載されています。

物理的セキュリティ

IT システムの物理的セキュリティとはサーバー、ストレージ、ネットワークなどの各デバイスへの無許可アクセスを防止することを表します。

Things Cloudは、Amazon Web Services(AWS)にホスティングされています。AWS は、ISO 27001、DSS その他の基準に基づいて認証されています。広範な物理的セキュリティ対策が施されており、独立して監査されています。実際のセキュリティ上の理由から、すべての詳細は公開されていません。監査レポートは、直接 AWS Compliance から取得できます。

当社の戦略的ホスティングパートナーは、最新の概念およびデータセキュリティの概念を遵守しています。

IoT の物理的セキュリティはデータセンターのみではなく、デバイスに対しても守る必要がある点に留意してください。例えば、デバイスからのデータをリダイレクトまたは操作したり、デバイス自体の情報を得たり、デバイスの設定を変更されたりなど外部からの進入を防止する必要があります。IoT を用いたシステムで使用するデバイスの物理的セキュリティについて、必ず確認するよう注意してください。例えば、構成用のポートに対する物理的なアクセス防止対策 または、独自のシステム内に追加のセキュリティ制御として改ざんセンサーを組み込んだりすることをお勧めします。

Things Cloud プラットフォームのオペレーターとして、当社はテナントの内部システムを制御しません。テナントは、独自のシステムに対して、強力で慎重に検討されたセキュリティ概念に従う必要があります。

ネットワーク セキュリティ

ネットワークセキュリティは、ネットワーク上にあるデータへの無許可アクセス、データの改ざんなどを防止すると同時に、安全で安定したネットワークサービスの接続を確保することも含まれます。

Things Cloud は、お使いのデータが機密のままであり、データが改ざんされないように、デバイスからアプリケーションまでエンド・ツー・エンドの HTTPS 通信を行っています。これは、HTTPS の最新の暗号化技術SSLlabsを使用して実現されており、独立して「A」と評価されています 。 Things Cloud とのすべての通信は、個別の認証と承認が必要です。

下図は Things Cloud のネットワークダイアグラムです。センサーネットワーク内とセンサーネットワークからエージェントへの通信にはデバイスやゲートウェイ固有のプロトコル(ZigBee や Modbusなど)を使用しています。これにより、安全性の確保をセンサーネットワークに限定することができるようになります。エージェントは Things Cloud に対し https を使用します。同様に IoTアプリケーションは Things Cloud 上で https を使用します。もしIoTアプリケーションが独自のプロトコルを Web ブラウザ上で利用する場合、これらを https 対応にすることを推奨します。これにより、エージェントからエンドユーザーへのパス全体が保護されます。

通信セキュリティ

上記の通り Things Cloud では、インターネットに対するサーバーポートや独自のプロトコルが必要ありません。このことは、セキュリティ確保に大きく貢献します。デバイスの Things Cloud 接続の単純化のみならず、デバイスの安全性確保も大きく単純化されます。IoT ソリューションを展開するときは、Web ベースのデバイスマネージャーや SMS ベースの構成オプションなど、デバイスをインターネットで利用可能にしたり、公開したりする可能性のある他のサービスを確認してください。

アプリケーション セキュリティ

アプリケーション セキュリティとは、ソフトウェアレベルの安全性のことです。

  • Things Cloud は、各タイプのベストプラクティスを適用し、複数の認証方法をサポートします。各タイプの詳細については、認証 を参照してください。
    • 「基本認証」は、セッションレス REST API を備えています。つまり、一般的な「セッションハイジャック」手法は、Things Cloud では機能しません。
    • 「OAI-Secure」は、認証トークンを使用してユーザーの ID を証明し、高いセキュリティを提供します。
    • 「シングルサインオン」リダイレクトにより、外部認証プロバイダーの使用が可能になります。
  • Things Cloud は IoT データのストレージに SQL データベースを使用しておらず、Things Cloud 自体もスクリプト言語に基づいていません。これは、Things Cloud に対し「インジェクション攻撃」が使えないということです。
  • 前述のように、デバイスは Things Cloud のクライアントとなるので、デバイスへの一般的な攻撃が効きません。
  • デバイスは、個々に Things Cloud デバイス登録機能と接続されます。これにより、もしデバイス自体が改ざんされたり盗まれた場合でも、その特定デバイスの接続を切ることで問題が解決できます。

アプリケーション管理

  • Things Cloud は、アプリケーションアクセス制御と REST API アクセス制御で構成される汎用的な権限モデルを使用します。これにより、ユーザーのアクセスルールを正確に定義できます。
  • Things Cloud プラットフォームでは、標準アプリケーションはデフォルトで最良のセキュリティ プラクティスに従って構成されています。
重要
Things Cloud 内のアプリケーション管理は非常に柔軟なため、十分な権限があれば、ユーザーは特定のセキュリティ対策を悪用することができます。例えば、悪意のあるコードを含むカスタムアプリケーションを展開し、幅広いユーザーに公開できます。したがって、アプリケーション管理機能は、信頼できる知識のあるユーザーに限定する必要があります。

アクセス制御

Things Cloud は領域、ユーザー、ユーザーグループ、権限を基盤とした認証モデルを使用しています。まず、「領域」は同じ認証・権限ポリシーを使用するユーザーとユーザーグループの集まりを指します。「ユーザー」は、Things Cloud にアクセス許可を持つ個人または外部システムを指します。すべてのアクセスは権限によって制御されます。

Things Cloud は、各テナントにユーザーの属する領域を新しく作成します。この領域では各ユーザーとして好きなユーザー名を利用できます。領域をまたがって、同一のユーザー名があっても区別されます。テナントAの「コム太郎」はテナントBの「コム太郎」とは別に扱われます。このユーザー名は、ユーザーの所属するテナントが利用するすべての Things Cloud アプリケーションで使用可能です。

それぞれの領域には自動的に管理者ユーザーが指定され、この管理者は自由にユーザーやユーザーグループを追加し、許可を与えることができます(グローバルロール)。各企業ではこの管理アプリケーションを利用して、自由にユーザーと権限を管理することができます。

権限と所有者

システム上で特定の機能を実行するためには、2 つの概念が必要になります。権限と所有者です。

権限は、ユーザーの実行できる機能を定義します。

Things Cloud では、読み取り権限と管理者権限を区別します。読み取り権限は、各ユーザーにデータの閲覧を許可します。管理者権限は、ユーザーにデータの作成・更新・削除を許可します。この 2 つの権限は、Things Cloud 内の各データタイプ別に定義できます。例えば、インベントリ、メジャーメント、オペレーションなどにそれぞれ読み取り権限が存在します。

権限をより簡単に管理するために、権限はいわゆる「ロール」にグループ化されています。すべてのユーザーを複数のロールに関連付けることができ、ユーザーの権限を追加できます。

次のタイプのロールを、ユーザーに関連付けることができます。

  • グローバルロール:テナント内のすべてのデータに適用される権限
  • インベントリロール:デバイスのグループに適用される権限

インベントリ内のオブジェクトは、すべて所有者が存在します。オブジェクトを作成した場合、その所有者はオブジェクトを管理でき、追加の権限は必要ありません。所有者は自分の持つ他の権限に関係なく、常に次の操作を実行できます。

  • 所有するインベントリ オブジェクトの閲覧、更新、削除
  • 所有するオブジェクトに関連するデータの作成、閲覧、更新、削除

例えば、インベントリ内にあるスマートメーターを所有していたとします。所有者である限り、他の権限がなくても、このスマートメーターが抽出したすべてのデータを利用することができます。

インベントリには「作成」権限があります。この作成権限のみを持つユーザーは、新しいオブジェクトをインベントリ内に作成できますが、データの閲覧・変更・削除などはできません。この機能はデバイス設置のときに利用できます。この「作成」権限で、オブジェクトを他のオブジェクトへ子デバイス・子アセットとして登録することもできます。

ただし、更新権限、または該当のインベントリロールがない限り、自分で作成していないデバイスやグループを管理することはできません。

この概念は、デバイスに最小限のアクセス許可を割り当てるのに役立ちます。

マネージドオブジェクトへのアクセス制限

Things Cloudは、すべての管理オブジェクト、メジャーメント、イベントなどに適用されるグローバル権限を設定することを可能にします。また、特定の管理オブジェクトや管理オブジェクトのセット、単一のユーザーやユーザーグループ、個々のフラグメントに対する権限の制限も可能です。

Things Cloud を使用すると、すべてのマネージドオブジェクト、メジャーメント、イベントなどに適用できるグローバルなアクセス権限を設定できます。同時に、次へのアクセス制限を設けることもできます。

  • 特定のマネージドオブジェクトまたは複数のマネージドオブジェクト
  • 単一のユーザーまたはユーザーグループ
  • 個々のフラグメント

ロールの管理と権限の割り当て

グローバルロールおよびインベントリロールは、管理アプリケーションの ロール ページにて権限を作成・管理することができます。

使用可能なデフォルトロール、およびグローバルロールとインベントリロールの作成と割り当ての詳細については、権限の管理 を参照してください。

API を使用した権限管理の詳細については、Things Cloud OpenAPI仕様 内の User API を参照してください。

グローバルにアクセス可能なオブジェクト

特別な権限のないユーザーも含め、すべてのユーザーにオブジェクトへアクセスする許可を与えることができます。c8y_Global というフラグメントを新しく追加してください。

セキュリティ管理

セキュリティに関連するイベントが発生するたびに、監査するためにログに記録する必要があります。セキュリティに関連するイベントは、アプリケーションレベルでも、IoT ネットワークでも発生する可能性があります。アプリケーションレベルでのセキュリティ関連イベントの単純な例は、アプリケーションへのログインです。ネットワークレベルのセキュリティ関連イベントの例としては、デバイス上のローカルソフトウェアまたはローカルコントロールを使用してデバイスを操作することが挙げられます。

セキュリティに関連するイベントを捕捉するために、Things Cloud は 監査インターフェース を提供します。このインターフェースにより、アプリケーションやエージェントは監査ログを書き込むことができます。監査ログは永続的に保存され、書き込まれた後に外部から変更することはできません。Things Cloud 自体も、ログインとデバイス制御操作に関連する独自の監査レコードを書き込みます。

セキュリティ インシデントを報告するには、製品サポート までご連絡ください。

まとめ

Things Cloudのセキュリティは、さまざまなレベルに対処しています。

すべてのビジネスパートナーおよびサービスプロバイダーは、セキュリティ証明書を認証しています。Things Cloudは、個々の認証および認可方法によってネットワーク セキュリティの側面を扱っています。

Things Cloud との接続は、HTTPSテクノロジを使用して確立されます。

すべてのテナントは、ユーザーおよびユーザーグループを追加または廃止するための全権限を与えられています。テナントは、エージェントとデバイスにも権限を割り当てます。