一部のシステムリソースは、デフォルトで保護されています。さらに、システム管理者はシステムの動作状態を制御したり、モニターしたりすることができます。システム管理者は、だれがどのリソースを使用できるかを制限したり、リソースの使用状況を記録したり、だれがリソースを使用しているかをモニターしたりできます。システム管理者は、リソースの不適切な使用を最小限に抑えるようにシステムを設定することもできます。
デフォルトでは、Oracle Solaris がインストールされると、一連の多数のネットワークサービスが無効になります。この構成は「デフォルトでのセキュリティー強化 (Secure By Default)」(SBD) と呼ばれます。SBD により、ネットワークリクエストを受け入れるネットワークサービスは sshd デーモンだけになります。ほかのネットワークサービスはすべて無効になるか、ローカル要求だけを処理するようになります。ftp などの個々のネットワークサービスを有効にするには、Oracle Solaris のサービス管理機能 (SMF) を使用します。詳細は、smf(7) のマニュアルページを参照してください。
マルウェアがメモリー、プロセスヒープ、バッファーなどカーネル内の脆弱な部分を対象とする場合があります。Oracle Solaris では、アプリケーションをマルウェアから保護するためのセキュリティー拡張フレームワークを提供しています。セキュリティー拡張はシステムレベルでのセキュリティー防御を提供しますが、アプリケーションでは特定の防御を利用するかどうかをそれぞれ明示的に選択できます。
セキュリティー拡張フレームワークは、その名が示すとおり、特定のカーネルオブジェクトおよびハードウェアオブジェクトにセキュリティーを拡張することによって、ハードウェアまたはカーネルソフトウェアに対する悪意のある攻撃に対抗するように設計されています。どの場合でも、このフレームワークでは、管理者がシステム環境のリスクの程度を判断して拡張を有効にし、リスクにさらされているオブジェクトへの攻撃を軽減できます。フレームワークによる一部の軽減策によってパフォーマンスが低下する場合があります。
詳細は、セキュリティー拡張を使用した、マルウェアに対する保護および sxadm(8) のマニュアルページを参照してください。
システムでスーパーユーザーアクセスを行うには、root パスワードが必要です。デフォルトの構成では、ユーザーはリモートからシステムに root としてログインできません。リモートログインするときに、ユーザーは自分のユーザー名でログインしてから、su コマンドを使用して root になる必要があります。管理者は、必要に応じて su コマンドを使用中のユーザー (特にスーパーユーザーのアクセス権を取得しようとしているユーザー) をモニターできます。スーパーユーザーをモニタリングしたり、スーパーユーザーのアクセス権を制限したりする手順については、root アクセスのモニタリングと制限を参照してください。
Oracle Solaris の機能である役割に基づくアクセス制御 (RBAC) は、スーパーユーザーの権限を管理役割に分散します。役割のこれらの権限は、権利プロファイルと呼ばれるバンドルを介して取得されます。標準ユーザーにも権利プロファイルを割り当てることができます。
スーパーユーザーすなわち root ユーザーは、システムのすべてのリソースにアクセスできますが、RBAC を使用すると、root の責任の多くを、個別の権限を持つ一連の役割に置き換えることができます。たとえば、ユーザーアカウントの作成を処理する 1 つの役割と、システムファイルの変更を処理する別の役割を設定できます。root アカウントを変更しない場合でも、このアカウントを役割として残し、その役割を割り当てないようにできます。この方法によって、システムへの root アクセスが事実上削除されます。
各役割を使用するには、既知のユーザーが自分のユーザー名とパスワードを使用してログインする必要があります。ログインしたユーザーは、特別な役割パスワードを入力してその役割を引き受けます。ユーザーに権利プロファイルを直接割り当てた場合、ユーザーは管理権限を取得するためにプロファイルシェルを開く必要があります。RBAC の詳細は、Securing Users and Processes in Oracle Solaris 11.4 の User Rights Managementを参照してください。
システム管理者は、自分自身やユーザーによって意図しないエラーが引き起こされないように防止できます。
PATH 変数を正しく設定することによって、トロイの木馬の実行を防止できます。
制限されたシェルをユーザーに割り当てることもできます。システムのうち各人の作業に必要な部分だけをユーザーに提供するという方法でシェル機能を制限すると、ユーザーエラーを避けることができます。実際、慎重に設定すれば、作業を能率的に行う上で必要な部分以外にユーザーがアクセスできないように制限できます。
そのユーザーがアクセスする必要がないファイルには、限定的なアクセス権を設定できます。
よく注意して、PATH 変数を正しく設定してください。そうしなければ、だれかが持ち込んだプログラムを誤って実行してしまい、セキュリティーが危険にさらされる可能性があります。データを壊したりシステムを損傷したりするおそれがあります。このようなプログラムは、「トロイの木馬」と呼ばれます。たとえば、公開ディレクトリの中に別の su プログラムが置かれていると、システム管理者が気づかずに実行してしまう可能性があります。このようなスクリプトは正規の su コマンドとまったく同じに見えます。このようなスクリプトは実行後に自らを削除してしまうため、トロイの木馬が実際に実行されたという証拠はほとんど残りません。
PATH 変数はログイン時に自動的に設定されます。このパスは、.bashrc や /etc/profile などの初期設定ファイルを通して設定されます。現在のディレクトリ (.) への検索パスを最後に指定すれば、トロイの木馬のようなタイプのプログラムを実行するのを防ぐことができます。root アカウントの PATH 変数には現在のディレクトリを一切含めないようにしてください。
標準シェルを使用すると、ユーザーはファイルを開く、コマンドを実行するなどの操作を行うことができます。制限付きシェルを使用すると、ディレクトリの変更やコマンドの実行などのユーザー能力を制限できます。制限付きシェルは、/usr/lib/rsh コマンドで呼び出されます。制限付きシェルは、リモートシェル /usr/sbin/rsh ではありません。
標準のシェルと異なる点は次のとおりです。
ユーザーのアクセスはホームディレクトリ内に限定されるため、ユーザーは cd コマンドを使用してディレクトリを変更できません。したがって、システムファイルを閲覧することはできません。
ユーザーは PATH 変数を変更できないため、システム管理者によって設定されたパスのコマンドしか使用できません。さらに、完全なパス名を使ってコマンドやスクリプトを実行することもできません。
制限付きシェルでは、ユーザーが使用できるシステムファイルを制限できます。このシェルは、特定のタスクを実行するユーザーのために限られた環境を作成します。ただし、制限付きシェルは完全にセキュアなわけではなく、あくまでも経験の少ないユーザーが誤ってシステムファイルを損傷するのを防止することが目的です。
制限付きシェルについては、man -s8 rsh コマンドを使用して rsh(8) のマニュアルページを参照してください。
Oracle Solaris はマルチユーザー環境なので、ファイルシステムのセキュリティーは、システムのもっとも基本的なセキュリティーリスクです。ファイルの保護には、従来の UNIX のファイル保護と、より確実なアクセス制御リスト (ACL) との両方が使用できます。
あるユーザーには一部のファイルの読み取りを許可したり、別のユーザーには一部のファイルを変更または削除するアクセス権を付与したりできます。一方、あるデータを、どのユーザーからも読み取られないよう設定することもできます。Oracle Solaris 12 でのファイルのセキュリティー保護とファイル整合性の検証 の 第 1 章, ファイルアクセスの制御では、ファイルアクセス権の設定方法について説明されています。
実行可能ファイルがセキュリティーリスクとなる場合があります。いくつかの実行可能プログラムは引き続き、正しく機能するには root として実行する必要があります。これらの setuid プログラムは、ユーザー ID が 0 に設定された状態で実行されます。このようなプログラムはだれが実行したとしても root ID で実行されます。root ID で動作するプログラムは、プログラムがセキュリティーを念頭に置いて作成されていない限り、セキュリティーの問題をはらんでいます。
Oracle Solaris が setuid ビットを root に設定して提供する実行可能プログラムを除き、setuid プログラムの使用を禁止することをお勧めします。setuid プログラムの使用を禁止できない場合は、その使用を制限する必要があります。しっかりした管理を行うためには setuid プログラムの数を少なくする必要があります。
詳細は、Oracle Solaris 12 でのファイルのセキュリティー保護とファイル整合性の検証 の 実行可能ファイルを原因とするセキュリティーへの悪影響を防止するを参照してください。手順については、Oracle Solaris 12 でのファイルのセキュリティー保護とファイル整合性の検証 の セキュリティーリスクのあるプログラムからの保護を参照してください。
Oracle Solaris ソフトウェアには、精巧なリソース管理機能があります。これらの機能を使用することで、サーバー統合環境内のアプリケーションによるリソース利用の割り当て、スケジュール、モニター、上限設定などを行うことができます。リソース制御フレームワークにより、プロセスが使用するシステムリソースを制限できます。このような制約を行うことで、システムリソースを混乱させようとするスクリプトによるサービス拒否攻撃を防ぎやすくなります。
これらのリソース管理機能により、特定のプロジェクトに対してリソースを指定できます。また、使用できるリソースを動的に調整することもできます。詳細は、Oracle Solaris 12 でのリソースの管理を参照してください。
Oracle Solaris ゾーンは、単一の Oracle Solaris OS インスタンス内に存在するほかのシステムからプロセスが分離されるアプリケーション実行環境です。この分離を行うことで、1 つのゾーン内で稼働しているプロセスがほかのゾーンで稼働しているプロセスをモニタリングしたりそれらのプロセスに影響を及ぼしたりすることが防止されます。これは、スーパーユーザー権限によって稼働しているプロセスでも同様です。
Oracle Solaris ゾーンは、単一のサーバー上にアプリケーションを複数配置する環境に適しています。詳細は、Oracle Solaris ゾーンの紹介を参照してください。
システム管理者は、システムの動作をモニターする必要があります。次のことを含めて、コンピュータシステムのすべての側面に気を配る必要があります。
通常の負荷はどの程度か
誰がシステムへのアクセス権を持っているか
各ユーザーはいつシステムにアクセスするか
システムでは通常どのようなプログラムを実行するか
このような情報を把握していれば、ツールを使用してシステムの使用状況を監査し、各ユーザーのアクティビティーをモニターできます。セキュリティー侵害と思われる場合は、モニタリング作業が特に役立ちます。監査サービスの詳細は、Managing Auditing in Oracle Solaris 11.4 の 第 1 章, About Auditing in Oracle Solarisを参照してください。
システム管理者は、システムがサイトのセキュリティー要件に準拠していることをモニターする必要があります。compliance コマンドでは、1 つ以上のシステムがそのシステムに設定されているセキュリティープロファイルに準拠していることを確認できます。詳細は、Oracle Solaris 12 セキュリティーコンプライアンスガイドを参照してください。ファイルの整合性のモニタリングで説明されているように、コンプライアンスでは BART よりも完全なチェックが提供されます。