Enviar búsqueda
Cargar
comsys.pdf
•
0 recomendaciones
•
14 vistas
M
mousematerial
Seguir
comsys2022で発表したスライド
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 49
Descargar ahora
Descargar para leer sin conexión
Recomendados
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
Kuniyasu Suzaki
Jap1
Jap1
Naveen N
141030ceph
141030ceph
OSSラボ株式会社
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Masahito Zembutsu
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
Satoshi Shimazaki
ディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指して
Kazuhiko Kato
about Eucalyptus (20121026) NII
about Eucalyptus (20121026) NII
Osamu Habuka
Recomendados
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
Kuniyasu Suzaki
Jap1
Jap1
Naveen N
141030ceph
141030ceph
OSSラボ株式会社
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Masahito Zembutsu
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
Satoshi Shimazaki
ディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指して
Kazuhiko Kato
about Eucalyptus (20121026) NII
about Eucalyptus (20121026) NII
Osamu Habuka
20120609 cod ws2012概要
20120609 cod ws2012概要
Osamu Takazoe
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
wind06106
Cygwin 1.7 の紹介
Cygwin 1.7 の紹介
fd0
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
axsh co., LTD.
地に足がついたクラウドのお話
地に足がついたクラウドのお話
Toshiaki Baba
Try andstudy cloud_20120509_nagoya
Try andstudy cloud_20120509_nagoya
Etsuji Nakai
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Ruo Ando
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
Hajime Tazaki
これから始める Azure の基礎サービス: IaaS/PaaS
これから始める Azure の基礎サービス: IaaS/PaaS
Daiyu Hatakeyama
Red Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
Takuya Utsunomiya
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0
Etsuji Nakai
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
axsh co., LTD.
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
Windows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめ
Sunao Tomita
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source Conference
Microsoft
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overview
irix_jp
Introduction of Windows Azure and PDC09 update (Japanese)
Introduction of Windows Azure and PDC09 update (Japanese)
Shinichiro Isago
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Más contenido relacionado
Similar a comsys.pdf
20120609 cod ws2012概要
20120609 cod ws2012概要
Osamu Takazoe
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
wind06106
Cygwin 1.7 の紹介
Cygwin 1.7 の紹介
fd0
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
axsh co., LTD.
地に足がついたクラウドのお話
地に足がついたクラウドのお話
Toshiaki Baba
Try andstudy cloud_20120509_nagoya
Try andstudy cloud_20120509_nagoya
Etsuji Nakai
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Ruo Ando
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
Hajime Tazaki
これから始める Azure の基礎サービス: IaaS/PaaS
これから始める Azure の基礎サービス: IaaS/PaaS
Daiyu Hatakeyama
Red Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
Takuya Utsunomiya
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0
Etsuji Nakai
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
axsh co., LTD.
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
Windows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめ
Sunao Tomita
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source Conference
Microsoft
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overview
irix_jp
Introduction of Windows Azure and PDC09 update (Japanese)
Introduction of Windows Azure and PDC09 update (Japanese)
Shinichiro Isago
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
Similar a comsys.pdf
(20)
20120609 cod ws2012概要
20120609 cod ws2012概要
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
Cygwin 1.7 の紹介
Cygwin 1.7 の紹介
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
地に足がついたクラウドのお話
地に足がついたクラウドのお話
Try andstudy cloud_20120509_nagoya
Try andstudy cloud_20120509_nagoya
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
これから始める Azure の基礎サービス: IaaS/PaaS
これから始める Azure の基礎サービス: IaaS/PaaS
Red Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Windows Azure で 2/29 に起こった問題のまとめ
Windows Azure で 2/29 に起こった問題のまとめ
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source Conference
OSC2012 Nagoya - OpenStack - Storage System; Overview
OSC2012 Nagoya - OpenStack - Storage System; Overview
Introduction of Windows Azure and PDC09 update (Japanese)
Introduction of Windows Azure and PDC09 update (Japanese)
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
Último
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Último
(10)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
comsys.pdf
1.
異種OS機能連携による セキュアコンテナ実現の検討 2022/12/5 ComSys2022 鈴木進太郎 公立はこだて未来大学 中田裕貴
さくらインターネット 松原克弥 公立はこだて未来大学
2.
コンテナを活用したクラウドサービス コンテナ型仮想化(コンテナ)はプロセスベースの仮想化技術である VMに比べ高速な起動や軽量な実行環境作成が特徴 Platform as a
service (PaaS) - Heroku - Google App Engine Function as a service (FaaS) - AWS lambda - Google Cloud Function 2
3.
コンテナ型仮想化におけるリソース隔離 - コンテナごとに独立したOS環境 - プロセスやネットワークをはじめとするOSリソースを分離 -
コンテナごとに利用できるリソース制限 - CPU利用率やメモリなど コンテナ - ホスト間の共有部を減らすことで、 悪意のあるコンテナによるリソース専有や妨害行為を防いでいる 3
4.
コンテナはOSカーネルを共有 - コンテナ自体やカーネルの脆弱性を利用した攻撃を防ぐ コンテナにサンドボックス(追加の隔離)を適用して コンテナ間の隔離を堅牢にする必要がある コンテナにおけるサンドボックスの重要性 4 サンドボックスの適用により コンテナへの攻撃を回避
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月
6.
本研究の目的 コンテナの軽量さを最大限に維持しつつ、OSカーネル共有に起因する脆弱性を 回避できるセキュアコンテナの実現 ※セキュアコンテナ: サンドボックスを適用しコンテナ間の隔離を堅牢にしたコンテナ 6
7.
実現するセキュアコンテナ 定義1 Linuxコンテナが持つリソースの制限・隔離機能をもつ 独立したOS環境の提供 - CPUやメモリの利用制限 -
ファイルやディレクトリのアクセス制限 - プロセス情報の隔離 - ユーザ情報の隔離 - ネットワークの隔離 7 クラウドサービスではコンテナ を独立した環境として提供
8.
実現するセキュアコンテナ 定義2 OSカーネルの脆弱性を利用した攻撃に対する回避手段をもつ 対象とする攻撃 - Linuxカーネルの実装に起因する脆弱性を利用した攻撃 -
権限昇格や不正メモリアクセスなどの攻撃 対象外の攻撃 - ハードウェア自体の脆弱性を利用した攻撃 8
9.
実現するセキュアコンテナ 定義3 サンドボックスを用いた追加の隔離機構をもつ - システムコールやライブラリ関数の目的外使用による攻撃を防止 -
コンテナ内で実行するアプリケーションの脆弱性の影響範囲を最小化 サンドボックスの適用 - ファイルやソケットに対する最粒度なアクセス制御 - アプリケーションに必要のないファイルやソケットの操作を制限 - システムコールやライブラリ関数実行の検査 - アプリケーションに必要ない関数の利用を制限 9
10.
本研究の提案 異種OS上でLinuxコンテナを互換実行 - LinuxアプリケーションはLinuxカーネル上で動作する想定で作成される - Linuxコンテナ、LinuxアプリケーションをLinuxカーネル以外で実行 カーネルの脆弱性を利用した攻撃を回避
(定義2) セキュリティ機構を用いた軽量なサンドボックスの実現 サンドボックスを用いた追加の隔離 (定義3) 10
11.
異種OSの選定条件 1. Linuxアプリケーションが実行可能 - LinuxコンテナではLinuxアプリケーションが動作 -
Linuxアプリケーションを互換実行する機能を持つ 2. Linuxと同等の隔離技術をもつ - LinuxコンテナはLinuxの機能に依存 - Linuxと同等のリソース制限・隔離機能(定義1)を持つ 3. コンテナに利用できるセキュリティ機能を持つ - サンドボックスの要件を満たすようなセキュリティ機構を持つ 11
12.
アプローチ: 異種OSとしてFreeBSDを採用 1. FreeBSD
LinuxulatorというLinuxバイナリ互換実行機能がある 2. FreeBSD jailというコンテナ型仮想化技術が利用できる 3. FreeBSD Capsicum/Casperというセキュリティ機構を持つ FreeBSD上でセキュアコンテナ実現可能性について検討 - PaaSやFaaSにおける利用を前提 12
13.
FreeBSD アプリケーション (Linuxバイナリ) Linuxulator Linuxシステムコール インタフェース Linux Rootfs / proc usr … libc
libXX libYY lib システムコール実 行 FreeBSD システムコール Linuxアプリケーション互換実行の実現(アプローチ1に関連) Linuxulator - FreeBSDで利用できる Linuxのエミュレータ - Linuxバイナリの ネイティブ実行が可能
14.
FreeBSD アプリケーション (Linuxバイナリ) Linuxulator Linuxシステムコール インタフェース Linux Rootfs / proc usr … libc
libXX libYY lib システムコール実 行 FreeBSD システムコール Linuxアプリケーション互換実行の実現(アプローチ1に関連) Linuxulator - FreeBSDで利用できる Linuxのエミュレータ - Linuxバイナリの ネイティブ実行が可能 ライブラリの参照はLinux Rootfs から行う
15.
FreeBSD アプリケーション (Linuxバイナリ) Linuxulator Linuxシステムコール インタフェース Linux Rootfs / proc usr … libc
libXX libYY lib システムコール実 行 FreeBSD システムコール Linuxアプリケーション互換実行の実現(アプローチ1に関連) Linuxulator - FreeBSDで利用できる Linuxのエミュレータ - Linuxバイナリの ネイティブ実行が可能 FreeBSDとLinuxの システムコール対応付け
16.
FreeBSD アプリケーション (Linuxバイナリ) Linuxulator Linuxシステムコール インタフェース Linux Rootfs / proc usr … libc
libXX libYY lib システムコール実 行 FreeBSD システムコール Linuxアプリケーション互換実行の実現(アプローチ1に関連) Linuxulator - FreeBSDで利用できる Linuxのエミュレータ - Linuxバイナリの ネイティブ実行が可能 Apache、MySQL、Redis などが動作[2] PaaS, FaaSで十分利用可能 アプリケーションからは Linux環境に見える [2] freebsd.org. [LinuxApps]. https://wiki.freebsd.org/LinuxApps, (アクセス: 2022-12-5)
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におけるリソース隔離機能
18.
FreeBSDにおける隔離環境の実現 (2/2) (アプローチ2に関連) リソース隔離要件 プロセス隔離 コンテナごとにPIDなどの、プロセス情報が独立している必要がある LinuxやUnixではPID
1はinitプロセスである必要がある ユーザ隔離 コンテナ間で重複したユーザ名やUID/GIDを利用できる ユーザ隔離を行わない場合、 プロセス間通信やシグナルなどUIDをベースに処理を行う機能に影響が出る 18
19.
FreeBSDにおけるプロセス隔離 実現検討 FreeBSDとLinux共に プロセス情報は分離 PIDの番号付けが異なる - jailではホストとjail間で連番 -
Linuxではコンテナ内で1から始まる 19 FreeBSDにおける隔離環境の実現に関連 jail内でのpsコマンド実行 PaaS, FaaSにおけるほとんどのアプリケーションは特定のPIDに依存していない PaaSやFaaSで利用するにあたりこの差異は問題ないと考える Linuxコンテナでのpsコマンド実行
20.
FreeBSDにおけるユーザ隔離 実現検討 20 FreeBSDにおける隔離環境の実現に関連 FreeBSDとLinuxでユーザ名は重複可能 UID/GIDの管理方法が異なる - jailではホスト,
jail間で UID/GIDは共通 - Linuxではコンテナの中と外で 異なるUID/GIDを設定 UID/GIDが重複するとシグナルやプロセス間通信に影響がでる 各jailに対して割り当てるUID/GIDの範囲を重複しないように設定する必要がある PaaSやFaaSで利用するにあたりこの差異は対策可能と考える Linux: ユーザ隔離における UID/GID FreeBSD: ユーザ隔離における UID/GID
21.
コンテナへのFreeBSDセキュリティ機構適用 実現検討 (アプローチ3に関連) Capsicum FreeBSDで利用できるcapabilityを用いたアクセス制御機構 アプリケーションが自発的に権限を制限し, 実行可能な範囲を制御する Capsicumで提供されるサンドボックスでは, 全プロセスで共有利用するリソース(グローバル空間)へのアクセスを制限 -
ファイル - プロセスID - IPC など 21
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)
23.
FreeBSD Casperによる代理実行 Capsicumサンドボックスの制限では一部アプリケーションは動作が困難 一部グローバル空間へのアクセス検査と代理実行機能を提供 特徴 - casperを利用した代理アクセスは専用の関数を利用 -
引数に渡す値に制限をかけることができる Casperを利用したシステムコールやライブラリ関数の実行検査を実装 23 異種OSのセキュリティ機構適用の実現(課題3に関連) 例: pingにおけるcasper関数の利用 [3] [3] RTEMS(2011) rtems-libbsd[ping.c] https://github.com/RTEMS/rtems-libbsd/blob/master/freebsd/sbin/ping/ping.c (アクセス: 2022-12-5)
24.
コンテナへCapsicum/Casper適用の課題 アプリケーションが自ら適用する設計 - 通常であればコードの改変を行う - サンドボックスの適用 -
サンドボックスに入る前に必要なファイルを開いておく - casper関数の利用 - Linuxulatorを利用するため、FreeBSD上でLinuxバイナリの改変が困難 バイナリの改変をせず、Capsicum/Casperを透過的に適用する必要がある 24 異種OSのセキュリティ機構適用の実現(課題3に関連)
25.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir Linuxulator システムコール 変換 リンカ 事前に開いた リンカでリンク FDから バイナリ実行
26.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir リンカ 事前に開いた リンカでリンク FDから バイナリ実行 アプリケーションに必要バイナリ、ファイル、 ディレクトリなどを予め開いておく Linuxulator システムコール 変換
27.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir リンカ 事前に開いた リンカでリンク FDから バイナリ実行 アプリケーションに必要バイナリ、ファイル、 ディレクトリなどを予め開いておく Linuxulator システムコール 変換 libpreopen 予めファイルやディレクトリを開いておき、 open()呼び出し時はすでに開いてあるファイルをアプリケー ションに渡す アプリケーションから呼び出された open()は内部でopenat() に変換される
28.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir リンカ 事前に開いた リンカでリンク FDから バイナリ実行 サンドボックスが子プロセスに 引き継がれることを利用 親プロセスでサンドボックスに入っておき、 子プロセスでアプリケーションを起動 Linuxulator システムコール 変換
29.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir リンカ 事前に開いた リンカでリンク FDから バイナリ実行 サンドボックス内ではバイナリにアクセスができない (ファイルのオープンができないため) 予めバイナリを開いておき、FDからexecを行う Linuxulator システムコール 変換
30.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir リンカ 事前に開いた リンカでリンク FDから バイナリ実行 ライブラリも通常のアクセスができなくなる 予めリンカ自体もファイルとして開いておく Linuxulator システムコール 変換
31.
FreeBSD Capsicumの透過的な適用 コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス アプリケーション バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr システム コール実行 … workdir Linuxulator システムコール 変換 リンカ 事前に開いた リンカでリンク FDから バイナリ実行
32.
FreeBSD Capsicumの透過的な適用(ファイルアクセス) コンテナランタイム プロセス作 成 Jail・rctl適用 コンテナプロセス Capsicumサンドボックス バイナリ・ファイル・ ディレクトリを開く Linux
Rootfs / App bin lib サンドボックス化 usr アプリケーション open(…) … workdir リンカ 事前に開いた リンカでリンク FDから バイナリ実行 libpreopenにより open()からopenat()に変換 open()はlibpreopenによりopenat()に変換され、 すでに開かれているファイルへのアクセスとなる Linuxulator システムコール 変換
33.
コンテナランタイム 1コンテナ FreeBSD Capsicum +Casperの透過的適用による動的なリソースアクセス プロセス作 成 コンテナプロセス Capsicumサンドボックス Linux Rootfs / App bin lib usr アプリケーション アクセス … workdir リンカ 呼び出し 内容の検査 libcasper 関数呼び出しのフック・ casperへのリダイレクト Casperプロセス FreeBSD上の OSリソースへの アクセス OSリソース リンカの仕組みを使い、自作ライブラリを利用 グローバル空間のアクセスを含む関数を 内部でcasperライブラリを経由
34.
コンテナランタイム 1コンテナ FreeBSD Capsicum +Casperの透過的適用による動的なリソースアクセス プロセス作 成 コンテナプロセス Capsicumサンドボックス Linux Rootfs / App bin lib usr アプリケーション アクセス … workdir リンカ 呼び出し 内容の検査 libcasper 関数呼び出しのフック・ Casperへのリダイレクト Casperプロセス FreeBSD上の OSリソースへの アクセス OSリソース Casperにより関数呼び出しの内容の検査 アクセスの代理実行を行う
35.
予備実験: Linuxulator利用によるカーネル脆弱性の回避 Linuxulatorを利用することで、Linuxカーネルの脆弱性を回避できるか調査 権限昇格が可能な脆弱性のうち、攻撃コードが公開されているもの対象 Linuxulatorで脆弱性を利用した攻撃を試す テスト環境 35 環境 OS環境
CPU メモリ ネイティブ FreeBSD 13.1 Intel i5-4278U 16GB
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ではライブラリが不足しており 攻撃コードのコンパイルが不可能
42.
予備実験: Linuxulator利用によるカーネル脆弱性の回避 42 Linuxulatorでは攻撃を回避することができた FreeBSDでのLinuxアプリケーション互換実行において、 脆弱性回避は十分可能である 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)の脆弱性を利用した攻撃
43.
予備実験: Linuxulatorのパフォーマンス測定 Linuxulatorを用いてアプリケーションを実行した際のオーバーヘッドを検証UnixBench を利用したシステムパフォーマンスの計測 計測条件 - 複数あるテスト項目のうち、システムコールに関連するものが対象 -
各テスト50回計測した平均を示す - 各テスト項目で1コアと4コア、両方の場合を計測 - LinuxとLinuxulator(FreeBSD)の環境を比較 43 OS環境 CPU メモリ Linuxulator (FreeBSD 13.1) Intel Core i5-4278U 16GB Linux 5.15.0 (Ubuntu 22.04)
44.
UnixBenchを利用したパフォーマンステスト 44
45.
UnixBenchを利用したパフォーマンステスト 45 コア数が変わっても 環境の優位差は変化しない
46.
UnixBenchを利用したパフォーマンステスト 46 Linuxulatorが優位 Linuxが優位
47.
UnixBenchを利用したパフォーマンステスト 47 Linuxulator利用におけるオーバーヘッドは許容できる
48.
まとめ 48 課題: コンテナにおけるセキュリティと軽量さの両立 目的: コンテナの軽量さを最大限に維持しつつ、OSカーネル共有に起因する 脆弱性を回避できるセキュアコンテナの実現 提案: 1.
異種OS上でLinuxコンテナを互換実行 a. FreeBSD jailによるLinuxコンテナのリソース制限・隔離機構の実現 b. LinuxulatorによるLinuxアプリケーションの互換実行 2. 異種OS独自のセキュリティ機構の適用 a. FreeBSD Capsicum/CasperをLinuxコンテナへ透過的適用
49.
今後の課題 - 実装と評価 - ユーザ隔離におけるUID/GIDが重複しないような処理 -
Linuxコンテナに対してCapsicum/Casperの透過的適用を行う コンテナランタイムの完成 - 実アプリケーションを対象とした性能評価 49
Descargar ahora