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
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
43
異種OS機能連携によるセキュアコンテナ実現に向けたFreeBSD上でのCNI準拠コンテナネットワーキングの実現/IOT64
soumasakaguchi
0
13
異種OS機能連携のためのセキュアコンテナ・ネットワーキング機構の実現/Project Study 1
soumasakaguchi
0
15
Other Decks in Technology
See All in Technology
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
190
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
180
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
100
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1.1k
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
290
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
340
AI時代のPRレビューにどう向き合うか?
kairim0
1
240
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
460
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
190
Featured
See All Featured
Side Projects
sachag
456
43k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Designing for Performance
lara
612
70k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
A designer walks into a library…
pauljervisheath
211
25k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
Automating Front-end Workflow
addyosmani
1369
210k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
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関数 を発行 プロセスに対して、 グローバルなリソースへのアク セスを制限する