一般的なUNIX系OSで利用されているユーザーベースのアクセス制御では、スーパーユーザー(rootユーザー)はOSのすべての制御を行える権利を有している。そのため、root権限への侵入を許してしまうと、そのコンピュータを自由に操作されてしまう危険がある。
RBACでは、ユーザーと権限を分離し、権限(ロール)をユーザーやプロセスに割り振ることでそれぞれのユーザーに最小限のアクセス権限を設定する方法でこのリスクを回避。「システム(OS)の管理者」や「アプリケーションの管理者」などのアクセス権限を設定し、別々のユーザーに割り振ることでrootへの権限の一極集中を解消している。
データファイルに関しても、一般のUNIXではそのファイルの作成者が自由に設定できるが、MACではルールに従って自動的に設定されるため、システム管理者の意図しないファイルの公開を防ぐことができるようになっている。さらに、プロセスへ割り振る権限に関しては、そのプロセスに必要な最小の権限のみを設定することで、万が一プロセスを乗っ取られてしまった場合にも被害を最小限に抑えることが可能になる。
例えば、「ウェブサーバ管理者」と「ウェブコンテンツ管理者」などのアクセス権限を設定し、ウェブコンテンツデータ格納ディレクトリの書き込み権限を「ウェブコンテンツ管理者」だけに許可するようにすれば、ウェブサーバのプロセスのセキュリティホールを利用してアクセス権限を奪取しようとしてもウェブサーバのプロセスからはウェブコンテンツ管理者の権限は得られないのでデータの書き換えはできないのだ。
これらの機能はSolaris 10に標準で組み込まれており、設定を行うだけで良い。問題になるのは“どのように各ユーザーやプロセスに必要な最小限の権限を割り振ればよいのか”であるが、Solaris 10では「プロファイル」という権限セットの仕組みが用意されており、プロセスやロールあるいはユーザにプロファイルを割り振ることで素早く設定できる。また、このプロファイルはLDAPを利用して複数のサーバで同一のものを設定できるので、複数のサーバを洩れなく一括管理することも簡単だ。
これらの機能はLinuxでもSELinuxのような形で実装されているが、Solaris 10の実装の特徴について岡野氏は「これらの機能は標準機能としてカーネルが備えるべき機能です。SolarisではSELinuxのようなモジュールではなく、カーネルに統合されています。もちろん標準で提供されるアプリケーションやコマンド類がすべて対応していますので、RBACやMACを有効にしてもコマンドやアプリケーションの動作に支障はありません」とメリットを語る。
これはアクセス権限などに関するAPIをRBACやMACを利用するものにカーネル内部で統合しているため、Solarisの標準APIを使用してアプリケーションを作成すれば自動的にこれらのセキュリティ機能を利用できるということである。これに対しモジュール形式ではそのモジュールの存在を意識してアプリケーションを作成しないといけないため、従来のアプリケーションではセキュリティ機能を利用する際に支障が生じたり正常な動作ができないことがある。
また、プロセスのアクセス権限の制限にはSolarisの持つ仮想環境機能であるZoneを組み合わせて活用することも可能である。プロセスのアクセスできるデバイスやファイルシステムの制限などをカーネルレベルで実現できるのも、カーネル機能としてRBACやMACを実装しているメリットである。
さらに、Solaris 10のインストール直後は、ネットワーク関連のデーモンはSSH以外、デフォルトでは起動しないように設定するオプションが用意されており、それ以外のサーバ機能は管理者が意図的に設定を行わない限り利用できない。これは標準で、できる限りの侵入を防ぐための設定である。
このようにSolaris 10のセキュリティ機能は「侵入しづらい」または「不正にデータにアクセスできない」機能を提供しており、「侵入されない」だけでなく「侵入による被害を出さない」機能であるといえる。これが、「病気にかかりにくい体を作る」という意味だ。