2

Linux で任意の Python スクリプトを安全に実行する環境を作成することはできますか? これらのスクリプトは、信頼できない人から受け取ったものであり、大きすぎて手動で確認できない場合があります。

非常に強引な解決策は、仮想マシンを作成し、信頼できないスクリプトを起動するたびにその初期状態を復元することです。(高過ぎ。)

Python がファイル システムにアクセスしたり、他のプログラムと対話したりすることを制限することは可能でしょうか。

4

5 に答える 5

4

あなたが試すことができる4つのことがあります:

  • すでに述べたように、仮想マシンまたは他の形式の仮想化を使用します(おそらく、solarisゾーンは十分に軽量ですか?)。スクリプトがそこでOSを壊した場合、あなたは気にしません。
  • メインOSのルートディレクトリとは別に、シェルセッションを仮想ルートディレクトリに配置するchrootを使用します。
  • systraceを使用します。これをシステムコールのファイアウォールと考えてください。
  • systraceに基づいて構築された「jail」を使用して、各jailに独自のプロセステーブルなどを提供します。

Systraceは最近侵害されたため、注意してください。

于 2009-05-20T09:48:15.233 に答える
4

chroot jail の使用を検討してください。これは非常に安全で、十分にサポートされ、テストされているだけでなく、Python から実行する外部アプリケーションにも適用されます。

于 2009-05-20T09:05:05.617 に答える
2

jythonを実行して、JVMのサンドボックスメカニズムを使用できます。JVMのサンドボックス化は非常に強力で、非常によく理解されており、多かれ少なかれ十分に文書化されています。許可したいものと許可したくないものを正確に定義するには時間がかかりますが、そこから非常に強力なセキュリティを取得できるはずです...

一方、jythonはcPythonと100%互換性がありません...

于 2009-05-20T09:44:35.193 に答える
1

そのディレクトリ内のスクリプト以外には何もアクセスできないユーザーとして実行することはできませんか?

于 2011-03-13T14:18:06.990 に答える
1

"sandboxing python" を検索してみてください。

http://wiki.python.org/moin/SandboxedPython

http://wiki.python.org/moin/How%20can%20I%20run%20an%20untrusted%20Python%20script%20safely%20(ie%20Sandbox)

于 2009-05-20T08:54:45.980 に答える