注目★★★★★Lobsters
Linux sandbox設計、namespace依存を避ける理由
30秒で把握
- 1Emilua開発者がLinux namespaceを汎用sandboxに使う設計を批判
- 2Seccomp・Landlockとプロセス分離で権限削減を実装
- 3actor modelとfile descriptorをcapabilityとして資源を限定
要約
Emiluaの開発者は、ソフトウェアsandboxをLinux namespace中心で設計するのは不適切だと論じた。sandboxは管理者権限なしにプロセスの権限をプログラムから減らす仕組みであり、LinuxではSeccompやLandlockの利用が適している。Linux namespaceはユーザーnamespace内で管理者権限を与え、カーネル攻撃面を拡大し得るため、Emiluaでもcontainerization向けに用途を限定した。実装はプロセスを分離し、actor modelとUNIX domain socketで通信し、file descriptorをcapabilityとして必要な資源だけ渡す構成を取る。ただしioctlは権限確認を迂回し得るため危険で、Boost.AsioではBoost 1.86以降が必要になる。
あなたへの影響
security境界を設計する日本のエンジニアは、Linux namespaceだけに依存せず、Seccomp・Landlock・プロセス分離とfile descriptor継承を検証する必要がある。
推奨:ioctl経由の操作は特に監査し、Boost.Asio利用時はBoost 1.86以降を確認すべきだ。