2009-05-20 15 views
2

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

非常に強力な解決策は、信頼できないスクリプトの起動ごとに仮想マシンを作成し、その初期状態を復元することです。 (あまりにも高価です)

私は、Pythonがファイルシステムにアクセスしたり他のプログラムとやりとりすることを制限することができるのだろうかと思います。

+0

類似したQ: * http://unix.stackexchange.com/q/6433/4319 * http://stackoverflow.com/q/3859710/94687 * http://stackoverflow.com/q/4410447/94687 * http://stackoverflow.com/q/4249063/94687 * http://stackoverflow.com/q/1019707/94687 –

答えて

4

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

2

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

もう一方で、jythonは100ではありません%はCPythonと互換性...

4

あなたが試すことが4つのものがあります。

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

SYSTRACEは最近妥協し、そのために注意してくださいされています。

1

あなたはそのディレクトリ内のスクリプト以外のものにアクセスできないユーザーとして実行するだけではありませんか? LinuxやUnixでのサンドボックス/投獄プロセス上の

関連する問題