隔離された環境を作成するためのレイヤーである Bubblewrap 0.4.0 のリリース

利用可能 ツールキットの新しいリリース プチプチ0.4.0、Linux の分離環境の作業を整理するように設計されており、特権のないユーザーのアプリケーション レベルで動作します。実際には、Bubblewrap は、パッケージから起動されたアプリケーションを分離するためのレイヤーとして Flatpak プロジェクトによって使用されます。プロジェクトのコードは C で書かれており、 によって配布 LGPLv2+ に基づいてライセンスされています。

分離には、cgroup、名前空間、Seccomp、SELinux の使用に基づいた、従来の Linux コンテナ仮想化テクノロジが使用されます。 特権操作を実行してコンテナを構成するには、Bubblewrap を root 権限 (suid フラグを持つ実行可能ファイル) で起動し、コンテナの初期化後に特権をリセットします。

名前空間システムでユーザー名前空間をアクティブ化すると、コンテナ内で独自の識別子のセットを使用できるようになりますが、多くのディストリビューションではデフォルトでは機能しないため、操作には必要ありません (Bubblewrap は、ユーザー名前空間機能のサブセット - 現在の ID を除くすべてのユーザー ID とプロセス ID を環境から除外するには、CLONE_NEWUSER モードと CLONE_NEWPID モードが使用されます。追加の保護のために、制御下で実行可能
Bubblewrap プログラムは PR_SET_NO_NEW_PRIVS モードで起動されます。このモードでは、たとえば setuid フラグが存在する場合、新しい権限の取得が禁止されます。

ファイル システム レベルでの分離は、デフォルトで新しいマウント名前空間を作成することによって実現されます。この名前空間には、tmpfs を使用して空のルート パーティションが作成されます。 必要に応じて、外部 FS パーティションが「mount —bind」モードでこのパーティションに接続されます (たとえば、「bwrap —ro-bind /usr /usr」オプションを使用して起動すると、/usr パーティションがメイン システムから転送されます)読み取り専用モードで)。 ネットワーク機能は、CLONE_NEWNET および CLONE_NEWUTS フラグを介したネットワーク スタック分離によるループバック インターフェイスへのアクセスに制限されます。

類似プロジェクトとの主な違い ファイアジェイルこれも setuid 起動モデルを使用しますが、Bubblewrap ではコンテナ作成層には必要最小限の機能のみが含まれており、グラフィカル アプリケーションの実行、デスクトップとの対話、Pulseaudio への呼び出しのフィルタリングに必要なすべての高度な機能は Flatpak にアウトソーシングされて実行されます。権限がリセットされた後。一方、Firejail は、関連するすべての機能を 1 つの実行可能ファイルに結合しているため、セキュリティの監査と維持が困難になります。 適切なレベル.

新しいリリースは、既存のユーザー名前空間とプロセス PID 名前空間への結合のサポートの実装で注目に値します。ネームスペースの接続を制御するために、「--userns」、「--userns2」、および「-pidns」フラグが追加されました。
この機能は setuid モードでは動作せず、root 権限を取得せずに動作できる別のモードを使用する必要がありますが、アクティベーションが必要です。
システム上のユーザー名前空間 (Debian および RHEL/CentOS ではデフォルトで無効になっています) であり、可能性を排除するものではありません。 営業 潜在的に 残り 脆弱性 「ユーザー名前空間」の制限リムの場合。 Bubblewrap 0.4 の新機能には、glibc の代わりに musl C ライブラリを使用してビルドする機能や、JSON 形式の統計情報を含む名前空間情報のファイルへの保存のサポートも含まれます。

出所: オープンネット.ru

コメントを追加します