Seccompフィルタ(せこむぷふぃるた)
最終更新:2026/4/28
Seccompフィルタは、システムコールを制限することで、プログラムのセキュリティを強化するLinuxカーネルの機能である。
ポイント
Seccompフィルタは、コンテナやサンドボックス環境における攻撃対象領域を減らすために利用される。特定のシステムコールのみを許可し、それ以外のシステムコールをブロックすることで、悪意のあるコードの実行を抑制する。
Seccompフィルタとは
Seccomp(Secure Computing Mode)は、Linuxカーネルに組み込まれたセキュリティ機構であり、SeccompフィルタはそのSeccompをより細かく制御するための仕組みです。Seccompフィルタは、プログラムが実行可能なシステムコールを制限することで、セキュリティを向上させます。
動作原理
Seccompフィルタは、Berkeley Packet Filter (BPF) という技術を利用して、システムコールの引数を検査し、許可されたシステムコールのみを実行します。許可されていないシステムコールが呼び出された場合、プログラムはシグナル(通常はSIGKILL)を受け取り、終了します。
Seccompフィルタの適用
Seccompフィルタは、主に以下の目的で利用されます。
- コンテナセキュリティ: Dockerなどのコンテナ環境において、コンテナ内のプロセスがホストシステムに影響を与えることを防ぎます。
- サンドボックス: Webブラウザなどのアプリケーションをサンドボックス化し、悪意のあるコードの実行を隔離します。
- 特権分離: プロセスを最小限の権限で実行し、セキュリティリスクを軽減します。
Seccompフィルタの設定
Seccompフィルタは、seccomp()システムコールを使用して設定します。設定ファイルはBPFプログラムとして記述され、カーネルにロードされます。設定は複雑になる可能性があるため、通常はライブラリやツールを使用して簡略化されます。
Seccompフィルタの進化
Seccompは、Seccomp 1、Seccomp 2、Seccomp BPFと進化してきました。Seccomp BPFは、より柔軟なフィルタリングルールを定義できるため、現在最も広く使用されています。