F5 Bot Detection Signatures For AWS WAFを利用してWebサーバーストレスツールのアクセスをブロック
こんにちはコカコーラ大好きカジです。 今回はAWS WAF Managed Ruleに追加されたF5のbotルールを利用して、Webサーバーストレスツールのアクセスをブロックしてみたいと思います。
AWS WAF マネージドルールって何?
下記をご確認下さい。
【新機能】AWS WAFマネージドルールを使ってWordPressに対する攻撃を防いでみた
F5 Bot Detection Signatures For AWS WAF とは?
F5のボット検出シグネチャを使用すると、脆弱性スキャナー、スクレイパー、電子メール訂正機能、ネットワークスキャナー、SPAMボット、スパイウェア、Webスパイダー、Webサーバーストレスツールを含む不要なボットアクティビティーをフィルターできます。
F5の他のマネージドルールについてはこちらを参照ください。
料金
料金は各マーケットプレイスのページをご確認下さい。
AWS Marketplace: F5 Rules for AWS WAF - Bot Protection Rules
- 1ヶ月あたり1リージョン毎 $20 (1時間毎で分割して計算)
- 100万リクエストあたり1リージョン毎 $1.2
導入手順
マネージドルールのSubscribe
マネージドルールはMarketplaceで公開されているものをSubscribeして利用します。
ACLの作成と適用
事前に保護対象のCloudfrontを作成してあります。 Web ACLsの画面から「Create web ACL」で作成します。名前やターゲット等を設定して「Next」を押します。
コンディションの作成画面は何も必要無いのでそのまま「Next」を押します。
ルールを選択するところで「Subscribe rules」から先程登録したマネージドルールを選択して「Add rule to web ACL」を押します。
マネージドルールを追加するとActionが「No override」がデフォルトで選択されていますのでそのままにします。 ちなみに通常のルールだと「Allow, Count, Block」が選択できますが、現状では「No override」でBlockと同じような動き、「Override to count」でCountと同じような動きになります。 Default actionはルールに引っかからない場合の動作なので「Allow ...」を選択して、「Review and create」を押します。
確認画面が出るので「Confirm and Create」を押してACLの作成を完了します。
これでACLが作成され、保護対象に適用されました。
Bot Protection Rules テスト
Blockされる通信の実施
ApacheBenchを使ってWebサーバーストレスツールのアクセスを実施します。
% ab -n 100 -c 10 http://www.hogehoge.classmethod.info/text/index.html This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.hogehoge.classmethod.info (be patient).....done Server Software: CloudFront Server Hostname: www.hogehoge.classmethod.info Server Port: 80 Document Path: /text/index.html Document Length: 555 bytes Concurrency Level: 10 Time taken for tests: 0.517 seconds Complete requests: 100 Failed requests: 0 Non-2xx responses: 100 Total transferred: 87700 bytes HTML transferred: 55500 bytes Requests per second: 193.30 [#/sec] (mean) Time per request: 51.734 [ms] (mean) Time per request: 5.173 [ms] (mean, across all concurrent requests) Transfer rate: 165.55 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 47 50 1.8 50 56 Waiting: 47 50 1.9 50 56 Total: 47 51 1.8 50 56 Percentage of the requests served within a certain time (ms) 50% 50 66% 51 75% 52 80% 52 90% 53 95% 54 98% 56 99% 56 100% 56 (longest request) %
AWS WAF サンプルログの確認
ブロックされていることが確認できます。
AWS WAF Managed Ruleを停止する場合
AWS WAF Managed Ruleにおけるサブスクリプションのキャンセル手順のブログを参照ください。
まとめ
公開サーバを運用していると、外部のスキャナーやスクレイパーなどからのアクセスは日常的にありますよね。 不要なアクセスをマネージドルールでフィルタしていきましょう。