この投稿を読む権限はありますか?

認証に関する前回のブログに続き、今回は認証とよく混同される、もう一つの重要な概念である認可について説明します。システムへのアクセスが許可されたことを証明した後、次にシステムの様々なリソースへのアクセス許可を得る必要があります。これはより細かなアプローチであり、システム所有者がどのユーザーがどのリソースにアクセスできるかを決定することを可能にします。
前述の通り、IoT環境における認可は、ユーザーとそのユーザーがアクセスすべき情報のレベルや量に基づく細かなアプローチです。特定のリソースについて最初に決定すべきことは、アクセスを中央で制御するか、リソース所有者に責任を委譲するかということです。どちらも有効なアプローチであり、相互に組み合わせて使用することができます。重要なのは、ユーザーとリソース所有者の両方が容易に理解できる一貫したアプローチを確保することです。そうでなければ、ユーザーが必要なリソースにアクセスできない状況や、さらに問題となる、見るべきではないリソースへのアクセス権を与えられてしまう状況に陥る可能性があります。
システム全体またはリソース固有の認可に適用できる初期アプローチをいくつか見てみましょう。
- ロール—これは、特定のロールに基づいてユーザーにシステム内のリソースへのデフォルトアクセスを提供するものです。最も一般的で理解しやすいのは管理者の役割です。
- コンテキスト—管理者の例を取ると、別の要因に基づいて管理者ロールのアクセスをさらに増減させることができます。例えば、信頼できないデバイスからの管理者アクセスを許可しないなどです。
- 属性—例を拡張すると、属性を使用してリソースへの認可にさらなる細かさを提供できます。この例では、時間と場所に基づいてアクセスを制限したいので、信頼できるデバイスを使用する管理者は、09:00から17:00の間にローカルロケーションからのみリソースにアクセスできます。
したがって、認可は、ユーザーのロールや権限、リクエストのコンテキスト、またはリソースの属性など、様々な要因に基づいています。このプロセスは、ユーザーまたはシステムがリソースにアクセスしたり、アクションを実行したりする権限があるかどうかを判断するために、一連のルールやポリシーに対してチェックすることを含むことが多いです。
サイバーセキュリティアプリケーションで一般的に使用される認可の種類がいくつかあります。
1. 任意アクセス制御(DAC)
DACは、リソースの所有者が他のユーザーに対してそのリソースへのアクセスを許可または取り消す能力を持つ、ルールベースのアクセス制御システムです。所有者は通常、ファイル作成や所有権の明示的な割り当てなどのプロセスを通じてリソースの所有権を付与された人です。
DACを使用するシステムの例には以下があります:
- パーソナルコンピューターやサーバーのファイルシステム:ユーザーがファイルを作成すると、通常そのファイルの所有者となり、システム上の他のユーザーに対してアクセスを許可または取り消すことができます。ユーザーはファイルやディレクトリに読み取り、書き込み、実行権限を設定し、それらへのアクセスを許可または拒否できます。
- データベース管理システム:データベースオブジェクト(テーブルやレコードなど)の所有者は、他のユーザーにアクセスを許可または取り消すことができ、オブジェクト内のデータの読み取りや変更を可能にします。
- オブジェクト指向プログラミング言語:Javaなどの一部のオブジェクト指向プログラミング言語は、privateやprotectedなどのアクセス修飾子の形でDACのサポートを含んでいます。これらの修飾子により、開発者はクラスのどの部分が他のクラスからアクセス可能かを制御できます。
- クラウドストレージサービス:クラウドストレージサービスでファイルやフォルダを作成したユーザーは、他のユーザーとファイルを共有し、ファイルの読み取りや書き込みアクセスを与える制御権を持ちます。
2. 強制アクセス制御(MAC)
MACは、オブジェクトとサブジェクト(ユーザー、プログラムなど)の両方に割り当てられたセキュリティラベルとクリアランスレベルに基づいてリソースへのアクセスが決定される、もう一つのルールベースアクセス制御システムです。リソースへのアクセスは、通常セキュリティ管理者の形で中央機関によって決定され、セキュリティポリシーを定義し実施します。
MACを使用するシステムの例には以下があります:
- セキュア通信システム:軍事や政府グレードの暗号化システムなどの一部のセキュア通信システムは、暗号化された情報へのアクセスを制御するためにMACを使用します。適切なクリアランスレベルを持つ認可されたユーザーのみが情報にアクセスし、復号化できます。
- 産業制御システム:発電所や石油精製所で使用されるような産業制御システムは、重要なシステムやインフラへの不正アクセスを防ぐためにMACを使用します。アクセスは認可された個人やグループに制限され、組織内でのクリアランスレベルと役割に基づいて許可または拒否されます。
3. アクセス制御リスト(ACL)
ACLは、リソースに関連付けられた権限のリストです。リスト内の各エントリは、ユーザーまたはグループと、そのユーザーまたはグループに関連付けられた権限を指定します。ユーザーがリソースへのアクセスを要求すると、システムはACLをチェックして、ユーザーまたはユーザーのグループがリストされているか、要求された権限が付与されているかを確認します。
4. ロールベースアクセス制御(RBAC)
この種の認可は、組織内でのユーザーの役割に基づいています。ユーザーは特定の役割に割り当てられ、各役割は一連の権限に関連付けられます。ユーザーがリソースへのアクセスを要求すると、システムはユーザーの役割をチェックし、その役割に関連付けられた権限に基づいてアクセスを許可または拒否します。
5. 属性ベースアクセス制御(ABAC)
この種の認可は、ユーザーとリソースの両方の属性に基づいています。ユーザーは一連の属性に関連付けられ、リソースも一連の属性に関連付けられます。ユーザーがリソースへのアクセスを要求すると、システムはユーザーとリソースの属性を使用してアクセスを許可するか拒否するかを決定する一連のルールを評価します。
まとめ
認可方法を選択する際は、組織の規模、環境の複雑さ、保護が必要なリソースやアクションの種類、システムの脅威モデルなどの要因を考慮することが重要です。例えば、多くの異なる種類のリソースと複雑な脅威モデルを持つ大規模な組織はABACから恩恵を受ける可能性がありますが、比較的シンプルなニーズを持つ小規模な組織はRBACで十分かもしれません。さらに、ソリューションのスケーラビリティ、柔軟性、他のセキュリティ制御との統合を考慮することも重要です。IoTアーキテクチャを設計する際は、認証と認可の方法も一緒に検討すべきです。
次回の投稿では、IoTデプロイメントにおけるクラウドとエッジの両方でアプリケーションセキュリティを組み込むために必要な考慮事項を探ります。これは、エッジからクラウドまでの連続体全体にデプロイするプラットフォームの機能を考慮することが重要な分野です。