ペパコンナイト:セキュリティWG成果報告 / pepacon night: security working group report

ペパコンナイト:セキュリティWG成果報告 / pepacon night: security working group report

Ec3fcf78fa2ad21dcc48478df80e0dc4?s=128

Komei Nomura

May 13, 2019
Tweet

Transcript

  1. ໺ଜ޸໋ / Pepabo R&D institute, GMO pepabo, inc. 2019.05.13 ϖύίϯφΠτ

    ηΩϡϦςΟWG੒Ռใࠂ ʙͳΊΒ͔ͳηΩϡϦςΟΛ໨ࢦͯ͠ʙ
  2. 2 ΤϯδχΞ ໺ଜ޸໋!,PNFJ (.0ϖύϘגࣜձࣾɹϖύϘݚڀॴ

  3. 1. ηΩϡϦςΟWGͱͳΊΒ͔ͳηΩϡϦςΟ 2. ݚڀͷ঺հ 3. ·ͱΊͱࠓޙ 3 ໨࣍

  4. 1. ηΩϡϦςΟWGͱͳΊΒ͔ͳηΩϡϦςΟ

  5. • ݚڀର৅ • ిࢠূ໌ॻͷར׆༻ • TLS1.3ରԠ • TLS/SSLͷ҆શੑͱػձଛࣦ • WebηΩϡϦςΟ

    • ߴػೳ҉߸Ԡ༻ 5 ηΩϡϦςΟWG
  6. 6 ͳΊΒ͔ͳηΩϡϦςΟʹ͓͚ΔηΩϡϦςΟWG ηΩϡϦςΟ8(͸ɼηΩϡϦςΟࢪࡦΛ࣮ݱ͢ΔϚΠΫϩίϯϙʔωϯτΛ࡞Γग़͢͜ͱʹ୲౰ ͜ͷࡍॏཁͳͷ͸ɼηΩϡϦςΟରࡦಋೖʹΑΔརศੑͷ௿ԼʢΰπΰπʣΛൃੜͤ͞ͳ͍͜ͱ

  7. 7 ηΩϡϦςΟࢪࡦಋೖʹ͓͚Δΰπΰπ Ϣʔβ ӡ༻։ൃऀ ίΞαʔϏε ӡ༻։ൃऀଆͷΰπΰπ Ϣʔβଆͷΰπΰπ ͳΊΒ͔ͳηΩϡϦςΟʹ͓͍ͯɼ&EHF͸ར༻ऀʹӨڹΛ༩͑ͣʹ࣮ݱ͢Δ͜ͱ͕ॏཁ &EHF w

    ࢪࡦಋೖʹΑΔγεςϜߏ੒ͷมߋ w ηΩϡϦςΟ੡඼ͷϝϯςφϯε ʜ w ਖ਼ৗͳϦΫΤετΛޡݕ஌ w Ϩεϙϯε଎౓ͷ௿Լ ʜ &EHF ৘ใγεςϜ
  8. • ͳΊΒ͔ͳηΩϡϦςΟ࣮ݱʹ޲͚ͨɼηΩϡϦςΟWGͷݚڀࣄྫͱOSSͷ ঺հ • ݚڀࣄྫɿ • ʮWebΞϓϦέʔγϣϯςετΛ༻͍ͨSQLΫΤϦͷϗϫΠτϦετࣗಈ ੜ੒ख๏ʯ • OSSɿ

    • tcpdp : TCPύέοτΛղੳͯ͠ߏ଄ԽϩάΛग़ྗ͢Δπʔϧ • sqd : SQLͷϗϫΠτϦετ࡞੒ͱෆਖ਼ΫΤϦݕ஌πʔϧ 8 ຊ೔ͷ͓࿩
  9. 2. ݚڀͷ঺հ

  10. • WebαʔϏεʹ͓͍ͯσʔλϕʔε্ͷػີ৘ใͷอޢ͸ॏཁ • ߈ܸऀ͸WebΞϓϦέʔγϣϯͷ੬ऑੑΛ͸͡Ίͱ༷ͯ͠ʑͳखஈͰػີ৘ ใΛ઄औ • ߈ܸͷྫɿSQLΠϯδΣΫγϣϯɼOSίϚϯυΠϯδΣΫγϣϯͳͲ • σʔλϕʔε΁ͷ߈ܸ͸։ൃऀͷ૝ఆ֎ͷΫΤϦʢෆਖ਼ΫΤϦʣΛσʔλϕʔ εʹൃߦ͢Δ͜ͱͰ࣮ࢪ

    • σʔλϕʔεʹൃߦ͞ΕΔΫΤϦΛ؂ࢹ͠ෆਖ਼ΫΤϦΛݕ஌͢Δ࢓૊Έ͕ඞཁ 10 ݚڀͷഎܠ
  11. • ϒϥοΫϦετํࣜ • ෆਖ਼ͳΫΤϦύλʔϯΛϦετʹఆٛ͠ɼύλʔϯͱ߹க͢Δ΋ͷΛݕ஌͢Δ • ϗϫΠτϦετํࣜ • ਖ਼ৗͳΫΤϦύλʔϯΛϦετʹఆٛ͠ɼύλʔϯͱ߹க͠ͳ͍΋ͷΛݕ஌͢Δ ϒϥοΫϦετͷΈར༻Ͱ͸ط஌ͷύλʔϯ͔͠ݕ஌Ͱ͖ͳ͍͕ɼෆਖ਼ΫΤϦʹ͸ະ ஌ͷύλʔϯ΋͋ΓಘΔ

    ະ஌ͷύλʔϯͷݕ஌ʹ͸ϗϫΠτϦετ͕ඞཁͱͳΔ 11 ෆਖ਼ΫΤϦͷݕ஌ํ๏
  12. • WebΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦΛखಈͰϗϫΠτϦετʹొ࿥ • େن໛ͳWebΞϓϦέʔγϣϯͰ͸ൃߦΫΤϦ͕๲େ → શͯͷΫΤϦΛϗϫΠτϦετʹొ࿥͢Δ͜ͱ͕ࠔ೉ • WebΞϓϦέʔγϣϯͷվमʹΑͬͯൃߦΫΤϦ͸มԽ → ϗϫΠτϦετͷߋ৽͕ඞཁ

    12 ϗϫΠτϦετ࡞੒ͱͦͷ՝୊ ӡ༻ऀ΁ͷෛՙ͕ߴ͍ ӡ༻ऀͱ৘ใγεςϜ͕ؒΰπΰπͨ͠ঢ়ଶ
  13. • ։ൃӡ༻ऀ͕ϗϫΠτϦετͷ࡞੒Λҙࣝ͢Δ͜ͱͳ͘࡞੒Ͱ͖ɼϗϫΠτϦ ετΛ༻͍ͯෆਖ਼ΫΤϦΛݕ஌͢Δ࢓૊Έͷ࣮ݱ • ϗϫΠτϦετ͸WebΞϓϦέʔγϣϯͷൃߦΫΤϦͷมߋʹ௥ै͠ͳ͕ ΒࣗಈͰ࡞੒͢Δඞཁ͕͋Δ 13 ݚڀͷ໨త

  14. • WebΞϓϦέʔγϣϯͷςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετΛ ࡞੒͢Δ • ࣗಈςετΛ༻͍ͨ։ൃϓϩηεʹϗϫΠτϦετ࡞੒Λ૊ΈࠐΉ • ΫΤϦͷऩू͸σʔλϕʔεϓϩΩγͰߦ͍ɼऩूͨ͠ΫΤϦ͔ΒϗϫΠτ ϦετΛ࡞੒͢Δ 14 ఏҊख๏ͷ֓ཁ

  15. 15 ࣗಈςετΛ༻͍ͨ։ൃϓϩηε w ৽ػೳͷ௥Ճ w طଘػೳͷमਖ਼ w 8FCΞϓϦέʔγϣϯͷಈ࡞खॱͱಈ࡞ͷ݁ՌΛهड़ w ςετίʔυΛݩʹࣗಈͰςετΛ࣮ߦ

    w 8FCΞϓϦͷಈ࡞͕࢓༷௨Γ͔Λ֬ೝ w ςετࣦഊɿ8FCΞϓϦέʔγϣϯͷιʔείʔυ΋ ͘͠͸ςετίʔυʹ໰୊͋Γ w ςετ੒ޭɿ8FCΞϓϦέʔγϣϯ͕࢓༷௨Γʹಈ࡞ w 8FCΞϓϦέʔγϣϯͷιʔείʔυΛαʔόʹ഑ஔ w 8FCΞϓϦέʔγϣϯΛՔಇ  ։ൃ  ςετίʔυͷهड़  αʔόʔʹ഑ஔ  ࣗಈςετ࣮ߦ /P :FT  ΞϓϦέʔγϣϯՔಇ ςετ੒ޭʁ
  16. 16 w ςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετΛ
 ࡞੒ w ҎԼΛͦΕͧΕαʔόʹ഑ஔ w 8FCΞϓϦέʔγϣϯͷιʔείʔυ w ϗϫΠτϦετ

    ։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ෇͚ w 8FCΞϓϦέʔγϣϯͷมߋʹ௥ैͯ͠ςετίʔυ ΋มߋ ˠൃߦΫΤϦͷมԽʹ௥ैͯ͠ϗϫΠτϦετΛߋ৽ w 8FCΞϓϦέʔγϣϯՔಈલʹϗϫΠτϦετ࡞੒ ˠՔಈޙɼଈ࠲ʹෆਖ਼ΫΤϦΛݕ஌Մೳ  ։ൃ  ςετίʔυͷهड़  αʔόʔʹ഑ஔ /P :FT  ΞϓϦέʔγϣϯՔಇ ςετ੒ޭʁ ΫΤϦͷऩू  `ࣗಈςετ࣮ߦ ϗϫΠτϦετ࡞੒
  17. 17 ఏҊख๏ͷઃܭ • σʔλϕʔεͷલஈʹσʔλϕʔεϓϩΩγΛ഑ஔ͠ɼςετ࣮ߦதʹൃߦ͞Ε ͨΫΤϦΛऩू • ΫΤϦ͔ΒϗϫΠτϦετΛ࡞Δ͜ͱͰɼWebΞϓϦέʔγϣϯͷ࣮૷ʹґଘͤ ͣɼϗϫΠτϦετΛ࡞੒Մೳ ςετ࣮ߦத σʔλϕʔε

    8FCΞϓϦέʔγϣϯ σʔλϕʔεϓϩΩγ ϗϫΠτϦετ ΫΤϦͷऩूͱ ϗϫΠτϦετͷग़ྗ ΫΤϦ ΫΤϦ
  18. 18 ఏҊख๏ͷઃܭ • WebΞϓϦέʔγϣϯՔಇத͸ൃߦΫΤϦͱϗϫΠτϦετΛর߹͠ɼෆਖ਼ΫΤ ϦΛݕ஌ σʔλϕʔε 8FCΞϓϦέʔγϣϯ σʔλϕʔεϓϩΩγ 8FCΞϓϦέʔγϣϯՔಇத ΫΤϦ

    ΫΤϦ ΫΤϦΛϗϫΠτϦετͱর߹ ෆਖ਼ΫΤϦ ग़ྗ ϗϫΠτϦετ
  19. OSSͷ঺հ

  20. • TCPύέοτΛΩϟϓνϟɾղੳͯ͠ɼߏ଄Խϩάͱͯ͠ग़ྗ͢Δπʔϧ • MySQL, PostgreSQLͷϓϩτίϧʹରԠ • σʔλϕʔεϓϩΩγͱͯ͠ར༻ʢtcpdumpͷΑ͏ʹ΋ར༻Մೳʣ 20 tcpdp UDQEQ

    σʔλϕʔε ΫϥΠΞϯτ ΫΤϦ UDQEQIUUQTHJUIVCDPNL-P8UDQEQ ΫΤϦ ߏ଄Խϩά \ RVFSZl4&-&$5 '30.VTFST8)&3&JEz  DMJFOU@BEESl  VTFSOBNFlBQQz  ʜ ^
  21. • SQLͷϗϫΠτϦετ࡞੒ͱෆਖ਼ΫΤϦͷݕ஌Λߦ͏πʔϧ 21 sqd ΫΤϦϩά ϗϫΠτϦετͷ࡞੒ ෆਖ਼ΫΤϦͷݕ஌ TRE ϗϫΠτϦετ 4&-&$5

    '30.VTFST8)&3&JE 4&-&$5 '30.VTFST8)&3&OBNF %&-&5&'30.VTFST8)&3&OBNF ʜ ΫΤϦͷϦςϥϧΛ ϓϨʔεϗϧμʔʹஔ͖׵͑ͨ ΫΤϦߏ଄ʹม׵ 4&-&$5 '30.VTFST8)&3&JE 4&-&$5 '30.VTFST8)&3&JE ΫΤϦϩά TRE ϗϫΠτϦετ TREIUUQTHJUIVCDPN,PNFJTRE ΫΤϦߏ଄ϕʔεͰͷൺֱ ෆਖ਼ΫΤϦ
  22. • ςετ࣌͸tcpdpͰऩूͨ͠ΫΤϦ͔Βsqd͕ϗϫΠτϦετΛग़ྗ • WebΞϓϦέʔγϣϯՔಇ࣌͸tcpdp͕ऩूͨ͠ΫΤϦ͔Βෆਖ਼ΫΤϦΛग़ྗ 22 tcpdp + sqdΛ༻͍ͨఏҊख๏ͷ࣮૷ UDQEQ σʔλϕʔε

    8FCΞϓϦέʔγϣϯ ΫΤϦ TRE ΫΤϦϩά ϗϫΠτϦετ ςετ࣌ 8FCΞϓϦέʔγϣϯՔಈ࣌ ෆਖ਼ΫΤϦ ΫΤϦ ςετ࣌ͱ8FCΞϓϦέʔγϣϯՔಇ࣌Ͱ TREͷಈ࡞Λ੾Γସ͑
  23. ධՁ

  24. • ఏҊख๏ʹΑͬͯෆਖ਼ΫΤϦΛݕ஌Ͱ͖Δ͔ɼWebΞϓϦέʔγϣϯ͕ൃߦ ͢Δਖ਼ৗͳΫΤϦΛޡݕ஌͠ͳ͍͔ɼΛ࣮ݧʹΑΓ֬ೝ͢Δ • ҎԼͷ2ͭͷධՁࢦඪΛఆٛ͢Δ • False positive: WebΞϓϦέʔγϣϯ͕ൃߦ͢Δਖ਼ৗͳΫΤϦΛޡͬͯෆਖ਼ ͱ൑அ͢Δ͜ͱ

    • False negative: ߈ܸʹΑͬͯൃੜ͢Δෆਖ਼ΫΤϦΛޡͬͯਖ਼ৗͱ൑அ͢Δ ͜ͱ 24 ධՁํ๏
  25. 25 ࣮ݧํ๏ 8FC "QQMJDBUJPO %BUBCBTF ϒϥ΢β TRMNBQ ʢ42-ΠϯδΣΫγϣϯ߈ܸΛߦ͏πʔϧʣ ϖʔδΛ໢ཏతʹૢ࡞͠ )551ϦΫΤετ

    42-ΠϯδΣΫγϣϯ߈ܸΛؚΜͩ )551ϦΫΤετ ਖ਼ৗͳΫΤϦʢݸʣ ෆਖ਼ͳΫΤϦʢݸʣ ݕ஌͞Εͨਖ਼ৗͳΫΤϦ ΛΧ΢ϯτ ʢ'BMTFQPTJUJWFʣ ݕ஌Ͱ͖ͳ͔ͬͨ ෆਖ਼ͳΫΤϦΛΧ΢ϯτ ʢ'BMTFOFHBUJWFʣ ˞8FCΞϓϦέʔγϣϯʹ͸42-ΠϯδΣΫγϣϯͷ੬ऑੑ͕͋Γɼશͯͷ࣮૷ϝιουʹςετ͕هड़ͯ͋͠Δ ϗϫΠτϦετ ϗϫΠτϦετ র߹ র߹
  26. • ਖ਼ৗͳΫΤϦͷҰ෦Λޡݕ஌ • SQLΠϯδΣΫγϣϯʹΑΔෆਖ਼ΫΤϦΛશͯݕ஌ 26 ࣮ݧ݁Ռ σʔληοτ ΫΤϦ਺ 'BMTFQPTJUJWF 'BMTFOFHBUJWF

    ਖ਼ৗͳΫΤϦ     ෆਖ਼ΫΤϦ ʢ42-ΠϯδΣΫγϣϯʣ    
  27. 3. ·ͱΊͱࠓޙ

  28. • ͳΊΒ͔ͳηΩϡϦςΟʹ޲͚ͨηΩϡϦςΟWGͷऔΓ૊ΈΛ঺հ • Edgeʹ഑ஔ͢ΔϚΠΫϩίϯϙʔωϯτͱͯ͠ɼʮWebΞϓϦέʔγϣϯς ετΛ༻͍ͨSQLΫΤϦͷϗϫΠτϦετͷࣗಈ࡞੒ख๏ʯΛ঺հ • ࠓޙ͸ɼϢʔβͷଐੑʹΑͬͯར༻͢ΔϗϫΠτϦετΛ੾Γସ͑ɼΑΓύʔ ιφϥΠζԽ͞ΕͨίϯϙʔωϯτΛ໨ࢦ͢ 28 ·ͱΊͱࠓޙ

  29. ݚڀһɺੵۃతʹืूதʂ http://rand.pepabo.com/