神話か現実か:SELinuxはrootユーザーを制限できますか?


20

私はどこかを読んだり聞いたりしました(LinuxCBTのSELinuxコースのことかもしれませんが、確かではありません)。オンラインのLinuxサーバーがあり、rootユーザーのパスワードも与えられています。Linuxサーバーは、SELinuxルールを使用して強化されており、すべてのユーザーがrootユーザーでログインできますが、OSに害を及ぼすことはできません。

私には神話のように思えますが、確認したかったのは、Linuxユーザーを(おそらくSELinuxで)強化して、rootユーザーでさえ特定の悪意のある活動を実行できないようにすることですか?(例:システムファイルの削除、ログファイルの消去、重要なサービスの停止など)

このようなLinuxボックスは、ハニーポットを構築するための素晴らしい出発点になります。

編集: 回答(現在削除済み)と少しのグーグルに基づいて、このような強化されたLinuxサーバーを指摘するリンクを少なくとも2つ入手しました。残念ながら、両方のサーバーがダウンしています。記録のために、ここに説明をコピーして貼り付けます。

1)http://www.coker.com.au/selinux/play.htmlから:

SE Linuxマシンでの無料ルートアクセス!

Debianプレイマシンsshにplay.coker.com.auからアクセスするにはとしてするには、パスワードは...

このようなマシンを正常に実行するには、多くのスキルが必要です。実行するかどうかを尋ねる必要がある場合、答えは「いいえ」です。

これの目的は、必要なすべてのセキュリティがUnix権限なしでSE Linuxによって提供できることを実証することです(ただし、実サーバーにもUni​​x権限を使用することをお勧めします)。また、SEマシンにログインして、それがどのようなものかを確認する機会を提供します。

SE Linuxプレイマシンにログインするときは、ログインする前に-xオプションを使用してX11転送を無効にするか、/ etc / ssh / ssh_configファイルでForwardX11 noを設定してください。また、ログインする前に、-aオプションを使用してsshエージェント転送を無効にするか、/ etc / ssh / ssh_configファイルでForwardAgent noを設定してください。これらの設定を正しく無効にしないと、プレイマシンにログインすると、SSHクライアントを介して攻撃を受ける危険があります。

これを議論するためのIRCチャンネルがあり、それがある#selinuxirc.freenode.net

ここに簡単なFAQがあります

2)http://www.osnews.com/comments/3731から

強化されたGentooの目的は、Gentooを高セキュリティ、高安定性の本番サーバー環境で実行可能にすることです。このプロジェクトは、Gentoo本体から切り離されたスタンドアロンのプロジェクトではありません。強力なセキュリティと安定性を提供するソリューションをGentooに提供することに焦点を当てたGentoo開発者のチームになることを意図しています。このマシンは、強化されたGentooのSELinuxのあるデモ機。主な用途は、SELinux統合とポリシーのテストと監査です。


2
それはされていますここにも主張します。確かに理論的には可能ですが、私には難しいようです(そのrootユーザーをあまりにも制限して、何も役に立たない場合を除く)。意図したことを実際に実行するSELinuxルールを記述することは、最良の場合には困難です。
ジル 'SO-悪であるのをやめる'

4
最近のカーネルでは、非ルートユーザーはUID 0を持つ名前空間を作成できます。トップレベル名前空間ではUID 0ではないため、システムに害を与えることはできません。SELinuxのアプローチとは異なり、こうした機会をすべて取り去る必要があるため、本質的に害の機会はありません。カーネルを参照してください:名前空間のサポート、および別個のオペレーティングシステムをインストールせずに2つのアカウントを完全に分離しますか?
ジル 'SO-悪であるのをやめる'

実際に安全であるかどうかは、グラフィックスドライバーに依存します。
ジョシュア

回答:


17

現実:はい、SELinuxはrootユーザーを制限できます。

これは、SELinuxが実際に現在のUnixユーザーを実際に気にしないために可能です。表示されるのは、コンテキストと呼ばれる補足メタデータだけです(フィールドには、ドメインが含まれます。フィールドを含む)と SELinuxが要求されたアクションを許可できるかどうかを決定できるためですありません。

通常、rootユーザーとして考えているものは、SELinuxで、unconfined_tまたはを実行するroot Unixユーザーとしてマップされます。sysadm_t SELinuxドメイン SELinuxドメインをます。これは、古典的なフルパワーの全能ルートユーザーです。

ただし、制限されたユーザーuser_tSELinuxドメインを実行するルートシェル(つまり、ルートUnixユーザーシェル)を生成するようにシステムを完全にセットアップできます。SELinuxポリシーに従って、そのようなシェルは他の制限されたユーザーのシェルと何の違いもなく、システムに対する特別な特権を持たないため、ルートユーザーを効果的に制限します。

実験的な観点からのAppartは、文字通りそのようなことをするのは役に立たないが、同様の実践は現実の世界で彼らの方法を見つける。典型的な例としては、データベースデーモンの停止/起動、構成ファイルの編集などが必要なデータベース管理者が挙げられます。SELinuxがない場合、これらのすべてのアクションでは、ユーザーがルート権限にエスカレートする必要があります(通常は単一の場合でも)sudoたとえば、ツールを介したコマンドライン。ただし、それでもリークが発生する可能性があります。

SELinuxのおかげで、このユーザーに本物のルートシェルを提供できましたが、実行中unconfined_tまたはsysadm_tドメインの代わりにドメインを実行しdbadm_tます。これは、制限されたユーザーよりも多くの特権を持つことを意味しますが、これらの新しい特権はデータベースサーバーの管理に必要なものに制限されます。このユーザーは、他のサービス、ファイルを改ざんしたり、他の管理コマンドを実行したりすることはできません彼の仕事をするために厳密に必要です。

同様に、Webサーバーと他のサービス管理者も同じシステム上で他のルートシェルを並行して実行できますが、すべてのユーザーは現在のUnixユーザーがrootであることがわかりますが、SELinuxのおかげで、それぞれに制限された実質的に異なる特権が与えられます彼ら自身の目的に必要です


1

はい、可能です。しかし、あまり有用ではありません。

理論的には、rootユーザーが悪意のある目的に使用される可能性のあるバイナリを実行できないようにし、SELinuxなどの方法でポリシーを強制することができます。ただし、これは問題を提起します。つまり、rootユーザーが最初に何かを行うことを許可されていなくても、他の方法を使用してSELinuxポリシーを変更または削除することができます。この問題のために、rootユーザーによるアクションの実行を事実上すべて禁止する必要があり、あまり有用ではありません。


まず、私はあなたと同じくらい悲観的でした。しかし、より多くの知識を得ると、「rootユーザーがアクションを実行することをまったく禁止する」必要はないようです。編集した回答を確認してください。これには、概念実証へのリンクと情報が含まれています。残念ながら、それらはもう利用できません。しかし、実装は厳しく制限されていなかったようです。
MS Dousti

-5

Linuxボックスを(おそらくSELinuxで)強化して、rootユーザーでさえ特定の悪意のあるアクティビティを実行できないようにすることは可能ですか?

これは安易に聞こえるかもしれませんが、簡単です。ユーザーrootのuidをゼロ以外に変更します。/ etc / passwdと/ etc / shadowに移動し、既存のuid = 0エントリを「root」から別のものに変更してから、uidがゼロで使用されていない「root」という名前のアカウントを追加します。

それなしで目的を達成します。また、昇格された特権を実際に提供することなく、誰でも「ルートアクセス」を持つことができると主張する方法でもあります。


3
ええ、しかしrootユーザーは実際にはrootユーザーではありません。問題は、実際のスーパーユーザーをそのような方法で制限できるかどうかを尋ねることです。
テルドン

危険に思えます-もちろん、uid 0で別のアカウントを作成する場合を除きます。しかし、これはルートの名前を変更し、「ルート」という名前を再利用することと同じです。
フォルカージーゲル

質問は「スーパーユーザー」と必ずしも同じではない「ルート」、つまりuid = 0のみを参照します。まれに、これは便利な区別です。
オテウス

2
それにもかかわらず、コンテキストは、OPがスーパーユーザーであり、ユーザー名がそのrootような方法で制限されているランダムユーザーではないかどうかを尋ねていることを明確にします。
テルドン

1
OK。少なくとも、回答を編集して、提案したことをどのように達成できるかを示してください。その長さのため、低品質としてフラグが立てられ続けます。だからこそ、下票を獲得しています。
テルドン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.