Go to main content
Oracle® Solaris 11.3 でのシステムおよび接続されたデバイスのセキュリティー保護

印刷ビューの終了

更新: 2017 年 3 月
 
 

システムリソースへのアクセス制御

一部のシステムリソースは、デフォルトで保護されています。さらに、システム管理者はシステムの動作状態を制御したり、モニターしたりすることができます。システム管理者は、だれがどのリソースを使用できるかを制限したり、リソースの使用状況を記録したり、だれがリソースを使用しているかをモニターしたりできます。システム管理者は、リソースの不適切な使用を最小限に抑えるようにシステムを設定することもできます。

アドレス空間レイアウトのランダム化

Oracle Solaris では、アドレス空間レイアウトのランダム化 (ASLR) を有効にするために、そのユーザーランドバイナリの多くにタグが付けられます。ASLR では、アドレス空間の主要な部分の開始アドレスがランダム化されます。このセキュリティー防御メカニズムにより、ソフトウェアの脆弱性を悪用しようとする ROP (Return Oriented Programming) 攻撃を失敗させることができます。

ゾーンは、そのプロセス用にこのランダム化されたレイアウトを継承します。ASLR の使用はすべてのバイナリに最適であるとは限らないため、ASLR の使用は、ゾーンのレベルとバイナリのレベルで構成できます。

    ASLR の構成は次の 3 つです。

  • 無効 – ASLR は、すべてのバイナリに対して無効です。

  • タグ付きバイナリ – ASLR は、バイナリ内にコーディングされているタグによって制御されます。

    Oracle Solaris での ASLR のデフォルト値は、tagged-binaries です。ASLR を使用するために Oracle Solaris リリースの多くのバイナリにタグが付いています。

  • 有効 – ASLR は、無効にするためのタグが明示的に付いているバイナリを除くすべてのバイナリに対して有効です。

sxadm コマンドは、ASLR を構成するために使用されます。このコマンドを実行するには、root 役割になる必要があります。例および情報については、sxadm(1M) のマニュアルページを参照してください。開発者向けの情報については、Oracle Solaris 11 セキュリティーサービス開発ガイドを参照してください。

スーパーユーザーアクセスの制限とモニタリング

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

役割に基づくアクセス制御を構成してスーパーユーザーを置き換える

Oracle Solaris の機能である役割に基づくアクセス制御 (RBAC) は、スーパーユーザーの権限を管理役割に分散するように設計されています。スーパーユーザーすなわち root ユーザーは、システムのすべてのリソースにアクセスできますが、RBAC を使用すると、root の責任の多くを、個別の権限を持つ一連の役割に置き換えることができます。たとえば、ユーザーアカウントの作成を処理する 1 つの役割と、システムファイルの変更を処理する別の役割を設定できます。root アカウントを変更しない場合でも、このアカウントを役割として残し、その役割を割り当てないようにできます。この方法によって、システムへの root アクセスが事実上削除されます。

各役割を使用するには、既知のユーザーが自分のユーザー名とパスワードを使用してログインする必要があります。ログインしたユーザーは、特別な役割パスワードを入力してその役割を引き受けます。RBAC の詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の ユーザー権管理を参照してください。

システムリソースの意図しない誤用の回避

    システム管理者は、自分自身やユーザーによって意図しないエラーが引き起こされないように防止できます。

  • たとえば、PATH 変数を正しく設定することによって、トロイの木馬の実行を防止できます。

  • 制限されたシェルをユーザーに割り当てることもできます。システムのうち各人の作業に必要な部分だけをユーザーに提供するという方法でシェル機能を制限すると、ユーザーエラーを避けることができます。実際、慎重に設定すれば、作業を能率的に行う上で必要な部分以外にユーザーがアクセスできないように制限できます。

  • そのユーザーがアクセスする必要がないファイルには、限定的なアクセス権を設定できます。

PATH 変数の設定

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

PATH 変数はログイン時に自動的に設定されます。このパスは、.bashrc/etc/profile などの初期設定ファイルを通して設定されます。現在のディレクトリ (.) への検索パスを最後に指定すれば、トロイの木馬のようなタイプのプログラムを実行するのを防ぐことができます。root アカウントの PATH 変数には現在のディレクトリを一切含めないようにしてください。

ユーザーに制限付きシェルを割り当てる

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

    標準のシェルと異なる点は次のとおりです。

  • ユーザーのアクセスはホームディレクトリ内に限定されるため、ユーザーは cd コマンドを使用してディレクトリを変更できません。したがって、システムファイルを閲覧することはできません。

  • ユーザーは PATH 変数を変更できないため、システム管理者によって設定されたパスのコマンドしか使用できません。さらに、完全なパス名を使ってコマンドやスクリプトを実行することもできません。

  • ユーザーは、> または >> を使用して出力をリダイレクトできません。

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

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

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

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

あるユーザーには一部のファイルの読み取りを許可したり、別のユーザーには一部のファイルを変更または削除するアクセス権を許可したりできます。一方、あるデータを、どのユーザーからも読み取られないよう設定することもできます。Oracle Solaris 11.3 でのファイルのセキュリティー保護とファイル整合性の検証 の 第 1 章, ファイルアクセスの制御では、ファイルアクセス権の設定方法について説明されています。

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

実行可能ファイルがセキュリティーリスクとなる場合があります。いくつかの実行可能プログラムは引き続き、正しく機能するには root として実行する必要があります。これらの setuid プログラムは、ユーザー ID が 0 に設定された状態で実行されます。このようなプログラムはだれが実行したとしても root ID で実行されます。root ID で動作するプログラムは、プログラムがセキュリティーを念頭に置いて作成されていない限り、セキュリティーの問題をはらんでいます。

Oracle Solaris が setuid ビットを root に設定して提供する実行可能プログラムを除き、setuid プログラムの使用を禁止することをお勧めします。setuid プログラムの使用を禁止できない場合は、その使用を制限する必要があります。しっかりした管理を行うためには setuid プログラムの数を少なくする必要があります。

詳細は、Oracle Solaris 11.3 でのファイルのセキュリティー保護とファイル整合性の検証 の 実行可能ファイルを原因とするセキュリティーへの悪影響を防止するを参照してください。手順については、Oracle Solaris 11.3 でのファイルのセキュリティー保護とファイル整合性の検証 の セキュリティーリスクのあるプログラムからの保護を参照してください。

デフォルトでのセキュリティー強化 (Secure By Default) 構成の使用

デフォルトでは、Oracle Solaris がインストールされると、一連の多数のネットワークサービスが無効になります。この構成は「デフォルトでのセキュリティー強化 (Secure By Default)」(SBD) と呼ばれます。SBD により、ネットワークリクエストを受け入れるネットワークサービスは sshd デーモンだけになります。ほかのネットワークサービスはすべて無効になるか、ローカル要求だけを処理するようになります。ftp などの個々のネットワークサービスを有効にするには、Oracle Solaris のサービス管理機能 (SMF) を使用します。詳細は、netservices(1M) および smf(5) のマニュアルページを参照してください。

リソース管理機能の使用

Oracle Solaris ソフトウェアには、精巧なリソース管理機能があります。これらの機能を使用することで、サーバー統合環境内のアプリケーションによるリソース利用の割り当て、スケジュール、モニター、上限設定などを行うことができます。リソース制御フレームワークにより、プロセスが使用するシステムリソースを制限できます。このような制約を行うことで、システムリソースを混乱させようとするスクリプトによるサービス拒否攻撃を防ぎやすくなります。

これらのリソース管理機能により、特定のプロジェクトに対してリソースを指定できます。また、使用できるリソースを動的に調整することもできます。詳細は、Oracle Solaris 11.3 でのリソースの管理を参照してください。

Oracle Solaris ゾーンの使用

Oracle Solaris ゾーンは、単一の Oracle Solaris OS インスタンス内に存在するほかのシステムからプロセスが分離されるアプリケーション実行環境です。この分離を行うことで、1 つのゾーン内で稼働しているプロセスがほかのゾーンで稼働しているプロセスをモニタリングしたりそれらのプロセスに影響を及ぼしたりすることが防止されます。これは、スーパーユーザー権限によって稼働しているプロセスでも同様です。

Oracle Solaris ゾーンは、単一のネットワークサーバー上にアプリケーションを複数配置する環境に適しています。詳細は、Oracle Solaris ゾーンの紹介を参照してください。

システムリソースの使用状況のモニタリング

    システム管理者は、システムの動作をモニターする必要があります。次のことを含めて、コンピュータシステムのすべての側面に気を配る必要があります。

  • 通常の負荷はどの程度か

  • 誰がシステムへのアクセス権を持っているか

  • 各ユーザーはいつシステムにアクセスするか

  • システムでは通常どのようなプログラムを実行するか

このような情報を把握していれば、ツールを使用してシステムの使用状況を監査し、各ユーザーのアクティビティーをモニターできます。セキュリティー侵害と思われる場合は、モニタリング作業が特に役立ちます。監査サービスの詳細は、Oracle Solaris 11.3 での監査の管理 の 第 1 章, Oracle Solaris での監査についてを参照してください。

ファイルの整合性のモニタリング

システム管理者は、管理対象のシステムにインストールされたファイルが予想外の方法で変更されないことを保証する必要があります。大規模インストールでは、各システム上のソフトウェアスタックの比較や報告を行うツールを使用すればシステムの追跡、記録が行えます。基本監査報告機能 (BART) を使用すると、一定期間にわたって1 つ以上のシステムをファイルレベルでチェックし、システムを包括的に検証できます。一定期間にわたってすべてのシステムまたは 1 つのシステムにおける BART目録の変化を調べることで、システムの整合性を検証できます。BART には、目録作成機能、目録比較機能、レポート生成規則などが用意されています。詳細は、Oracle Solaris 11.3 でのファイルのセキュリティー保護とファイル整合性の検証 の 第 2 章, BART を使用したファイル整合性の検証を参照してください。