NSAおよびAppArmorがNovell [*]によって開発されたSELinuxでは、SolarisのゾーンのようなACLおよび同様の概念に基づいて、システムをロックダウンしてアプリケーションを実行しようとするときに、どのような代替ソリューションが存在します。
アプリケーションとは、つまり、ネットワークを介して利用可能でパブリックにアクセスできるサービス、つまりあらゆる種類のWeb /アプリケーションサーバーだけでなく、DBサーバーも含みます。
chrootはオプションではありません。そのPITAは、長期的にセットアップして保守するためです(経験)。
私が達成したいこと:ネットベースのサービスへのアクセスをその構成ファイルとデータファイルのみに制限します(ウェブサーバーにはdocroot、dbサーバーにはdbsなど)。発信接続は、ファイアウォールとサービスプロキシを介して管理されます。攻撃者がシステムにアクセスできる場合、攻撃者は何を見るか、何をするかを制限する必要があります。プログラムを実行しないでください。他のファイルを読み取らないでください。
[*]ギャグ注文などのため、もはや信頼できません。
Grsecurity は、Linuxマシン上のselinuxとapparmorの代わりになる可能性があります。 3つのツールの比較は ここに示されています
tomoyo もあり、必須のアクセス制御を実装する手段を提供します。ただし、悪質にならないように NTT DATA Corporation を信頼する必要があります。
[〜#〜] rsbac [〜#〜]を強くお勧めします。これは、基本的にNSAのないSELinuxだからです。
そのため、おそらく最良の選択です。
いくつかのディストリビューションはそのまま使用できます: https://www.rsbac.org/links
それ以外の場合は、gitリポジトリを使用して自分でパッチを適用します。 https://www.rsbac.org/download
(事前パッチされたカーネルは古すぎて安全ではありません。)
私の以前の答えは間違っていました、そしてこれが示すように、それは確かに生きています:
https://www.rsbac.org/pipermail/rsbac/2018-January/002787.html
(もちろん、個人的にソースを確認したり、そうした人物を信頼したりしない限り、…そしてハードウェアバックドアのないシステムでそれを実行する…それはとにかくすべて関係ありません。)
Chrootの問題が設定の難しさとその周りの標準化されたツールの欠如である場合は、Dockerが適している可能性があります。 Dockerの場合、デフォルトでは、コンテナー(およびコンテナー内のアプリケーションを悪用するもの)はファイルシステムにアクセスできません。必要なものへのアクセスを許可するには、オプトインする必要があります。これにより、必要なだけのアクセスを許可していることを簡単に確認でき、ネットワークアクセスまたはCPUとメモリの使用制限をさらに制限できます。
Googleがリリースしたばかり gVisor これは、Dockerを安全なコンテキストで実行するための小さなフットプリントライブラリです。