Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本

第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本

iret.kumoben

October 18, 2023
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本
    第117回 雲勉【オンライン】
    AWS WAF の基本を押さえて安全に使おう

    View full-size slide

  2. 0.講師自己紹介
    2
    ■ 村上 桃子
    ≫ クラウドインテグレーション事業部 セキュリティセクション
    セキュリティサービスの提供や、
    サービス立ち上げなどを行っています
    ≫ 2021年 6月入社
    ≫ 西の方に行ってみたい今日この頃
    @iret_security

    View full-size slide

  3. アジェンダ
    3
    0. 自己紹介
    1. 本日のゴール
    2. 現場の課題から学ぶ AWS WAF の基本
    ■ 構成図 どう描く?
    ■ WAF どこに付ける?
    ■ AWS WAF の構成要素が多すぎる!
    ■ Default action に要注意
    ■ 誤検知が発生した!
    ■ WAF でアクセス制限したはずなのに、アクセスできている!
    ■ その他
    3. おわりに

    View full-size slide

  4. 1. 本日のゴール
    4
    AWS WAF の基礎を理解し、安全に設定できるようになる

    View full-size slide

  5. 今回お話ししないこと
    5
    具体的な設定手順
    具体的なルールの内容
    具体的な誤検知対応手順
    AWS WAF Classic

    View full-size slide

  6. 1. 現場の課題から学ぶ WAF の基本
    6

    View full-size slide

  7. 構成図 どう描く?
    7
    WAF は CloudFront や ALB の前に置けばOK?
    CloudFront
    ALB
    WAF
    WAF
    WAF = Web Application Firewall
    1 2 3 4 5 6 7

    View full-size slide

  8. 構成図 どう描く?
    8
    AWS WAF はどのようにトラフィックをブロックまたは許可しますか?
    基礎となるサービスがウェブサイトへのリクエストを受け取ると、
    ルールに対して検査するためにそれらのリクエストを AWS WAF へ転送します。
    リクエストがルールで定義された条件を満たすと、
    AWS WAF は基礎となるサービスに対し、定義したアクションに基づいて
    リクエストのブロックまたは許可のいずれかを指⽰します。
    https://aws.amazon.com/jp/waf/faqs/
    1 2 3 4 5 6 7

    View full-size slide

  9. 構成図 どう描く?
    9
    AWS WAF はどのようにトラフィックをブロックまたは許可しますか?
    基礎となるサービスがウェブサイトへのリクエストを受け取ると、
    ルールに対して検査するためにそれらのリクエストを AWS WAF へ転送します。
    × WAFを通ったリクエストがALBに転送される
    ◯ ALBに届いたリクエストがWAFに転送される
    1 2 3 4 5 6 7
    ALB
    WAF
    WAF
    ALB

    View full-size slide

  10. 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

    View full-size slide

  11. WAF どこに付ける?
    11
    CloudFront の後ろに ALB が配置されている場合、どちらに WAF を付ける?
    ALB
    AWS WAF
    CloudFront
    システム上はどちらにも紐付けられる
    1 2 3 4 5 6 7

    View full-size slide

  12. 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

    View full-size slide

  13. AWS WAF の構成要素が多すぎる!
    13
    ルールとルールグループはどう違う?
    マネージドルールはまた別物?
    1 2 3 4 5 6 7

    View full-size slide

  14. 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

    View full-size slide

  15. 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

    View full-size slide

  16. Default action に要注意
    16
    攻撃アクセスをブロックしたいと思って、
    Web ACL の default action を 「Block」 に設定して ALB に紐付けたら、
    全部のアクセスが 403 でブロックされてしまった!
    攻撃を止めるためにWAFを入れるんだから、
    Block でいいよね!
    403
    Forbidden
    1 2 3 4 5 6 7

    View full-size slide

  17. 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

    View full-size slide

  18. Default action に要注意
    18
    Default action を Allow にする
    拒否リスト方式。
    指定IPや攻撃パターンに一致するリクエストは
    ブロックし、その他は許可
    Default action を Block にする
    許可リスト方式。
    ほとんどのアクセスをブロックするが、
    指定したIPなどの一部のアクセスのみ許可
    検査して
    攻撃者でなければ
    通ってOK!
    基本的に通行NG!
    一部の許可された方のみ
    通します!
    1 2 3 4 5 6 7

    View full-size slide

  19. 誤検知が発生した!
    19
    WAF でウェブサイトへのアクセスがブロックされてしまった!
    ファイルアップロードができない...
    テキスト入力して送信したらエラーに...
    etc.
    1 2 3 4 5 6 7

    View full-size slide

  20. 誤検知が発生した!
    20
    正規のアクセスであっても、
    WAF で攻撃として検知されてしまう場合があります
    怪しいので通らせません!
    コスプレしてる
    だけの
    正規職員
    なのですが...
    1 2 3 4 5 6 7

    View full-size slide

  21. 誤検知が発生した!
    21
    導入直後は、検知モード (Count モード) での WAF 運用をおすすめします
    ルールに基づきアクセスを検査しますが、遮断はしないモードです
    業務に支障が出るので、
    しばらくは全員通ってOKとします!
    怪しくない
    怪しい
    怪しい
    1 2 3 4 5 6 7

    View full-size slide

  22. 最初から防御モード (Block モード) ではだめなの?
    → 誤検知リスクと、攻撃遮断のトレードオフになります。
    正規の通信が遮断されるリスクを
    許容してでも、
    攻撃遮断を優先したいという場合は、
    最初から防御モードという選択も
    考えられます。
    誤検知が発生した!
    22
    攻撃を遮断す

    正規の通信を
    遮断しない
    1 2 3 4 5 6 7

    View full-size slide

  23. 検知 (Count) モードとは?
    誤検知が発生した!
    23
    Allow
    Block
    Block
    Allow
    ルール 1
    ルール 2
    default action
    ルール1の
    ステートメントに合致
    ルール2の
    ステートメントに合致
    ルール3の
    ステートメントに合致
    上記以外
    ルール 3
    アクションが Allow/Block なら
    そこで評価終了
    正規のアクセスが攻撃とみなされ、
    ブロックされてしまう可能性がある
    1 2 3 4 5 6 7

    View full-size slide

  24. 誤検知が発生した!
    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

    View full-size slide

  25. WAF でアクセス制限したはずなのに、アクセスできている!
    25
    CloudFront WAF
    ALB
    WAFを迂回して
    アクセスできる
    設定になって
    いませんか?
    WAFは
    外れていませんか?
    ルールの内容や
    優先順は
    適切ですか?
    IaCなどによる
    設定上書きに要注意
    ステートメントは
    シンプルに、
    初めて作成したルールは
    動作確認を!
    1 2 3 4 5 6 7

    View full-size slide

  26. その他
    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

    View full-size slide

  27. 3. おわりに
    27
    AWS WAF やマネージドルールを使うと、
    アプリケーションに保護レイヤーが追加されますが、
    セキュリティの責任が AWS に移るわけではありません。
    色々と細かく設定できる反面、複雑なところもあります。
    まずは基本を押さえて、正しく設定・利用しましょう。

    View full-size slide

  28. C1WS + AWS WAF と多層防御のすすめ
    28

    View full-size slide

  29. Cloud One Workload Security (C1WS) と AWS WAF の得意領域
    29
    C1WS AWS WAF
    保護レイヤー L3〜L6
    (一部 L7※)
    L7
    (一部 L3)
    配置先
    サーバにインストール サーバの前に配置
    主な機能
    不正プログラム対策
    侵入防御
    変更監視
    セキュリティログ監視
    Webレピュテーション
    Webアプリへの攻撃防御
    ※ C1WS にも、以下の攻撃に対応したルールはありますが、アプリケーション層への対策は WAF を推奨しています。
    ・クロスサイトスクリプティング ・SQL インジェクション

    View full-size slide

  30. どっち使えばいいの?
    30
    公開サイトであれば、両方使うことをおすすめします!

    View full-size slide

  31. よくある誤検知 - C1WS
    31
    侵入防御機能による誤検知
    ● CMSのコンテンツ更新の遮断
    ● ApacheServerでファイルのアップロードの検知
    不正プログラム対策機能による誤検知
    ● tmpディレクトリ配下でのPHPファイルの検知

    View full-size slide

  32. よくある誤検知 - AWS WAF編
    32
    ● 自由入力のフォーム投稿時の誤検知
    ● ファイルアップロードの誤検知

    View full-size slide

  33. おわりのおわりに
    33
    家やオフィスに例えるなら
    侵入しやすい構造になっていないか検査し、(雲勉 第114回で登場した CSPM)
    出入りする人をきちんと管理し、(同回に登場した IDaaS)
    入り口の警備や設備を強化し、(WAF や L3、L4 のファイアウォール)
    室内も警備や監視を行う (C1WS など)
    など、複数の対策を実施して、
    万が一攻撃・侵入を受けた場合でも、被害を最小化できるように備えましょう

    View full-size slide