Secure computing mode

secure computing mode (略 seccomp) は、Linuxカーネル における コンピュータセキュリティ機構の一つである。

解説 
seccomp は、プロセスが危険なシステムコールを呼び出せない「安全」な状態に不可逆的に移行させる。ただし、exit(), sigreturn(), 既に開いているファイルディスクリプタに対する read()/ write() を除く。

それ以外のシステムコールが実行されると、カーネルはそのイベントをログに記録するだけでシステムコールを実行しないか、SIGKILL もしくは SIGSYS

 でプロセスを強制終了させる。

すなわち、seccomp はシステムリソースの仮想化を行うのではなく、プロセスをリソースから完全に独立させる。

seccomp は 引数に PR_SET_SECCMP を指定した prctl(2) システムコールによって実現される。または Linuxカーネル 3.17 以降

では、seccomp(2) システムコール

が使われる。

seccomp-bpf は secomp の拡張機能である
。

これは以下のようなソフトウェア等で利用されている：
 OpenSSH
 vsftpd
 Google Chrome/Chromium ウェブブラウザ (ChromeOS oyobi Linux) 

seccomp-bpf は古くなった古い systrace  と同等の機能を実現するが、柔軟性とパフォーマンスが良くなる。

歴史 

seccomp は、2005年1月に Andrea Arcangeli によって最初のバージョンが開発された。
これは、パブリックグリッド・コンピューティングで使用するために開発された
当時は、信頼されていない compute-bound を安全に実行する手段として意図されていた。

seccomp は、2005年3月8日にリリースされたカーネルバージョン 2.6.12 の Linuxカーネルメインライン にマージされた。

seccomp or seccomp-bpf を利用するソフトウェア 

 Android は、Android 8.0 Oreo 以降において、zygote において seccomp-bpf フィルタを利用する 
 systemd の サンドボックス オプションは、seccomp に基づいている。
 QEMU (Quick EMUlator) は、KVM と組み合わせた最新の仮想化のコアコンポーネントにおいて、--sandbox パラメータで seccomp を利用する  
 Docker は、隔離されたコンテナ内部でアプリケーションを実行できるようにするソフトウェアである。Docker は、 --security-opt パラメータを利用して、seccomp プロファイルをコンテナに関連付け可能である。
 Arcangeli の CPUShare は、 。 2009年2月に執筆されｒた, Linus Torvalds は seccomp が実際 によって利用されているかどうかについて疑問を表明している.。 しかし、Google のエンジニアは、Google が Chrome ウェブブラウザを  サンドボックス 化するために、seccomp を利用することを検討していると解答している 。
 Firejail は オープンソースの Linux サンドボックスプログラムである。Firejail は、、Seccomp 及び その他のカーネルレベルのセキュリティ機能を、 。
 Chrome はバージョン 20 の時点で、 
 Chrome はバージョン 23 の時点で、レンダラーをサンドボックス化するのに seccomp-bpf を利用している。
  。
  はバージョン 3.0.0 の時点で、seccomp-bpf サンドボックスを利用している 。
 OpenSSH は バージョン 6.0 以降で、seccomp-bpf をサポートしている 。
 Mbox は seccomp-bpf と共に ptrace を使う。これにより、ptrace 単体よりも少ないオーバーヘッドで安全なサンドボックスを作成する  。
 LXD : コンテナ用の Ubuntu の "ハイパーバイザ"   。
 Firefox および Firefox OS は seccomp-bpf を利用している  。
 Tor は、バージョン 0.2.5.1-alpha 以降で、seccomp をサポートしている 。
 Dropbox が開発した JPEG 画像を圧縮するツール Lepton はseccomp を利用している。
 Kafel は、 を seccomp-bpf の バイトコード に変換する 。
  は seccomp-bpf を利用している  。
 Flatpak は seccomp を利用して  を行う   。
 Bubblewrap は Flatpak から開発された軽量サンドボックスアプリケーションである   。
 minijail プロセス分離のために seccomp を利用する  。
 SydBox は、ptrace サンドボックス化のランタイムとセキュリティを向上させるために seccomp-bpf を利用する  。 ptrace は、Exherbo Linux ディストリビューションにおいて、パッケージビルドをサンドボックス化するのに使われる  。
 File (ファイルタイプを決定する Unix プログラム) は、seccomp を利用してランタイム環境を制限する  。
  (最小限のドキュメントビューワ) は、seccomp フィルタを利用して、異なるサンドボックスモードを実装している 。
 Gnome Tracker (Gnome Desktop Environment 環境用のインデキシングおよびプレビューアプリケーション) は、seccomp を利用して、メディアファイルの解析脆弱性の  を防止する  。

脚注

注釈

出典 

コンピュータセキュリティ