コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術
Liz Rice
インプレスLiz Rice『Container Security: Fundamental Technology Concepts that Protect Containerized Applications』O'Reilly Media, Inc.の翻訳書です。開発者、運用者、セキュリティ専門家がセキュリティリスクを評価し、適切なソリューションを決定するために、コンテナの主要な要素技術を検証する実践的な書籍です。
書籍情報
著者: Liz Rice
共著者: , 株式会社スリーシェイク(監修), ⽔元 恭平, ⽣賀 ⼀輝, ⼾澤 涼, 元内 柊也(訳)
発行日: 2023-04-12
最終更新日: 2024-02-21
バージョン: 1.2.0
ページ数: 280ページ(PDF版換算)ページ
対応フォーマット: PDF, EPUB
出版社: インプレス
対象読者
コンテナのセキュリティの要素技術に興味がある⼈、コンテナ化を⾏う開発者・運⽤者
著者について
コンテナセキュリティを専門とするAqua Security社で、VP of Open Source EngineeringとしてTrivy、Tracee、kubehunter、kube-benchなどのプロジェクトを統括。CNCFのTechnical Oversight Committeeであり、コペンハーゲン、上海、シアトルで開催されたKubeCon+CloudNativeCon 2018では共同議長を務めた。ネットワークプロトコルや分散システム、VOD、音楽、VoIPなどのデジタル技術分野での仕事において、ソフトウェア開発、チーム、プロダクトマネジメントの豊富な経験を持つ。コードに触れていないときは、生まれ故郷のロンドンよりも天気の良い場所で自転車に乗ったり、Zwiftでのバーチャルレースに参加したりしている。
目次
監訳者のことば
まえがき
Chapter 1 コンテナセキュリティの脅威
- 1.1 リスク、脅威、緩和策
- 1.2 コンテナ脅威モデル
- 1.3 セキュリティ境界
- 1.4 マルチテナント
- 1.5 セキュリティの原則
- 1.6 まとめ
Chapter 2 Linuxシステムコール、パーミッション、capability
- 2.1 システムコール
- 2.2 ファイルパーミッション
- 2.3 capability
- 2.4 権限昇格
- 2.5 まとめ
Chapter 3 コントロールグループ
- 3.1 cgroupの階層
- 3.2 cgroupの作成
- 3.3 リソースの上限設定
- 3.4 cgroupへのプロセス割り当て
- 3.5 Dockerにおけるcgroupの利用
- 3.6 cgroup v2
- 3.7 まとめ
Chapter 4 コンテナの分離
- 4.1 namespace
- 4.2 ホスト名の分離
- 4.3 プロセスIDの分離
- 4.4 rootディレクトリの変更
- 4.5 namespaceとrootディレクトリの変更の組み合わせ
- 4.6 mount namespace
- 4.7 network namespace
- 4.8 user namespace
- 4.9 IPC namespace
- 4.10 cgroup namespace
- 4.11 ホストから見たコンテナプロセス
- 4.12 コンテナのホストマシン
- 4.13 まとめ
Chapter 5 仮想マシン
- 5.1 マシンの起動
- 5.2 VMMの世界へ
- 5.3 トラップ&エミュレート
- 5.4 仮想化不可能な命令の取り扱い
- 5.5 プロセスの分離とセキュリティ
- 5.6 仮想マシンのデメリット
- 5.7 コンテナの分離とVMの分離の比較
- 5.8 まとめ
Chapter 6 コンテナイメージ
- 6.1 rootファイルシステムとイメージの設定
- 6.2 実行時の設定情報の上書き
- 6.3 OCI標準
- 6.4 イメージの構成
- 6.5 イメージのビルド
- 6.6 イメージの格納方法
- 6.7 イメージの特定
- 6.8 イメージセキュリティ
- 6.9 ビルド時のセキュリティ
- 6.10 イメージレジストリのセキュリティ
- 6.11 イメージデプロイメントのセキュリティ
- 6.12 GitOpsとデプロイメントセキュリティ
- 6.13 まとめ
Chapter 7 イメージに含まれるソフトウェアの脆弱性
- 7.1 脆弱性調査
- 7.2 脆弱性、パッチ、ディストリビューション
- 7.3 アプリケーションレベルの脆弱性
- 7.4 脆弱性リスクマネジメント/7.5 脆弱性スキャン
- 7.6 インストールされているパッケージ
- 7.7 コンテナイメージスキャン
- 7.8 スキャンツール
- 7.9 CI/CDパイプラインにおけるスキャン
- 7.10 脆弱なイメージの実行防止/7.11 ゼロデイ脆弱性
- 7.12 まとめ
Chapter 8 コンテナ分離の強化
- 8.1 seccomp
- 8.2 AppArmor
- 8.3 SELinux
- 8.4 gVisor
- 8.5 Kata Containers
- 8.6 Firecracker
- 8.7 Unikernel
- 8.8 まとめ
Chapter 9 コンテナエスケープ
- 9.1 デフォルトでのコンテナのroot実行
- 9.2 --privilegedオプションとcapability
- 9.3 機密性の高いディレクトリのマウント
- 9.4 Dockerソケットのマウント
- 9.5 コンテナとホスト間でのnamespaceの共有
- 9.6 サイドカーコンテナ
- 9.7 まとめ
Chapter 10 コンテナネットワークセキュリティ
- 10.1 コンテナファイアウォール
- 10.2 OSI参照モデル
- 10.3 IPパケットの送信
- 10.4 コンテナのIPアドレス
- 10.5 ネットワークの分離
- 10.6 L3/L4ルーティングとルール
- 10.7 ネットワークポリシー
- 10.8 サービスメッシュ
- 10.9 まとめ
Chapter 11 TLSによるコンポーネントの安全な接続
- 11.1 セキュアな接続
- 11.2 X.509証明書
- 11.3 TLS接続
- 11.4 コンテナ間のセキュアな接続
- 11.5 証明書の失効
- 11.6 まとめ
Chapter 12 コンテナへのシークレットの受け渡し
- 12.1 シークレットの特性
- 12.2 コンテナへの情報の取り込み
- 12.3 Kubernetes Secret
- 12.4 シークレットはrootでアクセス可能
- 12.5 まとめ
Chapter 13 コンテナのランタイム保護
- 13.1 コンテナイメージプロファイル
- 13.2 Drift Prevention
- 13.3 まとめ
Chapter 14 コンテナとOWASPトップ10
- 14.1 インジェクション
- 14.2 認証の不備/14.3 機密情報の露出
- 14.4 XML外部エンティティ参照(XXE)/14.5 アクセス制御の不備
- 14.6 セキュリティの設定ミス
- 14.7 クロスサイトスクリプティング(XSS)/14.8 安全でないデシリアライゼーション
- 14.9 既知の脆弱性を持つコンポーネントの使用
- 14.10 不十分なログとモニタリング
- 14.11 まとめ