私は簡単な質問があります。攻撃者がルートシェルを取得した場合でもSELinuxは有効ですか?
私は開発のためにSELinuxを無効にします。私が真剣に代わりにそれを使用することを考え始めたとき、私は考えました、まあまあです。アプリケーションを特定のジョブに制限することができます。
しかし、攻撃者がルートシェルを取得した場合、それでも有効ですか?
私はルートが単にそれをオフにできることを意味します。
私は簡単な質問があります。攻撃者がルートシェルを取得した場合でもSELinuxは有効ですか?
私は開発のためにSELinuxを無効にします。私が真剣に代わりにそれを使用することを考え始めたとき、私は考えました、まあまあです。アプリケーションを特定のジョブに制限することができます。
しかし、攻撃者がルートシェルを取得した場合、それでも有効ですか?
私はルートが単にそれをオフにできることを意味します。
はい、攻撃者が "root"特権を持つシェルを取得しても、SELinuxは依然として有効です。その理由は、シェルが侵害されたプロセスのSELinuxセキュリティコンテキストに関連付けられるからです。
セキュリティポリシーが自身のドメインに親プロセスを正しく制限している場合、両方のプロセス(親と子)には、親のタスクに対して与えられたSELinuxの権限のみが与えられます。 «root»DAC権限でも、子プロセス(シェル)も制限されます。
私は、これは自分自身を理解し、あなたの質問にお答えしますと思う:SELinuxは拒否し
は、次のようにアクセスも:最初DACを確認し、適用セキュリティコンテキストですべてがOKであれば、その後、SELinuxのポリシーれます。
ルートが通常持つアクセス権は、ルートが所有するセキュリティコンテキストのために、おそらくDACによって拒否されません。しかし、SELinuxは、フックを、さまざまなカーネル操作やアクセス制御評価を必要とするリソースに関連付けて使用します。これらのフックは、カーネルコードの一部であり、ルートは他のユーザーと同様に直接的または間接的にカーネル機能を呼び出すため、対応するSELinuxフックがトリガされて実行されます。彼らはルートにさえアクセスを拒否することができます。
はい、rootとしてSELinuxを完全に無効にすることができます。 Heckでは、カーネルを再構築し、SELinuxとカーネル自体の機能を追加、削除、変更することもできます。ルートを使用することで、SELinuxは無効になるだけでなく、カーネル全体が機能します。
"ルートが所有するセキュリティコンテキスト"は、ルートになるために*来た方法に大きく依存します。制限されたコンテキストを持つ非ルートユーザーからのエスカレーションは、必ずしも限定されたコンテキストから逃れるわけではないので、第3段落の最初の文章(「安全だと言えば[...]」)はおそらくあまり安全ではないでしょうか? –
ええ、私はそれがまれであることを意味していますが、私はあなたが良い点を持っていると思います、多分私がそれを表現した方法は、 –
そのルートユーザーがセキュリティコンテキストにいて、単に「オフにしない」*ことができない場合は、そうではありません。つまり、これらの制限*は、攻撃者が適切に記述されていれば、rootになってしまうことを防ぎます。プロセスがsetuidまたはsetgidバイナリを実行することを許可されていないか、exec () '*何でも*(シェルかそうでなければ)、それはその点に達するのがもっと難しくなるでしょう。 –
これは、(StackOverflowの焦点であるように)コードを記述/開発することではなく、開発者(特にシステム管理者)を超えたオーディエンスを対象とするツールであるため、この問題は[security.se]に適しています。 –