SecureDancing with HTTPD
目次 |
はじめに
このプロジェクトは、Apache HTTP Server の設定やモジュールを使って、セキュアなウェブサーバを構築する手順を規定するものです。具体的なモジュールの導入手順や設定ファイルのカスタマイズも含みますが、攻撃ベクトルの推定を含めて将来にわたる準備を整えるための考え方もテーマとなります。
対象
Apache HTTP Server 2.2.21 (on Windows 7 / FreeBSD 9.0-RELEASE) です。僕が業務で使っているものを対象とします。
制限それから方針
このプロジェクトは、モジュールを自力で開発したり、httpd のソースコードを改変するといった、導入のための負荷もしくはメンテナンスに大きなリソースが必要となるプロセスを「オプション」として扱います。もちろん「ベキ論」だけが重大事であれば、それを必須の要件として含めておく「べき」かもしれませんが、どのみちそのようなことは専門に開発している企業あるいは暇人にしかできないことです。他方で、ウェブサーバを運用しなければならない IT 担当者やサーバ管理者は、もちろん僕を含めて膨大な数に昇っています。実効性があるのは、そうした平均的なサーバ管理者のリテラシーを上げて現実的かつ望ましいセーフガードを導入し、運用することだと思います。小手先の知識や適当な検索から得た情報の量だけがセキュリティのレベルを計る基準であるかのように見えるとすれば、それは単にそのようなオタクだけがオンラインで発言しているからにすぎません。
「ベキ論」を言い続けるだけで何事かが解決するのであればそれでもいいし、httpd.conf のカスタマイズを提案するだけでなく、サーバ管理者たるものC言語を習得して、須らく独自の設計によるウェブサーバ・アプリケーションやオリジナルのモジュールを開発すべしと言ってもかまいません。そして、現実にそれを実行している奇特な人はたくさんいます。僕はそういう人たちを「オタク」とは言いませんが。日本ではとかく、オタクであるかどうかをすぐに自意識の問題にしてしまうわけですが、僕にとっては何をするかが基準です。
このプロジェクトの主眼はウェブサーバを構築し運用するためのセキュリティポリシーという枠の中で、httpd.conf のカスタマイズといった話題を取り上げているだけです。そもそも、サーバへのアクセス制御ポリシーが不十分で wheel グループのユーザしか作っていないとか、機密性や完全性を確保すべきディレクトリのパーミションが不適切に設定されているといった残留リスクを解決するものではありません。したがって、このプロジェクトで提案するセーフガードを実施すればウェブサーバの構築や運用について必要かつ十分な対策がとれると期待してしまうような方がいたら、そのような方はここをご覧いただくよりも先に、サーバ「マシン」のリスクやサーバ「運用」のリスクについて学ぶべきでしょう。
コンテンツ
脅威分析(攻撃ベクトル)
脆弱性分析(ディレクティブ、モジュール)
ベースの httpd.conf
僕が業務で使っている環境にインストールした際の httpd.conf をベースにしています。httpd のソースを見れば分かるように、ソースに入っている httpd.conf のテンプレート(httpd-2.2.21.tar.gz/httpd-2.2.21/docs/conf/httpd.conf.in)は、configure, make する際のオプションを引数として具体的な設定内容に書き換えるためのマクロが記述されており、ソースの httpd.conf.in をそのまま掲載すればよいわけでもありません。
参照
- Pete Freitag, "20 ways to Secure your Apache Configuration," December 06, 2005.
リンク
- SecureDancing with HTTPD へ
- 情報セキュリティ・オリジナルプロジェクト へ
- メインページ へ