web-dev-qa-db-ja.com

権限システムのモデリング

アプリケーション内で特定のアクションを実行するためのアクセス許可を処理するシステムをどのようにモデル化しますか?

79
James P.

セキュリティモデルは、大きな(そしてオープンな)研究分野です。シンプルなものから、選択可能な膨大な数のモデルがあります。

  • ランプソンのアクセス制御行列 は、システム内のすべてのドメインオブジェクトとすべてのプリンシパルを、プリンシパルがそのオブジェクトに対して実行できるアクションとともにリストします。これは非常に冗長であり、実際にこの方法で実装すると、メモリを大量に消費します。

  • アクセス制御リスト は、Lampsonのマトリックスを単純化したものです。これは、オブジェクトとプリンシパルと許可されたアクションをリストし、すべての「null」エントリをエンコードしないスパースマトリックス実装に似ていると考えてくださいランプソンの行列。アクセス制御リストには便宜上「グループ」を含めることができ、リストはオブジェクトまたはプリンシパルを介して(場合によっては、プログラムを介して AppArmor または [〜#〜] tomoyoのように)保存できます[〜#〜] または [〜#〜] lids [〜#〜] )。

  • Capability systems は、オブジェクトへの参照またはポインタを持つという考えに基づいています。プロセスは機能の初期セットにアクセスでき、システム上の他のオブジェクトからそれらを受け取ることによってのみ、より多くの機能を取得できます。これはかなり遠くに聞こえますが、Unixファイル記述子について考えてみてください。これらは特定の開いているファイルへの偽造できない参照であり、ファイル記述子は他のプロセスに渡されることもあれば渡されないこともあります。記述子を別のプロセスに渡すと、そのファイルにアクセスできます。オペレーティングシステム全体がこのアイデアに基づいて作成されました。 (最も有名なのはおそらくKeyKOSとEROSですが、これは議論の余地のあるポイントだと思います。)

...セキュリティラベルがオブジェクトとプリンシパルに割り当てられている、より複雑なものに:

  • セキュリティリング (Multicsやx86 CPUなどに実装されているなど)、セキュリティトラップまたはゲートを提供して、プロセスがリング間を移行できるようにします。各リングには、異なる特権とオブジェクトのセットがあります。

  • Denning's Lattice は、プリンシパルが非常に階層的にセキュリティラベルと対話できるモデルです。

  • Bell-LaPadula はDenningのラティスに似ており、機密のデータが未分類のレベルに漏洩するのを防ぐためのルールを提供し、一般的な拡張機能は、さらに細かく区分して分類し、軍事スタイルの「知る必要がある」サポートを提供します。

  • Bibaモデル はBell-LaPadulaに似ていますが、「頭を向けた」-Bell-LaPadulaは機密性に焦点を当てていますが、整合性には何もしません。Bibaは整合性に焦点を当てていますが、何もしません機密保持のため。 (Bell-LaPadulaは、誰かがすべてのスパイのリストを読み取ることを禁止しますが、喜んで誰もがそれに書き込むことを許可します。ビーバは、誰もがすべてのスパイのリストを読み取ることを喜んで許可しますが、ほとんどすべての人がそれに書き込むことを禁止します。)

  • Type Enforcement (およびその兄弟であるDomain Type Enforcement)は、プリンシパルとオブジェクトにラベルを提供し、許可されたobject-verb-subject(class)テーブルを指定します。これはおなじみのSELinuxとSMACKです。

..次に、時間の経過を組み込んだものがあります。

  • チャイニーズウォール は、特定の市場で競合他社にサービスを提供する組織内の従業員を分離するためにビジネス環境で開発されました。たとえば、ジョンソンがエクソンモービルアカウントで作業を開始すると、彼はBPアカウント。ジョンソンが最初にBPに取り組み始めていた場合、彼はエクソンモービルのデータへのアクセスを拒否されます。

  • [〜#〜] lomac [〜#〜]high-watermark は2つの動的なアプローチです。LOMACは、プロセスが次第に高いレベルのデータにアクセスするときに、プロセスの特権を変更します。低レベルへの書き込みを禁止し(プロセスは「トップセキュリティ」に移行します)、高水準点は高レベルのプロセスがアクセスするとデータのラベルを変更します(データは「トップセキュリティ」に移行します)。

  • Clark-Wilson モデルは非常に制限がありません。それらには、すべての状態遷移が不変条件に違反しないことを保証するための不変条件とルールが含まれています。 (これは double-entry accounting のように単純にすることも、 [〜#〜] hippa [〜#〜] のように複雑にすることもできます。)データベースのトランザクションと制約について考えます。

公開されているモデルをさらに詳しく知りたい場合は、Matt Bishopの「コンピュータセキュリティ:芸術と科学」をぜひお読みください。

150
sarnold

私は [〜#〜] rbac [〜#〜] を好みます。ただし、それは [〜#〜] acl [〜#〜] に非常に似ていますが、それらは 意味的に異なる です。

9
1
murali