Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20190208 OWASP TOP10 2017 AWS WAF について

165 views

Published on

20190208 OWASP Nagoya Chapter ミーティング 第9回
OWASP TOP10 2017 AWS WAF について
WordPressの場合

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

20190208 OWASP TOP10 2017 AWS WAF について

  1. 1. 2019.02.08 OWASP Nagoya Masatoshi Nishimura OWASP Top 10 2017 AWS WAF テンプレート について 〜 WordPressの場合 〜 OWASP Nagoya Chapter Meeting #9
  2. 2. 自己紹介 西村 将利(にしむら まさとし) ・株式会社こころみらい 代表取締役  https://cocoro-mirai.co.jp  旧 ニシインターナショナル 代表  https://4649-24.com ・OWASP Nagoya https://www.owasp.org/index.php/Nagoya ・FB https://www.facebook.com/nishimura.masatoshi.3 ・twitter https://twitter.com/BankKeikei55 ・Instagram https://www.instagram.com/masatoshi55
  3. 3. アジェンダ 1.AWS WAFとは? 2.OWASP Top 10 2017   テンプレートとは? 3.使ったAWSサービスと構築中のつまずき 4.OWASP Top 10 2017 テンプレートのメリット/気をつけるべき所 5.AWS WAF のメリット/気をつけるべき所
  4. 4. 1.AWS WAFとは? ① ● 正式名称 AWS WAF and AWS Shield ● コンソールでは、 「セキュリティ、 アイデンティ ティ、 コンプライアンス」の 「WAF&Shield」
  5. 5. 1.AWS WAFとは? ② 1 ルールセットのテンプレート(ymlファイルなど)を使ったり、 自ら条件とルールを登録してhttp/httpsリクエストのAllow/Block/Countを行うこ ともできるWAFサービス 2 ルールセットはマネージドと非マネージド Managed Rules セラー (F5 Networks , FORTINET , TREND MICRO , etc..) 3 テンプレートをS3バケットに保存、AWS CloudFormationでS3のURLを読み込 み、スタックをつくる。AWS WAFのWeb ACLsでスタックのRulesをELBへ紐づ けてWAFとして使う
  6. 6. 1.AWS WAFとは? ③ 4 AWS CloudFront(CDN)かELB(LoadBalancer)に紐づけて使用 API Gatewayでも使える 5 httpとhttpsのリクエストに対するシグネチャに基づいたセキュリティを提供。物理 層のL1等、カバーしていない層のセキュリティ対策は別で必要 6 CloudWatchで監視可能。フィルタ条件に一致するリクエストを監視、アラートな ども可能。誤検知分析はAWS WAFのログをFirehorseでストリ―ミング、S3保 存、Athenaで分析など、いろいろな手法がある
  7. 7. 2.OWASP Top 10 2017 AWS WAF テンプレート? OWASP Top 10 2017 ルールセット テンプレート 非マネージド OWASP Top 10 20×× の場合、 自分でテンプレート交換、設定 有償マネージドルールと異なる
  8. 8. 2.OWASP Top 10 2017 AWS WAF テンプレート? 1 github https://github.com/aws-samples/aws-waf-sample/tree/master/waf-owasp-top-10 2 Use AWS WAF to Mitigate OWASP’s Top 10 Web Application Vulnerabilities https://d0.awsstatic.com/whitepapers/Security/aws-waf-owasp.pdf 3 AWSがS3で提供するダウンロードリンク https://aws.amazon.com/jp/about-aws/whats-new/2017/07/use-aws-waf-to-mitigate-owasps-to p-10-web-application-vulnerabilities/
  9. 9. 2.OWASP Top 10 2017 AWS WAF テンプレート? OWASP Top10 2017 AWS WAF テンプレート https://github.com/aws-samples/aws-waf-s ample/tree/master/waf-owasp-top-10 ● AWS CloudFormation用テンプレート WebACL(アクセスコントロールリスト) Rule(ルール) Condition(条件) ● スタートキットであり、利用者自身でカスタマイ ズを行っていく事を作者が推奨
  10. 10. 2.OWASP Top 10 2017 AWS WAF テンプレート? ● owasp_10_base.ymlファイル本体 https://github.com/aws-samples/a ws-waf-sample/blob/master/waf-o wasp-top-10/owasp_10_base.yml ● 1200行くらいで1つのymlファイル ● AWS CloudFormation向け
  11. 11. 2.OWASP Top 10 2017 AWS WAF テンプレート? OWASP Top10 2017 AWS WAF テン プレートダウンロードリンク https://aws.amazon.com/jp/about -aws/whats-new/2017/07/use-aw s-waf-to-mitigate-owasps-top-10- web-application-vulnerabilities/
  12. 12. 3.使ったAWSサービス IAM CloudWatch VPC ACM(AWS Certificate Manager) Route53 ALB(Application Load Balancer) ElasticIP CloudFormation KMS(Key Management Service) S3 EC2 AWS WAF(WAF&Shield) AWS WAFを使う場合、ELB か ColudFront が必須
  13. 13. 3.使ったAWSサービス
  14. 14. 3.構築中のつまずき① ALBにACMを設定、 WordPressダッシュボード ログインできなくなった!
  15. 15. 3.構築中のつまずき①対策 ①.htaccessの非SSLからSSLへのリダイレクト実装 ②データベース内の非SSLパスをSSL化置換 ③wp-config.phpに以下を記載 $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; ④https://やhttp://を固定的に出力してしまうphp関数から  https:やhttp:をpreg_replaceやstr_replaceで除去 ※全て、WEBサーバーがApacheの場合です
  16. 16. 3.構築中のつまずき② ALBにAWS WAFを設定、 WordPressダッシュボード また、ログインできなくなった!
  17. 17. 3.構築中のつまずき②対策 ・EDIT web ACL WAF RulesのActionをBlockからAllowに 1個ずつ変更して、ダッシュボードログイン 可否確認。原因ルールを探す ・Allowにしたものはアプリケーション側で 対応を検討 WAF&Shield
  18. 18. 3.構築中のつまずき②対策 OWASP Top 10 2017 Template × AWS WAF × WordPress 5.0.3の場合 generic-enforce-csrf (OWASP Top 10 2017 A8) Allowに変えて アプリケーション側で x-csrf-tokenの実装対応
  19. 19. 3.構築中のつまずき②対策 generic-detect-ssi (OWASP Top 10 2017 A9) Allowに変えて、 該当ファイルパーミッションを 400などに変更 OWASP Top 10 2017 Template × AWS WAF × WordPress 5.0.3の場合
  20. 20. 3.参考 generic-detect-admin-access (OWASP Top 10 2017 A4) のConditionsを以下の様に変更、 allowにする ● 自社の固定IP ● wp-admin ● wp-login.php ※ログインURLを変更した場合、 上記を変更後のURLに変える OWASP Top 10 2017 Template × AWS WAF × WordPress 5.0.3の場合
  21. 21. 4.OWASP Top 10 テンプレートのメリット ● 無料 ● 2019年2月の時点で、OWASP Top 10 2017 テンプレートなので、 次のOWASP Top10 20××の時に新バージョンが出てくる可能性 ● OWASP Top 10 2017の対策は何をしていくといいのか、 具体的に記載されているので理解しやすい
  22. 22. 4.OWASP Top 10 テンプレートの気をつけるべき所 ● 非マネージドルールのテンプレート(OWASP Top 10 2017テンプレート)を使う場合、設定 最適化を利用者自身で行う必要がある、OWASP Top 10 2017から アプリケーション側ま で幅広いスキルが必要 ● OWASP Top 10 20×× がリリースされて、新テンプレートが出てきたらテンプレート交換は 自分の手で行う必要がある
  23. 23. 5.AWS WAFのメリット ● 初期設定簡単。ALBとEC2の間でRoute53のAレコードではなく、 ALBエイリアスを使えるのでイージーミスを減らしやすい ● ルールや条件のカスタマイズ作業がやりやすい。EC2再起動不要 即反映で設定検証しやすい ● CloudWatchを合わせて使ったり、いろいろな方法で監視可能、アラートも可能 ● 安い。リクエスト数とルール数による従量課金 リクエスト数を抑える技術力があるとかなり安く出来る ● ルールのテンプレートを同じAWSアカウント内で共有できる
  24. 24. 5.AWS WAFの気をつけるべき所 ● AWSのELBかCloudFront、CloudFormationやS3やRoute53あたりが必要 EC2とAWS WAFの2つだけでは使えない ● ルールセットテンプレートは有償マネージドルールか?非マネージドルールか? 非マネージドはルール更新が手動 ● 誤検知などの監視やアラートの運用も必要 ● ルール内容を理解出来ないと誤検知対応が難しい

×