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

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. ໨࣍ • ࣗݾ঺հ • IDaaS Ͱ͋Δ Extic ͷ঺հ • SCIM

    ͷ঺հ • Extic ʹ͓͚ΔηΩϡϦςΟͷऔΓ૊Έʹ͍ͭͯ 2
  2. IDaaS ؔ࿈Ωʔϫʔυ • LDAP • ϓϩϏδϣχϯά • ϑΣσϨʔγϣϯ • SAML

    • OAuth • OpenID / OpenID Connect • SCIM (※ೖྗϝιουͰ͸ͳ͍Ͱ͢) 8
  3. IDaaS ͱ͸ • Identity as a Service • ʮID ؅ཧʯ΍ʮγϯάϧαΠϯΦϯʯΛ

    Ϋϥ΢υ্ͷαʔϏεͱͯ͠ఏڙ͢Δ΋ ͷ • ւ֎ɾࠃ಺Ͱ༷ʑͳ IDaaS ࣄۀऀ͕αʔ ϏεΛల։͍ͯ͠Δ 9
  4. Extic ͷػೳ • ID ϓϩϏδϣχϯά • G SuiteɺOffice 365 •

    ΦϯϓϨͷ ADɾLDAP (ΤʔδΣϯτΛΦϯϓϨʹಋೖ) • γϯάϧαΠϯΦϯ (௥Ճ༧ఆ) • SAML • Shibboleth IdP (௥Ճ༧ఆ) • ֶज़ೝূϑΣσϨʔγϣϯ޲͚ 13
  5. ɹ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
  6. SCIM Ͱར༻͢Δ HTTP ϝιου 19 ૢ࡞ HTTP ϝιου ௥Ճ POST

    ߋ৽ PUT (શଐੑߋ৽) PATCH (Ұ෦ଐੑߋ৽) ࡟আ DELETE औಘɾݕࡧ GET
  7. SCIM ͷϦΫΤετ 20 $ curl \ -H “Authorization: *****” \

    -H "Content-Type: application/scim+json" \ -X "POST" \ -d ‘{ JSON Λॻ͘(লུ) }’ \ https://scimsv.example.jp/v2/Users Ϣʔβʔ௥Ճͷྫ
  8. ݕࠪπʔϧɾαʔϏεൺֱ 24 VAddy skipfish OWASP ZAP ઐ໳ϕϯμʔ ࢖༻೉қ౓ த ߴ

    ָ ݕ߲ࠪ໨ গ ଟ ଟ API ͷݕࠪ O X(?) O ݕࠪ࣌ؒ ୹ ୹ʙ௕ ௕ ݁Ռͷ֬ೝ (ϩά·Ͱ֬ೝ) ͪΐͬͱ େม ͔ͳΓେม (ઈ๬తͳྔ…) ָ
  9. VAddy ͷϝϦοτ • ࣮ߦ͕؆୯ • खܰ͞͸େࣄ • ࣄલʹΫϩʔϧ͢Δ͜ͱͰɺݕࠪର৅ URL ͕ߜΒΕΔ

    • ݕࠪ࣌ؒͷ୹ॖɺϩά֬ೝͷ޻਺࡟ݮ • API ͷݕ͕ࠪՄೳ • ׂΓ੾Γ • ݕ߲ࠪ໨Λ֦ॆ͍ͨ͠৔߹͸ଞͷπʔϧΛ࢖͑͹Α͍ 25
  10. ࠓޙͷ՝୊ • ࣗಈԽ • ΞϓϦͷσΟϓϩΠ ➡ ݕ࣮ࠪߦ ➡ ݕࠪ݁Ռ֬ೝ ͷࣗ

    ಈԽ • ը໘ͷΫϩʔϧ͸ख࡞ۀͰ΋Α͍ • ࣗಈԽ͍ͨ͠ͱ͜ΖͰ͸͋Δ͕ɺͪΐͬͱେม… • ݱঢ়ɺͦ͜·Ͱը໘਺͸ଟ͘ͳ͍ͷͰɺΫϩʔϧ͸ ख࡞ۀͰ΋ͳΜͱ͔ͳΔ 27
  11. น • VAddy ͷεΩϟϯ݁ՌͰ͸੬ऑੑແ͠ͱग़·ͨ͢ɻ͜ΕͰ҆৺Ͱ ͢ɻ • ͲΜͳݕࠪΛͯ͠Δͷ͔ϩάݟͯ֬ೝͯ͠ΈΑ͏ͣ • (ɹƅшƅ) •

    ηογϣϯ͕ඞཁͳը໘ͷεΩϟϯͰΤϥʔฦͬͯͶ?… • (ͭд⊂)ŠƄŢŠƄŢ • ηογϣϯҡ࣋Ͱ͖ͯͳ͍ ➡ ηογϣϯ͕ඞཁͳը໘(ϩάΠϯը໘ Ҏ֎)ͷݕ͕ࠪͰ͖ͯͳ͍(T_T) 29
  12. ਆରԠ • (E) VAddy ͔ΒͷεΩϟϯ࣌ʹηογϣϯҡ࣋Ͱ͖ͯͳ͍Α͏ Ͱ͢(T_T) • (૬ੑͱ͔͋ΔͩΖ͏͠ɺͲ͏ͯ͠΋εΩϟϯͰ͖ͳ͔ͬͨ Β VAddy

    ͸͖͋ΒΊΑ͏…) • (V) ରԠ͠·ͨ͠ʂ • (E) ͍͢·ͤΜɺࠓ౓͸ CSRF ରࡦͷτʔΫϯ͕… • (V) ରԠ͠·ͨ͠ʂʂ 30
  13. ͦͷଞʹ΋ େม͓ੈ࿩ʹͳΓ·ͨ͠… • (E) go-vaddy ίϚϯυͷ໭Γ஋͕ظ଴ͱҧ͍·ͨ͠… • (V) मਖ਼͠·ͨ͠ʂ •

    (E) API ͷΫϩʔϧ࣌ʹ຤ඌʹΫΤϦετϦϯά͚ͭΔͷ໘౗͍͘͞Ͱ ͢… • (V)͚ͭͳͯ͘΋Α͘͠·ͨ͠ʂ • (E) ͪΌΜͱΫϩʔϧͰ͖ͯΔͷ͔Ͳ͏͔ෆ҆Ͱ͢… • (V) ը໘ͰΫϩʔϧ݁ՌΛ֬ೝͰ͖ΔΑ͏ʹ͠·ͨ͠ʂ 31
  14. ޙ೔ஊ • VAddy ͷεϐʔσΟʔͳରԠָ͕ͯ͘͠ɺ͍͍ͭͭηΩϡϦςΟ ςετʹ຅಄ • Docker Λ࢖ͬͯίϚϯυҰൃͰςετ؀ڥ࡞ΕΔΑ͏ʹͨ͠Γ • Nginx

    ͷϩάग़ྗΛڧԽͨͯ͘͠ lua ॻ͘ͷʹ຅಄ͨ͠Γ • ຊۀ(Πϯϑϥ֦ுɺػೳ௥Ճ)ʹࢧো͕Ͱͩ͢… • (্࢘)ʮηΩϡϦςΟ΋େࣄ͕ͩɺͦΖͦΖۭؾಡΊʯ • VAddy ͸͠͹Β͓͘༬͚ʹ… 32
  15. ڭ܇ • ϩάͷ֬ೝ͸௒ॏཁ • πʔϧͷݕࠪ݁ՌΛӏವΈʹͤͣɺͪΌΜͱ Web αʔόʔ΍ΞϓϦͷϩά΋֬ೝ͢Δ • ηΩϡϦςΟςετґଘ঱ʹ஫ҙ •

    ʮηΩϡϦςΟ͸େࣄͰ͔͢Βʂʯͱ͔ݴ͍ͭͭɺ ʮςετΛޮ཰తʹߦ͏ͨΊͷ؀ڥߏஙʯͱ͔ʹ ຅಄͠ͳ͍Α͏ʹ஫ҙ… 33