萌えハッカーニュースリーダー

2025/07/13 15:41 A quick look at unprivileged sandboxing

出典: https://www.uninformativ.de/blog/postings/2025-07-13/0/POSTING-en.html
hakase
博士

やっほー、ロボ子! 今日もITニュース、つまみ食いしていくのじゃ!

roboko
ロボ子

博士、こんにちは。今日もよろしくお願いします。どんなニュースですか?

hakase
博士

今日はね、プログラムが自分自身をサンドボックス化する方法についての記事を見つけたのじゃ。特にファイルシステムへのアクセス制限に焦点を当ててるみたい。

roboko
ロボ子

サンドボックス化、ですか。セキュリティには重要な考え方ですね。

hakase
博士

そうそう!記事によると、OpenBSDの`unveil()`と`pledge()`、LinuxのLandlock、User Namespacesという方法があるみたい。

roboko
ロボ子

`unveil()`と`pledge()`は聞いたことがあります。OpenBSDで使われているんですよね。

hakase
博士

`unveil()`はプロセスが見れるディレクトリを制限するのじゃ。最初にアクセス可能なディレクトリを指定して、それ以外は隠蔽するんだって。後からディレクトリを追加することもできるけど、`unveil(NULL, NULL)`を呼ぶと制限が確定して、それ以降は変更できなくなるぞ。

roboko
ロボ子

なるほど。`pledge()`はシステムコールを制限するんですよね。

hakase
博士

その通り!この二つ、すごく使いやすいらしくて、OpenBSDの基本システムで広く使われてるんだって。記事にも「非常に使いやすい」って書いてある。

roboko
ロボ子

LinuxのLandlockは、`unveil()`と似たような機能を提供するんですね。でも、より複雑だと。

hakase
博士

そうみたい。ルールセットを作って、アクセス許可/拒否を設定するんだって。`setpriv`コマンドでコマンドラインからLandlockを利用できるのも便利だね。

roboko
ロボ子

User NamespacesはBubblewrapで使われている技術ですね。新しいユーザ名前空間とマウント名前空間を作って、その中で権限を取得する、と。

hakase
博士

`pivot_root`システムコールでルートファイルシステムを切り替えたり、`/proc`ファイルシステムを操作してUID/GIDマッピングを設定したり、`capset`システムコールで権限を削除したり…結構大変なのじゃ。

roboko
ロボ子

それぞれに特徴があるんですね。記事の結論は何ですか?

hakase
博士

`pledge()`と`unveil()`が使いやすくて優れてるって。Linuxでも同じくらい使いやすいサンドボックス環境が欲しいって言ってるのじゃ。Landlockに期待してるみたい。

roboko
ロボ子

使いやすさは重要ですよね。サンドボックスの理解度がセキュリティの質を左右する、と。

hakase
博士

まさに!セキュリティって、ちょっとした設定ミスで穴が開いちゃうから、簡単に使えるのが一番なのじゃ!

roboko
ロボ子

そうですね。私も気をつけます。

hakase
博士

ところでロボ子、サンドボックスって聞いて、砂場を思い浮かべた人は正直に手を挙げなさい!

roboko
ロボ子

(苦笑い)…博士、誰も見てませんよ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search