侵害される可能性のあるプログラムがありますが、最初はルート権限が必要です。現在、プログラムは事前設定されたディレクトリにchrootしてから、特権を削除します。
ただし、root権限を削除した後は、プログラムがファイルシステムにアクセスできないようにしたいので、可能であれば構成は必要ありません。/ tmpに一時ディレクトリを作成し、そこにchrootするよりも良い方法はありますか?
侵害される可能性のあるプログラムがありますが、最初はルート権限が必要です。現在、プログラムは事前設定されたディレクトリにchrootしてから、特権を削除します。
ただし、root権限を削除した後は、プログラムがファイルシステムにアクセスできないようにしたいので、可能であれば構成は必要ありません。/ tmpに一時ディレクトリを作成し、そこにchrootするよりも良い方法はありますか?
基本的に2つのオプションがあります。
これは適切な方法ですが、フレームワークを学び、多くの構成を行う必要があります。基本的に、このプロセスまたはそれを実行しているユーザー(あるいはその両方)がシステムの他の部分にアクセスできないようにポリシーを設定できます。
これははるかに洗練されていないソリューションであり、パフォーマンスに大きな影響を与える可能性がありますが、必要な構成はごくわずかで、コーディングはごくわずかです。私が書いたセキュリティモジュールで同様のことをします:
https://github.com/cormander/tpe-lkm
execve、mmap、mprotectなどに接続します。open、writeなどについても同じことができ、uidやgid、さらにはプロセス名に基づいてシステムコールを拒否できます。
結局、一時ディレクトリ(私の場合は/var/run/programname
)にchrootし、その後特権を削除しました。これにより適切な保護が提供され、複雑なインストールは必要ありません。欠点は、そもそもプログラムがスーパーユーザーとして実行されている必要があることです。