信頼できない小さなプログラムを実行したいのですが、フォルダ、ネットワークアクセス、その他本当に必要のないすべてのファイルへのアクセスを制限します。これを達成する最も簡単な方法は何ですか?
信頼できない小さなプログラムを実行したいのですが、フォルダ、ネットワークアクセス、その他本当に必要のないすべてのファイルへのアクセスを制限します。これを達成する最も簡単な方法は何ですか?
回答:
それらが本当に信頼できない場合、そして確実にしたい場合は、別のボックスをセットアップします。本当に、または実質的に。
さらに、もしあなたが十分に妄想しているなら、あなたはその箱があなたの重要なものと同じネットワークにあることを望まない。すべてのソリューションで、権限のない別のユーザーを設定して、侵害者になりすぎるツールを開かないようにします。
同じボックスで実行することにバインドされている場合、たとえば、このオプションがあります
chroot
。これは、多くの人々に対してこれを行うためのデフォルトのオプションであり、非特定の脅威に対しても機能する可能性があります。しかし、これはセキュリティオプションではなく、かなり簡単に分割できます。これを意図したとおりに使用することをお勧めします。つまり、セキュリティのためではありません。最終的には、仮想化や個別のボックスの手間、またはのリスクのある状況なしで、特定のサンドボックスモデルをセットアップする必要がありますchroot
。これがあなたの意図したことではないかと思いますが、より詳細な情報についてはこのリンクをご覧ください。
Dockerは、現在のカーネルから実行できるコンテナーをセットアップするのに役立ちますが、システムの他の部分から隔離された状態を保ちます。かなり最先端のように見えますが、Ubuntuが優れたドキュメントに焦点を当てています。
考えられる解決策の1つは、ソフトウェアセンターにあるVirtualBoxなどの仮想化ソフトウェアです。
これで、信頼できないソフトウェアをインストールして、その機能を確認できます。外部の世界を混乱させることはできません。また、アクセス権がないため、OSをホストすることもできません。
ただし、仮想マシンは破壊される可能性がありますが、破壊された場合は、スナップショットから復元できます。
信頼できないソフトウェアの破壊力を制限する他の方法があるかもしれませんが、これは私が考えることができる最も堅牢な方法です。
LXCはLinux Containersのユーザー空間制御パッケージで、「ステロイドのchroot」とも呼ばれる軽量の仮想システムメカニズムです。
LXCはchrootから構築して完全な仮想システムを実装し、リソース管理と分離メカニズムをLinuxの既存のプロセス管理インフラストラクチャに追加します。
ソフトウェアセンターで入手できます。しかし、私は経験がありません。
サブユーザーを使用して、Dockerでアプリケーションをサンドボックス化できます。これにより、サンドボックスGUIアプリのようなことができます。これは、Dockerで直接行うのは簡単ではありません。
sudo apt install subuser
ユーザーのアクティビティをサンドボックスするだけの場合は、「DoSH」を使用できます
DoSH(Docker SHellの略)は、ユーザーがLinuxシステムにログインして、シェルを単純に作成する代わりにシェルを実行するときにDockerコンテナーを作成する開発です。