Apacheセキュリティ

[cover photo]
TOPICS
Web , Security , System/Network , Linux , PHP
発行年月日
PRINT LENGTH
448
ISBN
4-87311-256-7
原書
Apache Security
FORMAT
PDF
Ebook
3,960円
Ebookを購入する

本書はApacheベースのシステムをセキュリティで保護するために必要な情報をすべて盛り込んだ書籍です。 Apacheセキュリティの原則、SSL、サービス妨害攻撃、サーバの共有、アクセス制御など基礎的なことから、インフラストラクチャ、Webセキュリティの診断、Web侵入検知など高度なトピックまで、Apacheをセキュアに保つ方法を詳細な解説と豊富なサンプルでわかりやすく説明します。一度ログインしたユーザーが複数のリソースにアクセスできるシングルサインオンなど最新のトピックも掲載。システム管理者、プログラマ、システムアーキテクトなどWebセキュリティに関わるすべての人に必携の一冊です

目次

まえがき	
謝辞 		
1章	Apacheのセキュリティの原則
	1.1 セキュリティの定義 
		1.1.1 セキュリティの基本原則 
		1.1.2 一般的なセキュリティ用語 
		1.1.3 セキュリティプロセスの手順 
		1.1.4 脅威モデリング 
		1.1.5 システムハードニングマトリックス 
		1.1.6 リスクの算出 
	1.2 Webアプリケーションアーキテクチャの設計図 
		1.2.1 ユーザーの観点 
		1.2.2 ネットワークの観点 
		1.2.3 Apacheの観点 
2章	 インストールとコンフィグレーション
	2.1 インストール 
		2.1.1 ソースか、バイナリか 
		2.1.2 静的なバイナリか、動的なモジュールか 
		2.1.3 フォルダの場所 
		2.1.4 インストールの手順 
	2.2 コンフィグレーションとハードニング 
		2.2.1 サーバー用のユーザーアカウントの設定 
		2.2.2 バイナリファイルのパーミッションの設定 
		2.2.3 安全なデフォルト設定 
		2.2.4 CGIスクリプトの有効化 
		2.2.5 ログ 
		2.2.6 サーバーコンフィグレーションの制限の設定 
		2.2.7 情報漏れを防ぐには 
	2.3 Webサーバーの身元の変更 
		2.3.1 Serverヘッダーフィールドの変更 
		2.3.2 デフォルトのコンテンツの削除 
	2.4 ジャイル環境のApache 
		2.4.1 ジャイル環境のツール 
		2.4.2 chrootを使用したジャイル環境でのApacheの実行 
		2.4.3 chroot(2)のパッチ 
		2.4.4 mod_securityまたはmod_chrootの使用 
3章	 PHP 
	3.1 インストール 
		3.1.1 モジュールとしての使用 
		3.1.2 CGIとしての使用 
		3.1.3 モジュールの選択 
	3.2 コンフィグレーション 
		3.2.1 不適切なオプションの無効化 
		3.2.2 関数とクラスの無効化 
		3.2.3 ファイルシステムへのアクセス制限 
		3.2.4 ログオプションの設定 
		3.2.5 制限の設定 
		3.2.6 ファイルアップロードの制御 
		3.2.7 セッションのセキュリティの強化 
		3.2.8 セーフモードオプションの設定 
	3.3 PHPの高度なハードニング 
		3.3.1 PHP 5のSAPIの入力フック 
		3.3.2 Hardened-PHP 
4章	 SSLとTLS
	4.1 暗号化 
		4.1.1 対称暗号方式 
		4.1.2 非対称暗号方式 
		4.1.3 一方向の暗号化 
		4.1.4 公開鍵基盤(PKI) 
		4.1.5 それぞれの役割 
	4.2 SSL 
		4.2.1 SSL通信の仕組み 
		4.2.2 SSLは安全か 
	4.3 OpenSSL 
	4.4 ApacheとSSL 
		4.4.1 mod_sslのインストール 
		4.4.2 鍵の生成 
		4.4.3 証明書署名リクエストの生成 
		4.4.4 証明書への署名 
		4.4.5 CAが署名した証明書の取得 
		4.4.6 SSLのコンフィグレーション 
	4.5 認証局のセットアップ 
		4.5.1 CA証明書の配布の準備 
		4.5.2 サーバー証明書の発行 
		4.5.3 クライアント証明書の発行 
		4.5.4 証明書の失効 
		4.5.5 クライアント証明書の使用 
	4.6 パフォーマンスの問題 
		4.6.1 OpenSSLベンチマークスクリプト 
		4.6.2 ハードウェアアクセラレーション 
5章	 サービス妨害攻撃
	5.1 ネットワーク攻撃 
		5.1.1 不正なトラフィック 
		5.1.2 ブルートフォース攻撃 
		5.1.3 SYNフラッド攻撃 
		5.1.4 送信元アドレス詐称攻撃 
		5.1.5 分散サービス妨害(DDoS)攻撃 
		5.1.6 DRDoS攻撃 
	5.2 自虐的な攻撃 
		5.2.1 Apacheの設定ミス 
		5.2.2 Webアプリケーションの設計ミス 
		5.2.3 クライアントの問題 
	5.3 トラフィックの急激な増加 
		5.3.1 コンテンツの圧縮 
		5.3.2 帯域幅への攻撃 
		5.3.3 サイバーアクティビズム 
		5.3.4 Slashdot効果 
	5.4 Apacheへの攻撃 
		5.4.1 Apacheの脆弱性 
		5.4.2 ブルートフォース攻撃 
		5.4.3 プログラミングモデル攻撃 
	5.5 ローカル攻撃 
		5.5.1 PAM制限 
		5.5.2 プロセスアカウンティング 
		5.5.3 カーネル監査 
	5.6 トラフィックシェイピングモジュール 
	5.7 DoS攻撃への防御態勢 
6章	 サーバーの共有
	6.1 共有の問題 
		6.1.1 ファイルパーミッションの問題 
		6.1.2 動的なコンテンツの問題 
		6.1.3 リソースの共有 
		6.1.4 同じドメイン名の問題 
		6.1.5 実行境界での情報漏れ 
	6.2 コンフィグレーションデータの配布 
	6.3 動的なリクエストのセキュリティ 
		6.3.1 スクリプトの実行の有効化 
		6.3.2 CGIスクリプトの制限の設定 
		6.3.3 suEXECの使用 
		6.3.4 FastCGI 
		6.3.5 PHPのモジュールとしての実行 
	6.4 大量ユーザーへの対応 
		6.4.1 Webシェル 
		6.4.2 危険なバイナリ 
7章	 アクセス制御
	7.1 概要 
	7.2 認証方式 
		7.2.1 基本認証 
		7.2.2 ダイジェスト認証 
		7.2.3 フォームベース認証 
	7.3 Apacheのアクセス制御 
		7.3.1 テキストファイルによる基本認証 
		7.3.2 DBMファイルによる基本認証 
		7.3.3 ダイジェスト認証 
		7.3.4 証明書に基づくアクセス制御 
		7.3.5 ネットワークアクセス制御 
		7.3.6 プロキシアクセス制御 
		7.3.7 アクセス制御の最後のヒント 
	7.4 シングルサインオン 
		7.4.1 Webのシングルサインオン 
		7.4.2 Apache独自のシングルサインオン 
8章	 ログと監視
	8.1 Apacheのログ機能 
		8.1.1 リクエストのログ 
		8.1.2 エラーログ 
		8.1.3 特殊なログモジュール 
		8.1.4 監査ログ 
		8.1.5 パフォーマンスの測定 
		8.1.6 ファイルアップロードのインターセプト 
		8.1.7 アプリケーションログ 
		8.1.8 ログをできるだけ多く残すには 
	8.2 ログの操作 
		8.2.1 パイプ経由のログ 
		8.2.2 ログのローテーション 
		8.2.3 ログのディストリビューションの問題 
	8.3 リモートログ 
		8.3.1 手動での一元管理 
		8.3.2 syslogログ 
		8.3.3 データベースログ 
		8.3.4 Spread Toolkitによる分散ログ 
	8.4 ログの戦略 
	8.5 ログの鑑識 
	8.6 監視 
		8.6.1 ファイルの整合性 
		8.6.2 イベントの監視 
		8.6.3 Webサーバーのステータス 
9章	 インフラストラクチャ
	9.1 アプリケーション分離戦略 
		9.1.1 サーバーからのアプリケーションの分離 
		9.1.2 アプリケーションモジュールの分離 
		9.1.3 仮想サーバーの利用 
	9.2 ホストのセキュリティ 
		9.2.1 ユーザーアクセスの制限と保護 
		9.2.2 最小限のサービスの導入 
		9.2.3 情報収集とイベントの監視 
		9.2.4 ネットワークアクセスの保護 
		9.2.5 高度なハードニング 
		9.2.6 最新の状態に保つ 
	9.3 ネットワークのセキュリティ 
		9.3.1 ファイアウォールの使用 
		9.3.2 ログの一元管理 
		9.3.3 ネットワークの監視 
		9.3.4 外部の監視 
	9.4 リバースプロキシの使用 
		9.4.1 Apacheリバースプロキシ 
		9.4.2 ネットワーク設計によるリバースプロキシ 
		9.4.3 ネットワークトラフィックのリダイレクトによるリバースプロキシ 
	9.5 ネットワークの設計 
		9.5.1 リバースプロキシパターン 
		9.5.2 高度なアーキテクチャ 
10章	 Webアプリケーションのセキュリティ
	10.1 セッション管理攻撃 
		10.1.1 クッキー 
		10.1.2 セッション管理の概念 
		10.1.3 クライアントとの連携 
		10.1.4 セッショントークン 
		10.1.5 セッション攻撃 
		10.1.6 ベストプラクティス 
	10.2 クライアントの攻撃 
		10.2.1 一般的なクライアント攻撃のターゲット 
		10.2.2 フィッシング 
	10.3 アプリケーションロジックの欠陥 
		10.3.1 クッキーと隠しフィールド 
		10.3.2 POSTメソッド 
		10.3.3 Refererによる欠陥チェック 
		10.3.4 プロセスの状態管理 
		10.3.5 クライアント側の検証 
	10.4 情報の開示 
		10.4.1 HTMLソースコード 
		10.4.2 ディレクトリリスト 
		10.4.3 詳細なエラーメッセージ 
		10.4.4 デバッグメッセージ 
	10.5 ファイルの開示 
		10.5.1 パスのトラバース 
		10.5.2 アプリケーションダウンロードの欠陥 
		10.5.3 ソースコードの開示 
		10.5.4 予想可能なファイルの場所 
	10.6 インジェクション攻撃 
		10.6.1 SQLインジェクション 
		10.6.2 クロスサイトスクリプティング 
		10.6.3 コマンド実行攻撃 
		10.6.4 コード実行攻撃 
		10.6.5 インジェクション攻撃の阻止 
	10.7 バッファオーバーフロー 
	10.8 回避テクニック 
		10.8.1 簡単な回避テクニック 
		10.8.2 パスの難読化 
		10.8.3 URLエンコーディング 
		10.8.4 Unicodeエンコーディング 
		10.8.5 nullバイト攻撃 
		10.8.6 SQLの回避 
	10.9 Webアプリケーションのセキュリティリソース 
		10.9.1 全般 
		10.9.2 Webアプリケーションのセキュリティリソース 
11章	 Webセキュリティの診断
	11.1 ブラックボックステスト 
		11.1.1 情報の収集 
		11.1.2 Webサーバーの分析 
		11.1.3 Webアプリケーションの分析 
		11.1.4 アクセス制御に対する攻撃 
		11.1.5 脆弱性の調査 
	11.2 ホワイトボックステスト 
		11.2.1 アーキテクチャのレビュー 
		11.2.2 コンフィグレーションのレビュー 
		11.2.3 機能のレビュー 
	11.3 グレーボックステスト 
12章	 Web侵入検知
	12.1 Web侵入検知の進化 
		12.1.1 侵入検知は正しい解決策か 
		12.1.2 ログベースのWeb侵入検知 
		12.1.3 リアルタイムのWeb侵入検知 
		12.1.4 Web侵入検知機能 
	12.2 mod_securityの使用 
		12.2.1 概要 
		12.2.2 コンフィグレーションのヒント 
		12.2.3 導入のガイドライン 
		12.2.4 一般的な攻撃の検知 
		12.2.5 高度なテーマ 
付録	 ツール
	A.1 環境の解明 
		A.1.1 WebMaven 
		A.1.2 WebGoat 
	A.2 情報収集ツール 
		A.2.1 TechnicalInfoのオンラインツール 
		A.2.2 Netcraft 
		A.2.3 Sam Spade 
		A.2.4 SiteDigger 
		A.2.5 SSLDigger 
		A.2.6 Httprint 
	A.3 ネットワークレベルのツール 
		A.3.1 Netcat 
		A.3.2 Stunnel 
		A.3.3 Curl 
		A.3.4 ネットワークスニファ 
		A.3.5 SSLDump 
	A.4 Webセキュリティスキャナ 
		A.4.1 Nikto 
		A.4.2 Nessus 
	A.5 Webアプリケーションのセキュリティツール 
		A.5.1 Paros 
		A.5.2 Webセキュリティツール製品 
	A.6 HTTPプログラミングライブラリ 
索引