Solaris のシステム管理 (セキュリティサービス)

マシンリソースへのアクセス制御

システム管理者は、システム活動の制御や監視を行うことができます。システム管理者は、だれがどのリソースを使用できるかを制限したり、リソースの使用状況を記録したり、だれがリソースを使用しているかを監視したりできます。 さらに、システム管理者は、リソースの不適切な使用を最小限に抑えるようにマシンを設定できます。

スーパーユーザーの制限と監視

システムをスーパーユーザーモードにするには、root パスワードが必要です。デフォルトの構成では、ユーザーはリモートのシステムに root としてログインできません。リモートログインするとき、ユーザーは自分のユーザー名でログインしてから、su コマンドを使用して root になる必要があります。セキュリティ上の理由から、su コマンドを使用中のユーザー、特にスーパーユーザーのアクセス権を取得しようとしているユーザーを監視する必要があります。 スーパーユーザーを監視したり、スーパーユーザーの使用を制限する手順については、スーパーユーザーの監視と制限を参照してください。

役割によるアクセス制御を構成して root を置き換える

役割によるアクセス制御 (RBAC) は、スーパーユーザーの権限を制限できるように設計されています。スーパーユーザーすなわち root ユーザーは、システムのすべてのリソースにアクセスできますが、RBAC を使用すれば、スーパーユーザーの権限を個別の権限からなる役割の集合に置き換えることができます。たとえば、ユーザーアカウントの作成を行う役割やシステムファイルの変更を行う役割を個別に設定できます。特定の機能または機能群を扱う役割を設定したら、root の機能からこれらの機能を取り除くことができます。

個々の役割を引き受けるためには、既存のユーザーが自分のユーザー名とパスワードを使ってログインする必要があります。ログインしたユーザーは、特別な役割パスワードを入力してその役割を引き受けます。これによって、他人が root パスワードを知ったとしても、システムに損傷を与える能力は限定されます。RBAC の詳細は、第 18 章「役割によるアクセス制御 (概要)」を参照してください。

マシンリソースの意図しない使用の防止

システム管理者やユーザーによって、意図しないエラーが引き起こされるのを防止できます。たとえば、PATH 変数を正しく設定することによって、トロイの木馬の実行を防止できます。あるいは、システムのうち各人の作業に必要な部分だけをユーザーに提供することによって、ユーザーエラーを避けることができます。実際、注意深い設定を行えば、ユーザーに対して、作業を能率的に行うのに必要な部分だけを見せるようにできます。

パス変数の設定

パス変数を正しく設定しないと、他人が持ち込んだプログラムを誤って実行し、データを壊したりシステムを損傷したりするおそれがあります。このようなプログラムはセキュリティ上の危険を招くので、「トロイの木馬」と呼ばれます。たとえば、公共のディレクトリの中に別の su プログラムが置かれていると、システム管理者が気づかずに実行してしまう可能性があります。このようなスクリプトは正規の su コマンドとまったく同じに見えます。このようなスクリプトは実行後に自らを削除してしまうため、トロイの木馬が実際に実行されたという証拠はほとんど残りません。

パス変数はログイン時に自動的に設定されます。パスは、起動ファイル、すなわち .login.profile、および .cshrc を通して設定されます。現在のディレクトリ (.) への検索パスを最後に指定すれば、このタイプのトロイの木馬を実行するのを防ぐことができます。スーパーユーザーのパス変数には、現在のディレクトリを指定しないでください。

自動セキュリティ拡張ツール (ASET) は、起動ファイルのパス変数が正しく設定されているかどうかを調べます。また、パス変数にドット (.) エントリが含まれていないか確認します。

制限付きシェルの割り当て

標準シェルを使用すると、ユーザーはファイルを開く、コマンドを実行するなどの操作を行うことができます。制限付きシェルは、/usr/lib/rsh コマンドで呼び出されます。制限付きシェルを使用すると、ユーザーによるディレクトリの変更やコマンドの実行を制限できます。制限付きシェルは、リモートシェル (/usr/sbin/rsh) ではありません。標準のシェルと異なる点は次のとおりです。

制限付きシェルでは、ユーザーが使用できるシステムファイルを制限できます。このシェルは、特定のタスクを実行するユーザーのために限られた環境を作成します。ただし、制限付きシェルは完全に安全なわけではありません。このシェルの目的は、あくまでも、経験の少ないユーザーが誤ってシステムファイルを損傷するのを防止することです。

制限付きシェルについては、rsh(1M) のマニュアルページを参照してください。

制限付きシェルよりさらにセキュリティを強化したシェルが Secure Shell、すなわち ssh コマンドです。Secure Shell を使用すると、セキュリティ保護されていないネットワーク上のリモートホストに、安全にアクセスすることができます。Secure Shell 上の使用方法については、第 6 章「Secure Shell の管理 (参照)」を参照してください。

ファイル内のデータへのアクセス制限

Solaris オペレーティング環境はマルチユーザー環境なので、ファイルシステムのセキュリティは、システムの最も基本的な問題です。ファイルの保護には、従来の UNIX のファイル保護と、より確実なアクセス制御リスト (ACL) との両方が使用できます。

ログイン制限を設定したあと、マシン上のデータへのアクセスを制御できます。一部のユーザーには特定のファイルの読み取りを許可し、別のユーザーには特定のファイルを変更または削除するアクセス権を与えることができます。誰にも見せたくないデータがある場合もあります。ファイルのアクセス権の設定方法については、第 16 章「ファイルのセキュリティの適用 (手順)」を参照してください。

setuid 実行可能ファイルの制限

実行可能ファイルがセキュリティリスクとなる場合があります。多くの実行可能プログラムは、スーパーユーザー (root) として実行しなければ適切に動作しません。このようなプログラムはユーザー ID が 0 (つまり、setuid=0) で実行されます。このようなプログラムはだれが実行したとしても root ID で実行されます。root ID で動作するプログラムは、プログラムがセキュリティを念頭に置いて作成されていない限り、セキュリティの問題をはらんでいます。

米国 Sun Microsystems, Inc. が setuid ビットを root に設定して出荷する実行可能プログラムを除き、setuid プログラムの使用を許可すべきではありません。setuid プログラムの使用を禁止できない場合は、少なくともその使用を制限すべきです。しっかりした管理を行うためには setuid プログラムの数を少なくする必要があります。

自動セキュリティ拡張ツール (ASET) の使用

ASET セキュリティパッケージには、システムのセキュリティを制御して監視できるように、自動管理ツールが組み込まれています。システム管理者は ASET セキュリティレベルを指定します。ASET には、低、中、高という 3 つのセキュリティレベルがあります。上のレベルほど、ASET のファイル制御機能が増え、ファイルアクセスは減少し、マシンセキュリティが厳しくなります。

詳細は、第 21 章「自動セキュリティ拡張ツールの使用 (手順)」を参照してください。

リソースマネージャの使用

Solaris ソフトウェアには、リソースマネージャと呼ばれる精巧なリソース管理ツールがあります。リソースマネージャは、サービス拒否攻撃を防止する上で有効な場合があります。リソースマネージャでは、特定のプロジェクトに必要なリソースを割り当てたり、スクリプトがマシンのリソースを過度に使用するのを防止したり、プロジェクトが占有できる領域を制限したりすることができます。リソースマネージャの使用方法の説明や詳しい例については、『Solaris のシステム管理 (資源管理とネットワークサービス)』の「Solaris 9 リソースマネージャ (トピック)」を参照してください。

マシンリソースの使用状況の監視

システム管理者は、システムの動作を監視する必要があります。次の点を含め、マシンのあらゆる側面に注意する必要があります。

このような情報を把握していれば、ツールを使用してマシンの使用状況を監査し、各ユーザーのアクティビティを監視できます。セキュリティ違反が疑われる場合は、監視作業が特に役立ちます。監査モジュールの詳細については、第 23 章「基本セキュリティモジュール (概要)」を参照してください。