関連サイト
本書の関連ページが用意されています。
内容紹介
■スペシャリストが執筆したコンテナセキュリティ要素技術の解説書!
本書は、Liz Rice『Container Security:Fundamental Technology Concepts that Protect Containerized Applications』O'Reilly Media, Inc.の翻訳書です。
スケーラビリティと復元力を促進するために、現在多くの組織がコンテナとオーケストレーションを使用してクラウドネイティブ環境でアプリケーションを実行しています。しかし、そのデプロイの安全性については、どのように判断すれば良いのでしょうか。本書は、開発者、運用者、セキュリティ専門家がセキュリティリスクを評価し、適切なソリューションを決定するために、コンテナの主要な要素技術を検証する実践的な書籍です。
著者のLiz Rice(Isovalent社 Chief Open Source Officer)は、コンテナベースのシステムでよく使われるビルディングブロックが Linuxでどのように構築されているかに着目しています。コンテナをデプロイする際に何が起きているかを理解し、デプロイされたアプリケーションに影響を与える可能性のある潜在的なセキュリティリスクを評価する方法を学ぶことができます。コンテナアプリケーションをkubectlやdockerで実行し、psやgrepなどのLinuxコマンドラインツールを使用していれば、すぐにでも始めることができます。
○コンテナへの攻撃経路について知る
○コンテナを支えるLinuxの構造について知る
○コンテナの堅牢化のための方法を検討
○設定ミスによるコンテナへの侵害の危険性を理解する
○コンテナイメージビルドのベストプラクティスを学ぶ
○既知のソフトウェア脆弱性を持つコンテナイメージを特定する
○コンテナ間のセキュアな接続を活用する
○セキュリティツールを使用して、デプロイされたアプリケーションに対する攻撃を防止する
▼本書の特徴
○コンテナセキュリティのスペシャリストが執筆した解説書
○コンテナのセキュリティの要素技術を学ぶことができる
○コンテナの仕組みと脆弱性(開発・運用時に注意すべき箇所)、その対策方法がわかる
書誌情報
- 著者: Liz Rice(著), 株式会社スリーシェイク(監修), ⽔元 恭平, ⽣賀 ⼀輝, ⼾澤 涼, 元内 柊也(訳)
- 発行日: 2023-04-12 (紙書籍版発行日: 2023-04-12)
- 最終更新日: 2024-02-21
- バージョン: 1.2.0
- ページ数: 280ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
コンテナのセキュリティの要素技術に興味がある⼈、コンテナ化を⾏う開発者・運⽤者
著者について
Liz Rice
コンテナセキュリティを専門とするAqua Security社で、VP of Open Source EngineeringとしてTrivy、Tracee、kubehunter、kube-benchなどのプロジェクトを統括。CNCFのTechnical Oversight Committeeであり、コペンハーゲン、上海、シアトルで開催されたKubeCon+CloudNativeCon 2018では共同議長を務めた。ネットワークプロトコルや分散システム、VOD、音楽、VoIPなどのデジタル技術分野での仕事において、ソフトウェア開発、チーム、プロダクトマネジメントの豊富な経験を持つ。コードに触れていないときは、生まれ故郷のロンドンよりも天気の良い場所で自転車に乗ったり、Zwiftでのバーチャルレースに参加したりしている。
株式会社スリーシェイク
SREコンサルティング事業「Sreake(スリーク)」を中心に、AWS/Google Cloud/Kubernetesに精通したプロフェッショナル集団が技術戦略から設計・開発・運用まで一貫してサポートするテックカンパニー。
https://3-shake.com/
⽔元 恭平
Windows環境でのアプリケーション開発を経験後、株式会社スリーシェイクでSRE/CSIRTとして技術支援を行っている。専門分野はコンテナ・クラウドセキュリティとKubernetes。CloudNative Days Tokyo 2021実行委員。
⽣賀 ⼀輝
事業会社のインフラエンジニア、株式会社ユーザーベースのSREとして従事後、株式会社スリーシェイクに入社。日々、クライアントの要件に応じて多角的なSRE支援を行っている。専門分野はクラウドインフラとKubernetesエコシステム。過去にGoogle Cloud Anthos DayやKubernetesイベント等に登壇。
⼾澤 涼
株式会社スリーシェイクに新卒入社。現在3年目。AWS/Google Cloud領域でKubernetesを活用したいお客様に対して、SREとして技術支援を行なっている。クラウドネイティブやKubernetesをテーマに社内外での登壇経験あり。
元内 柊也
インフラエンジニアとしてホスティングサービスの開発、運用を経て、現在は株式会社スリーシェイクにてソフトウェアエンジニアとして勤務。Webシステムの歴史、運用、開発について興味があり、SREのような信頼性の観点からのプラクティスや運用技術をプロダクトに落とし込めるように日夜開発を行っている。
目次
監訳者のことば
まえがき
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 まとめ