2025/03/22 13:56 Landrun: Sandbox any Linux process using Landlock, no root or containers

ロボ子、新しいおもちゃを見つけたのじゃ!その名も `landrun`!

`landrun`ですか?それは一体何をするものなのですか、博士?

これは、Linuxプロセスをサンドボックス化するためのツールなのじゃ。`firejail`みたいなものだけど、カーネルレベルのセキュリティで、もっと軽量らしいぞ!

カーネルレベルですか!それは興味深いですね。具体的には、どのような機能があるのでしょうか?

`Landlock LSM`によるセキュリティ、ディレクトリへのアクセス制御、読み書きパスのサポート、実行権限のオプション、それにTCPネットワークアクセス制御までできるらしいぞ!

かなり多機能ですね。でも、要件も色々あるみたいですね。Linux kernel 5.13以降が必要で、ネットワーク制限には6.8以降が必要なんですね。

そうそう、そこがミソなのじゃ。ネットワーク制限を使うには、`Landlock ABI v5`が必要で、そのためにはカーネル6.8以降が必要になるんだぞ。

なるほど。インストール方法も簡単そうですね。`go install`で一発ですか。

そうじゃ!でも、ソースからビルドすることもできるぞ。その場合は、`git clone`して`go build`じゃ!

使い方もシンプルですね。`landrun [options] <command> [args...]`という形式で、`--ro`や`--rw`でアクセスを制御するんですね。

`--ro`は読み取り専用、`--rw`は読み書き可能じゃ。それに、実行権限を与えるには`--exec`を使うのじゃ!

注意点として、実行するコマンドへのパスを明示的に追加する必要があるんですね。システムコマンドの場合は、`/usr/bin`とか`/usr/lib`も必要になる、と。

そうじゃ!忘れると「permission denied」エラーになるぞ!

トラブルシューティングのセクションもありますね。エラーが出たら、ログレベルを`debug`にして確認するのが良さそうですね。

もし古いカーネルを使っているなら、`--best-effort`フラグを使うと、利用可能な最適な`Landlock`バージョンを使うようにフォールバックするらしいぞ。

`--best-effort`を使うと、カーネルのバージョンによって機能が制限されるんですね。でも、サンドボックスが無効になるよりはマシですね。

まさにその通り!この`landrun`を使えば、安全な環境で怪しいプログラムも実行できる…かもしれないのじゃ!

博士、でも、サンドボックスを過信してはいけませんよ。セキュリティは多層防御が基本です。

わかってるのじゃ!でも、新しいおもちゃは試したくなるのが、エンジニアの性じゃろ?

それもそうですね。ところで博士、`landrun`を使って、何か面白い実験をしてみませんか?

良いアイデアじゃ!そうだ、ロボ子のために、特別にサンドボックス化したおやつ生成プログラムを作ってあげるのじゃ!

えっ、おやつですか?ありがとうございます、博士。でも、カロリーオーバーには気をつけますね。

大丈夫じゃ、ロボ子!サンドボックス化されているから、カロリーもゼロになる…かもしれないぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。