1
2

More than 3 years have passed since last update.

Apacheを使用したリバースプロキシでのHttpヘッダ・インジェクション予防メモ

Last updated at Posted at 2021-08-08

※Apacheやセキュリティについてそこまで詳しくないため、参考程度でよろしくおねがいします。

Httpヘッダ・インジェクション

HTTPヘッダ・インジェクション

動的にHTTPヘッダを生成する機能の不備を突いてヘッダ行を挿入することで不正な動作を行なわせる攻撃手法のこと。また、その攻撃を可能とする脆弱性のこと。

前提

以下のような構成でシステムを構築している場合にApacheの設定を追加することでアプリケーションを改修せずに予防した。
クライアント - Apache(リバースプロキシ) - Webサーバ

ヘッダーを改変することで予期しないURLへ遷移させることができる状態だった。
リダイレクトされるURLへのアクセス時にHostを書き換えることで想定外のURLへリダイレクトさせることができる状態だった。

事象と対応内容

Hostを書き換えていない状態だと想定するURLがヘッダーのLocationに記載されているが、
以下のようにHostヘッダーに改ざん先URLを指定すると変更されていた。(-Lを追加するとリダイレクトまで実行されます。)

curl -v -H "Host: 改ざんURL" "リダイレクトするURL"

Apacheの場合を以下の設定1つを追加することで、一先ず事象抑制できた。

追加設定
UseCanonicalName On

UseCanonicalName On の場合は、ServerName ディレクティブで指定されている ホスト名とポート番号を使って、その正規名 (自己参照の名前) を生成します。

UseCanonicalName ディレクティブ
http://httpd.apache.org/docs/2.2/ja/mod/core.html#usecanonicalname

ServerNameディレクティブでホスト名を設定することでホスト名を固定できるため、ホスト名改ざんを予防しています。

その他調べる過程で読んだ参考になった記事とか

Apache httpd 2.4 を CentOS 7 に yum でインストールする手順
https://weblabo.oscasierra.net/apache-installing-apache24-yum-centos7-1/

攻撃を受ける前に見直すApacheの基本的なセキュリティ10のポイント
https://www.rem-system.com/apache-security01/

ディレクティブ一覧
https://httpd.apache.org/docs/2.4/ja/mod/directives.html

mod_proxy再入門 – ProxyPassとProxyPassReverse
https://dev.classmethod.jp/server-side/server/introduction_mod_proxy/

ProxyPass ディレクティブ
http://httpd.apache.org/docs/2.4/ja/mod/mod_proxy.html#proxypass

ProxyPassReverse ディレクティブ
http://httpd.apache.org/docs/2.4/ja/mod/mod_proxy.html#proxypassreverse

リバースプロキシ(Reverse Proxy)
https://www.atmarkit.co.jp/ait/articles/1608/25/news034.html

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2