Help us understand the problem. What is going on with this article?

nginxを用いてgzip爆弾による不正アクセスへの攻性防壁

More than 1 year has passed since last update.

はじめに

Wordpressの脆弱性狙いの不正アクセスに対して、展開後にとても大きくなるgzipファイルをレスポンスすることで攻性防壁を構築するブログを参考に、nginxを用いてMacのローカルPCに検証構築した記録です。
参考: How to defend your website with ZIP bombs

ソフトウェアバージョン

MacOSX Sierra
nginx : 1.12.2

手順

Homebrewにてnginxをインストールして検証しました。
nginxの設定ファイルなどのパスについては、自分の環境に適宜置き換えてください。

1. gzip爆弾ファイルの作成

展開後に10GBになるgzファイルをwww配下に作成します。
圧縮状態だと10MB程です。

$ dd if=/dev/zero bs=1m count=10240 | gzip > /PATH/TO/WWW_ROOT/10G.gz

2. 不正アクセスパス(/php)のレスポンスに作成したgzipファイルを返すようにセット

レスポンスを差し替えるため location 設定に追加します。

# /php 以下にgzip爆弾を仕掛ける
location ^~ /php {
    default_type  text/html;             # 展開後の形式
    add_header  Content-Encoding  gzip;  # gzip圧縮済をヘッダに付与
    gzip off;                            # nginxによる自動圧縮をOFF
    alias /PATH/TO/WWW_ROOT/10G.gz;      # レスポンスは必ずBombファイル 
}

設定後、変更を反映させるためnginxを再起動します。

アクセス結果

ブラウザ:AndroidのChromeや、PCのChrome、Edgeなどでアクセスすると、メモリが上昇してしばらくした後にエラー表示になります。
コマンドラインツール:curlやwgetでは圧縮後のファイルをダウンロードするだけで自動展開はされないためあまり爆弾になりませんでした。

おわりに

今回はnginx上で不正アクセス者へ展開後に大きくなるファイルによる攻性防壁を構築しました。
実際の運用に適用するにはいろいろ問題があるかとは思いますが、実験としては面白いものでした。
攻性防壁の実験の一つとして触ってみてはいかがでしょうか?

gutio
klab
モバイルオンラインゲーム、その他スマートフォン関連サービス、及びサーバーインフラ開発・運用
http://www.klab.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした