HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: gVisorサポート付きのルートレスLinuxサンドボックス「Drop」

Show HN: Drop – a rootless Linux sandbox with gVisor support (droprun.sh)

133 pointsby mixedbit44 コメント

要約

開発者が、サードパーティ製プログラムをメインユーザーアカウントで実行することへの懸念から、ルートレスLinuxサンドボックス「Drop」を開発しました。Dropは、Linuxネームスペースを使用して分離を実現し、gVisorをオプションで利用することでホストカーネルの脆弱性に対する保護を強化します。これにより、開発者はローカル環境で安全かつ生産的に作業できるようになります。

全文翻訳

Dropを作成したのは、サードパーティ製のプログラムをメインユーザーアカウントにインストールして実行することに常に不安を感じていたからです。依存関係が1つでも侵害されれば、システム全体が侵害されることになります。さらに悪いことに、私が自分のコンピュータからソフトウェアを出荷しているため、1つの依存関係が侵害されると、私のソフトウェアのすべてのユーザーが侵害される可能性があります。

コンテナやVMは一つの解決策ですが、ローカル作業においては生産性の低下を招くことがよくあります。生産的な作業に必要なすべてのツールと設定を備えたマシンを構成するには労力がかかりますが、コンテナやVMはこれらのツールをすべて剥ぎ取ってしまいます。これは、再現可能なシステムと最小限の依存関係を目標とする本番環境へのデプロイメントには適していますが、生産的なローカル作業の妨げになることがあります。

Dropは言語に依存しませんが、そのワークフローはPythonのvirtualenvに触発されています。virtualenvでは、環境の分離はインストールされた依存関係が良い市民であることに依存する規約にすぎません。Dropでは、分離が強制されます。

各Drop環境には、書き込み可能で簡単に破棄できるホームディレクトリが用意されており、元のホームディレクトリから選択された設定ファイルとディレクトリのみが、ほとんど読み取り専用でマウントされます。

Dropは分離のためにLinuxネームスペース(ユーザー、マウント、ネットワーク、PID、IPC、cgroup)を使用し、rootを必要としません。オプションとして、gVisorユーザー空間カーネルを使用しており、これによりサンドボックスからのエスケープを目的としたホストカーネルの脆弱性の悪用に対する保護が追加されます。

紹介記事をあまり長くしたくありませんが、質問があればいつでもお答えし、追加の技術的な詳細を提供します。

注記: このプロジェクトの投稿は3回目です。最初の2回は注目を集めませんでした。それ以来、gVisorのサポートを追加し、コンセプトをより良く説明し、ドキュメントを整理するためにプロジェクトウェブサイトを作成しました。