Movatterモバイル変換


[0]ホーム

URL:


Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker DeckSpeaker Deck
Speaker Deck

Linux コンテナ最近の新機能 / SosaiLT 36th

Avatar for tenforward tenforward
December 14, 2022

Linux コンテナ最近の新機能 / SosaiLT 36th

総関西サイバーセキュリティLT大会(第36回)の LT 資料です。
参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

Avatar for tenforward

tenforward

December 14, 2022
Tweet

More Decks by tenforward

See All by tenforward

Other Decks in Technology

See All in Technology

Featured

See All Featured

Transcript

  1. Linux コンテナ最近の新機能 総関西サイバーセキュリティ LT 大会(第 36 回) 加藤泰文 2022-12-14 1/14

  2. 総関西サイバーセキュリティLT大会、36 回の開催おつかれさまでした 2/14

  3. 総関西サイバーセキュリティLT大会、36 回の開催おつかれさまでした 復活を待ってます :-) 2/14

  4. 自己紹介   加藤泰文(かとうやすふみ) • Twitter: @ten_forward • LXC で学ぶコンテナ入門 -軽量仮想化環境を実現

    する技術 (gihyo.jp, 2014 年〜) • 「Linux Container Book (1) Namespace / Network 編」執筆(同人本) • コンテナの勉強会を主宰しています • 趣味でコンテナやってます。コンテナの主にカーネ ル周辺の実装に興味があります • 仕事はセキュリティの部署にいます 3/14
  5. 本日の内容 今日は最近の Linux に実装されたコンテナで使う新機能を紹介します。 4/14

  6. セキュリティイベントなのにコンテナ? • コンテナ=コンテナ内のプロセスから他のコンテナのプロセスが見えないようにする • 一部のコンテナがリソースを食いつくさないように制限をかける • カーネルはコンテナ間で共有なので悪いことができないように各種セキュリティ機能で 固めてる コンテナはセキュリティ機能で固められたプロセス 5/14

  7. User Namespace

  8. User Namespace • 新しい機能ではありません(3.8 〜/2013 年) • 一般ユーザー権限でコンテナが起動で きる •

    ホストの root ≠ コンテナの root 6/14
  9. seccomp notify

  10. seccomp システムコールに対してフィルタリ ングをかけられるセキュリティ機能 で、コンテナ内で危険な操作(システ ムコール呼び出し)が行えないよう にコンテナランタイムでは一般的に 使われている機能(現在の Seccomp Mode 2

    は 3.5 カーネル/2012 年〜) 7/14
  11. seccomp notify • User Namespace を使った一般ユーザー権限で起動するコンテナ内の root(ホスト上 では一般ユーザー)に許可される・許可されない処理はカーネル内で指定されている (初期の User

    Namespace 内で権限があるか確認) • 一般的に危険とされ、許可されない処理でも、コンテナランタイム、コンテナホスト管 理者は「このコンテナにはこの処理を許可しても大丈夫」とわかっている場合がある そこで   5.0 カーネル(2019 年)で seccomp notify 導入(〜5.5 にかけて機能が充実) 8/14
  12. seccomp notify 1. seccomp がシステムコールの実 行を検知 2. 検知したことをユーザー空間のプ ログラム(コンテナランタイム) に通知

    3. 通知を受けたプログラムがシステ ムコール実行の可否を判断し、 カーネルに結果を通知 4. seccomp がその結果に従って処 理を行う(システムコールを実行 or 拒否) 固定的なポリシーで許可・禁止を決めるのではなく、柔軟に実行の可否が設定できるように なった。 (例)ファイルシステムのマウント、デバイスファイルの作成 9/14
  13. seccomp notify をもっと知るには • 第 14 回 コンテナ技術の情報交換会@オンライン(seccomp 回) •

    Introduction to Seccomp(@ mrtc0 さん) • seccomp notify による安全なコンテナ実行環境(@ten_forward) • LXC で学ぶコンテナ入門「第 47 回 非特権コンテナの可能性を広げる seccomp notify 機能」 (gihyo.jp) • Seccomp Notify(brauner’s blog) 10/14
  14. ID mapped mount

  15. 非特権コンテナの場合のコンテナのルートファイルシステム • 非特権ユーザー(例、UID=100000)で コンテナを起動する場合、ホスト上にあ るコンテナ用のルートファイルシステム はそのユーザー(UID:100000)が操作で きる(所有している)必要がある • 普通は所有権 UID/GID:0/0

    だったりしま すね 11/14
  16. ID mapped mount • これまで • chown • 永久に所有権が変わる •

    chown 前にファイルの所有権を確認す る必要がある • コスト高 • ID mapped mount • 5.12 カーネル(2021 年) (ただしファイ ルシステム側のサポートが必要) • 所有権を変更せずに、User Namespace で使うマッピングに従って、コンテナの ファイルシステムのマウントを行う 12/14
  17. まとめ コンテナはこのようないろいろな機能の組み合わせでできています。 いろいろ探ってみると楽しいですよ。 13/14

  18. 以上 ご清聴ありがとうございました 14/14


[8]ページ先頭

©2009-2025 Movatter.jp