私はPythonをベースにしたWebサーバーを開発しています。これは機能を簡単に拡張できるように "プラグイン"を実行できるはずです。Python:信頼できないスクリプトやサブプロセスをchrootとchjailで保護する
私はこのアプローチでは、いくつかのフォルダ(各プラグインに1つ)とそこにいくつかのイベントが発生する可能性のある定義済みの名前の後に名前が付けられたシェル/ Pythonスクリプトがあると考えました。
たとえば、PDFがサーバーにアップロードされるときに実行されるon_pdf_uploaded.py
ファイルを持つことです。これを行うには、Pythonのサブプロセスツールを使用します。
利便性とセキュリティのために、これにより、Unix環境変数を使用して詳細情報を提供し、プロセスの作業ディレクトリ(cwd)を設定して、場所を見つけることなく正しいファイルにアクセスできるようになります。
プラグインコードは信頼できないソースから来ているので、できるだけ安全なものにしたいと思います。私の考えは、サブプロセスでコードを実行することでしたが、サーバー上の他のリソースにアクセスすることができないように、別のユーザーでchroot jailに入れました。
残念なことに、私はこれについて何も見つかりませんでした。私は、信頼できないスクリプトに頼って刑務所に掛けることは望ましくありません。
さらに、サーバーが他の要求に応答している間にプラグインコードが複数のプロセスで同時に実行される可能性があるため、メイン/呼び出しプロセスをchroot jailに入れることはできません。
これは疑問です。chroot jail内のサブプロセス/スクリプトを最低限の特権で実行して、残りのサーバーを信頼できないコードで破損しないようにするにはどうすればよいですか?
ありがとうございました!
これは本当にあなたの仕事ですか?実行中のコードを知ってはいけませんか?何でも...これは助けになるの? [os.chroot()](http://docs.python.org/library/os.html#os.chroot)。さらに、 'os'はuidなどを混乱させるようになっています。したがって、新しいプロセス(os.fork()?)を作成し、次にos.setuidとos.execle()を作成します。 – Logan