専用ユーザーと selinux

専用ユーザーと selinux

プロセスを専用 (非ルート) ユーザーで実行する場合と SELinux (SE ユーザーが Linux ユーザーにバインドされる可能性がある) で実行する場合の利点と欠点は何ですか?

答え1

短い答え: 各サービスに専用の selinux ユーザーを使用する利点は、セキュリティの強化と権限の分離が可能になることです。一方で、これはほとんどの Linux ディストリビューションではデフォルトで適用されない侵襲的な変更です。

このため、サービスは多くの場合、専用のユーザー アカウント (つまりhttpd) で実行され、専用の selinux プロファイルを介してアクセス/リッスンできる内容がさらに制限されますが、特定の selinux ユーザー/ロールは関与しません (つまり は、専用のロールではなく、httpd_tシステムのデフォルトのsystem_uユーザー ロールで実行されます)。これは、通常のユーザーの作業方法にあまり干渉することなく、システムのセキュリティを強化するために行われます。

長い答え:重要な違いは任意アクセス制御 (DAC)そして強制アクセス制御 (MAC)

1 つ目は (DAC) 従来の UNIX 権限システムで、ユーザーは所有するすべてのファイルの権限を変更できます。さらに、アプリケーションは「通常のユーザー」レベルで許可されているすべての操作 (たとえば、高 TCP ポートのリッスン) を実行できます。DAC は非常に直感的で合理的ですが、ユーザーによる誤った構成 (つまり、機密ファイルへのアクセス権を不注意に付与する) や悪意のあるソフトウェア (つまり、ターゲット ホストのリモート制御用にリッスン ポートを開くシェルコードを起動するバッファー オーバーラン) が発生する可能性を残しています。

MAC では、システム管理者だけが、何ができるか、何ができないかのルールを規定します。たとえば、システム管理者は、selinux を介して、ユーザー (ファイルの所有者) が変更できるファイルや、"その他" ビットを設定できるファイルを制限できます。同様に、デフォルトの UNIX 権限システムに関係なく、アプリケーションが制限されたポート セット以外でリッスンすることを禁止できます。

ここから、特定のシステムが DAC または MAC に完全依存する方法が簡単にわかります。前者の場合、ユーザーは、従来ルートに制限されていたものを除き、実行できる操作を完全に制御できます。「プレーン」 (つまり、selinux/apparmor/grsec などがない) Linux システムは、DAC のみのセットアップの良い例です。反対に、MAC のみのシステムでは、どれでもユーザーは、機密情報とやり取りする可能性がまったくない特権ユーザーになる可能性があります (このようなシステムでは、特別に指定された「真の」ルート アカウントだけが MAC ポリシー自体を変更できます)。

そうは言っても、DAC と MAC は実質的に直交しており、システム全体のセキュリティを強化するために両方を同時に使用できます (実際に使用されることが多いです)。これが selinux ポリシーの背後にある重要な理由ですtargeted。Linux を MAC のみのシステムに変換するのはあまりにも侵襲的であり (99% のケースでは実際には不要)、RedHat は次のようなポリシーを出荷しています。最も機密性の高いサービスに対して、より厳しい規則を選択的に適用する。 インタラクティブなユーザーにはほとんど影響はありません。このため、ユーザーはデフォルトでunconfined_uselinux ユーザーに割り当てられ、順番にロールsystem_rが割り当てられますunconfined_r

答え2

専用ユーザー:

専用ユーザーとは、特定の目的またはサービス専用に使用されるアカウントです。このタイプのユーザー アカウントは通常、特定のサービスやアプリケーションの実行など、特定の機能やサービスに安全な環境を提供するために作成されます。

SELinux:

SELinux (Security-Enhanced Linux) は、強制アクセス制御 (MAC) を含むアクセス制御セキュリティ ポリシーをサポートするメカニズムを提供する Linux カーネル セキュリティ モジュールです。ユーザー、プロセス、またはアプリケーションによって引き起こされる悪意のあるまたは偶発的な損害からシステムとそのアプリケーションを保護するように設計されています。また、システム リソースとアプリケーションへのアクセスを制限することで、システム管理者とユーザーに安全な環境を提供することも目的としています。

専用ユーザーでプロセスを実行する利点:

  • セキュリティの強化:専用ユーザーでプロセスを実行すると、プロセスの特定のリソースへのアクセスを制限し、侵害されたプロセスが引き起こす可能性のある損害を制限することができます。
  • パフォーマンスを向上させた:専用ユーザーは、ルート ユーザーがセキュリティ関連のタスクに費やす時間を削減することで、システム パフォーマンスの向上に貢献できます。
  • メンテナンスの簡素化:専任ユーザーは、各プロセスに分離されたコンテキストを提供することでシステムメンテナンスを簡素化し、問題を迅速に特定して対処することができます。

専用ユーザーでプロセスを実行する場合の欠点:

  • 複雑さの増大:専用ユーザーでプロセスを実行すると、ユーザーの権限と特権を管理する必要があるため、システム管理が複雑になる可能性があります。
  • 制限された機能:専用ユーザーには、特権システム リソースへのアクセスなど、一部のプロセスに必要な機能が不足している可能性があります。

SELinux でプロセスを実行する利点:

  • セキュリティの強化:SELinux は、プロセスを分離し、悪意のあるプロセスによる潜在的な損害を制限するために使用できる強力なアクセス制御メカニズムを提供します。

  • パフォーマンスを向上させた:SELinux は、セキュリティ関連のタスクに費やす時間を制限することで、システム パフォーマンスの向上に役立ちます。

  • 柔軟性の向上:SELinux を使用すると、SE ユーザーを Linux ユーザーにバインドして、アクセスと権限をより細かく制御できるようになります。

SELinux でプロセスを実行する場合の欠点:

  • 複雑さの増大:SELinux は複雑で設定が難しいため、システム管理が困難になります。
  • 互換性が限られている:SELinux はすべてのアプリケーションと互換性があるわけではないため、特定のコンテキストではその有用性が制限されます。

関連情報