Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
FreeBSD環境におけるCNI準拠コンテナネットワーキングの実現/Graduate Study
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Soma
January 30, 2024
Technology
12
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FreeBSD環境におけるCNI準拠コンテナネットワーキングの実現/Graduate Study
卒業研究
Soma
January 30, 2024
More Decks by Soma
See All by Soma
Bring Cloud-Native Networking to FreeBSD Jails: Porting Calico from Linux/EuroBSDCon2025
soumasakaguchi
0
42
異種OS機能連携によるセキュアコンテナ実現に向けたFreeBSD上でのCNI準拠コンテナネットワーキングの実現/IOT64
soumasakaguchi
0
13
異種OS機能連携のためのセキュアコンテナ・ネットワーキング機構の実現/Project Study 1
soumasakaguchi
0
14
Other Decks in Technology
See All in Technology
2026/09/10 Spring Bootから Jakarta EE/MicroProfileへの移行
megascus
0
350
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
8
5k
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
240
あるけみー式LTスライド作成術
alchemy1115
1
200
GoにおけるFFIのこれまでとこれから
goccy
5
2.5k
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
Code4Lib JAPANカンファレンス2026 開会挨拶 / Code4Lib JAPAN Conference 2026: Opening Remarks
ykiyota
0
340
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
540
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
5
2.1k
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
220
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
150
AI時代、データエンジニアが一番おもろい
genshun9
0
240
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Building AI with AI
inesmontani
PRO
1
1.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Limits of Empathy - UXLibs8
cassininazir
1
650
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Crafting Experiences
bethany
1
320
Being A Developer After 40
akosma
91
590k
Abbi's Birthday
coloredviolet
3
9.9k
The Curse of the Amulet
leimatthew05
2
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Transcript
FreeBSD環境における CNI準拠コンテナネットワーキングの実現 2024年1月30日 卒業研究 最終セミナー システムソフトウェア研究室 1020007 坂口 颯麻 指導教員: 松原
克弥
2 背景:コンテナ型仮想化の課題 • OSカーネルの共有を悪用した、 コンテナへの攻撃 • 頻繁なコンテナ間通信を悪用した、 コンテナネットワークに対する攻撃 ホストOSカーネルの脆 弱性を悪用した
攻撃が可能 中間者攻撃 による通信 本来の通信 悪意のあるコンテナによる通 信に対する攻撃が可能
3 先行研究: 異種OS機能連携によるセキュアコンテナ 中田らの研究 [1] 目的: コンテナの軽量さを最大限維持しつつ、OSカーネル共有に起因する 脆弱性を悪用した攻撃を回避できるセキュアコンテナの実現 [1]
Nakata, Y., Suzuki, S. and Matsubara, K.: Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing, Proceedings of the 14th ACM SIGOPS Asia-Pacific Workshop on Systems. pp. 58-64 (2023). 異種OSセキュリティ 機構によって異種OSに対 する攻撃を回避 カーネル実装の違いにより 脆弱性を回避 手法: • 異種OSとしてFreeBSDを採用 • jailと、Linuxエミュレータによる Linuxコンテナ互換実行 jail: コンテナ相当の機能を持つ FreeBSDの仮想化技術 • Linuxコンテナ互換に対する FreeBSD独自のセキュリティ機構の適用 課題: コンテナネットワーキングに 関しては未検討
4 目的: 異種OS機能連携によるセキュアコンテナ実現に向けて 本研究では、 異種OS機能連携によるセキュアコンテナ実現のためのネットワーキング機構の実現を目指す 複雑なネットワーク設定を クラウド事業者が手動で 行わなければならない 隔離が不十分な場合、 ネットワークから攻撃を
受ける可能性がある 最適なネットワーク隔離機構やネットワーク構築機構を実現する必要がある
5 実現すべきネットワーキングの要件 要件2. Linuxのコンテナ間通信と同等の機能によるネットワーク構築 • Linuxコンテナネットワーキングの標準規格に準拠することで 同等の操作で同等のネットワーク構築が可能 • 攻撃回避の要である異種 OS上で動作していることの
隠蔽を行う 要件1. 細粒度なコンテナ間ネットワーク分離 • 使用用途に合わせたネットワークリソースの分離が可能 • Linuxのネットワーク分離機構と同等の機能
6 要件1: Linuxでの細粒度なコンテナ間ネットワーク分離の実現 Network Namespace • ネットワークに関するシステムリソースの分離を行う機能 細粒度な分離のパターン New Share
Inherit コンテナ作成時に 新しい分離 を追加 既存のNetwork Namespaceに コンテナが参加 コンテナ間で隔離を行わず、 ホストのネットワークを共有
7 要件2: Linuxコンテナネットワーキングの標準規格 Contaier Network Interface(CNI) • コンテナのネットワーク接続・削除に関する定義 • 基本的なネットワーク設定を行うコアプラグインの提供
ADD: コンテナをネットワークに加える DEL: ネットワークからコンテナを外す CHECK: ネットワークが想定通りか確認する VERSION: サポートするCNIのバージョン情報を返す コンテナ コンテナ コンテナ version *** CNIプラグインが行う操作
8 コンテナシステムの標準的な実装 低レベルコンテナランタイム :コンテナの構築・削除やNetwork Namespaceによるネットワーク隔離 高レベルコンテナランタイム :低レベルコンテナランタイムへの命令やCNIプラグインを用いたネットワーク設定 Network Namespace コンテナ
高レベル コンテナランタイム 低レベル コンテナランタイム コンテナ 設定ファイルによ る隔離設定 CNIプラグイン "linux":{ "namespaces":[ { "type":"network", "path":"/proc/***/ns/net" } ] } Network Namespace のファイルパスを 指定 環境変数による ネットワーク設定
9 FreeBSDにおけるコンテナネットワーキングの現状 Share vnet • Network Namespace相当のネットワーク分離機能を提供 • vnetは、jailごとにネットワーク分離をし、1対1対応のため、 Shareのネットワーク分離が不可能
Shareの実現と Share指定方法の実現 が必要 CNIプラグイン • 基本的なネットワーク設定を行う コアプラグインのみ実装済み • Linuxと同等の操作を行うために、 高レベルコンテナランタイムから利用 高レベルコンテナランタイム制御ツール nerdctl から vnet jailに対して、最適なネットワーク設定を行う コンテナ ネットワーク 設定 コンテナ ランタイム 実行 CNI プラグイン Jail IDを指定
10 Shareの実現 vnetの設定のみを有効にした jailを構築し、そのjail内に複数の jailを構築 • vnetでは実現不可能だった 複数jail間での ネットワーク空間共有 を可能に
• vnet jail上に複数のjailを入れ子で 構築する機構を低レベルコンテナラ ンタイムrunjに実装
11 Shareのための指定手法 “freebsd”:{ “network”:{ “vnet”:{ “mode”:”share” “path”:”/var/lib/runj/jails/c1/netns” } } }
FreeBSDのネットワーク隔離設定 既存jail内に入れ子構築するための ”mode”: “share”の追加 vnet jail指定のための ”path”の追加 /var/run/netns/netns1 c1 c2 例)既存のjailであるc1が入っているvnet jail内に、c2を参加させる
12 実際の動作のデモ : Share
13 今後の課題 • 実現した機能の評価 ◦ Linuxのコンテナオーケストレーターである Kubernetesが 定義するネットワーク要件を満たすネットワークを構築 ◦ Linuxと同等のネットワーク構成が可能かを評価
• 構築するネットワークのセキュリティに関する調査と制御 ◦ 現状ではネットワークのセキュリティを考慮していない ◦ FreeBSD固有のセキュリティ機構を用いた、 細粒度なネットワークアクセス制御やリソース制御機構の実装を想定
14 発表実績 • 坂口 颯麻, 鈴木 進太郎, 中田 裕貴(さくらインターネット), 松原
克弥, 異種OS機能連携による セキュアコンテナ実現に向けたFreeBSD上でのCNI準拠コンテナネットワーキングの実現 , 情 報処理学会第64回 IOT研究会, 2024/3/12-14, 発表予定
15 まとめ 背景: 異種OS機能連携によるセキュアコンテナ実現のための課題 コンテナネットワーキングの重要性 目的: 異種OS機能連携によるセキュアコンテナ実現のための FreeBSD環境におけるCNI準拠ネットワーキング機構の実現 提案: Linux
Network Namespace互換機能の実現 CNIプラグインの適用
16 - 付録 -
17 実際の動作のデモ : New
18 Kubernetesのネットワーク定義 [2] Cloud Native Computing Foundation: Services, Load Balancing,
and Networking, https://kubernetes.io/docs/concepts/services-networking. ((Accessedon 2024/1/25)) 1. 各Podはそれぞれ一意なIPアドレスを持ち、Pod内のコンテナはIPを共有していて、localhost 経由で相互に通信することが可能である。 2. ノード上のすべてのPodは、Pod間通信が可能である。 3. すべてのPodはクラスタ内のすべての PodとNATなしで通信することが可能である。
19 ネットワーク隔離機構 動的なリソース制限が可能な、 FreeBSD固有のセキュリティ機構 CapsicumとCasperの Linuxコンテナネットワーキング互換機構への適用を実現する • Capsicum/Casperを拡張し、ネットワーク互換機構に適用することで、 最粒度なネットワーク隔離機構を実装 コンテナ内
アプリケーション Capsicum サンドボックス グローバルなリソース Casper プロセス リソースに対する アクセスを制限する Capsicumサンドボックス内から発行 された関数に対して 検査・代理実行を行う Casper関数 を発行 プロセスに対して、 グローバルなリソースへのアク セスを制限する