| 原作者 | アンドレア・アルカンジェリ |
|---|---|
| 初回リリース | 2005年3月8日 |
| 書かれた | C |
| オペレーティング·システム | リナックス |
| タイプ | サンドボックス |
| ライセンス | GNU 一般公衆利用許諾書 |
| Webサイト | code.google.com/archive/p/seccompsandbox/wikis/overview.wiki |
seccomp (セキュアコンピューティングの略[1] ) は、 Linuxカーネルのコンピュータセキュリティ機能です。seccompを使用すると、プロセスは、、、およびすでに開いているファイル記述子以外のシステムコールを実行できない「セキュア」状態に一方向遷移できます。その他のシステムコールを試行すると、カーネルはイベントをログに記録するか、 SIGKILLまたはSIGSYSでプロセスを終了します。[2] [3]この意味で、システムのリソースを仮想化するのではなく、プロセスを完全にリソースから分離します。
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] Linus Torvalds は2009 年 2 月の投稿で、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プログラマーズマニュアル– システムコール
- ^ Corbet, Jonathan (2015-09-02). 「seccomp の概要」. lwn . 2017-10-05閲覧。
- ^ "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-08-02閲覧。
- ^ Tinnes, Julien (2009-05-28). 「Linux カーネルのタイムスタンプ カウンターによる異常の無効化」cr0 ブログ. 2013-08-02閲覧。
- ^ Corbet, Jonathan (2012-01-11). 「seccomp への新たなアプローチ」lwn . 2013-08-02閲覧。
- ^ ab 「Openssh 6.0 リリースノート」。2013 年 10 月 14 日閲覧。
- ^ Tinnes, Julien (2012-11-19). 「Linux および Chrome OS レンダラーのためのより安全なプレイグラウンド」. The Chromium Blog . 2013-08-02閲覧。
- ^ 「[PATCH] seccomp: secure computing support」。Linuxカーネルの歴史。Kernel.org gitリポジトリ。2005-03-08。2013-04-15にオリジナルからアーカイブ。2013-08-02に取得。
- ^ 「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: 32/64 syscall ホールを修正」Linux カーネル メーリング リスト. 2013-08-02に取得。
- ^ Torvalds, Linus (2009-02-28). 「Re: [PATCH 2/2] x86-64: seccomp: 32/64 syscall ホールを修正」Linux カーネル メーリング リスト. 2013-08-02閲覧。
- ^ Gutschke, Markus (2009-05-06). 「Re: [PATCH 2/2] x86-64: seccomp: 32/64 syscall ホールを修正」2013-08-02閲覧。
- ^ Gutschke, Markus (2009-05-06). 「Re: [PATCH 2/2] x86-64: seccomp: 32/64 syscall ホールを修正」Linux カーネル メーリング リスト. 2013-08-02閲覧。
- ^ 「Firejail」。Firejail 。 2016年11月26日閲覧。
- ^ Evans, Chris (2012-07-04). 「Linux 上の Chrome 20 と Flash サンドボックス化」2013-08-02閲覧。
- ^ Tinnes, Julien (2012-09-06). 「Chrome の次世代 Linux サンドボックスの紹介」cr0 ブログ. 2013-08-02閲覧。
- ^ 「Snap セキュリティ ポリシー」。2017 年 2 月 4 日時点のオリジナルよりアーカイブ。2017年 2 月 3 日閲覧。
- ^ Evans, Chris (2012-04-09). 「vsftpd-3.0.0 と seccomp フィルター サンドボックスが登場!」. 2013-08-02閲覧。
- ^ 「MBOX」 。 2014年5月20日閲覧。
- ^ 「LXD はコンテナ用の「ハイパーバイザー」です (liblxc ベース)」。2014 年 11 月 4 日。2014 年 11 月 8 日閲覧。
- ^ 「LXD の今後」2014 年 11 月 8 日閲覧。
- ^ Destuynder, Guillaume (2012-09-13). 「Firefox Seccomp サンドボックス」. Mozilla Bugzilla . 2015-01-13閲覧。
- ^ Destuynder, Guillaume (2012-09-13). 「Firefox Seccomp サンドボックス」. Mozilla Wiki . 2015-01-13閲覧。
- ^ 「Tor 変更ログ」。
- ^ 「Lepton 画像圧縮: 15MB/秒で画像をロスレスで 22% 節約」。Dropbox技術ブログ。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 プロジェクト」。
- ^ “Minijail [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 月、Jake Edge 著
- seccomp-nurse、seccomp に基づくサンドボックス フレームワーク
- Documentation/prctl/seccomp_filter.txt、 Linux カーネルドキュメントの一部
- Linux ソフトウェアのセキュリティの詳細: セキュリティ バグの防止と軽減
