LINEで送る
Pocket

ワフワフ。

そんなわけてAWS使ってる人はマストでWAFを導入したほうがいい!!
と思ってしまうほど気楽にDos攻撃を防ぐ環境が出来上がります。
今回は簡単に設定方法をブログします。


■Protect Web Sites & Services Using Rate-Based Rules for AWS WAF

https://aws.amazon.com/jp/blogs/aws/protect-web-sites-services-using-rate-based-rules-for-aws-waf/

レートベースのルールを適用すると、同一IPアドレスからの大量リクエストをブロックできます。
DDoS攻撃やブルートフォースアタックといった攻撃からの防御がめちゃくちゃ簡単にできるわけですな。

・5分間に同じIPから指定回数を超えるトリガー
・条件(Condition)との組み合わせが可能
・条件を指定しない場合には全てのリクエストが対象


■AWS WAF & Shield >Create rule

とりあえずruleを作成しましょう。
Rate limitは2000がデフォルトなので、
5分間にリクエストが来た場合に自動的にブロックしてくれます。
上記のように設定してくださいな。
※ちなみにRate limitは1分間で1000などのカスタマイズはできないので注意!


■Web ACLs > Create web ACL

 

ここでは先程作ったruleにWebACLを紐付けます。
今回はconditionsの設定はデフォルトで、対処のサーバのELBを
指定してるだけです。ちなみにActionCountにすると、
BlockせずにアタックしてきたIPを確認することができます。
よしアタックテストします!


■Go Attack!!!

・Now status

ちゃんと200帰ってきてますな。

・AB Test!

!!!!!!!!!!!!!!!

ApacheBench3000リクエストを投げて403が帰ってくればOK!
ちなみにインスタンスタイプはスケールアップしました(負荷で503になってしまうため)

・curlでステータスコードを確認

アクセスログもダーッと来て403になりましたな。

Web ACLの管理画面からBlockされてますね!
数分後に自動で解除されました。


■CloudWatch x Slack

http://blog.serverworks.co.jp/tech/2016/02/16/lambda-cloudwatch-alarm-to-slack/

あとはCloudWatchのアラームをSlackに通知するようにすればOK!

https://github.com/RVIRUS0817/waf_block-ip

・Lambda
・IAM
・SNS
・CloudWatch
・Python 3.6.2

どのIPから来ているのかもLambdaで検知すると尚良い!!


■まとめ

もっと細かく設定するにはconditionsで可能なので、
あとでセットアップしてみます!
にしても簡単にWAF導入できますな。

参考:
https://techblog.recochoku.jp/4070

LINEで送る
Pocket

カテゴリー: AWSDDoS

adachin

1989年生まれのSRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、Wordpressによるコーポレートサイトの修正、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください