3

サーバーを PCI 準拠にしようとしています。修正する必要がある最後の問題の 1 つは、INode を Apache ETag ヘッダーから削除することです。そこで、httpd.conf で次の行を定義しました: "FileETag MTime Size" はMTimeSizeのみを返します。

<Directory "/var/www/html">
    Options FollowSymLinks

    AllowOverride None

    Order allow,deny
    Allow from all

    FileETag MTime Size
</Directory>

この修正により、標準ポート 80 の問題が解決されました。

現在、ホスト コントロール パネル (ISPConfig3) をポート 8000 で実行しています。PCI コンプライアンス テストを実行した後、次のエラーが発生しました。

Apache ETag ヘッダーが inode 番号を開示する 重大度: 潜在的な問題 CVE: CVE-2003-1418 影響: リモートの攻撃者がサーバー上の inode 番号を特定する可能性があります。解決策 http://httpd.apache.org/docs/2.2/mod/core.html#FileETag FileETag ディレクティブを使用して、ETag の計算から INode コンポーネントを削除します。たとえば、次の行を Apache 構成ファイルに配置して、ファイルの変更時間とサイズのみに基づいて ETag を計算します: FileETag MTime Size Vulnerability Details: Service: 8000:TCP

ポート 8000 で実行されているすべてのアプリケーションにFileETagを適用するには、httpd.conf に何かを追加する必要があると思います。

どうすればいいのかアドバイスお願いします。

ありがとうございました!ケルビン

4

3 に答える 3

3

PCI コンプライアンス テストが古くなっているようです。CVE-2003-1418を読みましたか?

OpenBSD 上のApache HTTP Server 1.3.22 から 1.3.27では、リモートの攻撃者が (1) inode 番号を明らかにする ETag ヘッダー、または (2) 子プロセス ID (PID) を明らかにするマルチパート MIME 境界を介して機密情報を取得することができます。

[My Ital ] これは、別の Etag アルゴリズムを使用する Apache 2.2 の問題ではありません。また、まだ Apache 1.3 を実行している場合は、サポートが終了しているため、より大きな問題が発生します。

あなたは問題ではないことを解決しようとしています。最新の PCI コンプライアンス テスト スイートを入手してください。

于 2012-03-08T23:07:55.430 に答える
0

Apache 2.4 FileETag ディレクティブのドキュメントによると、ETag の計算に使用されるデフォルトはMTime Size.

Apache バージョン 2.3.14 以前では、デフォルトは に設定されていましたINode MTime Size

すべてのポートの ETag 設定と Apache ETag 出力の確認

curl を使用して、ヘッダーで返された ETag 値と によって返された inode 値を比較することで、自分で確認できますls

例えば:

 curl -I https://example.com/file

ここで、fileは、Apache Web サーバーによって提供されるファイルシステム上のファイルです。

ETag を に設定すると、MTime Size次のように表示されます。

ETag: "3-24f10051b181e"

FileETagディレクティブを使用して、ETag によって返される値を変更できます。Apache サーバーの conf/etc/httpd/conf/httpd.confファイル (例: ) の末尾に以下を追加します。

FileETag INode

Apache をリロードまたは再起動してから、curl テストを繰り返します。

私のテストでは、サーバー構成ファイルに FileETag INode を含めると、Apache Web サーバーが提供するすべてのポート (80 および 443) の出力に影響がありました。

ETag を に設定するINodeと、次のような単一の 16 進数を受け取る必要があります。

ETag: "200f8fa"

ETag によって返された数値を 16 進数から 10 進数に変換し、inode 番号と比較します。

実行するls -i /path/to/webroot/example.com/fileと、返される inode は、ETag を介して返される 16 進数に相当する 10 進数である必要があります (この例では 33618170)。

追加した場合FileETag Inodeは、忘れずに削除して、Apache を再起動/リロードしてください。

特定のポートの ETag 設定

使用できるコンテキストは次のFileETagとおりです。

  • サーバー構成
  • 仮想ホスト
  • ディレクトリ
  • .htaccess

必要なコンポーネント キーワードを使用してサーバー構成に が存在し、Apache が提供している特定のポートの間違った ETag 出力が引き続き表示される場合FileETagは、vhost 構成ファイルと Web ルート ディレクトリを検索する必要FileETagがあります。そこにある設定はサーバーを上書きするためです。構成。

実際に特定のポートで特定の ETag 出力が必要な場合は、影響を与えるポートFileETagの適切なVirtualHostブロックに追加する必要があります。このポートで複数のサイトにサービスを提供している場合は、そのポートを指定FileETagする各VirtualHostブロックに追加する必要があります。

于 2019-01-11T00:33:09.380 に答える