Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WA...
Search
iret.kumoben
October 18, 2023
Technology
0
450
第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本
下記、勉強会での資料です。
https://youtu.be/owYyj2X3ao4
iret.kumoben
October 18, 2023
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
52
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
50
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
56
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
60
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
47
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
78
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
120
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
95
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
50
Other Decks in Technology
See All in Technology
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
410
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
440
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
570
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
150
IAMユーザーゼロの運用は果たして可能なのか
yama3133
2
510
【U/Day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
950
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
910
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1k
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
310
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
180
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
610
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
7
1.6k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
14k
Faster Mobile Websites
deanohume
310
31k
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
500
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
0
840
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Making Projects Easy
brettharned
120
6.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
980
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
61
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Optimizing for Happiness
mojombo
379
70k
Transcript
実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本 第117回 雲勉【オンライン】 AWS WAF の基本を押さえて安全に使おう
0.講師自己紹介 2 ▪ 村上 桃子 ≫ クラウドインテグレーション事業部 セキュリティセクション セキュリティサービスの提供や、 サービス立ち上げなどを行っています
≫ 2021年 6月入社 ≫ 西の方に行ってみたい今日この頃 @iret_security
アジェンダ 3 0. 自己紹介 1. 本日のゴール 2. 現場の課題から学ぶ AWS WAF
の基本 ▪ 構成図 どう描く? ▪ WAF どこに付ける? ▪ AWS WAF の構成要素が多すぎる! ▪ Default action に要注意 ▪ 誤検知が発生した! ▪ WAF でアクセス制限したはずなのに、アクセスできている! ▪ その他 3. おわりに
1. 本日のゴール 4 AWS WAF の基礎を理解し、安全に設定できるようになる
今回お話ししないこと 5 具体的な設定手順 具体的なルールの内容 具体的な誤検知対応手順 AWS WAF Classic
1. 現場の課題から学ぶ WAF の基本 6
構成図 どう描く? 7 WAF は CloudFront や ALB の前に置けばOK? CloudFront
ALB WAF WAF WAF = Web Application Firewall 1 2 3 4 5 6 7
構成図 どう描く? 8 AWS WAF はどのようにトラフィックをブロックまたは許可しますか? 基礎となるサービスがウェブサイトへのリクエストを受け取ると、 ルールに対して検査するためにそれらのリクエストを AWS WAF
へ転送します。 リクエストがルールで定義された条件を満たすと、 AWS WAF は基礎となるサービスに対し、定義したアクションに基づいて リクエストのブロックまたは許可のいずれかを指⽰します。 https://aws.amazon.com/jp/waf/faqs/ 1 2 3 4 5 6 7
構成図 どう描く? 9 AWS WAF はどのようにトラフィックをブロックまたは許可しますか? 基礎となるサービスがウェブサイトへのリクエストを受け取ると、 ルールに対して検査するためにそれらのリクエストを AWS WAF
へ転送します。 × WAFを通ったリクエストがALBに転送される ◯ ALBに届いたリクエストがWAFに転送される 1 2 3 4 5 6 7 ALB WAF WAF ALB
Security Group 構成図 どう描く? 10 構成図に絶対これという正解は 無いですが、 p.7 のような描き方は 避けた方が良いと考えます
その他、紛らわしい評価順序 • ALBリスナールール → WAF • WAF → Lambda@Edge ビュ ーワーリクエスト • CloudFront地理的一致 ステートメント → WAF CloudFront WAF ALB EC2 ALB WAF EC2 ※色々省略しています! 1 2 3 4 5 6 7
WAF どこに付ける? 11 CloudFront の後ろに ALB が配置されている場合、どちらに WAF を付ける? ALB
AWS WAF CloudFront システム上はどちらにも紐付けられる 1 2 3 4 5 6 7
WAF どこに付ける? 12 CloudFront の後ろに ALB が配置されている場合、どちらに WAF を付ける? ALB
CloudFront ・全てのリクエストを検査できる ・リクエスト元 IP を検査できる※ CloudFront に紐付ける ※ ALB にリクエストが送信される際に、リクエスト元IPは X-Forwarded-For ヘッダに設定される。 一部の AWS マネージドルールでは、ヘッダの IP 検査ができないほか、 自分で IP を判定条件とするルールを作成する際にも、ヘッダを参照するように指定する必要がある。 ALBに紐付ける ・WAFの費用が下がる可能性がある ・CloudFront の後ろに複数ALBがある場合、 それぞれに異なるWAF ルールを適用できる 1 2 3 4 5 6 7
AWS WAF の構成要素が多すぎる! 13 ルールとルールグループはどう違う? マネージドルールはまた別物? 1 2 3 4
5 6 7
AWS WAF の構成要素が多すぎる! 14 AWS WAF Web ACL IP Set
Regex Pattern Web ACL に直接紐づいた Rule ウェブアクセスコントロールリスト AWS リソースに関連付けて使う、リージョナルリソース 登録されたルールに従い、アクセスをブロック/許可する Rule Group Managed Rule Group ステートメント (条件の定義) + アクション 利用者が作成する 複数 Web ACLで使い回せない 複数の Rule (ステートメント+アクション) を グループ化したもの 利用者が作成する 複数の Web ACL で使い回せる AWS または セキュリティベンダーが作成したルールセット Rule Rule Rule は、Rule のステートメントで使う https://docs.aws.amazon.com/ja_jp/waf/latest/devel operguide/how-aws-waf-works-components.html 1 2 3 4 5 6 7
AWS WAF の構成要素が多すぎる! 15 AWS WAF Web ACL Web ACL
に直接紐づいた Rule リソースを守るため配置された警備員 何もルールを知らされないと、 全員通すor止める しかしないよ! Rule Group Managed Rule Group ステートメント (どんな人が来たら)+アクション(どうする) この警備員専用の通行人チェックルール 警備専門会社が作ったルール集 中身はそれぞれ異なるので、 守るリソースに応じて選ぼう! Rule Rule Rule 複数の警備員で共用できるルール集 「これを選べば どんな環境でも大丈夫!」 というルールは ありません。 詳細は非公開な点も注意 1 2 3 4 5 6 7
Default action に要注意 16 攻撃アクセスをブロックしたいと思って、 Web ACL の default action
を 「Block」 に設定して ALB に紐付けたら、 全部のアクセスが 403 でブロックされてしまった! 攻撃を止めるためにWAFを入れるんだから、 Block でいいよね! 403 Forbidden 1 2 3 4 5 6 7
Default action に要注意 17 Default action は、Web ACL に設定されている全てのルールで Allow/Block
されなかった場合の、WAFの動作を定める設定です。 Allow Block Block Allow/Block ルール 1 ルール 2 ルール 3 default action ルール1の ステートメントに合致 ルール2の ステートメントに合致 ルール3の ステートメントに合致 上記以外 1 2 3 4 5 6 7
Default action に要注意 18 Default action を Allow にする 拒否リスト方式。
指定IPや攻撃パターンに一致するリクエストは ブロックし、その他は許可 Default action を Block にする 許可リスト方式。 ほとんどのアクセスをブロックするが、 指定したIPなどの一部のアクセスのみ許可 検査して 攻撃者でなければ 通ってOK! 基本的に通行NG! 一部の許可された方のみ 通します! 1 2 3 4 5 6 7
誤検知が発生した! 19 WAF でウェブサイトへのアクセスがブロックされてしまった! ファイルアップロードができない... テキスト入力して送信したらエラーに... etc. 1 2 3
4 5 6 7
誤検知が発生した! 20 正規のアクセスであっても、 WAF で攻撃として検知されてしまう場合があります 怪しいので通らせません! コスプレしてる だけの 正規職員 なのですが...
1 2 3 4 5 6 7
誤検知が発生した! 21 導入直後は、検知モード (Count モード) での WAF 運用をおすすめします ルールに基づきアクセスを検査しますが、遮断はしないモードです 業務に支障が出るので、
しばらくは全員通ってOKとします! 怪しくない 怪しい 怪しい 1 2 3 4 5 6 7
最初から防御モード (Block モード) ではだめなの? → 誤検知リスクと、攻撃遮断のトレードオフになります。 正規の通信が遮断されるリスクを 許容してでも、 攻撃遮断を優先したいという場合は、 最初から防御モードという選択も
考えられます。 誤検知が発生した! 22 攻撃を遮断す る 正規の通信を 遮断しない 1 2 3 4 5 6 7
検知 (Count) モードとは? 誤検知が発生した! 23 Allow Block Block Allow ルール
1 ルール 2 default action ルール1の ステートメントに合致 ルール2の ステートメントに合致 ルール3の ステートメントに合致 上記以外 ルール 3 アクションが Allow/Block なら そこで評価終了 正規のアクセスが攻撃とみなされ、 ブロックされてしまう可能性がある 1 2 3 4 5 6 7
誤検知が発生した! 24 Allow Block Block Allow ルール 1 ルール 2
default action ルール1の ステートメントに合致 ルール2の ステートメントに合致 ルール3の ステートメントに合致 上記以外 Count Count ルール 3 ルールのアクションを 検知のみ(Count)に上書きしておく Countアクションの場合、 ステートメントに合致しても、 検査処理は終了せず、 その他のルールで評価される 検知 (Count) モードとは? 1 2 3 4 5 6 7
WAF でアクセス制限したはずなのに、アクセスできている! 25 CloudFront WAF ALB WAFを迂回して アクセスできる 設定になって いませんか?
WAFは 外れていませんか? ルールの内容や 優先順は 適切ですか? IaCなどによる 設定上書きに要注意 ステートメントは シンプルに、 初めて作成したルールは 動作確認を! 1 2 3 4 5 6 7
その他 26 AWS コンソールの Web ACL 詳細の Sampled Request にリクエストが表示されない。
Sampled Request があるから、WAF ログは出力しなくてもいい? 全部は記録されません。 誤検知対応やインシデント対応などのため、ログを出力しておくことを おすすめします。 費用を抑えたいので、Web ACLを使いまわしても良い? 同一 AWS アカウント、同リージョン※のリソースなら、 同じ Web ACL を共用できますが、適用されるルールも共通になります。 運用者が同じかどうか、システム特性が大きく異なっていないか、 など考慮の上で決定することを推奨します。 ※ CloudFront は us-east-1 ではなく global という別扱い。 Web ACL ALB ウェブサイトA用 ALB ウェブサイトB用 1 2 3 4 5 6 7
3. おわりに 27 AWS WAF やマネージドルールを使うと、 アプリケーションに保護レイヤーが追加されますが、 セキュリティの責任が AWS に移るわけではありません。
色々と細かく設定できる反面、複雑なところもあります。 まずは基本を押さえて、正しく設定・利用しましょう。
C1WS + AWS WAF と多層防御のすすめ 28
Cloud One Workload Security (C1WS) と AWS WAF の得意領域 29
C1WS AWS WAF 保護レイヤー L3〜L6 (一部 L7※) L7 (一部 L3) 配置先 サーバにインストール サーバの前に配置 主な機能 不正プログラム対策 侵入防御 変更監視 セキュリティログ監視 Webレピュテーション Webアプリへの攻撃防御 ※ C1WS にも、以下の攻撃に対応したルールはありますが、アプリケーション層への対策は WAF を推奨しています。 ・クロスサイトスクリプティング ・SQL インジェクション
どっち使えばいいの? 30 公開サイトであれば、両方使うことをおすすめします!
よくある誤検知 - C1WS 31 侵入防御機能による誤検知 • CMSのコンテンツ更新の遮断 • ApacheServerでファイルのアップロードの検知 不正プログラム対策機能による誤検知
• tmpディレクトリ配下でのPHPファイルの検知
よくある誤検知 - AWS WAF編 32 • 自由入力のフォーム投稿時の誤検知 • ファイルアップロードの誤検知
おわりのおわりに 33 家やオフィスに例えるなら 侵入しやすい構造になっていないか検査し、(雲勉 第114回で登場した CSPM) 出入りする人をきちんと管理し、(同回に登場した IDaaS) 入り口の警備や設備を強化し、(WAF や
L3、L4 のファイアウォール) 室内も警備や監視を行う (C1WS など) など、複数の対策を実施して、 万が一攻撃・侵入を受けた場合でも、被害を最小化できるように備えましょう