システム管理者は、システム活動の制御や監視を行うことができます。システム管理者は、だれがどのリソースを使用できるかを制限したり、リソースの使用状況を記録したり、だれがリソースを使用しているかを監視したりできます。さらに、システム管理者は、リソースの不適切な使用を最小限に抑えるようにマシンを設定できます。
システムでスーパーユーザーアクセスを行うには、root パスワードが必要です。デフォルトの構成では、ユーザーは遠隔からシステムに root としてログインできません。遠隔ログインするとき、ユーザーは自分のユーザー名でログインしてから、su コマンドを使用して root になる必要があります。管理者は、必要に応じて su コマンドを使用中のユーザー (特にスーパーユーザーのアクセス権を取得しようとしているユーザー) を監視できます。スーパーユーザーを監視したり、スーパーユーザーのアクセス権を制限したりする手順については、「スーパーユーザーの監視と制限 (作業マップ)」を参照してください。
役割によるアクセス制御 (RBAC) は、スーパーユーザーの権限を制限することを目的として設計されています。スーパーユーザーすなわち root ユーザーは、システムのすべてのリソースにアクセスできますが、RBAC を使用すれば、スーパーユーザーの権限を個別の権限からなる役割の集合に置き換えることができます。たとえば、ユーザーアカウントの作成を行う役割やシステムファイルの変更を行う役割を個別に設定できます。特定の機能または機能群を扱う役割を設定したら、これらの機能をroot の機能から取り除くことができます。
個々の役割を引き受けるためには、既存のユーザーが自分のユーザー名とパスワードを使ってログインする必要があります。ログインしたユーザーは、特別な役割パスワードを入力してその役割を引き受けます。これによって、他人が root パスワードを知ったとしても、システムに損傷を与える能力は限定されます。RBAC の詳細は、「役割によるアクセス制御 (概要)」を参照してください。
システム管理者は、自分自身やユーザーによって意図しないエラーが引き起こされないように防止できます。
制限されたシェルをユーザーに割り当てることもできます。システムのうち各人の作業に必要な部分だけをユーザーに提供するという方法でシェル機能を制限すると、ユーザーエラーを避けることができます。実際、慎重に設定すれば、作業を能率的に行う上で必要な部分以外にユーザーがアクセスできないように制限できます。
そのユーザーがアクセスする必要がないファイルには、限定的なアクセス権を設定できます。
PATH 変数を正しく設定しないと、他人が持ち込んだプログラムを誤って実行し、データを壊したりシステムを損傷したりするおそれがあります。このようなプログラムはセキュリティー上の危険を招くので、「トロイの木馬」と呼ばれます。たとえば、公開ディレクトリの中に別の su プログラムが置かれていると、システム管理者が気づかずに実行してしまう可能性があります。このようなスクリプトは正規の su コマンドとまったく同じに見えます。このようなスクリプトは実行後に自らを削除してしまうため、トロイの木馬が実際に実行されたという証拠はほとんど残りません。
PATH 変数はログイン時に自動的に設定されます。パスは、起動ファイル、すなわち .login、.profile、および .cshrc を通して設定されます。現在のディレクトリ (.) への検索パスを最後に指定すれば、トロイの木馬のようなタイプのプログラムを実行するのを防ぐことができます。スーパーユーザーの PATH 変数には、現在のディレクトリを指定しないでください。
自動セキュリティー拡張ツール (ASET) は、起動ファイルの PATH 変数が正しく設定されているかどうかを調べます。また、PATH 変数にドット (.) エントリが含まれていないか確認します。
標準シェルを使用すると、ユーザーはファイルを開く、コマンドを実行するなどの操作を行うことができます。制限付きシェルを使用すると、ディレクトリの変更やコマンドの実行などのユーザー能力を制限できます。制限付きシェルは、/usr/lib/rsh コマンドで呼び出されます。制限付きシェルは、遠隔シェル /usr/sbin/rsh ではありません。
標準のシェルと異なる点は次のとおりです。
ユーザーはホームディレクトリ内に限定されるため、 cd コマンドを使用してディレクトリを変更できません。したがって、システムファイルを閲覧することはできません。
ユーザーは PATH 変数を変更できないため、システム管理者によって設定されたパスのコマンドしか使用できません。さらに、完全なパス名を使ってコマンドやスクリプトを実行することもできません。
制限付きシェルでは、ユーザーが使用できるシステムファイルを制限できます。このシェルは、特定のタスクを実行するユーザーのために限られた環境を作成します。ただし、制限付きシェルは完全に安全なわけではありません。このシェルの目的は、あくまでも、経験の少ないユーザーが誤ってシステムファイルを損傷するのを防止することです。
制限付きシェルについては、rsh(1M) のマニュアルページを参照してください。このマニュアルページは、man -s1m rsh コマンドで表示できます。
Solaris OS はマルチユーザー環境なので、ファイルシステムのセキュリティーは、システムのもっとも基本的な問題です。ファイルの保護には、従来の UNIX のファイル保護と、より確実なアクセス制御リスト (ACL) との両方が使用できます。
一部のユーザーには特定のファイルの読み取りを許可し、別のユーザーには特定のファイルを変更または削除するアクセス権を与えることができます。一方、あるデータを、どのユーザーからも読み取られないよう設定することもできます。ファイルのアクセス権の設定方法については、第 6 章ファイルアクセスの制御 (作業)を参照してください。
実行可能ファイルがセキュリティーリスクとなる場合があります。多くの実行可能プログラムは、スーパーユーザー (root) として実行しなければ適切に動作しません。これらの setuid プログラムは、ユーザー ID が 0 に設定された状態で実行されます。このようなプログラムはだれが実行したとしても root ID で実行されます。root ID で動作するプログラムは、プログラムがセキュリティーを念頭に置いて作成されていない限り、セキュリティーの問題をはらんでいます。
Sun が setuid ビットを root に設定して出荷する実行可能プログラムを除き、setuid プログラムの使用を許可するべきではありません。setuid プログラムの使用を禁止できない場合は、少なくともその使用を制限するべきです。しっかりした管理を行うためには setuid プログラムの数を少なくする必要があります。
詳細は、「実行可能ファイルを原因とするセキュリティーへの悪影響を防止する」を参照してください。作業手順については、「セキュリティーリスクのあるプログラムからの保護 (作業マップ)」を参照してください。
ASET セキュリティーパッケージには、システムのセキュリティーを制御して監視できるように、自動管理ツールが組み込まれています。ASET には、 低、中、高という 3 つのセキュリティーレベルがあります。システム管理者は ASET セキュリティーレベルを指定します。上のレベルほど、ASET のファイル制御機能が増え、ファイルアクセス は減少し、システムセキュリティーが厳しくなります。詳細は、第 7 章自動セキュリティー拡張ツールの使用 (手順)を参照してください。
ASET はシステムにセキュリティー上のわずかな変更を加えるのに使用できますが、Sun Security Toolkit は Solaris システムの最小化、強化、保護などに対応できる、柔軟で、拡張性のあるメカニズムです。Sun Security Toolkit (旧名称: JASS ツールキット) は、システムにセキュリティー変更を加えるためのツールです。このツールを使用して、システムのセキュリティー状態に関するレポートを生成できます。このツールには、ツールの直前の実行を取り消す機能もあります。JASS ツールキットは、Sun の Web サイト http://www.sun.com/software/security/jass からダウンロードできます。この Web サイトでは、関連するオンラインドキュメントもリンクされています。
このツールキットの詳細は、『Securing Systems with the Solaris Security Toolkit』(Alex Noordergraaf、Glenn Brunette 共著、ISBN 0-13-141071-7、2003 年 6 月発行) を参照してください。このドキュメントは、Sun Microsystems Press によって発行されている Sun BluePrints Series の 1 つです。
デフォルトでは、Solaris 10 リリースのインストール時に多数のネットワークサービスが有効になります。システムのネットワーク接続を制限するには、netservices limited コマンドを実行します。このコマンドは、「デフォルトでのセキュリティー強化 (Secure By Default)」(SBD) 構成を有効にします。SBD により、ネットワーク要求を受け付けるネットワークサービスは sshd デーモンだけになります。ほかのネットワークサービスはすべて無効になるか、ローカル要求だけを処理するようになります。ftp などの個々のネットワークサービスを有効にするには、Solaris のサービス管理機能 (SMF) を使用します。詳細は、netservices(1M) および smf(5) のマニュアルページを参照してください。
Solaris ソフトウェアには、精巧なリソース管理機能があります。これらの機能を使用することで、サーバー統合環境内のアプリケーションによるリソース利用の割り当て、スケジュール、監視、上限設定などを行うことができます。リソース制御フレームワークにより、プロセスが使用するシステムリソースを制限できます。このような制約を行うことで、システムリソースを混乱させようとするスクリプトによるサービス拒否攻撃を防ぎやすくなります。
Solaris リソース管理機能により、特定のプロジェクトに必要なリソースを割り当てたり、使用できるリソースを動的に調整したりできます。詳細は、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』のパート I「資源管理」を参照してください。
Solaris ゾーンは、単一の Solaris OS インスタンス内に存在するほかのシステムからプロセスが分離されるアプリケーション実行環境です。この分離を行うことで、1 つのゾーン内で稼働しているプロセスがほかのゾーンで稼働しているプロセスを監視したりそれらのプロセスに影響を及ぼしたりすることが防止されます。これは、スーパーユーザー権限によって稼働しているプロセスでも同様です。
Solaris ゾーンは、単一のサーバー上にアプリケーションを複数配置する環境に適しています。詳細は、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』のパート II「ゾーン」を参照してください。
システム管理者は、システムの動作を監視する必要があります。次の点を含め、マシンのあらゆる側面に注意する必要があります。
通常の負荷はどの程度か
誰がシステムへのアクセス権を持っているか
各ユーザーはいつシステムにアクセスするか
システムでは通常どのようなプログラムを実行するか
このような情報を把握していれば、ツールを使用してシステムの使用状況を監査し、各ユーザーのアクティビティーを監視できます。セキュリティー侵害と思われる場合は、監視作業が特に役立ちます。監査サービスの詳細は、第 28 章Solaris 監査 (概要) を参照してください。
システム管理者は、管理対象のシステムにインストールされたファイルが予想外の方法で変更されないように確実な対策をとる必要があります。大規模インストールでは、各システム上のソフトウェアスタックの比較や報告を行うツールを使用すればシステムの追跡、記録が行えます。基本監査報告機能 (BART) を使用すると、一定期間にわたって1 つ以上のシステムをファイルレベルでチェックし、システムを包括的に検証できます。一定期間にわたってすべてのシステムまたは 1 つのシステムにおける BART 目録の変化を調べることで、システムの整合性を検証できます。BART には、目録作成機能、目録比較機能、レポート生成規則などが用意されています。詳細は、第 5 章基本監査報告機能の使用方法 (作業)を参照してください。