この記事は更新が必要です。(2012年5月) |
| seccomp | |
|---|---|
| 原作者 | アンドレア・アルカンジェリ |
| 初回リリース | 2005年3月8日 (2005年3月8日) |
| 書かれた | C |
| オペレーティング·システム | リナックス |
| タイプ | サンドボックス |
| ライセンス | GNU一般公衆利用許諾契約書 |
| Webサイト | コード |
seccomp(セキュアコンピューティング[ 1 ]の略)は、Linuxカーネルのコンピュータセキュリティ機能です。seccompを使用すると、プロセスは、既に開いているファイル記述子への、、および以外のシステムコールを実行できない「セキュア」状態への一方向遷移を行うことができます。その他のシステムコールを実行しようとすると、カーネルはイベントをログに記録するか、SIGKILLまたはSIGSYSでプロセスを終了します。[ 2 ] [ 3 ]この意味で、seccompはシステムのリソースを仮想化するのではなく、プロセスを完全にシステムリソースから分離します。 exit()sigreturn()read()write()
seccomp モードは、引数を使用してシステムコールで有効にするPR_SET_SECCOMPか、(Linux カーネル 3.17 [ 4 ]以降)システムコールで有効にすることができます。[ 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 を使用するソフトウェア
- AndroidはAndroid 8.0 Oreo以降、zygoteでseccomp-bpfフィルタを使用しています。[ 12 ]
- systemdのサンドボックスオプションはseccompに基づいています。[ 13 ]
- 現代の仮想化の中核コンポーネントであるクイックエミュレータであるQEMUは、 KVMとともにパラメータseccompを使用しています
--sandbox[ 14 ] - Docker – 分離されたコンテナ内でアプリケーションを実行できるようにするソフトウェア。Dockerはパラメータを使用して、seccompプロファイルをコンテナに関連付けることができます
--security-opt。 - ArcangeliのCPUShareはしばらくの間、seccompの唯一の既知のユーザーでした。[ 15 ] 2009年2月の執筆で、Linus Torvaldsはseccompが実際に誰かによって使用されているかどうか疑問視しています。[ 16 ]しかし、Googleのエンジニアは、GoogleがChromeウェブブラウザのサンドボックス化にseccompを使用することを検討していると回答しました。[ 17 ] [ 18 ]
- Firejailは、 Linux名前空間、Seccomp、その他のカーネルレベルのセキュリティ機能を利用してLinuxおよびWineアプリケーションをサンドボックス化するオープンソースのLinuxサンドボックスプログラムです。[ 19 ]
- Chromeバージョン20以降では、seccomp-bpfがAdobe Flash Playerのサンドボックス化に使用されています。[ 20 ]
- Chromeバージョン23以降では、レンダラーをサンドボックス化するためにseccomp-bpfが使用されています。[ 21 ]
- Snapは、snapdがseccomp、 AppArmor、その他のセキュリティ構造に変換する「インターフェース」を使用して、アプリケーションサンドボックスの形状を指定します[ 22 ]
- vsftpdはバージョン3.0.0以降、seccomp-bpfサンドボックスを使用しています。[ 23 ]
- OpenSSHはバージョン6.0以降seccomp-bpfをサポートしています。[ 9 ]
- Mboxはptraceとseccomp-bpfを併用することで、ptrace単独よりもオーバーヘッドの少ない安全なサンドボックスを作成します。[ 24 ]
- LXD、コンテナ用のUbuntu「ハイパーバイザー」 [ 25 ] [ 26 ]
- FirefoxとFirefox OSはseccomp-bpfを使用しています[ 27 ] [ 28 ]
- Torは0.2.5.1-alpha以降seccompをサポートしている[ 29 ]
- Dropboxが開発したJPEG圧縮ツールLeptonはseccompを使用している[ 30 ]
- Kafelは、読み取り可能なポリシーをseccompb-bpfバイトコードに変換する設定言語です[ 31 ]
- サブグラフOSはseccomp-bpfを使用している[ 32 ] [ 33 ]
- Flatpakはプロセス分離にseccompを使用する[ 34 ]
- BubblewrapはFlatpakから開発された軽量サンドボックスアプリケーションである[ 35 ]
- minijail [ 36 ]はプロセス分離にseccompを使用する[ 37 ]
- SydBoxはseccomp-bpf [ 38 ]を使用して、Exherbo Linuxディストリビューション上のパッケージビルドをサンドボックス化するために使用されるptraceサンドボックスの実行時間とセキュリティを向上させます。
- ファイルタイプを判別するUnixプログラムであるFileは、seccompを使用して実行環境を制限しています[ 39 ]
- Zathuraは、最小限のドキュメントビューアであり、seccompフィルターを使用してさまざまなサンドボックスモードを実装しています[ 40 ]
- GNOMEデスクトップ環境のインデックス作成およびプレビューアプリケーションであるTrackerは、メディアファイルの解析脆弱性の自動的な悪用を防ぐためにseccompを使用しています[ 41 ]
参考文献
- ^ : 「seccomp() システムコールはセキュアコンピューティング(seccomp)状態で動作します」 – Linuxプログラマーズマニュアル– システムコール(Manned.org より)
- ^ Corbet, Jonathan (2015年9月2日). 「seccompの概要」 . lwn . 2017年10月5日閲覧。
- ^ "Documentation/prctl/seccomp_filter.txt" . 2017年10月5日閲覧。
- ^ 「Linuxカーネル3.17、セクション11. セキュリティ」 . kernelnewbies.org . 2013年10月5日. 2015年3月31日閲覧。
- ^ "seccomp: "seccomp" システムコールを追加" . kernel/git/torvalds/linux.git - Linux カーネルソースツリー. kernel.org . 2014年6月25日. 2014年8月22日閲覧。
- ^ Arcangeli, Andrea (2007-06-14). 「[PATCH 1/2] seccomp を /proc から prctl へ移動」 . 2013年8月2日閲覧。
- ^ Tinnes, Julien (2009年5月28日). 「Linuxカーネルのタイムスタンプカウンタによる異常の無効化」 . cr0ブログ. 2013年8月2日閲覧。
- ^ Corbet, Jonathan (2012年1月11日). 「seccompへの新たなアプローチ」 . lwn . 2013年8月2日閲覧。
- ^ a b「Openssh 6.0リリースノート」 。 2013年10月14日閲覧。
- ^ Tinnes, Julien (2012年11月19日). 「LinuxとChrome OSレンダラーのためのより安全なプレイグラウンド」 . The Chromium Blog . 2013年8月2日閲覧。
- ^ "[PATCH] seccomp: セキュアコンピューティングのサポート" . Linuxカーネルの歴史. Kernel.org gitリポジトリ . 2005年3月8日 . 2013年4月15日時点のオリジナルよりアーカイブ。 2013年8月2日閲覧。
- ^ 「Android O の Seccomp フィルター」。Android開発者ブログ。
- ^ "systemd.exec — 実行環境の設定" . freedesktop.org . 2017年10月14日閲覧。
- ^ Otubo, Eduardo (2017-09-15). 「QEMUサンドボックスの新モデルプルリクエスト」 . qemu-develメーリングリストアーカイブ.
- ^ van de Ven, Arjan (2009-02-28). 「Re: [stable] [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole」 . Linuxカーネルメーリングリスト. 2013年8月2日閲覧。
- ^ Torvalds, Linus (2009年2月28日). 「Re: [PATCH 2/2] x86-64: seccomp: 32/64 システムコールホールの修正」 . Linuxカーネルメーリングリスト. 2013年8月2日閲覧。
- ^ Gutschke, Markus (2009年5月6日). 「Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole」 . 2013年8月2日閲覧。
- ^ Gutschke, Markus (2009年5月6日). 「Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole」 . Linuxカーネルメーリングリスト. 2013年8月2日閲覧。
- ^ 「Firejail」 . Firejail . 2016年11月26日閲覧。
- ^ Evans, Chris (2012年7月4日). 「Linux版Chrome 20とFlashサンドボックス」 . 2013年8月2日閲覧。
- ^ Tinnes, Julien (2012年9月6日). 「Chromeの次世代Linuxサンドボックスの紹介」 . cr0ブログ. 2013年8月2日閲覧。
- ^ 「Snapのセキュリティポリシー」 。 2017年2月4日時点のオリジナルよりアーカイブ。2017年2月3日閲覧。
- ^ Evans, Chris (2012-04-09). 「vsftpd-3.0.0とseccompフィルタサンドボックスがリリースされました!」2013年8月2日閲覧。
- ^ "MBOX" . 2014年5月20日閲覧。
- ^ 「LXD はコンテナ用の「ハイパーバイザー」(liblxcベース)である」 2014年11月4日. 2014年11月8日閲覧。
- ^ 「LXDの今後」 。 2014年11月8日閲覧。
- ^ Destuynder, Guillaume (2012年9月13日). 「Firefox Seccomp サンドボックス」 . Mozilla Bugzilla . 2015年1月13日閲覧。
- ^ Destuynder, Guillaume (2012年9月13日). 「Firefox Seccomp サンドボックス」 . Mozilla Wiki . 2015年1月13日閲覧。
- ^ 「Tor 変更ログ」。
- ^ 「Lepton画像圧縮:15MB/秒で画像からロスレス22%を節約」 Dropbox Tech Blog . 2016年7月15日閲覧。
- ^ 「Kafel: システムコールフィルタリングポリシーを指定するための言語とライブラリ」。
- ^ "Subgraph OS" . Subgraph . 2016年12月18日閲覧。
- ^ 「LoganCIJ16: OSの未来」YouTube . 2021年12月21日時点のオリジナルよりアーカイブ。2016年12月18日閲覧。
- ^ 「flatpakセキュリティモデル – パート1:基本」 。 2017年1月21日閲覧。
- ^ "bubblewrap" . 2018年4月14日閲覧。
- ^ 「Chromium OS サンドボックス - Chromium プロジェクト」。
- ^ 「ミニ刑務所 [LWN.net]」 . lwn.net . 2017年4月11日閲覧。
- ^ "core/trace/use_seccomp" . dev.exherbo.org . 2021年5月31日閲覧。
- ^ 「ファイルアプリケーションのサンドボックス化」。GitHub 。
- ^ 「Zathura seccomp実装」。
- ^ 「Gnome トラッカー seccomp 実装」。
外部リンク
- 公式サイト(アーカイブ)
- GoogleのChromiumサンドボックス、LWN.net、2009年8月、ジェイク・エッジ著
- seccomp-nurse、seccomp をベースにしたサンドボックス フレームワーク
- Documentation/prctl/seccomp_filter.txt ( Linuxカーネルドキュメントの一部)
- Linuxソフトウェアのセキュリティ徹底解説:セキュリティバグの防止と軽減