3

侵害される可能性のあるプログラムがありますが、最初はルート権限が必要です。現在、プログラムは事前設定されたディレクトリにchrootしてから、特権を削除します。

ただし、root権限を削除した後は、プログラムがファイルシステムにアクセスできないようにしたいので、可能であれば構成は必要ありません。/ tmpに一時ディレクトリを作成し、そこにchrootするよりも良い方法はありますか?

4

2 に答える 2

2

基本的に2つのオプションがあります。

  • SELinuxなどのセキュリティモジュールを使用して、そのプロセスをシステムの他の部分からロックアウトします

これは適切な方法ですが、フレームワークを学び、多くの構成を行う必要があります。基本的に、このプロセスまたはそれを実行しているユーザー(あるいはその両方)がシステムの他の部分にアクセスできないようにポリシーを設定できます。

  • カーネルのファイルシステム呼び出しをハイジャックして、侵害されたプログラムを実行しているユーザーの呼び出しを拒否します

これははるかに洗練されていないソリューションであり、パフォーマンスに大きな影響を与える可能性がありますが、必要な構成はごくわずかで、コーディングはごくわずかです。私が書いたセキュリティモジュールで同様のことをします:

https://github.com/cormander/tpe-lkm

execve、mmap、mprotectなどに接続します。open、writeなどについても同じことができ、uidやgid、さらにはプロセス名に基づいてシステムコールを拒否できます。

于 2011-12-28T06:42:46.903 に答える
0

結局、一時ディレクトリ(私の場合は/var/run/programname)にchrootし、その後特権を削除しました。これにより適切な保護が提供され、複雑なインストールは必要ありません。欠点は、そもそもプログラムがスーパーユーザーとして実行されている必要があることです。

于 2012-01-06T13:04:03.200 に答える