Mais conteúdo relacionado
Semelhante a comsys.pdf (20)
comsys.pdf
- 5. サンドボックスを適用したコンテナの課題
オーバーヘッドの増加 [1]
- 仮想マシン利用 (kata container)
- システムコール検査 (gvisor)
コンテナ特性である「軽量さ」が損なわれる
5
[1] Yuki Nakata, Katsuya Matsubara, Ryosuke Matsumoto
Proc. of the 14th IEEE/ACM International Conference on Utility and Cloud Computing (UCC) (15) 1-10 2021年12月
- 12. アプローチ: 異種OSとしてFreeBSDを採用
1. FreeBSD LinuxulatorというLinuxバイナリ互換実行機能がある
2. FreeBSD jailというコンテナ型仮想化技術が利用できる
3. FreeBSD Capsicum/Casperというセキュリティ機構を持つ
FreeBSD上でセキュアコンテナ実現可能性について検討
- PaaSやFaaSにおける利用を前提
12
- 17. FreeBSDにおける隔離環境の実現 (1/2) (アプローチ2に関連)
リソース制限機能
- rctl、cpusetを用いてLinuxと同等の機能
リソース隔離機能
- FreeBSD jailを用いる
(FreeBSDで利用できるコンテナ型仮想化技術 )
- プロセス
- ユーザ
Linuxとは仕様が異なるため、
これら差異の対策を検討
17
制限機能 Linux FreeBSD
CPUの利用時間 cgroup cpu rctl cputime
CPUのコア数制限 cgroup cpuset cpuset
利用できるメモリ制限 cgroup memory rctl memoryuse
隔離機能 Linux FreeBSD
プロセス namespace △ jail
ユーザ namespace 対応なし
ディレクトリ chroot jail
ネットワーク namespace/veth vnet
Linux, FreeBSDにおけるリソース制限機能
Linux,FreeBSDにおけるリソース隔離機能
- 22. FreeBSD Capsicumサンドボックス
サンドボックスによる制約
- ファイルやソケットなどのopenが不可
- 一部システムコールの発行に制限
- さらに、利用できるシステムコールの制限をかけることができる
- サンドボックスの隔離は子プロセスにも引き継がれる
- Capsicumの適用はアプリケーションがコードで対応する必要がある
Capsicumを利用して, Linuxコンテナに対してサンドボックスの適用を実現
22
例: pingにおけるソケットに対する操作の制
限 [3]
異種OSのセキュリティ機構適用の実現(課題3に関連)
[3] RTEMS(2011) rtems-libbsd[ping.c] https://github.com/RTEMS/rtems-libbsd/blob/master/freebsd/sbin/ping/ping.c (アクセス: 2022-12-5)
- 36. 予備実験: Linuxulator利用によるカーネル脆弱性の回避
◯: 攻撃を防げた
△: 実行またはコンパイルができない
36
CVEID Linuxulator 備考
CVE-2016-5195 ◯ Copy-on-Writeの脆弱性を利用した攻撃
CVE-2016-9793 ◯ sock_setsockopt()の脆弱性を利用した攻撃
CVE-2016-8655 △ CAP_NET_RAWを利用したuse-after-free攻撃
CVE-2017-6074 △ DCCPプロトコルを用いたuse-after-free攻撃
CVE-2017-1000112 △ UFO(UDP Fragmentation Offload)の脆弱性を利用した攻撃
- 37. CVEID Linuxulator 備考
CVE-2016-5195 ◯ Copy-on-Writeの脆弱性を利用した攻撃
CVE-2016-9793 ◯ sock_setsockopt()の脆弱性を利用した攻撃
CVE-2016-8655 △ CAP_NET_RAWを利用したuse-after-free攻撃
CVE-2017-6074 △ DCCPプロトコルを用いたuse-after-free攻撃
CVE-2017-1000112 △ UFO(UDP Fragmentation Offload)の脆弱性を利用した攻撃
予備実験: Linuxulator利用によるカーネル脆弱性の回避
◯: 攻撃を防げた
△: 実行またはコンパイルができない
37
Linuxulatorでは攻撃に2日かかっても成功せず
- 38. CVEID Linuxulator 備考
CVE-2016-5195 ◯ Copy-on-Writeの脆弱性を利用した攻撃
CVE-2016-9793 ◯ sock_setsockopt()の脆弱性を利用した攻撃
CVE-2016-8655 △ CAP_NET_RAWを利用したuse-after-free攻撃
CVE-2017-6074 △ DCCPプロトコルを用いたuse-after-free攻撃
CVE-2017-1000112 △ UFO(UDP Fragmentation Offload)の脆弱性を利用した攻撃
予備実験: Linuxulator利用によるカーネル脆弱性の回避
◯: 攻撃を防げた
△: 実行またはコンパイルができない
38
Linuxulatorではプログラムの実行はできるが、攻撃は失敗
- 39. CVEID Linuxulator 備考
CVE-2016-5195 ◯ Copy-on-Writeの脆弱性を利用した攻撃
CVE-2016-9793 ◯ sock_setsockopt()の脆弱性を利用した攻撃
CVE-2016-8655 △ CAP_NET_RAWを利用したuse-after-free攻撃
CVE-2017-6074 △ DCCPプロトコルを用いたuse-after-free攻撃
CVE-2017-1000112 △ UFO(UDP Fragmentation Offload)の脆弱性を利用した攻撃
予備実験: Linuxulator利用によるカーネル脆弱性の回避
◯: 攻撃を防げた
△: 実行またはコンパイルができない
39
Linuxulatorではライブラリが不足しており
攻撃コードのコンパイルが不可能
- 40. CVEID Linuxulator 備考
CVE-2016-5195 ◯ Copy-on-Writeの脆弱性を利用した攻撃
CVE-2016-9793 ◯ sock_setsockopt()の脆弱性を利用した攻撃
CVE-2016-8655 △ CAP_NET_RAWを利用したuse-after-free攻撃
CVE-2017-6074 △ DCCPプロトコルを用いたuse-after-free攻撃
CVE-2017-1000112 △ UFO(UDP Fragmentation Offload)の脆弱性を利用した攻撃
予備実験: Linuxulator利用によるカーネル脆弱性の回避
◯: 攻撃を防げた
△: 実行またはコンパイルができない
40
Linuxulatorではライブラリが不足しており
攻撃コードのコンパイルが不可能
- 41. CVEID Linuxulator 備考
CVE-2016-5195 ◯ Copy-on-Writeの脆弱性を利用した攻撃
CVE-2016-9793 ◯ sock_setsockopt()の脆弱性を利用した攻撃
CVE-2016-8655 △ CAP_NET_RAWを利用したuse-after-free攻撃
CVE-2017-6074 △ DCCPプロトコルを用いたuse-after-free攻撃
CVE-2017-1000112 △ UFO(UDP Fragmentation Offload)の脆弱性を利用した攻撃
予備実験: Linuxulator利用によるカーネル脆弱性の回避
◯: 攻撃を防げた
△: 実行またはコンパイルができない
41
Linuxulatorではライブラリが不足しており
攻撃コードのコンパイルが不可能