アプリケーション内で特定のアクションを実行するためのアクセス許可を処理するシステムをどのようにモデル化しますか?
回答:
セキュリティモデルは、大きな(そしてオープンな)研究分野です。シンプルなものから選択できるモデルの膨大な配列があります。
ランプソンのアクセス制御マトリックスには、システム内のすべてのドメインオブジェクトとすべてのプリンシパルが、プリンシパルがそのオブジェクトに対して実行できるアクションとともに一覧表示されます。これは非常に冗長であり、実際にこの方法で実装すると、非常にメモリを消費します。
アクセス制御リストは、Lampsonのマトリックスを単純化したものです。オブジェクトとプリンシパル、および許可されたアクションをリストし、Lampsonのマトリックスからのすべての「null」エントリをエンコードしないスパースマトリックスの実装に似ていると考えてください。アクセス制御リストには、便宜上「グループ」を含めることができ、リストはオブジェクトまたはプリンシパルを介して(場合によっては、AppArmor、TOMOYO、またはLIDSのようにプログラムを介して)保存できます。
機能システムは、オブジェクトへの参照またはポインターを持つという考えに基づいています。プロセスは初期の機能セットにアクセスでき、システム上の他のオブジェクトからそれらを受け取ることによってのみ、より多くの機能を取得できます。これはかなり遠いように聞こえますが、Unixファイル記述子について考えてみてください。これらは特定の開いているファイルへの偽造不可能な参照であり、ファイル記述子は他のプロセスに渡されるかどうかはわかりません。記述子を別のプロセスに渡すと、そのプロセスはそのファイルにアクセスできるようになります。オペレーティングシステム全体がこのアイデアに基づいて作成されました。(最も有名なのはおそらくKeyKOSとEROSですが、これは議論の余地のあるポイントだと確信しています。:)
...オブジェクトとプリンシパルにセキュリティラベルが割り当てられている、より複雑なものへ:
Multicsやx86CPUなどに実装されているセキュリティリングは、プロセスがリング間を移行できるようにするためのセキュリティトラップまたはゲートを提供します。各リングには、異なる特権とオブジェクトのセットがあります。
Denning's Latticeは、どのプリンシパルがどのセキュリティラベルと非常に階層的に対話できるかを示すモデルです。
Bell-LaPadulaはDenning'sLatticeに似ており、極秘データが未分類のレベルに漏洩するのを防ぐためのルールを提供し、一般的な拡張機能は、軍事スタイルの「知る必要がある」サポートをより適切に提供するためのさらなる区分化と分類を提供します。
ビバモデルはベルLaPadulaに似ていますが、「その頭をオンに」 -ベル- LaPadulaは、機密性に焦点を当てているが、完全性のために何もしない、とビバは整合性に焦点を当てているが、機密保持のために何もしません。(Bell-LaPadulaは、誰かがすべてのスパイのリストを読むことを防ぎますが、誰もがそれに何かを書くことを喜んで許可します。Bibaは、誰もがすべてのスパイのリストを読むことを喜んで許可しますが、ほとんどすべての人がそれに書き込むことを禁止します。)
Type Enforcement(およびその兄弟であるDomain Type Enforcement)は、プリンシパルとオブジェクトにラベルを付け、許可されるobject-verb-subject(class)テーブルを指定します。これはおなじみのSELinuxとSMACKです。
..そして、時間の経過を組み込んだものがいくつかあります:
チャイニーズウォールは、特定の市場で競合他社にサービスを提供する組織内の従業員を分離するためにビジネス環境で開発されました。たとえば、ジョンソンがエクソンモービルアカウントでの作業を開始すると、BPアカウントへのアクセスは許可されません。ジョンソンが最初にBPの作業を開始した場合、彼はエクソンモービルのデータへのアクセスを拒否されます。
LOMACと最高水準点は2つの動的なアプローチです。LOMACは、プロセスが徐々に高いレベルのデータにアクセスするときにプロセスの特権を変更し、低いレベルへの書き込みを禁止し(プロセスは「最高のセキュリティ」に移行します)、最高水準点は上のラベルを変更します。高レベルのプロセスがデータにアクセスすると、データにアクセスします(データは「トップセキュリティ」に移行します)。
Clark-Wilsonモデルは非常にオープンエンドです。それらには、すべての状態遷移が不変条件に違反しないことを保証するための不変条件とルールが含まれています。(これは、複式簿記のように単純な場合もあれば、HIPPAのように複雑な場合もあります。)データベースのトランザクションと制約について考えます。
公開されたモデルについてさらに詳しく知りたい場合は、Matt Bishopの「コンピューターのセキュリティ:芸術と科学」を読む価値があります。