AWS WAF
AWS Web Application Firewall
Webアプリケーション向けのファイアウォール
WAFと通常のFirewallとの違い
Firewall
code:mmd
flowchart LR
WAF
code:WAF.mmd
flowchart LR
リクエスト内に特定の文字列を含むとは
例)Webサーバへアクセスする際の一般的なリクエスト内容
GET /index.html HTTP/1.1" 200
例)不正と見られるリクエスト内容
GET /products/search?q=shoes' OR '1'='1 HTTP/1.1" 200
例)XSS攻撃
GET /comment/post?name=<script>alert('XSS')</script> HTTP/1.1" 200
例)ディレクトリトラバーサル攻撃
GET /images/../../../../etc/passwd HTTP/1.1" 200
AWS WAFのルールでリクエスト内に OR '1'='1や<script>、../のような文字列を見つけたら遮断など可
逆に、特定の文字列を含む場合に限定して許可なども可
ルール種別
マネージドルール
AWSやセキュリティベンダーが作成したルールのセット
AWS提供のものは無料利用可
ユーザ定義ルール
ユーザが独自に遮断ルールを決められる
1 IP制限
IPアドレスをもとに制限
2 レートベース
同一IPから一定以上のアクセスがあったときに制限
3 特定の脆弱性
4 悪意のあるhttpリクエストの判別
リクエストに含まれる詳細なサイズ・文字列で制限
WAFの種類
WAF v1 (WAF Classic)
上限が10ルール
WAF v2
AWSが無料のマネージドルールを提供
ルール数をWAF Capacity Unit という単位でカウント
OR条件のルール設定
ログ情報の拡張