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

20171222_owasp_okinawa

 20171222_owasp_okinawa

okazaki hajime

December 22, 2017
Tweet

More Decks by okazaki hajime

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介(1)
    ◎ 氏名:岡崎 創
    ◎ 出身:埼玉県春日部市
    ◎ 所属:株式会社サイバーエージェント
       アドテク本部セキュリティグループ
       セキュリティエンジニア
    ◎ 資格:情報処理安全確保支援士
    登録番号:第000479号

    View Slide

  3. 自己紹介(2)
    ◎ 職歴
    ◉ 情報系大学卒業
    ◉ LAMP環境のフロントエンジニア:3年位
    ◉ その後、LAMP環境インフラエンジニア
    :3年位
    ◉ その後、Webアプリケーションの脆弱性診断
    :1年位
    ◉ その後、サイバーエージェントに入社
    (2015/6〜)

    View Slide

  4. 本題1

    View Slide

  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/

    View Slide


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

    View Slide

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

    View Slide

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

    View Slide


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

    View Slide


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

    View Slide

  11. 本題2

    View Slide

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

    View Slide


  13. Single Sign Onの活用

    View Slide

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

    ー> SSOできないか

    View Slide

  15. 1,AWSマネジメントコンソールへのログイン
    ◎ アドテクスタジオでは、
    「PingFederate」を利用して、SSOし
    ています
    ◉ ルートアカウントの利用禁止
    ◎ DataStoreには、LDAPを利用
    ◎ 社内からは1段階認証
    ◎ 社外からは2段階認証
    詳細: https://adtech.cyberagent.io/techblog/archives/2822

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  19. AWSの場合

    View Slide

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

    View Slide

  21. ダッシュボード

    View Slide


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

    View Slide


  23. AWS CloudTrailの活用

    View Slide

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

    View Slide

  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"
    },

    View Slide

  26. 2,CloudTrail(操作ログ)の活用1
    ◎ CloudTrail ー> ElasticSearch ー> Kibana
    (watcher) ー> Slack

    View Slide

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

    View Slide


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

    View Slide


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

    View Slide

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

    View Slide

  31. セキュリティグループぐちゃぐちゃ問題2
    ◎ 「あれ、これはなんの設定?」
    ◎ 「このソースIPは、どこの顧客・パートナーのだろう?」
    よって、
    ◎ 似たようなポリシーが複数存在
    ◎ どこのソースIPか、なんのためのポート許可か分からなくなって
    しまい
    ◎ セキュリティグループのアタッチ状態がぐちゃぐちゃ

    View Slide

  32. よって、設定を変更するのが怖くなる
    *その為、インスタンスによっては通常閉じておくべきポートが空い
    ており、攻撃されることがあります。

    View Slide


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

    View Slide

  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/

    View Slide

  35. Scout2
    ◎ Compute > EC2 > Security gropus
    利用されている
    利用されていない > 不要なセキュリティグループ

    View Slide


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

    View Slide


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

    View Slide


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

    View Slide

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

    View Slide

  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侵入テスト申請」出しましょう

    View Slide


  41. おまけ
    最近、AWSにセキュリティ系で、
    新サービスがでました

    View Slide


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

    View Slide

  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.

    View Slide

  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がインターネットに
     公開されているよ」

    View Slide


  45. Guard Duty便利やん!
    *費用はかかります

    View Slide


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

    View Slide

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

    View Slide


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

    View Slide

  49. Thanks!

    View Slide