Secure computing mode

secure computing mode (seccomp) について



secure computing mode、略して seccomp は、Linuxカーネルに実装されている重要なセキュリティ機能です。この技術は、特定のプロセスが危険なシステムコールを呼び出すことを防ぎ、システムの安全性を高めることを目的としています。seccompは、プロセスを一度適用した後は再度元の状態に戻すことができない「安全」な状態に移行させます。ただし、`exit()` や `sigreturn()`、および既に開いているファイルディスクリプタに対する `read()` や `write()` はこの制約の対象外です。

seccompが適用されているプロセスが許可されていないシステムコールを実行しようとすると、Linuxカーネルはそのイベントを記録し、システムコールの実行を拒否したり、`SIGKILL` または `SIGSYS` シグナルでそのプロセスを終了させる仕組みとなっています。これにより、seccompは単なるシステムリソースの仮想化を行うのではなく、プロセスを完全にリソースから独立させることができるのです。

seccompを実現するためには、`prctl(2)` システムコールに引数として `PR_SET_SECCMP` を指定します。また、Linuxカーネルのバージョンが3.17以降では、`seccomp(2)` システムコールが使用できます。さらに、seccompの拡張である seccomp-bpf は、より柔軟で高いパフォーマンスを発揮する機能を提供します。

使用例



この技術は、様々なソフトウェアで利用されています。たとえば、OpenSSHvsftpd は seccomp をサポートしており、GoogleChrome/Chromium ウェブブラウザもこの技術を利用してサンドボックス環境を構築しています。また、DockerQEMUといった他の重要なソフトウェアもseccompに基づいて操作しています。そのため、コンテナ内のアプリケーションが安全に実行されることが可能になります。

seccompは、当初は2005年にAndrea Arcangeliによって開発され、パブリックグリッド・コンピューティングでの安全な処理手段を提供することを目的としていました。この機能は徐々に進化し、Linuxカーネルのバージョン2.6.12からメインラインに取り込まれることとなります。

多様な応用



Androidはバージョン8.0 Oreo以降で、`zygote`にseccomp-bpfフィルタを利用し、systemdのサンドボックスオプションもseccompに基づいています。さらに、Linuxのオープンソースサンドボックスプログラムである Firejail は、Linuxカーネルのさまざまなセキュリティ機能、特にseccompを活用して安全な環境を提供します。

Chromeは、バージョン20においてAdobe Flash Playerのサンドボックス化にseccomp-bpfを使用し、バージョン23ではレンダラーをサンドボックス化する際にこの技術を利用しています。また、SnapFlatpak などのアプリケーションサンドボックスもseccompを活用しており、安全なアプリケーションの実行を可能にしています。

具体的なアプリケーション例としては、DropboxのLepton、Gnome Tracker、Firefox、Torなどがseccompを利用しています。これにより、システムのセキュリティを高め、悪意のある攻撃からシステムを守る効果が期待されています。seccompの導入により、より安全で効率的なコンピュータ環境を構築することができるのです。

結論



このように、secure computing mode (seccomp)は、現代のLinuxシステムにおけるセキュリティの強化において欠かせない要素です。プロセスを安全に管理し、システム資源を適切に保護するために、この技術はますます重要性を増しています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。