Apacheセキュリティチェック、PCI DSSの場合 − @IT(情報元のブックマーク数)

ApachePCI-DSS的なチェックリスト

UNIX系OSを使用している環境において、WebサーバアプリケーションとしてApacheが一般的に利用されています。対象環境にApacheがあった場合に、PCI DSSの12要件の順序ではなく、どのような点を注意深く確認するのかをご紹介したいと思います。ここで使用する環境は、LinuxApache 2.2.8です。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

psでの確認項目、正しいアプリか、正しいユーザかの確認も必要

対象範囲内のOSについては、まずネットワーク接続状況と稼働するプロセスを確認しますが、Apache httpdの存在はnetstatやpsで確認することができます。通常、インタビューや文書確認を先に行っており、Apacheが稼働していること自体はすでに分かっています。
しかし、この時点で“稼働していないはずのApache”を発見することもあります。そういった場合は、PCI DSSの訪問審査の観点では指摘事項となるため、非準拠になります。例えば、データベースやそのほかのツールのWeb管理コンソールが、使用されていないにもかかわらず稼働しているようなケースがよく見受けられます。
つまり、この作業が、要件2.2.2の「システムコンポーネントのサンプルを選択し、有効なシステムサービス、デーモン、プロトコルを調査する」の一部であるといえます。ここではpsコマンドでの確認方法を挙げてみたいと思います。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

結局はカード情報がどうなるかがメイン!これはPCI-DSSのメインテーマですので忘れないように

プロセス情報やバイナリから得られた情報から正確に設定ファイルを識別し、その内容を確認します。各項目について確認する際の観点はずばり「カード会員データの漏えいにつながるか?」です。
設定ファイルはすべての内容を確認し、不明点があれば担当者の方に質問することになります。httpd.confで設定できる項目は膨大です。すべてここで取り上げることは難しいですから、いくつかの例を挙げたいと思います。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

これは別にどうでも良いかなw

ServerTokensやServerSignatureなどは、バージョン情報の見せ方の設定ですので、攻撃者に情報を与えてしまうことから、「セキュリティ上」はProd、およびOffにするのが望ましいですが、PCI DSS準拠という観点で「カード会員データの漏えいにつながる」とはいいがたいため、指摘となることはまずないでしょう。これ以外のKeepAlive関連のパラメータはパフォーマンスの設定ですから、それほど細かくは確認しません。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

実行ユーザか。確かに権限昇格されたらなんでも出来ちゃうしね。

実行ユーザーとグループの設定がrootになっていることはまずありませんので、ここでは実行されているプロセスと同一になっているかどうかを確認します。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

結構放置しがちなロードモジュール管理・・・結構面倒なんだよねぇ・・

Userdirとか、意外と忘れがちで、~testとかしたら、過去バージョンが出てきたり、データ一覧が出たり・・・したりしますしね

この項目は、要件2.2.4「システムコンポーネントのサンプルを選択し、不要な機能(スクリプト、ドライバ、機能、サブシステム、ファイルシステムなど)がすべて取り除かれていることを確認する」に対応するためのものです。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

ロードバランサとか付けていたら要注意ですね。IPアドレスというのを確定できるようにしないと!

ログの設定は、標準的な設定で誰が(IPアドレスやホスト名)、いつ、何をしたのかの記録が取られていれば問題ありません。ログについてはむしろ、その記録されたログの運用方法について注意する必要があります。具体的には、保管されたログのアクセス権限、ローテーションのサイズや期間、世代数、また長期でのログのオフライン保管や完全性の保護などがポイントになるでしょう。ログについては主に要件10の項目になります。

 調査時には、実際にログの内容を見て、カード会員データがログ内に含まれないかどうか、過去のログが保管されているかどうか、また、ほかのサーバ上のログと合わせて、1トランザクションを追跡できるかどうかを確認します。

 そのときに重要となるのは時刻同期であり、各サーバ上のログの整合性が取れていることが必要となります。例えば時刻同期については、要件10.4「組織内で正しい時刻を入手および配布するためのプロセス、およびシステムコンポーネントのサンプルについて、時刻に関連したシステムパラメータ設定を入手および調査する」に基づいて確認します。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

以前Squidの設定項目について、話をしたことがあるのですが、標準設定と違うところを明記するという、設定所を書いたら、拒否されました。全て書けと・・・8000項目近くあったと思うんですけど、、、全力で拒否させていただきましたがw

QSAの訪問審査時には上記のようにシステム設定を確認しますが、設定上対応してさえいればよい、というわけではありません。すべての項目について文書化しておく必要があり、その設定によってシステムはどう変化するのか、なぜその設定となっているのかを把握しておく必要があります。

Apacheセキュリティチェック、PCI DSSの場合 − @IT

screenshot