概要
Dockerの普及に伴い,コンテナ技術はすっかり一般化しました。開発環境の構築から,本格的なコンテナアプリケーションの運用まで,利用方法はさまざまです。Dockerおよびコンテナ技術は今や開発者にとって必須の技術・ソフトウェアと言えるでしょう。
その一方で忘れてはならないのがセキュリティです。コンテナはサンドボックス技術の1つであり,それを使った開発や運用は安全だと思う人もいるでしょう。しかし,適切に対策しなければ非常に危険です。隔離されているはずのホストOS本体を攻撃されてしまう可能性もあります。
本書は,コンテナ利用時のセキュリティ上のトラブルを防ぎ,コンテナを安全に活用する方法を基礎から解説します。
こんな方におすすめ
- コンテナユーザー,Dockerユーザー
- セキュリティエンジニア
- SRE
- コンテナを安全に運用したい人
目次
第1章 コンテナ型仮想化とは
- 1.1 コンテナ型仮想化の概要
- 1.2 Dockerの使い方
- 1.3 コンテナの標準仕様と実装
第2章 コンテナの仕組みと要素技術
- 2.1 DockerクライアントとDockerデーモン
- 2.2 コンテナイメージのレイヤ構造
- 2.3 コンテナとLinuxカーネルの機能
- 2.4 シェルスクリプトで学ぶコンテナの実装
第3章 コンテナへの主要な攻撃ルート
- 3.1 コンテナ運用時のアタックサーフェス
- 3.2 コンテナランタイムへの攻撃
- 3.3 コンテナの設定不備を利用した攻撃
- 3.4 Linuxカーネルへの攻撃
- 3.5 コンテナイメージやソフトウェアの脆弱性を利用した攻撃
第4章 堅牢なコンテナイメージを作る
- 4.1 コンテナイメージのセキュリティ
- 4.2 コンテナイメージのセキュリティチェック
- 4.3 セキュアなコンテナイメージを作る
第5章 コンテナランタイムをセキュアに運用する
- 5.1 ケーパビリティの制限
- 5.2 システムコールの制限
- 5.3 ファイルアクセスの制限
- 5.4 リソースの制限
- 5.5 コンテナ実行ユーザーの変更と権限昇格の防止
- 5.6 セキュアなコンテナランタイムの使用
- 5.7 セキュアに運用するためのガイドライン
第6章 セキュアなコンテナ環境の構築
- 6.1 コンテナのセキュリティ監視
- 6.2 コンテナの操作ログの記録
- 6.3 Sysdig / Falcoによるコンテナの挙動の監視
- 6.4 ホストのファイル整合性監視
- 6.5 その他のセキュリティモニタリング
- 6.6 コンテナへの攻撃や設定ミスを防ぐ
サポート
補足情報
本書のソースコード
(2023年6月30日更新)
本書で利用するソースコードは,以下GitHubリポジトリで配布します。
https://github.com/container-sec/support-container-security-book
正誤表
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
「はじめに」P.v 表1
本書で利用するソフトウェアの一覧から,Open Policy Agent(OPA)が漏れておりました。表の最後に以下の1行を追記してお読みください。
P.73 図3-15 下から6,7行目
誤 |
root@8d01f2f23ae1:/# gcc -o /tmp/pwn /tmp/pwd.c
root@8d01f2f23ae1:/# /tmp/pwd |
正 |
root@8d01f2f23ae1:/# gcc -o /tmp/pwn /tmp/pwn.c
root@8d01f2f23ae1:/# /tmp/pwn |