ゼロトラストネットワーク 境界防御の限界を超えるためのセキュアなシステム設計


ゼロトラストネットワーク ―境界防御の限界を超えるためのセキュアなシステム設計


オライリー・ジャパン


著者:Evan Gilman、Doug Barth
監訳:鈴木研吾


はじめに

1章 ゼロトラストの基礎
1.1 ゼロトラストネットワークとは何か
1.1.1 ゼロトラストコントロールプレーン
1.2 境界モデルの進化
1.2.1 グローバルIPアドレス空間の管理
1.2.2 プライベートIPアドレス空間の誕生
1.2.3 プライベートネットワークからパブリックネットワークへの接続
1.2.4 NATの誕生
1.2.5 現代の境界モデル
1.3 潜在的な脅威の進化
1.4 境界モデルの弱点
1.5 信用の在りか
1.6 成功要因としての自動化
1.7 境界とゼロトラスト
1.8 クラウドへの適用
1.9 まとめ

2章 信頼と信用の管理
2.1 脅威モデル
2.1.1 一般的な脅威モデル
2.1.2 ゼロトラストの脅威モデル
2.2 強力な認証
2.3 公開鍵基盤
2.3.1 認証局とは何か
2.3.2 ゼロトラストにおけるPKIの重要性
2.3.3 プライベートPKIとパブリックPKI
2.3.4 パブリックPKI:ないよりは断然まし
2.4 最小権限
2.5 変化する信頼と信用
2.6 コントロールプレーンとデータプレーン
2.7 まとめ

3章 ネットワークエージェント
3.1 エージェントとは何か
3.1.1 揮発的なエージェント
3.1.2 エージェントには何が含まれているか
3.2 エージェントはどのように使用するか
3.2.1 認証には使用されない
3.3 エージェントにはどのようにアクセスするか
3.4 標準は存在しない
3.4.1 厳格さと流動性の両立
3.4.2 望まれる標準化
3.4.3 標準化されるまではどうするか
3.5 まとめ

4章 認可の判断
4.1 認可アーキテクチャ
4.2 エンフォーサ
4.3 ポリシーエンジン
4.3.1 ポリシーストレージ
4.3.2 よいポリシーの特徴
4.3.3 ポリシーを定義するのは誰か
4.4 トラストエンジン
4.4.1 スコア化すべきエンティティ
4.4.2 危険と見なされるスコアの公開
4.5 データストア
4.6 まとめ

5章 デバイスの信頼と信用
5.1 信頼と信用を獲得する
5.1.1 アイデンティティの生成と保護
5.1.2 静的なシステムと動的なシステムでの
アイデンティティのセキュリティ
5.2 コントロールプレーンによるデバイスの認証
5.2.1 X.509
5.2.2 TPM
5.2.3 ハードウェアベースのゼロトラストサプリカント
5.3 インベントリ管理
5.3.1 想定される挙動を把握する
5.3.2 セキュアイントロダクション
5.4 デバイスの信用の更新
5.4.1 ローカル測定
5.4.2 リモート測定
5.5 ソフトウェアの構成管理
5.5.1 構成管理ベースのインベントリ
5.5.2 信頼できるセキュアな情報源
5.6 ユーザーの認可にデバイスデータを使用する
5.7 信用のサイン
5.7.1 イメージの経過時間
5.7.2 アクセス履歴
5.7.3 位置
5.7.4 ネットワーク通信パターン
5.8 まとめ

6章 ユーザーの信頼と信用
6.1 アイデンティティ発行機関
6.2 プライベートシステムでのアイデンティティの生成
6.2.1 政府発行の識別証
6.2.2 物質界に勝るものなし
6.2.3 期待値
6.3 アイデンティティの格納
6.3.1 ユーザーディレクトリ
6.3.2 ディレクトリの管理
6.4 いつ認証するか
6.4.1 信用されるための認証
6.4.2 認証ドライバとしての信用
6.4.3 複数の経路の使用
6.4.4 アイデンティティと信用のキャッシュ
6.5 どのように認証するか
6.5.1 ユーザーが知っているもの:パスワード
6.5.2 ユーザーが持っているもの:TOTP
6.5.3 ユーザーが持っているもの:証明書
6.5.4 ユーザーが持っているもの:セキュリティトークン
6.5.5 ユーザー自身のもの:生体認証
6.5.6 アウトオブバンド認証
6.5.7 シングルサインオン(SSO)
6.5.8 ローカル認証への移行
6.6 グループの認証と認可
6.6.1 シャミアの秘密分散法
6.6.2 Red October
6.7 何かを見たら報告する
6.8 信用のサイン
6.9 まとめ

7章 アプリケーションの信頼と信用
7.1 アプリケーションパイプライン
7.2 ソースコードの信用
7.2.1 リポジトリの保護
7.2.2 コードの真正性と監査証跡
7.2.3 コードレビュー
7.3 ビルドの信用
7.3.1 リスク
7.3.2 信用できる入力、信用できる出力
7.3.3 再現可能なビルド
7.3.4 リリースバージョンと成果物バージョンを切り離す
7.4 ディストリビューションの信用
7.4.1 成果物のリリース対象化
7.4.2 ディストリビューションのセキュリティ
7.4.3 完全性と真正性
7.4.4 ディストリビューションネットワークの信用
7.5 人間が関わる部分を限定する
7.6 アプリケーションの信用
7.6.1 アップグレード限定ポリシー
7.6.2 認可を受けたアプリケーション
7.7 ランタイムのセキュリティ
7.7.1 セキュアコーディングの実践
7.7.2 分離
7.7.3 能動的な監視
7.8 まとめ

8章 トラフィックの信頼と信用
8.1 暗号化と認証
8.1.1 暗号化なしで真正性は確保できるか
8.2 信頼の確立:最初のパケット
8.2.1 fwknop
8.3 ネットワークモデルの概要
8.3.1 ネットワークの各層
8.3.2 OSIネットワークモデル
8.3.3 TCP/IPネットワークモデル
8.4 ゼロトラストはネットワークモデルのどこに位置するか
8.4.1 クライアントとサーバーの分離
8.5 プロトコル
8.5.1 IKE/IPsec
8.5.2 相互認証TLS(mTLS)
8.6 フィルタリング
8.6.1 ホストフィルタリング
8.6.2 ブックエンドフィルタリング
8.6.3 中間フィルタリング
8.7 まとめ

9章 ゼロトラストネットワークの実現
9.1 スコープの選択
9.1.1 実際に必要なのは何か
9.2 システム図の作成
9.3 フローを理解する
9.4 コントロールプレーンがないアーキテクチャ
9.4.1 構成管理による「ズル」
9.4.2 アプリケーションの認証と認可
9.4.3 ロードバランサとプロキシの認証
9.4.4 リレーショナルなポリシー
9.4.5 ポリシーの分散
9.5 ポリシーの定義と導入
9.6 ゼロトラストプロキシ
9.7 クライアント側とサーバー側の移行
9.8 ケーススタディの紹介
9.9 ケーススタディ:Google BeyondCorp
9.9.1 BeyondCorpの主要なコンポーネント
9.9.2 GFEの活用と拡張
9.9.3 マルチプラットフォーム認証の課題
9.9.4 BeyondCorpへの移行
9.9.5 教訓
9.9.6 まとめ
9.10 ケーススタディ:PagerDutyのクラウドに依存しないネットワーク
9.10.1 自動化プラットフォームとしての構成管理
9.10.2 動的に設定されるローカルファイアウォール
9.10.3 分散トラフィックの暗号化
9.10.4 分散されたユーザー管理
9.10.5 ロールアウト
9.10.6 プロバイダに依存しないシステムの価値
9.11 まとめ

10章 攻撃者の視点
10.1 なりすまし
10.2 DDoS
10.3 エンドポイントの列挙
10.4 信用されないコンピューティングプラットフォーム
10.5 ソーシャルエンジニアリング
10.6 物理的な脅威
10.7 無効化
10.8 コントロールプレーンのセキュリティ
10.9 まとめ

監訳者あとがき
索引

書籍目次

Posted by shi-n