私は子プロセスを生成するプログラムを作成しています。セキュリティ上の理由から、私はこれらのプロセスが何ができるのかを制限したい。私はchroot
やulimit
のようなプログラム外からのセキュリティ対策を知っていますが、それ以上のことをしたいのです。子プロセスによって行われたシステムコールを制限したい(例えば、open()
、fork()
などの呼び出しを防ぐ)。それを行う方法はありますか?最適には、ブロックされたシステムコールはエラーで返されるべきですが、それが不可能な場合は、プロセスを強制終了することも有効です。プロセスが特定のシステムコールを実行するのを防ぐ
私はそれがwuth ptrace()
を行うことができると思いますが、マニュアルページからこの目的のためにどのように使用するのか本当に分かりません。
おそらく、SELinuxのhttp://en.wikipedia.org/wiki/Security-Enhanced_Linuxが必要です。私は100%確実ではありませんが、プログラマブルなAPIが必要です。 –
['prctl(PR_SET_SECCOMP、...)'](http://www.kernel.org/doc/man-pages/online/pages/man2/prctl.2.html)があなたが望むものかもしれません。それはあなたが得ることができるように「システムコールを許可しない」ことに近いものです。 – Damon
'prctl(PR_SET_SECCOMP、...)'の問題は、 'exec()'呼び出しをブロックすることになりますので、私には使えません。 – petersohn