20171222_owasp_okinawa

 20171222_owasp_okinawa

Aab7c6d658aacb246ad1c26e3bf95d9b?s=128

okazaki hajime

December 22, 2017
Tweet

Transcript

  1. パブリッククラウドの セキュリティ(AWS編) OWASP in OKINAWA 2017/12/22 岡崎

  2. 自己紹介(1) ◎ 氏名:岡崎 創 ◎ 出身:埼玉県春日部市 ◎ 所属:株式会社サイバーエージェント    アドテク本部セキュリティグループ    セキュリティエンジニア ◎

    資格:情報処理安全確保支援士 登録番号:第000479号
  3. 自己紹介(2) ◎ 職歴 ◉ 情報系大学卒業 ◉ LAMP環境のフロントエンジニア:3年位 ◉ その後、LAMP環境インフラエンジニア :3年位

    ◉ その後、Webアプリケーションの脆弱性診断 :1年位 ◉ その後、サイバーエージェントに入社 (2015/6〜)
  4. 本題1

  5. 皆さん、こんな記事 知ってますでしょうか 参考:  https://aws.amazon.com/jp/blogs/security/new-security-whitepaper -now-available-use-aws-waf-to-mitigate-owasps-top-10-web-applic ation-vulnerabilities/

  6. “ 簡単に説明しますと、 AWS WAFはOWASP Top 10に対応可能で す。(2017/7) 参考:https://d0.awsstatic.com/whitepapers/Security/aws-waf-owasp.pdf

  7. OWASP TOP 10 参考: https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf

  8. 様々なところで参照されている 「OWASP TOP 10」

  9. “ ですが、WAFだけでは、 防げない攻撃がいっぱいあります 参考:https://d0.awsstatic.com/whitepapers/Security/aws-waf-owasp.pdf

  10. “ ということで、 アドテクスタジオで行っている セキュリティ強化を ご紹介します

  11. 本題2

  12. アドテクスタジオでの AWSのセキュアな使い方

  13. “ Single Sign Onの活用

  14. 背景 ◎ アドテクスタジオでは数多くのAWSアカウントが 存在 ◎ AWSアカウントごとにIAMアカウントとIAMサイ ンインリンクを管理するのは面倒 ◎ ルートアカウントはセキュリティチームで管理した い

    ー> SSOできないか
  15. 1,AWSマネジメントコンソールへのログイン ◎ アドテクスタジオでは、 「PingFederate」を利用して、SSOし ています ◉ ルートアカウントの利用禁止 ◎ DataStoreには、LDAPを利用 ◎

    社内からは1段階認証 ◎ 社外からは2段階認証 詳細: https://adtech.cyberagent.io/techblog/archives/2822
  16. SSO ◎ 一度のユーザ認証処理によって独立した複数のソフトウェアシステム上 のリソースが利用可能になる特性である。 ◎ アイデンティティ管理を連邦化(federate)することによって、ひとつの組織 (管理ドメイン)を超えて他の管理ドメインのWebサーバにも同一のユー ザIDとパスワードの組でログインできるようにする処理 参考:  https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%AA%E3%83%B3

  17. PingFederateとは ◎ SSOを提供するID連携のソフトウェア 参考:https://www.macnica.net/pingidentity/pingfederate.html/

  18. AWSとの連携はSAML ◎ 異なるシステム間で、パスワードなどの機密情報 を送信することなく、認証されたユーザ情報を連 携することで、SSOします 参考:https://www.macnica.net/pingidentity/pingfederate.html/

  19. AWSの場合

  20. 認証の流れ  3,uni:E-mail 1,認証 2,参照 4,OK

  21. ダッシュボード

  22. “ ですが、先日 AWS SSO というものが参上しました(T T)

  23. “ AWS CloudTrailの活用

  24. 背景 ◎ 複数のAWSがあり、一括で確認・監査できない ものか

  25. Cloudtrail log sample "CloudTrailEvent": "{\"eventVersion\":\"1.05\",\"userIdentity\":{\"type\":\"AssumedRole\",\"princi palId\":\"xxxx:xxxx\",\"arn\":\"arn:aws:sts::xxxxx:assumed-role/adtech-aws -xxxx/xxxx\",\"accountId\":\"xxxxx\"},\"eventTime\":\"2017-12-11T08:14:14Z\", \"eventSource\":\"signin.amazonaws.com\",\"eventName\":\"ConsoleLogin\", \"awsRegion\":\"us-east-1\",\"sourceIPAddress\":\"xxxxx\",\"userAgent\":\" Mozilla/5.0

    (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\",\"requestParameters\":null,\"responseElements\":{\"Console Login\":\"Success\"},\"additionalEventData\":{\"LoginTo\":\"https://console.a ws.amazon.com/console/home\",\"MobileVersion\":\"No\",\"MFAUsed\":\"No \",\"SamlProviderArn\":\"arn:aws:iam::xxxxx:saml-provider/adtech-aws-xx xxx\"},\"eventID\":\"xxxxx\",\"eventType\":\"AwsConsoleSignIn\",\"recipient AccountId\":\"xxx\"}", "EventName": "ConsoleLogin", "Resources": [], "timestamp": "2017-12-11T17:14:14+0900" },
  26. 2,CloudTrail(操作ログ)の活用1 ◎ CloudTrail ー> ElasticSearch ー> Kibana (watcher) ー> Slack

  27. 2,CloudTrailの活用2 ◎ フェデレーションユーザーのログインや rootログイン・ログインエラー回数などを監視 ◎ また、AWSごとのイベント数などを可視化

  28. “ どんどん行きましょう

  29. “ AWS セキュリティグループの問題

  30. セキュリティグループぐちゃぐちゃ問題1 ◎ ファイアウォール ー> ネットワークエンジニア ◎ AWSセキュリティグループ ー> アプリケーションエンジニア 参考: https://adtech.cyberagent.io/techblog/archives/2966 第7層 アプリケーション層 第6層 プレゼンテーション層 第5層 セッション層 第4層 トランスポート層

    第3層 ネットワーク層 第2層 データリンク層 第1層 物理層 アプリケーション  エンジニア ネットワーク  エンジニア
  31. セキュリティグループぐちゃぐちゃ問題2 ◎ 「あれ、これはなんの設定?」 ◎ 「このソースIPは、どこの顧客・パートナーのだろう?」 よって、 ◎ 似たようなポリシーが複数存在 ◎ どこのソースIPか、なんのためのポート許可か分からなくなって

    しまい ◎ セキュリティグループのアタッチ状態がぐちゃぐちゃ
  32. よって、設定を変更するのが怖くなる *その為、インスタンスによっては通常閉じておくべきポートが空い ており、攻撃されることがあります。

  33. “ 便利なツールがあります

  34. Scout2 git clone https://github.com/nccgroup/Scout2 cd Scout2 pip install -r requirements.txt

    python setup.py install #実行 /usr/local/bin/Scout2 --profile productA --report-dir /home/scout2/www/productA/ --force 参考: https://nccgroup.github.io/Scout2/
  35. Scout2 ◎ Compute > EC2 > Security gropus 利用されている 利用されていない > 不要なセキュリティグループ

  36. “ Scout2を利用することで、 セキュリティグループを整理することがで きます

  37. “ セキュリティグループの関連で Portの監視

  38. “ Scout2を利用することで、 セキュリティグループを整理することはできましたが、 実際のそのポートが利用されているかの確認が必要

  39. AWS CLI × Nampを活用 nmap -P0 -sV -p 許可ポート instanceAのpublicIP

  40. ポートチェック結果 xx.xx.xx.xx 4000/tcp open ssl/remoteanything? xx.xxx.xx.x 80/tcp open http Apache

    httpd 2.2.29 xx.xx.xx.x 443/tcp closed https xx.xx.xxx.xxx 80/tcp filtered http xx.xx.xxx.xxx 110/tcp filtered pop3 xx.xx.xxx.x 25/tcp filtered smtp xx.xx.xxx.xx 143/tcp filtered imap xx.xx.xxx.xxx 80/tcp filtered http *nmapを実行する前に「AWS侵入テスト申請」出しましょう
  41. “ おまけ 最近、AWSにセキュリティ系で、 新サービスがでました

  42. “ AWS Guard Duty AWS上のセキュリティ問題点を教えてくれる

  43. 結果 参考: https://adtech.cyberagent.io/techblog/archives/3810 Unprotected port on EC2 instance i-0xxxxxx is being

    probed. Unprotected port on EC2 instance i-0yyyyyy is being probed. Unprotected port on EC2 instance i-0zzzzzz is being probed. Unprotected port on EC2 instance i-0aaaaaa is being probed.
  44. 結果 参考: https://adtech.cyberagent.io/techblog/archives/3810 Unprotected port on EC2 instance i-0xxxxxx is being

    probed. Unprotected port on EC2 instance i-0yyyyyy is being probed. Unprotected port on EC2 instance i-0zzzzzz is being probed. Unprotected port on EC2 instance i-0aaaaaa is being probed. 「ポート22がインターネットに  公開されているよ」
  45. “ Guard Duty便利やん! *費用はかかります

  46. “ その他 社内用ガイドライン

  47. 社内用ガイドライン(AWS編) ◎ AWS責任共有モデルを理解しましょう ◎ ルートアカウントは使用しないようにしましょう ◎ CloudTrailは有効にしましょう ◎ 機密情報をS3に保存する場合はS3にしましょう など、40項目ほど

  48. “ パブリッククラウドを利用する際は、 セキュリティ面にも注意しましょう

  49. Thanks!