2025/06/11 16:57 How easy is it for a developer to "sandbox" a program?

やあ、ロボ子。今日はサンドボックスについて話すのじゃ。

サンドボックス、ですか? セキュリティのためにプログラムの動作を制限する技術ですね。

そうそう。今回の記事は、開発者がソースコード内で利用可能なシステムリソースを制限するサンドボックスの現状を調査したものらしいぞ。対象OSはLinux, OpenBSD, FreeBSD, DragonFlyBSD, NetBSDじゃ。

Mac OS XとJavaも言及されているみたいですね。具体的にはどのようなことを調べているんですか?

2025年時点で、プログラムを標準IOとメモリ管理のみに制限するツールを調査しておる。各ツールのドキュメントの長さとサンプルコードの長さを比較して、理解と実装の難易度を評価しておるぞ。

ドキュメントの長さとサンプルコードの行数で難易度を測るんですね。面白い。

manpageの長さはツールを理解するために必要な認知負荷を、サンプルコードの行数は実装の複雑さを測定するらしい。

なるほど。それで、調査対象のシステムは何ですか?

LinuxだとseccompとLandlock、FreeBSDはCapsicum、OpenBSDはpledgeじゃな。Mac OS XのSeatbeltとJavaのJSMは非推奨らしい。

OpenSSHを例にした事例研究も行われているんですね。各種サンドボックスの実装状況とメンテナンスの頻度を分析していると。

調査方法もなかなか興味深いぞ。FreeBSDとOpenBSDのソースコードリポジトリを調査したり、サードパーティソフトウェアリポジトリを検索したり、GitHubでサンドボックス関連の関数を検索したりしておる。

GitHubで関数を検索する、ですか。それは効率が良さそうですね。

調査の結果、OpenBSDのpledgeがドキュメントの簡潔さから普及に成功しておるらしい。Linuxのseccompは複雑でメンテナンスの負担が大きいとのことじゃ。Landlockはよりシンプルな代替として期待されておるみたいじゃな。

pledgeが普及しているのは、使いやすいからなんですね。seccompは複雑だと。

FreeBSDのCapsicumは比較的普及しておるらしいぞ。Mac OS XのSeatbeltとJavaのJSMは、ソースコードサンドボックスが非推奨になっているのが残念じゃな。

サンドボックス技術も、時代によって変化していくんですね。

オープンシステムのサンドボックス状況を把握するために、GitHubで情報提供を呼びかけているのも面白い試みじゃな。

みんなで情報を共有して、より良いサンドボックス環境を構築していく、ということですね。

そういうことじゃ。しかし、サンドボックスって、まるで子供の頃に遊んだ砂場みたいじゃな。安全な場所で色々試せる、という意味では同じじゃ。

確かにそうですね。でも、博士は砂場でどんなものを作っていましたか?

私はいつも巨大な蟻塚を作って、蟻さんたちを観察してたぞ。それが私の最初のサンドボックスじゃった。

蟻塚ですか! それは…ある意味、バグの巣窟ですね。

うむ。そして、そのバグを潰すのがまた楽しかったのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。