$30 off During Our Annual Pro Sale. View Details »

ID管理のクラウドサービスExtic におけるセキュリティの取り組み

VAddy
December 01, 2016

ID管理のクラウドサービスExtic におけるセキュリティの取り組み

2016年11月30日 VAddyユーザーミートアップ Vol.4 資料

ID管理のクラウドサービスExtic におけるセキュリティの取り組み
エクスジェン・ネットワークス株式会社
野村 健太郎

VAddy

December 01, 2016
Tweet

More Decks by VAddy

Other Decks in Technology

Transcript

  1. ID؅ཧͷΫϥ΢υαʔϏε
    Extic ʹ͓͚Δ
    ηΩϡϦςΟͷऔΓ૊Έ
    2016೥11݄30೔
    ΤΫεδΣϯŋωοτϫʔΫεגࣜձࣾ
    ໺ଜ ݈ଠ࿠
    VAddy ϢʔβʔϛʔτΞοϓ Vol.4

    View Slide

  2. ໨࣍
    • ࣗݾ঺հ
    • IDaaS Ͱ͋Δ Extic ͷ঺հ
    • SCIM ͷ঺հ
    • Extic ʹ͓͚ΔηΩϡϦςΟͷऔΓ૊Έʹ͍ͭͯ
    2

    View Slide

  3. ࣗݾ঺հ
    • ໺ଜ ݈ଠ࿠(@nomnux)
    • ॴଐɿΤΫεδΣϯŋωοτϫʔΫε(ג)
    • ೝূؔ࿈ͷ࢓ࣄʹैࣄ͔ͯ͠Ε͜Ε10೥
    • ޷͖ͳݴޠɿPython
    • ࠷ۙͷ͓ؾʹೖΓɿDockerɺAnsible
    • ޷͖ͳόΠΫϝʔΧʔɿSUZUKI (ླەอ࣋ऀ)

    View Slide

  4. Extic ঺հ

    View Slide

  5. ͷલʹ࣭໰Ͱ͢

    View Slide

  6. ʮIDaaSʯ
    ஌ͬͯ·͔͢ʁ

    View Slide

  7. IDaaS ?
    • ฉ͍ͨ͜ͱ͋Δ
    • ࢖͍ͬͯΔ(Ϣʔβʔͱͯ͠)
    • ։ൃ͍ͯ͠Δ
    7

    View Slide

  8. IDaaS ؔ࿈Ωʔϫʔυ
    • LDAP
    • ϓϩϏδϣχϯά
    • ϑΣσϨʔγϣϯ
    • SAML
    • OAuth
    • OpenID / OpenID Connect
    • SCIM (※ೖྗϝιουͰ͸ͳ͍Ͱ͢)
    8

    View Slide

  9. IDaaS ͱ͸
    • Identity as a Service
    • ʮID ؅ཧʯ΍ʮγϯάϧαΠϯΦϯʯΛ
    Ϋϥ΢υ্ͷαʔϏεͱͯ͠ఏڙ͢Δ΋
    ͷ
    • ւ֎ɾࠃ಺Ͱ༷ʑͳ IDaaS ࣄۀऀ͕αʔ
    ϏεΛల։͍ͯ͠Δ
    9

    View Slide

  10. IDaaS ͰͰ͖Δ͜ͱ
    10
    G Suite
    Office 365
    ؅ཧऀ
    ID ϓϩϏδϣχϯά
    ΦϯϓϨAD/LDAP

    View Slide

  11. IDaaS ͰͰ͖Δ͜ͱ
    11
    G Suite
    Office 365
    γϯάϧαΠϯΦϯ(SSO)
    ར༻ऀ
    ϩάΠϯ

    View Slide

  12. Extic
    • EXGEN Trusted Identity Center
    • EXGEN ͕࡞ͬͨ IDaaS
    • ࠓͷͱ͜Ζจڭ෼໺޲͚
    12

    View Slide

  13. Extic ͷػೳ
    • ID ϓϩϏδϣχϯά
    • G SuiteɺOffice 365
    • ΦϯϓϨͷ ADɾLDAP (ΤʔδΣϯτΛΦϯϓϨʹಋೖ)
    • γϯάϧαΠϯΦϯ (௥Ճ༧ఆ)
    • SAML
    • Shibboleth IdP (௥Ճ༧ఆ)
    • ֶज़ೝূϑΣσϨʔγϣϯ޲͚
    13

    View Slide

  14. σϞ

    View Slide

  15. SCIM ͷ͝঺հ

    View Slide

  16. SCIM
    16
    SCIM
    Client
    SCIM
    Server
    JSON
    HTTP

    View Slide

  17. ɹSCIM
    • System for Cross-domain Identity Management
    • http://www.simplecloud.info/
    • ID ؅ཧ༻ͷ API (REST API) ͷ࢓༷
    • Ϣʔβʔ৘ใ΍άϧʔϓ৘ใΛ JSON Ͱදݱ͠ɺHTTP ϦΫΤετͰର৅
    αʔϏε(SCIM Server)ʹૹ৴͢Δ
    • Extic Ͱ΋Ұ෦ͷػೳͰ SCIM(ͬΆ͍) REST API Λ࣮૷͍ͯ͠Δ
    • ࣮૷ྫ
    • https://api.slack.com/scim
    17

    View Slide

  18. SCIM ͷ JSON
    18
    {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "userName": "[email protected]",
    "displayName": "NIHON Taro",
    "nickName": "taro"
    }

    View Slide

  19. SCIM Ͱར༻͢Δ HTTP ϝιου
    19
    ૢ࡞ HTTP ϝιου
    ௥Ճ POST
    ߋ৽
    PUT (શଐੑߋ৽)
    PATCH (Ұ෦ଐੑߋ৽)
    ࡟আ DELETE
    औಘɾݕࡧ GET

    View Slide

  20. SCIM ͷϦΫΤετ
    20
    $ curl \
    -H “Authorization: *****” \
    -H "Content-Type: application/scim+json" \
    -X "POST" \
    -d ‘{ JSON Λॻ͘(লུ) }’ \
    https://scimsv.example.jp/v2/Users
    Ϣʔβʔ௥Ճͷྫ

    View Slide

  21. Extic ʹ͓͚Δ
    ηΩϡϦςΟͷऔΓ૊Έ

    View Slide

  22. ཧ૝
    • ͓٬͞Μͷ ID/PW Λ༬͔ΔͷͰηΩϡϦςΟେࣄ
    • ՄೳͳݶΓ(༧ࢉ͕ڐ͢ݶΓ)ઐ໳ϕϯμʔʹΑΔ੬
    ऑੑݕࠪΛ࣮ࢪ͍ͨ͠
    • VAddy ͷΑ͏ͳݕࠪπʔϧΛ։ൃϓϩηεʹ૊Έ
    ࠐΜͰසൟ(Ϗϧυຖ)ʹηΩϡϦςΟςετ͍ͨ͠
    22

    View Slide

  23. ݱ࣮
    • ઐ໳ϕϯμʔʹΑΔසൟͳݕࠪ͸ίετతʹແཧ
    • ϦϦʔε௚લʹݕࠪΛड͚ͨͱͯ͠ɺͦ͜Ͱ੬ऑੑ
    ͕ݟ͔ͭͬͯ΋मਖ਼ʹ͸͕͔͔࣌ؒΔͷͰɺख໭Γ
    ޻਺͕େ͖͘ɺϦϦʔε͕஗ΕΔ
    • ϏϧυຖʹηΩϡϦςΟςετΛ࣮ࢪͯ͠΋݁ՌΛ
    ֬ೝ͖͠Εͳ͍
    • ϩάͷ֬ೝେࣄ(ޙड़)
    23

    View Slide

  24. ݕࠪπʔϧɾαʔϏεൺֱ
    24
    VAddy
    skipfish
    OWASP ZAP
    ઐ໳ϕϯμʔ
    ࢖༻೉қ౓ த ߴ ָ
    ݕ߲ࠪ໨ গ ଟ ଟ
    API ͷݕࠪ O X(?) O
    ݕࠪ࣌ؒ ୹ ୹ʙ௕ ௕
    ݁Ռͷ֬ೝ
    (ϩά·Ͱ֬ೝ)
    ͪΐͬͱ
    େม
    ͔ͳΓେม
    (ઈ๬తͳྔ…)
    ָ

    View Slide

  25. VAddy ͷϝϦοτ
    • ࣮ߦ͕؆୯
    • खܰ͞͸େࣄ
    • ࣄલʹΫϩʔϧ͢Δ͜ͱͰɺݕࠪର৅ URL ͕ߜΒΕΔ
    • ݕࠪ࣌ؒͷ୹ॖɺϩά֬ೝͷ޻਺࡟ݮ
    • API ͷݕ͕ࠪՄೳ
    • ׂΓ੾Γ
    • ݕ߲ࠪ໨Λ֦ॆ͍ͨ͠৔߹͸ଞͷπʔϧΛ࢖͑͹Α͍
    25

    View Slide

  26. ݱ࣮తͳηΩϡϦςΟςετܭը
    26
    ೔ʑͷ։ൃ
    ෆ۩߹मਖ਼
    ܰඍͳػೳ௥Ճ
    େن໛ػೳ௥Ճ
    ఆظతͳશݕࠪ
    ηΩϡϦςΟςετ޻਺
    VAddy
    VAddyɾͦͷଞπʔϧ
    ͦͷଞπʔϧɾઐ໳ϕϯμʔ
    ઐ໳ϕϯμʔ

    View Slide

  27. ࠓޙͷ՝୊
    • ࣗಈԽ
    • ΞϓϦͷσΟϓϩΠ ➡ ݕ࣮ࠪߦ ➡ ݕࠪ݁Ռ֬ೝ ͷࣗ
    ಈԽ
    • ը໘ͷΫϩʔϧ͸ख࡞ۀͰ΋Α͍
    • ࣗಈԽ͍ͨ͠ͱ͜ΖͰ͸͋Δ͕ɺͪΐͬͱେม…
    • ݱঢ়ɺͦ͜·Ͱը໘਺͸ଟ͘ͳ͍ͷͰɺΫϩʔϧ͸
    ख࡞ۀͰ΋ͳΜͱ͔ͳΔ
    27

    View Slide

  28. VAddy ಋೖͷཪ࿩

    View Slide


  29. • VAddy ͷεΩϟϯ݁ՌͰ͸੬ऑੑແ͠ͱग़·ͨ͢ɻ͜ΕͰ҆৺Ͱ
    ͢ɻ
    • ͲΜͳݕࠪΛͯ͠Δͷ͔ϩάݟͯ֬ೝͯ͠ΈΑ͏ͣ
    • (ɹƅшƅ)
    • ηογϣϯ͕ඞཁͳը໘ͷεΩϟϯͰΤϥʔฦͬͯͶ?…
    • (ͭд⊂)ŠƄŢŠƄŢ
    • ηογϣϯҡ࣋Ͱ͖ͯͳ͍ ➡ ηογϣϯ͕ඞཁͳը໘(ϩάΠϯը໘
    Ҏ֎)ͷݕ͕ࠪͰ͖ͯͳ͍(T_T)
    29

    View Slide

  30. ਆରԠ
    • (E) VAddy ͔ΒͷεΩϟϯ࣌ʹηογϣϯҡ࣋Ͱ͖ͯͳ͍Α͏
    Ͱ͢(T_T)
    • (૬ੑͱ͔͋ΔͩΖ͏͠ɺͲ͏ͯ͠΋εΩϟϯͰ͖ͳ͔ͬͨ
    Β VAddy ͸͖͋ΒΊΑ͏…)
    • (V) ରԠ͠·ͨ͠ʂ
    • (E) ͍͢·ͤΜɺࠓ౓͸ CSRF ରࡦͷτʔΫϯ͕…
    • (V) ରԠ͠·ͨ͠ʂʂ
    30

    View Slide

  31. ͦͷଞʹ΋
    େม͓ੈ࿩ʹͳΓ·ͨ͠…
    • (E) go-vaddy ίϚϯυͷ໭Γ஋͕ظ଴ͱҧ͍·ͨ͠…
    • (V) मਖ਼͠·ͨ͠ʂ
    • (E) API ͷΫϩʔϧ࣌ʹ຤ඌʹΫΤϦετϦϯά͚ͭΔͷ໘౗͍͘͞Ͱ
    ͢…
    • (V)͚ͭͳͯ͘΋Α͘͠·ͨ͠ʂ
    • (E) ͪΌΜͱΫϩʔϧͰ͖ͯΔͷ͔Ͳ͏͔ෆ҆Ͱ͢…
    • (V) ը໘ͰΫϩʔϧ݁ՌΛ֬ೝͰ͖ΔΑ͏ʹ͠·ͨ͠ʂ
    31

    View Slide

  32. ޙ೔ஊ
    • VAddy ͷεϐʔσΟʔͳରԠָ͕ͯ͘͠ɺ͍͍ͭͭηΩϡϦςΟ
    ςετʹ຅಄
    • Docker Λ࢖ͬͯίϚϯυҰൃͰςετ؀ڥ࡞ΕΔΑ͏ʹͨ͠Γ
    • Nginx ͷϩάग़ྗΛڧԽͨͯ͘͠ lua ॻ͘ͷʹ຅಄ͨ͠Γ
    • ຊۀ(Πϯϑϥ֦ுɺػೳ௥Ճ)ʹࢧো͕Ͱͩ͢…
    • (্࢘)ʮηΩϡϦςΟ΋େࣄ͕ͩɺͦΖͦΖۭؾಡΊʯ
    • VAddy ͸͠͹Β͓͘༬͚ʹ…
    32

    View Slide

  33. ڭ܇
    • ϩάͷ֬ೝ͸௒ॏཁ
    • πʔϧͷݕࠪ݁ՌΛӏವΈʹͤͣɺͪΌΜͱ Web
    αʔόʔ΍ΞϓϦͷϩά΋֬ೝ͢Δ
    • ηΩϡϦςΟςετґଘ঱ʹ஫ҙ
    • ʮηΩϡϦςΟ͸େࣄͰ͔͢Βʂʯͱ͔ݴ͍ͭͭɺ
    ʮςετΛޮ཰తʹߦ͏ͨΊͷ؀ڥߏஙʯͱ͔ʹ
    ຅಄͠ͳ͍Α͏ʹ஫ҙ…
    33

    View Slide

  34. ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide