[レポート]ワークショップ「AWS WAFを使用した不正防止のハンズオン」に参加してきました。#CDN301

[レポート]ワークショップ「AWS WAFを使用した不正防止のハンズオン」に参加してきました。#CDN301

Clock Icon2024.12.05

こんにちは。中村です。
本記事は ワークショップ「Get hands-on with fraud prevention using AWS WAF」 の参加レポートになります。

概要

Traffic from malicious bots can lead to negative user experiences, financial losses, and operational bottlenecks ranging from add-to-cart attacks that disrupt your web applications to distributed denial of service (DDoS) attacks that increase your infrastructure costs. In this workshop, explore how AWS uses a combination of techniques to identify and mitigate different types of bots and fraudulent activities. Gain valuable insights into how AWS WAF and Amazon CloudFront work together to safeguard and deliver your applications. You must bring your laptop to participate.
[機械翻訳]
悪意のあるボットからのトラフィックは、Webアプリケーションを妨害するカート追加攻撃から、インフラストラクチャコストを増加させる分散型サービス妨害(DDoS)攻撃まで、ネガティブなユーザー体験、経済的損失、運用上のボトルネックを引き起こす可能性があります。このワークショップでは、AWSが様々な種類のボットや不正活動を特定し軽減するために、複数の技術を組み合わせてどのように使用しているかを探ります。AWS WAFとAmazon CloudFrontがアプリケーションを保護し配信するためにどのように連携しているかについての貴重な洞察を得ることができます。参加にはラップトップの持参が必要です。

スピーカー

  • Devansh Agrawal, Sr Cloud Support Engineer, Amazon
  • Paul Kelsey, Sr Solutions Architect, Amazon Web Services

レベル

  • 300

内容

本ワークショップでは、擬似的なECサイトを利用して、WAFルールを適用することで考え方・適用方法を学ぶセッションとなっています。
3つのテーマがあり、私が取り組んだテーマがアカウント乗っ取りに対するWAF設定になります。

アカウント乗っ取りとブルートフォース攻撃に対する防御

アカウント乗っ取りを防ぐマネージドルールを設定

下記マネージドルールを活用することで、アカウントが乗っ取られたと疑われる接続をブロックします。

  • AWS-AWSManagedRulesATPRuleSet

下記サイトの通り、テスト用のユーザ・パスワードを利用して接続を実施しました。
参考:
https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp-deploying.html

複数回実行して試してみたところ、確かにブロックされていることが確認できました。

img-1

terminatingRuleIdの部分を確認すると、「AWS-AWSManagedRulesATPRuleSet」で終了しており、このルールが利用されたことがわかります。

漏洩した認証情報への対応

ここで、漏洩した認証情報への対応としてカスタムレスポンスとカスタムルールを作成します。

まずば、カスタムレスポンスを作成します。

img-2

続いて、このレスポンスを返却するカスタムルールを作成します。
特定のlabelが付与されたリクエストに対して、カスタムレスポンスを返却する設定としました。

img-3

再度、接続を試してみます。
カスタムレスポンスが返却されていますね。

img-4

また、CloudWatchでログを見てみると確かにterminatingRuleId列で「RedirectToResetPassword」で終了されており、カスタムレスポンスが返却されていることが確認できます。

img-5

※余談ですが、私が利用していないグローバルIPアドレスからの通信もこの制限に引っかかっている様でした。
実際に不正アクセスを試みようとしているという訳ですね!

AWS WAF SDKを使用したアカウント乗っ取りの防止

AWSManagedRulesATPRuleSetには「VolumetricIPHigh」や「VolumetricIpFailedLoginResponseHigh」など、一定期間内に多くのログイン試行したIPアドレスをブロックするルールが存在します。

参考:
https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html#aws-managed-rule-groups-atp-rules

しかし、これらのルールはIPレベルでしか追跡できないという制約があります。
攻撃者がIPを偽装して接続してくると、このルールをうまく利用できません。
昨今クラウドが簡単に利用できるようになり、IPアドレスもある種変更し放題な状態です。そのため、IPアドレスに依存しない追跡方法を検討する必要があるという訳です。
また、このルールセットには不審なセッションを検知してブロックするルールも存在します。例えば、「VolumetricSession」など。
これらのルールを効果的に利用するために、AWS WAF JavaScript統合を利用したWAF設定を行いました。

参考:
https://docs.aws.amazon.com/waf/latest/developerguide/waf-javascript-api.html

感想

今回のセッションでは、実際にWAFルールを適用して挙動を確認しながら学習していきました。
やっぱり目にみえる変化があると楽しいですね!
今回利用したルール以外にもたくさんのルールがあるため、それらの挙動を引き続き学習していきたいと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.