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

外部決済サービスを利用する上での脆弱ポイントと対策 / Vulnerable points and countermeasures for using external payment services

外部決済サービスを利用する上での脆弱ポイントと対策 / Vulnerable points and countermeasures for using external payment services

クラスメソッドのオンライン型イベント DevelopersIO 2022 https://classmethod.jp/m/developers-io/ 技術セッションとして、「外部決済サービスを利用する上での脆弱ポイントと対策」というテーマで動画を公開しました。

ECサイトなどで決済機能を作る場合は外部の決済サービスを扱うことがほとんどだと思います。特に外部サービスから結果を受け取る場合にセキュリティ上考慮が必要なことについて話しました。

Keiichi Nomura

July 27, 2022
Tweet

More Decks by Keiichi Nomura

Other Decks in Technology

Transcript

  1. ֎෦ܾࡁαʔϏεΛར༻͢Δ্Ͱͷ੬ऑϙΠϯτͱରࡦ  QSJTNBUJYࣄۀ෦໺ଜܒҰ

  2.  ໨࣍

  3. ΞδΣϯμ  w ܾࡁͰΑ͋͘ΔભҠʹ͍ͭͯ w ͦͷதͰ੬ऑͱͳΓಘΔϙΠϯτ w ੬ऑϙΠϯτ΁ͷରࡦ

  4. ૝ఆࢹௌऀ  w &$αΠτͳͲͷܾࡁػೳΛ։ൃ͢Δํ w ֎෦ͷܾࡁαʔϏε 4USJQF "NB[PO1BZͳͲ  Λར༻

  5.  ࣗݾ঺հ

  6. ࣗݾ঺հ  ΫϥεϝιουQSJTNBUJYࣄۀ෦ QSJTNBUJY஫จܾࡁαʔϏε୲౰ ໺ଜܒҰ

  7. QSJTNBUJYͷ͝঺հ  ɾ&$$3.ಛԽܕ"1*ϓϥοτϑΥʔϜ ɾϚΠΫϩαʔϏεΫϥ΢υωΠςΟϒ ɾΫϥεϝιουͷ##ࣗࣾαʔϏε https://prismatix.jp/

  8.  ܾࡁͰΑ͋͘ΔભҠ

  9. ྫʣΫϨδοτΧʔυͷ%ηΩϡΞܾࡁ  https://www.veritrans.co.jp/user_support/3d-secure.html ΫϨδοτΧʔυͰຊਓೝূΛඞཁͱ͢Δܾࡁ ˞ΫϨδοτΧʔυܾࡁ୅ߦͷ%('5ʹΑΔઆ໌

  10. ྫʣ"NB[PO1BZܾࡁ  https://pay.amazon.co.jp/using-amazon-pay "NB[POͷΞΧ΢ϯτʹొ࿥ͨ͠ࢧ෷͍ํ๏Λར༻ͯ͠ ܾࡁͰ͖ΔαʔϏε ˞"NB[PO1BZߪೖऀ޲͚αΠτʹΑΔઆ໌

  11. ڞ௨͢ΔભҠ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ

  12. &$αΠτͳͲɺࣗલͰ։ൃ͢Δػೳ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ

  13. ֎෦αʔϏε͕ఏڙ͢Δػೳ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ

  14. ஫จ׬ྃͷλΠϛϯά  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ࠷ॳʹड͚෇͚ͨ஫จ͕੒ཱ͢Δ

  15. ಉ͓͡٬༷͕ભҠ͢Δ͜ͱΛ૝ఆ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ

  16.  ؾΛ͚ͭΔ΂͖ϙΠϯτ

  17. ஫จ׬ྃͷλΠϛϯάʢ࠶ܝ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ࠷ॳʹड͚෇͚ͨ஫จ͕੒ཱ͢Δ

  18. ؾΛ͚ͭΔ΂͖ϙΠϯτ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ͜ͷભҠʹ஫໨

    ࠷ॳʹड͚෇͚ͨ஫จ͕੒ཱ͢Δ
  19. ؾΛ͚ͭΔ΂͖ϙΠϯτ  ஫จ׬ྃʹભҠͰ͖Δͷ͸ ֎෦αʔϏεͱ͸ݶΓ·ͤΜ

  20. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

  21. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

    ᶄ֎෦αʔϏε͔ΒͷϦΫΤετͱ ِ૷ͯ͠஫จ׬ྃঢ়ଶʹ͢Δ
  22. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ϦΫΤετ͕໰୊ͳ͚Ε͹஫จ֬ఆ

  23. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓ৘ใ΍Χʔυ৘ใͳͲͷೖྗΛεΩοϓͯ͠

    ஫จͰ͖Δʢʂʁʣ ϦΫΤετ͕໰୊ͳ͚Ε͹஫จ֬ఆ
  24. Կ΋ରࡦ͍ͯ͠ͳ͍ͱ  ϦΫΤετ಺༰͕໰୊ͳ͚Ε͹ ແ৚݅Ͱ஫จͰ͖Δ

  25. ֎෦αʔϏε͔Β݁ՌΛड͚औΔػೳͷྫ  w ֎෦αʔϏε͔ΒͷίʔϧόοΫ ϦμΠϨΫτ ઌ ͱͳΔը໘ w ઌʹྫࣔͨ͠ʮ஫จ׬ྃը໘ʯͳͲ w

    ֎෦αʔϏε͕ൃߦͨ͠ΠϕϯτΛड͚औΔ 
 ΤϯυϙΠϯτ 8FCIPPL  w ֎෦αʔϏε͔ΒΞΫηεՄೳͱ͢ΔͨΊ 
 ެ։͍ͯ͠Δ͜ͱ͕લఏɻ୭Ͱ΋ΞΫηεՄೳ
  26.  ੬ऑϙΠϯτ΁ͷରࡦ

  27. ੬ऑϙΠϯτ΁ͷରࡦᶃ  ૝ఆ͢Δૹ৴ݩͰ͋Δ͜ͱΛݕূ͢Δ

  28. ૹ৴ݩݕূΛར༻ͨ͠ભҠ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จ׬ྃ͢ΔલʹɺϦΫΤετݩ͕

    ૝ఆͨ͠ૹ৴ݩͰ͋Δ͔֬ೝ
  29. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

    ᶄ֎෦αʔϏε͔ΒͷϦΫΤετͱ ِ૷ͯ͠஫จ׬ྃঢ়ଶʹ͢Δ
  30. ѱҙ͋ΔϢʔβʔͷૢ࡞ΛϒϩοΫ  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

    ஫จ׬ྃ͢ΔલʹɺϦΫΤετݩ͕ ૝ఆͨ͠ૹ৴ݩͰ͋Δ͔֬ೝ ૝ఆ֎ͳΒϒϩοΫ × ᶄ֎෦αʔϏε͔ΒͷϦΫΤετͱ ِ૷ͯ͠஫จ׬ྃঢ়ଶʹ͢Δ
  31.  w ֎෦αʔϏεΛಛఆͰ͖Δ৘ใ͔Βݕূ͢Δ w *1ΞυϨεɺϦϑΝϥͳͲ w ͋Δ͍͸ɺ֎෦αʔϏε͕ఏڙ͢Δݕূํ๏Λར༻ ͢Δ w ྫʣ4USJQF͕ఏڙ͢Δݕূํ๏

    w 8FCIPPLͷॺ໊Λ֬ೝ͢Δ ૝ఆ͢Δૹ৴ݩͰ͋Δ͜ͱΛݕূ͢Δํ๏ https://stripe.com/docs/webhooks/signatures
  32. ੬ऑϙΠϯτ΁ͷରࡦᶄ  ೚ҙͷύϥϝʔλΛ࢖ͬͯݕূ͢Δ

  33. ೚ҙͷύϥϝʔλΛ࢖ͬͯݕূ͢Δ৔߹ͷભҠ  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ᶃ೚ҙύϥϝʔλΛϥϯμϜͰੜ੒ɺอ࣋͢Δ

  34.  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ᶃ೚ҙύϥϝʔλΛϥϯμϜͰੜ੒ɺอ࣋͢Δ ೚ҙͷύϥϝʔλΛ࢖ͬͯݕূ͢Δ৔߹ͷભҠ

    ᶄ஫จ׬ྃભҠઌʹɺੜ੒ͨ͠ύϥϝʔλ΋ૹΔΑ͏ ʹઃఆ͢Δ
  35.  ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ᶅอ࣋ͨ͠ύϥϝʔλͱɺ ֎෦αʔϏε͔ΒͷύϥϝʔλΛর߹

    Ұக͍ͯ͠Ε͹0, ᶃ೚ҙύϥϝʔλΛϥϯμϜͰੜ੒ɺอ࣋͢Δ ᶄ஫จ׬ྃભҠઌʹɺੜ੒ͨ͠ύϥϝʔλ΋ૹΔΑ͏ ʹઃఆ͢Δ ೚ҙͷύϥϝʔλΛ࢖ͬͯݕূ͢Δ৔߹ͷભҠ
  36. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

  37. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

    ᶃͷૢ࡞ͷࡍʹ೚ҙύϥϝʔλΛϥϯμϜͰੜ੒ɺ อ࣋͢Δ
  38. ѱҙ͋ΔϢʔβʔͷૢ࡞  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ ஫จ׬ྃ ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ

    ᶃͷૢ࡞ͷࡍʹ೚ҙύϥϝʔλΛϥϯμϜͰੜ੒ɺ อ࣋͢Δ ᶄ֎෦αʔϏε͔ΒͷϦΫΤετͱ ِ૷ͯ͠஫จ׬ྃঢ়ଶʹ͢Δ
  39. ஫จʹ࢖͏ࢧ෷͍ ํ๏Λબ୒ͯ͠ ஫จΛड෇ ᶃͷૢ࡞ͷࡍʹ೚ҙύϥϝʔλΛϥϯμϜͰੜ੒ɺ อ࣋͢Δ ѱҙ͋ΔϢʔβʔͷૢ࡞ΛϒϩοΫ  ຊਓೝূ ར༻͢ΔΧʔυ ͳͲೖྗ

    ஫จ׬ྃ ᶃ஫จड෇ঢ়ଶ·ͰਐΊΔ อ͓͍࣋ͯͨ͠ύϥϝʔλͱɺِ૷ͨ͠ϦΫΤετͷ ύϥϝʔλΛൺֱɻҰகͯ͠ͳ͚Ε͹ϒϩοΫ × ᶄ֎෦αʔϏε͔ΒͷϦΫΤετͱ ِ૷ͯ͠஫จ׬ྃঢ়ଶʹ͢Δ
  40. ೚ҙͷύϥϝʔλΛ࢖ͬͯݕূ͢ΔରࡦͷޮՌ  w $43'ͷରࡦͱͯ͠΋༗ޮ w ҆શͳ΢ΣϒαΠτͷ࡞Γํ$43'ʢΫϩ εαΠτɾϦΫΤετɾϑΥʔδΣϦʣɿ*1"ಠ ཱߦ੓๏ਓ৘ใॲཧਪਐػߏ https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_6.html

  41.  ·ͱΊ

  42. ·ͱΊ  ֎෦ܾࡁαʔϏεΛؒʹڬΉܾࡁͷ৔߹ ܾࡁ݁ՌͷडऔΛ୭Ͱ΋࣮ߦͰ͖ͳ͍Α͏ʹ ରࡦ͠·͠ΐ͏

  43. None