Cyber Security Cloud , Inc.
AWS WAFの自動運用
11
AWS WAF を使いこなそう
Security JAWS 第13回
取締役 CTO 渡辺 洋司
• 難しいと思われがちなセキュリティを簡単にすべく
日々サービス開発しております
• Security-JAWS 【第4回】2017年2月24日(金)
LT 枠で登壇させていただきました。
株式会社サイバーセキュリティクラウド
• クラウド型 WAF の攻撃遮断くん、 AWS WAF
向けサービス WafCharm を提供しています。
Cyber Security Cloud , Inc.
AWS WAFの自動運用
3
Security JAWS 第4回
WAF とは
Cyber Security Cloud , Inc.
AWS WAFの自動運用
44
理解する
Cyber Security Cloud , Inc.
AWS WAFの自動運用
5
AWS WAF とは
ルール
10個で不安
WAF とは
 AWS が 提供する Web Application Firewall
 L7(HTTP/HTTPS) アプリケーション層の防御
 SQL Injection や XSS, アプリケーション固有の攻撃に対応
 ブラックリストやホワイトリストを表現するルール
 セキュリティベンダが提供する Managed Rules
 Web ACL にルールを設定する
 1つの Web ACL に設定可能なルール数は 10個 (2019/05 現在)
 CloudFront, ALB, API Gateway に Web ACL を関連付けして利用開始(1:1)
 使った分だけお支払い
Cyber Security Cloud , Inc.
AWS WAFの自動運用
6
AWS WAF ルール構造
WAF とは
※ 図中のデータ型は便宜的に指定しています
Cyber Security Cloud , Inc.
AWS WAFの自動運用
7
AWS WAF ルール構造
Cyber Security Cloud , Inc.
AWS WAFの自動運用
8
AWS WAF ルール構造:Rules
 1回のリクエストで Action を実行する Regular rule
 Rate Limit 回で Action を実行する Rate-based rule
 Rule に設定可能なCondition は同じ
Cyber Security Cloud , Inc.
AWS WAFの自動運用
9
AWS WAF ルール構造:Conditions
SQL Injection 対策
XSS 対策
Geo IP ベースでの国単位での条件
IP アドレス 単位での条件
データサイズによる条件
文字列パターンによる条件
正規表現パターンによる条件
Cyber Security Cloud , Inc.
AWS WAFの自動運用
10
AWS WAF ルール構造:Filters
WAF とは
Cyber Security Cloud , Inc.
AWS WAFの自動運用
11
AWS WAF ルール構造
WAF とは
Cyber Security Cloud , Inc.
AWS WAFの自動運用
12
AWS WAF ルール動作
① Condition 内の Filter は OR 条件
Condition 内の Filter のどれか1つでも満たすこと
② Rule 内の Condition は AND 条件
Rule 内の Condition の全てが満たされること
Condition は
“does match” or “does not match”
で条件の指定が可能。大抵 does match
③ Rule が True の場合に Action(Allow, Block, Count) 実行
Rule は Priority 順に評価され、True があった時点で評価終了
どの Rule にも マッチしなかった場合、Default Action (Allow, Block) を実行
and and
oror
Filters in Condition
Conditions in Rule
Cyber Security Cloud , Inc.
AWS WAFの自動運用
1313
AWS WAF Managed Rules
低価格
すぐに簡単に導入できる
マネージドルールの更新はベンダー任せ
WAFとしての機能を十分に果たせる
メリット
サポート対応がメール対応のみ
マネージドルール以外はサポート対象外
誤検知時の気づきが遅れる
誤検知時のチューニングができない
運用上の課題
2019年2月より
世界で7社目の
Managed Rules セラーに
Cyber Security Cloud , Inc.
AWS WAFの自動運用
1414
使う
Cyber Security Cloud , Inc.
AWS WAFの自動運用
15
AWS WAF で の実運用を想定したルール設計
① OWASP Top 10 のうち 一般的な攻撃を防御する
② 問題のあるIP アドレスをブラックリストで防御する
③ 一定サイズ以上のリクエストを防御する
④ アプリケーション全体のホワイトリスト(IP)
⑤ ルールに対するホワイト(除外)リスト(Path)
⑥ アプリケーション固有の脆弱性を防御する(本資料範囲外)
⑦ Managed Rules を利用する(本資料範囲外)
Cyber Security Cloud , Inc.
AWS WAFの自動運用
16
AWS WAF » 開発者ガイド » AWS WAF » チュートリアル
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/tutorials.html
チュートリアル
・チュートリアル: 一般的な攻撃に対する保護のための AWS WAF の迅速な設定
・チュートリアル: 不正なリクエストを送信する IP アドレスのブロック
・チュートリアル: AWS サービスを使用した DDoS 耐性を備えたウェブサイトの実装
Cyber Security Cloud , Inc.
AWS WAFの自動運用
17
一般的な攻撃に対する保護のための AWS WAF の迅速な設定
① クロスサイトスクリプティング攻撃
攻撃者は、ウェブアプリケーションの脆弱性を悪用するために、スクリプトをウェブリクエス
トに挿入することがあります。クロスサイトスクリプティング一致条件では、AWS WAF によっ
て悪意のあるスクリプトが検査されるウェブリクエストの部分 (URI やクエリ文字列など) を識
別します。
② SQL インジェクション攻撃
攻撃者は、データベースからデータを抽出するために、ウェブリクエストに悪意のある SQL
コードを挿入することがあります。SQL インジェクション一致条件では、AWS WAF によって悪
意のある SQL コードが検査されるウェブリクエストの部分を識別します。
③ 既知の不正な IP アドレスからの攻撃
IP 一致条件を使用して、ウェブリクエストをその発生元の IP アドレスに基づいて、許可、ブ
ロック、またはカウントできます。IP 一致条件では、特定の IP アドレスまたは IP アドレス範
囲を 1,000 個まで指定できます。
Cyber Security Cloud , Inc.
AWS WAFの自動運用
18
一般的な攻撃に対する保護のための AWS WAF の迅速な設定
① チュートリアルにある CloudFormation をつかってルールを投入する
https://s3.amazonaws.com/cloudformation-examples/community/common-attacks.json
② 設定を確認する
Cyber Security Cloud , Inc.
AWS WAFの自動運用
19
一般的な攻撃に対する保護のための AWS WAF の迅速な設定
Order Rules Action Condition Filter
1 ManualIPBlockRule Block IP Match 1. IP Address
2 LargeBodyMatchRule Count Size Constraint 1. Size Constraint
3 SqliRule Block SQL Injection 1. Body after decoding as HTML tags
2. Body after decoding as URL
3. QueryString after decoding as HTML tags
4. QueryString after decoding as URL
5. URI after decoding as URL
4 XssRule Block Cross-Site Scripting 1. Body after decoding as HTML tags
2. Body after decoding as URL
3. QueryString after decoding as HTML tags
4. QueryString after decoding as URL
5. URI after decoding as URL
Cyber Security Cloud , Inc.
AWS WAFの自動運用
2020
使いこなす
Cyber Security Cloud , Inc.
AWS WAFの自動運用
21
アプリケーション全体のホワイトリストを設定する
Order Rules Action Condition Filter
1 ManualIPWhiteRule Allow IP Match 1. IP Address
2 ManualIPBlockRule Block IP Match 1. IP Address
3 LargeBodyMatchRule Count Size Constraint 1. Size Constraint
4 SqliRule Block SQL Injection 1. Body after decoding as HTML tags
2. Body after decoding as URL
3. QueryString after decoding as HTML tags
4. QueryString after decoding as URL
5. URI after decoding as URL
5 XssRule Block Cross-Site Scripting 1. Body after decoding as HTML tags
2. Body after decoding as URL
3. QueryString after decoding as HTML tags
4. QueryString after decoding as URL
5. URI after decoding as URL
特定のIPアドレスからのアクセスは WAF で防御させたくない
「条件にマッチした IP Address は Allow する」ルールを作る
Rule はマッチした時点で評価が終了するので、作成したルールは検知させたくないルールより優先度を高くする。
Black List との違いは、 Rule の Action が Allow/Block の違い。
Cyber Security Cloud , Inc.
AWS WAFの自動運用
22
ルールに対するホワイト(除外)リストを設定する
Order Rules Action Condition Filter
1 ManualIPWhiteRule Allow IP Match 1. IP Address
2 ManualIPBlockRule Block IP Match 1. IP Address
3 LargeBodyMatchRule Count Size Constraint 1. Size Constraint
4 SqliRule Block SQL Injection 1. Body after decoding as HTML tags
2. Body after decoding as URL
3. QueryString after decoding as HTML tags
4. QueryString after decoding as URL
5. URI after decoding as URL
5 XssRule Block Cross-Site Scripting 1. Body after decoding as HTML tags
2. Body after decoding as URL
3. QueryString after decoding as HTML tags
4. QueryString after decoding as URL
5. URI after decoding as URL
String Match
(does not match)
1. Contains /パス文字列/
特定のパスでは XSS を検知させない(例: CMS で HTML/JSをアップロードする)
XssRule に「指定したパスを含む にマッチしない(does not match)」Condition を追加する
Condition は AND で評価されるため、「パスにマッチしない」が成立する場合のみ XSS 評価と合せて評価される。
つまり、指定のパスを含む場合、「パスにマッチしない」が成立しないため、AND 条件を不成立とすることができる。
Cyber Security Cloud , Inc.
AWS WAFの自動運用
23
ルール10個以上/複数のManaged Rulesを使いたい
Elastic Load BalancingAmazon CloudFront
AWS WAF AWS WAF
AWS Cloud
Application
AWS WAF
AWS Cloud
Elastic Load Balancing
AWS WAF
ApplicationReverse
Proxy
・・・・・
CloudFront + ALB
• ルールは10 × 2個
• Managed Rules は1 × 2 個
Elastic Load Balancing
ALB + ReverseProxy (N段)
• ルールは10 × N 個
• Managed Rules は 1 × N個
※ IPアドレスに関する Rule は先頭の WAF へ設定
Cyber Security Cloud , Inc.
AWS WAFの自動運用
2424
お任せする
Cyber Security Cloud , Inc.
AWS WAFの自動運用
25
www.example.com
Access Log
AWS WAF
AWS Cloud
Filtering rule
Filtering rule
Amazon Simple Storage Service
(S3)
Amazon API GatewayElastic Load BalancingAmazon CloudFront
App Analyze Access Log
Automated Update Black List IP
Automated Deploy Filtering Rules
&
Customized by Support Team
Cyber Security Cloud , Inc.
AWS WAFの自動運用
2626
1 Web ACL へ自動でルールを選定し設定
5 Managed Rules の個々のルール除外を簡単に設定可能
6 除外したルールも通常のルールでカスタマイズ可能
2 検知メール、レポートで運用状況の把握が可能
3 エンジニアによるルールの個別カスタマイズ
4 Managed Rules の検知通知サポート
Cyber Security Cloud , Inc.
AWS WAFの自動運用
2727
ご清聴ありがとうございました
We are hiring!!

AWS WAF を使いこなそう Security JAWS #13

  • 1.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 11 AWS WAF を使いこなそう Security JAWS 第13回
  • 2.
    取締役 CTO 渡辺洋司 • 難しいと思われがちなセキュリティを簡単にすべく 日々サービス開発しております • Security-JAWS 【第4回】2017年2月24日(金) LT 枠で登壇させていただきました。 株式会社サイバーセキュリティクラウド • クラウド型 WAF の攻撃遮断くん、 AWS WAF 向けサービス WafCharm を提供しています。
  • 3.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 3 Security JAWS 第4回 WAF とは
  • 4.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 44 理解する
  • 5.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 5 AWS WAF とは ルール 10個で不安 WAF とは  AWS が 提供する Web Application Firewall  L7(HTTP/HTTPS) アプリケーション層の防御  SQL Injection や XSS, アプリケーション固有の攻撃に対応  ブラックリストやホワイトリストを表現するルール  セキュリティベンダが提供する Managed Rules  Web ACL にルールを設定する  1つの Web ACL に設定可能なルール数は 10個 (2019/05 現在)  CloudFront, ALB, API Gateway に Web ACL を関連付けして利用開始(1:1)  使った分だけお支払い
  • 6.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 6 AWS WAF ルール構造 WAF とは ※ 図中のデータ型は便宜的に指定しています
  • 7.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 7 AWS WAF ルール構造
  • 8.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 8 AWS WAF ルール構造:Rules  1回のリクエストで Action を実行する Regular rule  Rate Limit 回で Action を実行する Rate-based rule  Rule に設定可能なCondition は同じ
  • 9.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 9 AWS WAF ルール構造:Conditions SQL Injection 対策 XSS 対策 Geo IP ベースでの国単位での条件 IP アドレス 単位での条件 データサイズによる条件 文字列パターンによる条件 正規表現パターンによる条件
  • 10.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 10 AWS WAF ルール構造:Filters WAF とは
  • 11.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 11 AWS WAF ルール構造 WAF とは
  • 12.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 12 AWS WAF ルール動作 ① Condition 内の Filter は OR 条件 Condition 内の Filter のどれか1つでも満たすこと ② Rule 内の Condition は AND 条件 Rule 内の Condition の全てが満たされること Condition は “does match” or “does not match” で条件の指定が可能。大抵 does match ③ Rule が True の場合に Action(Allow, Block, Count) 実行 Rule は Priority 順に評価され、True があった時点で評価終了 どの Rule にも マッチしなかった場合、Default Action (Allow, Block) を実行 and and oror Filters in Condition Conditions in Rule
  • 13.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 1313 AWS WAF Managed Rules 低価格 すぐに簡単に導入できる マネージドルールの更新はベンダー任せ WAFとしての機能を十分に果たせる メリット サポート対応がメール対応のみ マネージドルール以外はサポート対象外 誤検知時の気づきが遅れる 誤検知時のチューニングができない 運用上の課題 2019年2月より 世界で7社目の Managed Rules セラーに
  • 14.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 1414 使う
  • 15.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 15 AWS WAF で の実運用を想定したルール設計 ① OWASP Top 10 のうち 一般的な攻撃を防御する ② 問題のあるIP アドレスをブラックリストで防御する ③ 一定サイズ以上のリクエストを防御する ④ アプリケーション全体のホワイトリスト(IP) ⑤ ルールに対するホワイト(除外)リスト(Path) ⑥ アプリケーション固有の脆弱性を防御する(本資料範囲外) ⑦ Managed Rules を利用する(本資料範囲外)
  • 16.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 16 AWS WAF » 開発者ガイド » AWS WAF » チュートリアル https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/tutorials.html チュートリアル ・チュートリアル: 一般的な攻撃に対する保護のための AWS WAF の迅速な設定 ・チュートリアル: 不正なリクエストを送信する IP アドレスのブロック ・チュートリアル: AWS サービスを使用した DDoS 耐性を備えたウェブサイトの実装
  • 17.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 17 一般的な攻撃に対する保護のための AWS WAF の迅速な設定 ① クロスサイトスクリプティング攻撃 攻撃者は、ウェブアプリケーションの脆弱性を悪用するために、スクリプトをウェブリクエス トに挿入することがあります。クロスサイトスクリプティング一致条件では、AWS WAF によっ て悪意のあるスクリプトが検査されるウェブリクエストの部分 (URI やクエリ文字列など) を識 別します。 ② SQL インジェクション攻撃 攻撃者は、データベースからデータを抽出するために、ウェブリクエストに悪意のある SQL コードを挿入することがあります。SQL インジェクション一致条件では、AWS WAF によって悪 意のある SQL コードが検査されるウェブリクエストの部分を識別します。 ③ 既知の不正な IP アドレスからの攻撃 IP 一致条件を使用して、ウェブリクエストをその発生元の IP アドレスに基づいて、許可、ブ ロック、またはカウントできます。IP 一致条件では、特定の IP アドレスまたは IP アドレス範 囲を 1,000 個まで指定できます。
  • 18.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 18 一般的な攻撃に対する保護のための AWS WAF の迅速な設定 ① チュートリアルにある CloudFormation をつかってルールを投入する https://s3.amazonaws.com/cloudformation-examples/community/common-attacks.json ② 設定を確認する
  • 19.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 19 一般的な攻撃に対する保護のための AWS WAF の迅速な設定 Order Rules Action Condition Filter 1 ManualIPBlockRule Block IP Match 1. IP Address 2 LargeBodyMatchRule Count Size Constraint 1. Size Constraint 3 SqliRule Block SQL Injection 1. Body after decoding as HTML tags 2. Body after decoding as URL 3. QueryString after decoding as HTML tags 4. QueryString after decoding as URL 5. URI after decoding as URL 4 XssRule Block Cross-Site Scripting 1. Body after decoding as HTML tags 2. Body after decoding as URL 3. QueryString after decoding as HTML tags 4. QueryString after decoding as URL 5. URI after decoding as URL
  • 20.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 2020 使いこなす
  • 21.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 21 アプリケーション全体のホワイトリストを設定する Order Rules Action Condition Filter 1 ManualIPWhiteRule Allow IP Match 1. IP Address 2 ManualIPBlockRule Block IP Match 1. IP Address 3 LargeBodyMatchRule Count Size Constraint 1. Size Constraint 4 SqliRule Block SQL Injection 1. Body after decoding as HTML tags 2. Body after decoding as URL 3. QueryString after decoding as HTML tags 4. QueryString after decoding as URL 5. URI after decoding as URL 5 XssRule Block Cross-Site Scripting 1. Body after decoding as HTML tags 2. Body after decoding as URL 3. QueryString after decoding as HTML tags 4. QueryString after decoding as URL 5. URI after decoding as URL 特定のIPアドレスからのアクセスは WAF で防御させたくない 「条件にマッチした IP Address は Allow する」ルールを作る Rule はマッチした時点で評価が終了するので、作成したルールは検知させたくないルールより優先度を高くする。 Black List との違いは、 Rule の Action が Allow/Block の違い。
  • 22.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 22 ルールに対するホワイト(除外)リストを設定する Order Rules Action Condition Filter 1 ManualIPWhiteRule Allow IP Match 1. IP Address 2 ManualIPBlockRule Block IP Match 1. IP Address 3 LargeBodyMatchRule Count Size Constraint 1. Size Constraint 4 SqliRule Block SQL Injection 1. Body after decoding as HTML tags 2. Body after decoding as URL 3. QueryString after decoding as HTML tags 4. QueryString after decoding as URL 5. URI after decoding as URL 5 XssRule Block Cross-Site Scripting 1. Body after decoding as HTML tags 2. Body after decoding as URL 3. QueryString after decoding as HTML tags 4. QueryString after decoding as URL 5. URI after decoding as URL String Match (does not match) 1. Contains /パス文字列/ 特定のパスでは XSS を検知させない(例: CMS で HTML/JSをアップロードする) XssRule に「指定したパスを含む にマッチしない(does not match)」Condition を追加する Condition は AND で評価されるため、「パスにマッチしない」が成立する場合のみ XSS 評価と合せて評価される。 つまり、指定のパスを含む場合、「パスにマッチしない」が成立しないため、AND 条件を不成立とすることができる。
  • 23.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 23 ルール10個以上/複数のManaged Rulesを使いたい Elastic Load BalancingAmazon CloudFront AWS WAF AWS WAF AWS Cloud Application AWS WAF AWS Cloud Elastic Load Balancing AWS WAF ApplicationReverse Proxy ・・・・・ CloudFront + ALB • ルールは10 × 2個 • Managed Rules は1 × 2 個 Elastic Load Balancing ALB + ReverseProxy (N段) • ルールは10 × N 個 • Managed Rules は 1 × N個 ※ IPアドレスに関する Rule は先頭の WAF へ設定
  • 24.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 2424 お任せする
  • 25.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 25 www.example.com Access Log AWS WAF AWS Cloud Filtering rule Filtering rule Amazon Simple Storage Service (S3) Amazon API GatewayElastic Load BalancingAmazon CloudFront App Analyze Access Log Automated Update Black List IP Automated Deploy Filtering Rules & Customized by Support Team
  • 26.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 2626 1 Web ACL へ自動でルールを選定し設定 5 Managed Rules の個々のルール除外を簡単に設定可能 6 除外したルールも通常のルールでカスタマイズ可能 2 検知メール、レポートで運用状況の把握が可能 3 エンジニアによるルールの個別カスタマイズ 4 Managed Rules の検知通知サポート
  • 27.
    Cyber Security Cloud, Inc. AWS WAFの自動運用 2727 ご清聴ありがとうございました We are hiring!!