0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS勉強メモ】WAFを使ってSQLインジェクションから保護する方法

Posted at
【AWS勉強メモ】WAFを使ってSQLインジェクションから保護する方法

🔰 AWS WAFとは?
AWS WAF(Web Application Firewall)は、Webアプリケーションを様々な攻撃から保護するためのサービスです。主に以下のような攻撃を防ぐ目的で使用されます:

- SQLインジェクション(SQLi)
- クロスサイトスクリプティング(XSS)
- ボット、IP制限、不正なリクエストパターンなど

🎯 今回の目的
SQLインジェクション(SQLi)攻撃からWebアプリケーションを保護する。

 🛠️ 例:Web ACLルール構成

| ルール名 | 内容 | アクション |
|----------|------|------------|
| SQLiRule | AWSが提供するマネージドルールセット(`AWSManagedRulesSQLiRuleSet`)を使用してSQLインジェクション攻撃を検出・ブロック | Block |
| XSSRule | XSS対策用に`AWSManagedRulesCommonRuleSet`を適用 | Block |
| BlockIPorGeo | 特定のIPアドレスまたは国(例:KR)からのアクセスをブロック | Block |
| PayloadSizeLimit | リクエストボディが一定サイズ(例:1000バイト)を超える場合にブロック | Block |

 🌐 アーキテクチャ構成図(簡易)

[User Request]

[AWS WAF (Web ACL)]
├─ SQLiRule
├─ XSSRule
├─ BlockIPorGeo
└─ PayloadSizeLimit

[ALB / CloudFront / API Gateway]

[Webアプリケーション]


 ✅ 実装ステップ(概要)

1. WAFコンソールから **Web ACL** を作成
2. ルールとして `AWSManagedRulesSQLiRuleSet` を追加
3. 必要に応じてカスタムルール(IPブロックなど)も追加
4. Web ACLをALBやCloudFrontなどのリソースにアタッチ

 🧪 補足:SQLインジェクションの例

https://example.com/item?id=1 OR 1=1


上記のような不正なリクエストがあった場合、WAFが検出してリクエストをブロックしてくれます。

📝 まとめ

- AWS WAFを使えば、SQLインジェクションなどの攻撃を簡単に防止可能。
- AWS Managed Ruleを使うことで、自前で正規表現などを定義しなくてもセキュリティ対策が可能。
- Web ACLの設計次第で、IP制御やサイズ制限など多様なセキュリティポリシーを適用可能。

---

📌 明日は実際にTerraformでAWS WAFを構築してみる予定です。
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?