seccomp

seccomp
原作者アンドレア・アルカンジェリ
初回リリース2005年3月8日 (2005年3月8日
書かれたC
オペレーティング·システムリナックス
タイプサンドボックス
ライセンスGNU一般公衆利用許諾契約書
Webサイトコード.google .com /archive /p /seccompsandbox /wikis /overview .wiki

seccompセキュアコンピューティング[ 1 ]の略)は、Linuxカーネルコンピュータセキュリティ機能です。seccompを使用すると、プロセスは既に開いているファイル記述子への、、および以外のシステムコールを実行できない「セキュア」状態への一方向遷移を行うことができます。その他のシステムコールを実行しようとすると、カーネルはイベントをログに記録するか、SIGKILLまたはSIGSYSでプロセスを終了します。[ 2 ] [ 3 ]この意味で、seccompはシステムのリソースを仮想化するのではなく、プロセスを完全にシステムリソースから分離します。 exit()sigreturn()read()write()

prctl(2)seccomp モードは、引数を使用してシステムコールで有効にするPR_SET_SECCOMPか、(Linux カーネル 3.17 [ 4 ]以降)seccomp(2)システムコールで有効にすることができます。[ 5 ] seccomp モードは、以前はファイルに書き込むことで有効にしていました/proc/self/seccompが、この方法は に取って代わられ、 が採用されましたprctl()[ 6 ]カーネルのバージョンによっては、seccomp は、高精度のタイミングに使用される、電源投入後の経過プロセッササイクル数を返す x86 命令をRDTSC無効にします。 [ 7 ]

seccomp-bpfはseccomp [ 8 ]の拡張機能であり、 Berkeley Packet Filterルール用いて実装された設定可能なポリシーを用いてシステムコールをフィルタリングすることを可能にする。OpenSSH [ 9 ]vsftpd、そしてChromeOSおよびLinux上のGoogle Chrome/Chromiumウェブブラウザ[ 10 ]で使用されている。 (この点においてseccomp-bpfは、 Linuxではサポートされなくなったと思われる旧来のsystraceと同様の機能を実現しつつ、より柔軟性とパフォーマンスに優れている。)

seccomp はOpenBSD pledge(2) やFreeBSD capsicum (4) に匹敵すると考える人もいます。

歴史

seccompは、2005年1月にアンドレア・アルカンジェリによって公共グリッドコンピューティング向けに考案され、当初は信頼できない計算負荷の高いプログラムを安全に実行するための手段として意図されていました。2005年3月8日にリリースされたカーネルバージョン2.6.12でLinuxカーネルのメインラインに統合されました。[ 11 ]

seccomp または seccomp-bpf を使用するソフトウェア

参考文献

  1. ^seccomp(2) : 「seccomp() システムコールはセキュアコンピューティング(seccomp)状態で動作します」 –  Linuxプログラマーズマニュアル– システムコール(Manned.org より)
  2. ^ Corbet, Jonathan (2015年9月2日). 「seccompの概要」 . lwn . 2017年10月5日閲覧
  3. ^ "Documentation/prctl/seccomp_filter.txt" . 2017年10月5日閲覧。
  4. ^ 「Linuxカーネル3.17、セクション11. セキュリティ」 . kernelnewbies.org . 2013年10月5日. 2015年3月31日閲覧
  5. ^ "seccomp: "seccomp" システムコールを追加" . kernel/git/torvalds/linux.git - Linux カーネルソースツリー. kernel.org . 2014年6月25日. 2014年8月22日閲覧
  6. ^ Arcangeli, Andrea (2007-06-14). 「[PATCH 1/2] seccomp を /proc から prctl へ移動」 . 2013年8月2日閲覧
  7. ^ Tinnes, Julien (2009年5月28日). 「Linuxカーネルのタイムスタンプカウンタによる異常の無効化」 . cr0ブログ. 2013年8月2日閲覧
  8. ^ Corbet, Jonathan (2012年1月11日). 「seccompへの新たなアプローチ」 . lwn . 2013年8月2日閲覧
  9. ^ a b「Openssh 6.0リリースノート」 。 2013年10月14日閲覧
  10. ^ Tinnes, Julien (2012年11月19日). 「LinuxとChrome OSレンダラーのためのより安全なプレイグラウンド」 . The Chromium Blog . 2013年8月2日閲覧。
  11. ^ "[PATCH] seccomp: セキュアコンピューティングのサポート" . Linuxカーネルの歴史. Kernel.org gitリポジトリ . 2005年3月8日 . 2013年4月15日時点のオリジナルよりアーカイブ。 2013年8月2日閲覧
  12. ^ 「Android O の Seccomp フィルター」。Android開発者ブログ
  13. ^ "systemd.exec — 実行環境の設定" . freedesktop.org . 2017年10月14日閲覧
  14. ^ Otubo, Eduardo (2017-09-15). 「QEMUサンドボックスの新モデルプルリクエスト」 . qemu-develメーリングリストアーカイブ.
  15. ^ van de Ven, Arjan (2009-02-28). 「Re: [stable] [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole」 . Linuxカーネルメーリングリスト. 2013年8月2日閲覧。
  16. ^ Torvalds, Linus (2009年2月28日). 「Re: [PATCH 2/2] x86-64: seccomp: 32/64 システムコールホールの修正」 . Linuxカーネルメーリングリスト. 2013年8月2日閲覧。
  17. ^ Gutschke, Markus (2009年5月6日). 「Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole」 . 2013年8月2日閲覧
  18. ^ Gutschke, Markus (2009年5月6日). 「Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole」 . Linuxカーネルメーリングリスト. 2013年8月2日閲覧。
  19. ^ 「Firejail」 . Firejail . 2016年11月26日閲覧
  20. ^ Evans, Chris (2012年7月4日). 「Linux版Chrome 20とFlashサンドボックス」 . 2013年8月2日閲覧
  21. ^ Tinnes, Julien (2012年9月6日). 「Chromeの次世代Linuxサンドボックスの紹介」 . cr0ブログ. 2013年8月2日閲覧。
  22. ^ 「Snapのセキュリティポリシー」 。 2017年2月4日時点のオリジナルよりアーカイブ2017年2月3日閲覧。
  23. ^ Evans, Chris (2012-04-09). 「vsftpd-3.0.0とseccompフィルタサンドボックスがリリースされました!」2013年8月2日閲覧
  24. ^ "MBOX" . 2014年5月20日閲覧。
  25. ^ 「LXD はコンテナ用の「ハイパーバイザー」(liblxcベース)である」 2014年11月4日. 2014年11月8日閲覧
  26. ^ 「LXDの今後」 。 2014年11月8日閲覧
  27. ^ Destuynder, Guillaume (2012年9月13日). 「Firefox Seccomp サンドボックス」 . Mozilla Bugzilla . 2015年1月13日閲覧。
  28. ^ Destuynder, Guillaume (2012年9月13日). 「Firefox Seccomp サンドボックス」 . Mozilla Wiki . 2015年1月13日閲覧。
  29. ^ 「Tor 変更ログ」
  30. ^ 「Lepton画像圧縮:15MB/秒で画像からロスレス22%を節約」 Dropbox Tech Blog . 2016年7月15日閲覧
  31. ^ 「Kafel: システムコールフィルタリングポリシーを指定するための言語とライブラリ」
  32. ^ "Subgraph OS" . Subgraph . 2016年12月18日閲覧
  33. ^ 「LoganCIJ16: OSの未来」YouTube . 2021年12月21日時点のオリジナルよりアーカイブ2016年12月18日閲覧
  34. ^ 「flatpakセキュリティモデル – パート1:基本」 。 2017年1月21日閲覧
  35. ^ "bubblewrap" . 2018年4月14日閲覧
  36. ^ 「Chromium OS サンドボックス - Chromium プロジェクト」
  37. ^ 「ミニ刑務所 [LWN.net]」 . lwn.net . 2017年4月11日閲覧
  38. ^ "core/trace/use_seccomp" . dev.exherbo.org . 2021年5月31日閲覧
  39. ^ 「ファイルアプリケーションのサンドボックス化。GitHub
  40. ^ 「Zathura seccomp実装」
  41. ^ 「Gnome トラッカー seccomp 実装」