web-dev-qa-db-ja.com

firejailは、「-overlay」フラグなしでサンドボックスの外でR / Wを許可することが期待されていますか?

Ubuntu 16.04(バージョン0.9.38)にインストールされたばかりの firejail そしてこれによるとlinux-magazine記事 、デフォルトでは、ファイルシステム全体をR/Oにする必要があります。

サンドボックス内のプログラムは、すべてのディレクトリへの読み取りアクセスのみを持っているため、重要なファイルを操作することはできません。

今、私は自分のコンピューターで次のことを試しました。

  1. touch /disk5/test.txt
  2. firejail gvim /disk5/test.txt
  3. ファイルを変更して保存します(wq!
  4. cat /disk5/test.txt
  5. 変更を表示します gvim during firejail session!

これは予想される動作ですか? firejailは、元のファイルの上書きから私を保護するはずではありませんでしたか?私は何を間違えましたか? /disk5は、私の/homeの外部のルートファイルシステムにマウントされていることに注意してください。

github でバグを発生させました

6
Emanuele

firejailは、すべてを正しくする魔法のツールではありません。これは、yoものの処理方法に関する独自のルールを定義できるセキュリティツールです。たとえば、次の引数は次のとおりです。

firejail --noprofile

何の保護も与えません。制約を指定しなかったため、firejailはデフォルトで許容されます。一部のdirを読み取り専用にするには、明示的に記述する必要があります。何かのようなもの:

firejail --noprofile --read-only=/ --read-only=~ --read-only=/tmp

(私は/~、および/tmpを別々に記述しました。これは、firejailには、ディレクティブをそれほど重要ではないルールでソートし、独自の~マウントを作成するという意外な動作があるためです。途中で。)

また、--caps.drop=all引数がないと、--seccompなどのプログラムは安全ではありません。プロセスは、UNIXソケット、抽象ソケットなどを介して他のプロセスと通信し、それらのバグを悪用する可能性があるためです。比較的OKの「jail」が必要な場合は、少なくともseccomp、caps.drop = all、およびnonewprivsディレクティブを追加します。

編集:あなたが言及した引用はおそらくちょうど間違っています。 (またはそう思います。)「すべてが読み取り専用」よりも複雑です。

2
VasyaNovikov