Slide 1

Slide 1 text

໺ଜ޸໋(ϖύϘݚڀॴ), Ѩ෦ ത, ੁ໺ ఩(ίίϯגࣜձࣾ, גࣜձࣾϨϐμϜ), ྗ෢݈࣍(ྗ෢݈ٕ࣍ज़࢜ࣄ຿ॴ), দຊ྄հ(ϖύϘݚڀॴ, ͘͞ΒΠϯλʔωοτגࣜձࣾ) 2018.12.07 IOTS2018 ୈ11ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ WebΞϓϦέʔγϣϯςετΛ༻͍ͨ
 SQLΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏

Slide 2

Slide 2 text

1. ݚڀͷഎܠͱ໨త 2. ैདྷͷϗϫΠτϦετࣗಈ࡞੒ͷ՝୊ 3. ఏҊख๏ 4. ධՁ 5. ·ͱΊͱࠓޙͷ՝୊ 2 ໨࣍

Slide 3

Slide 3 text

1. ݚڀͷഎܠͱ໨త

Slide 4

Slide 4 text

• WebΞϓϦέʔγϣϯʢWebΞϓϦʣͷ੬ऑੑΛར༻ͨ͠߈ܸʹΑͬͯɼσʔλ ϕʔε্ͷػີ৘ใͷ࿙Ӯ͕ൃੜ • ߈ܸऀ͸༷ʑͳ߈ܸख๏Λ༻͍ͯɼσʔλϕʔεʹෆਖ਼ΫΤϦΛൃߦ • ߈ܸͷྫɿSQLΠϯδΣΫγϣϯɼOSίϚϯυΠϯδΣΫγϣϯͳͲ • ෆਖ਼ΫΤϦͱ͸ɼ߈ܸʹΑͬͯੜ͡Δ։ൃऀͷ૝ఆ֎ͷΫΤϦ • ෆਖ਼ΫΤϦΛݕ஌͠σʔλϕʔεΛอޢ͢Δରࡦ͕ඞཁ 4 ݚڀͷഎܠ

Slide 5

Slide 5 text

• ϒϥοΫϦετํࣜ • ط஌ͷෆਖ਼ͳύλʔϯΛఆٛ͢Δ • Ϧετʹఆٛͨ͠ύλʔϯͱ߹க͢ΔΫΤϦΛෆਖ਼ͱͯ͠ݕ஌͢Δ • ϗϫΠτϦετํࣜ • ਖ਼ৗͳύλʔϯΛఆٛ͢Δ • Ϧετʹఆٛͨ͠ύλʔϯͱ߹க͠ͳ͍ΫΤϦΛෆਖ਼ͱͯ͠ݕ஌͢Δ • ط஌ͷෆਖ਼ΫΤϦ͸ϒϥοΫϦετͰݕ஌Մೳ͕ͩɼະ஌ͷෆਖ਼ΫΤϦΛݕ஌͢Δ ʹ͸ϗϫΠτϦετ͕ඞཁ 5 ෆਖ਼ΫΤϦͷݕ஌ํ๏

Slide 6

Slide 6 text

• WebΞϓϦ͕ൃߦ͢ΔΫΤϦΛखಈͰϗϫΠτϦετʹొ࿥ • େن໛ͳWebΞϓϦͰ͸ൃߦ͞ΕΔΫΤϦ͕๲େͳͨΊɼશͯͷΫΤϦΛ ϗϫΠτϦετʹొ࿥͢Δ͜ͱ͸ࠔ೉ • WebΞϓϦͷվमʹΑͬͯൃߦ͞ΕΔΫΤϦ͸มԽ͠ɼϗϫΠτϦετͷ ߋ৽͕ඞཁ • ӡ༻ऀ΁ͷෛ୲͕େ͖͍ 6 ϗϫΠτϦετ࡞੒ͷ՝୊

Slide 7

Slide 7 text

• ӡ༻ऀ΁ͷෛ୲Λܰݮ͢ΔͨΊʹɼWebΞϓϦͷൃߦΫΤϦͷมԽʹࣗಈͰ ௥ैͰ͖ΔϗϫΠτϦετͷ࡞੒ํ๏ͷ࣮ݱ 7 ݚڀͷ໨త

Slide 8

Slide 8 text

2. ैདྷͷϗϫΠτϦετࣗಈ࡞੒ͷ՝୊

Slide 9

Slide 9 text

1. WebΞϓϦՔಇதͷΫΤϦΛ༻͍ͨख๏ • WebΞϓϦՔಇޙɼଈ࣌ʹෆਖ਼ΫΤϦΛݕ஌Ͱ͖ͳ͍ 2. ιʔείʔυղੳΛ༻͍ͨख๏ • WebΞϓϦͷ࣮૷ʹґଘͨ͠ํ๏ͷͨΊɼෳ਺ͷWebΞϓϦͰ൚༻తʹ
 ར༻Ͱ͖ͳ͍ 9 ैདྷͷϗϫΠτϦετࣗಈ࡞੒ͷ՝୊

Slide 10

Slide 10 text

• WebΞϓϦՔಈதʹൃߦ͞ΕͨΫΤϦΛऩू͠ϗϫΠτϦετΛ࡞੒ • ൃߦ͞ΕͨΫΤϦΛར༻͢ΔͷͰɼWebΞϓϦʹґଘͤͣ൚༻తʹར༻Մೳ 10 1. ैདྷͷWebΞϓϦՔಈதͷΫΤϦΛ༻͍ͨख๏ σʔλϕʔε 8FCΞϓϦ ΫΤϦ ϗϫΠτϦετ 8FCΞϓϦՔಇத )551ϦΫΤετ

Slide 11

Slide 11 text

• WebΞϓϦՔಇޙɼଈ࣌ʹෆਖ਼ΫΤϦΛݕ஌Ͱ͖ͳ͍ • ΫΤϦΛऩूͯ͠ϗϫΠτϦετ͕࡞੒͞Εͨޙʹݕ஌Λߦ͏ • ΫΤϦͷऩूظؒத͸ෆਖ਼ΫΤϦͷݕ஌Λߦ͑ͳ͍ • WebαʔϏεͷվमස౓͸ߴ͘ɼෆਖ਼ΫΤϦΛݕ஌Ͱ͖ͳ͍ظ͕ؒଟൃ͢Δ • ϗϫΠτϦετͷ࡞੒͸WebΞϓϦՔಈલʹߦ͏ඞཁ͕͋Δ 11 1. ैདྷͷWebΞϓϦՔಈதͷΫΤϦΛ༻͍ͨख๏ͷ՝୊

Slide 12

Slide 12 text

• WebΞϓϦͷιʔείʔυதͷSQLΛ૊ΈཱͯΔॲཧͷղੳΛߦ͍ɼൃߦ͞ ΕΔΫΤϦύλʔϯΛྻڍ͠ɼϗϫΠτϦετʹొ࿥͢Δ • ιʔείʔυΛར༻͢ΔͷͰɼWebΞϓϦՔಇલʹϗϫΠτϦετΛ࡞੒Ͱ ͖Δ 12 2. ैདྷͷιʔείʔυղੳΛ༻͍ͨख๏ ղੳث ιʔείʔυ ϗϫΠτϦετ 8FCΞϓϦՔಈલ

Slide 13

Slide 13 text

• ιʔείʔυͷղੳ͕࣮૷ʹґଘͨ͠ํ๏ͷͨΊɼෳ਺ͷWebΞϓϦͰ൚༻ తʹར༻Ͱ͖ͳ͍ • WebΞϓϦͷ࣮૷ʹ༷ʑͳݴޠ΍ORM͕ར༻͞ΕΔ৔߹ɼղੳثͷ
 ࣮૷͕ଟذʹΘͨΔ • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ํ๏͕ඞཁ 13 2. ैདྷͷιʔείʔυղੳΛ༻͍ͨख๏ͷ՝୊

Slide 14

Slide 14 text

3. ఏҊख๏

Slide 15

Slide 15 text

• WebΞϓϦέʔγϣϯςετΛ༻͍ͨΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏ • ࣗಈςετΛ༻͍ͨ։ൃϓϩηεʹϗϫΠτϦετ࡞੒Λ૊ΈࠐΉ • WebΞϓϦͷൃߦΫΤϦͷมԽʹ௥ै • WebΞϓϦՔಈલʹϗϫΠτϦετ࡞੒ • σʔλϕʔεϓϩΩγͰΫΤϦΛऩू͠ɼϗϫΠτϦετ࡞੒ • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ 15 ఏҊख๏֓ཁ

Slide 16

Slide 16 text

16 ఏҊख๏͕લఏͱ͢ΔࣗಈςετΛ༻͍ͨ։ൃϓϩηε ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ /P :FT Քಇ։࢝ ςετ੒ޭ w ৽ػೳͷ௥Ճ w طଘػೳͷमਖ਼ w 8FCΞϓϦͷಈ࡞खॱͱಈ࡞ͷ݁ՌΛهड़ w ςετίʔυΛݩʹࣗಈͰςετΛ࣮ߦ w 8FCΞϓϦͷಈ࡞͕࢓༷௨Γ͔Λ֬ೝ w ςετࣦഊɿ8FCΞϓϦͷιʔείʔυ΋͘͠͸ ςετίʔυʹ໰୊͋Γ w ςετ੒ޭɿ8FCΞϓϦ͕࢓༷௨Γʹಈ࡞ w 8FCΞϓϦͷιʔείʔυΛαʔόʹ഑ஔ w 8FCΞϓϦΛՔಇ

Slide 17

Slide 17 text

17 ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ ʴ ϗϫΠτϦετ࡞੒ /P :FT Քಇ։࢝ ςετ੒ޭ w ςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετΛ
 ࡞੒ w ҎԼΛͦΕͧΕαʔόʹ഑ஔ w 8FCΞϓϦͷιʔείʔυ w ϗϫΠτϦετ ։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ෇͚ w 8FCΞϓϦ͕Քಇ͢ΔલʹϗϫΠτϦετΛ࡞੒Մೳ w 8FCΞϓϦͷൃߦΫΤϦͷมԽʹ௥ैͯ͠ɼϗϫΠτ ϦετΛߋ৽Ͱ͖Δ

Slide 18

Slide 18 text

• ΫΤϦͷϦςϥϧ஋ΛϓϨʔεϗϧμʹஔ͖׵͑ͨΫΤϦߏ଄Λొ࿥ • ൃߦ͞ΕͨΫΤϦͷΫΤϦߏ଄ͷҧ͍Λݕ஌ 18 ϗϫΠτϦετͷొ࿥಺༰ ΫΤϦɿ4&-&$5'30.VTFST8)&3&JE ΫΤϦߏ଄ɿ4&-&$5'30.VTFST8)&3&JEʁ ϗϫΠτϦετ

Slide 19

Slide 19 text

19 ఏҊख๏ͷઃܭ • σʔλϕʔεͷલஈʹσʔλϕʔεϓϩΩγΛ഑ஔ • ςετ࣮ߦதʹൃߦ͞ΕͨΫΤϦΛऩू • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ ςετ࣮ߦத σʔλϕʔε 8FCΞϓϦ σʔλϕʔεϓϩΩγ ϗϫΠτϦετ ΫΤϦΛऩू͠ΫΤϦߏ଄΁ม׵ ग़ྗ ΫΤϦ ΫΤϦ

Slide 20

Slide 20 text

20 ఏҊख๏ͷઃܭ • WebΞϓϦՔಇத͸ൃߦΫΤϦͱϗϫΠτϦετΛর߹͠ɼෆਖ਼ΫΤϦΛݕ஌ • র߹ॲཧʹΑͬͯɼWebΞϓϦͱσʔλϕʔεؒʹಈ࡞ͷ஗Ԇ͕ൃੜ • ΫΤϦߏ଄ΛΩʔͱͨ͠ϋογϡςʔϒϧͱͯ͠ϗϫΠτϦετΛදݱ • ϦετͷΤϯτϦ਺ʹґଘͤͣɼߴ଎ʹর߹ॲཧ͕Մೳ σʔλϕʔε 8FCΞϓϦ σʔλϕʔεϓϩΩγ 8FCΞϓϦՔಇத ΫΤϦ ΫΤϦ ΫΤϦͱϗϫΠτϦετΛর߹ͯ͠ݕ஌ ෆਖ਼ΫΤϦ ग़ྗ ϗϫΠτϦετ

Slide 21

Slide 21 text

4. ධՁ

Slide 22

Slide 22 text

• ςετ޻ఔʹϗϫΠτϦετͷ࡞੒Λ૊ΈࠐΜͩ • ϗϫΠτϦετΛ࡞੒͢Δ͜ͱͷӡ༻ͷෛՙΛഉআ • ϗϫΠτϦετΛൃߦΫΤϦͷมԽʹ௥ैͯ͠ߋ৽͢Δ͜ͱͷӡ༻ͷෛՙΛ ഉআ 22 ӡ༻΁ͷෛՙͷධՁ

Slide 23

Slide 23 text

• ϗϫΠτϦετͷর߹଎౓ͷධՁ • ΫΤϦߏ଄ΛΩʔͱͨ͠ϋογϡςʔϒϧͱͯ͠ϗϫΠτϦετΛදݱ͢Δ ͜ͱʹΑΓɼΤϯτϦ਺ʹґଘͤͣߴ଎ʹর߹Ͱ͖Δ • ςετ࣌ͷΫΤϦ͔Β࡞੒ͨ͠ϗϫΠτϦετͷݕ஌ਫ਼౓ͷධՁ 23 ࣮ӡ༻্ͷධՁ఺

Slide 24

Slide 24 text

24 ݕ஌ਫ਼౓ͷධՁɿݕ஌ਫ਼౓ͷධՁࢦඪ 'BMTFOFHBUJWF 5SVFQPTJUJWF 5SVFOFHBUJWF ෆਖ਼ͳΫΤϦΛෆਖ਼ͱ൑அͰ͖ͳׂ͔ͬͨ߹ 'BMTFQPTJUJWF ਖ਼ৗͳΫΤϦΛਖ਼ৗͱ൑அͰ͖ͳׂ͔ͬͨ߹ ਖ਼ৗͳΫΤϦΛਖ਼ৗͱ൑அׂͨ͠߹ ෆਖ਼ͳΫΤϦΛෆਖ਼ͱ൑அͰׂ͖ͨ߹

Slide 25

Slide 25 text

25 ݕ஌ਫ਼౓ͷධՁɿఏҊख๏ͷݕ஌ਫ਼౓ͷ༧૝ 'BMTFOFHBUJWF 5SVFQPTJUJWF 5SVFOFHBUJWF 'BMTFQPTJUJWF ςετ࣌ʹൃߦ͞ΕͨΫΤϦ ςετ࣌ʹൃߦ͞Εͳ͍ΫΤϦ ʢ8FCΞϓϦ͸ൃߦ͢Δʣ ςετ࣌ͷΈൃߦ͞ΕΔΫΤϦ ʢ8FCΞϓϦ͸ൃߦ͠ͳ͍ʣ ݕ஌ਫ਼౓ͷධՁͱͯ͠ɼ'BMTFQPTJUJWFͱ'BMTFOFHBUJWFΛܭଌͨ͠

Slide 26

Slide 26 text

26 ݕ஌ਫ਼౓ͷධՁɿ࣮ݧ؀ڥ "QQ 1SPYZ42- .Z42- BSUJDMFςʔϒϧͷૢ࡞Λߦ͏ϝιουΛ࣮૷͠ɼςετΛهड़ )551 63- ૢ࡞಺༰ (&5 BSUJDMFT શͯͷBSUJDMFΛදࣔ (&5 BSUJDMFT UJUMFlz UJUMFͰݕࡧͯ͠BSUJDMFΛදࣔ ʢ42-ΠϯδΣΫγϣϯͷ੬ऑੑ͋Γʣ 1045 BSUJDMFT BSUJDMFΛͭ࡞੒ (&5 BSUJDMFTJE ಛఆͷBSUJDMFΛදࣔ 1"5$) BSUJDMFTJE BSUJDMFΛߋ৽ %&-&5& BSUJDMFTJE BSUJDMFΛ࡟আ UJUMFͱDPOUFOUΧϥϜΛ࣋ͬͨ
 BSUJDMFςʔϒϧΛ࡞੒ ςετ࣌ʹൃߦ͞ΕͨΫΤϦΛऩू͠ɼΫΤϦߏ଄ʹม׵ͯ͠ ϗϫΠτϦετΛ࡞੒ ProxySQL: https://proxysql.com/

Slide 27

Slide 27 text

• ਖ਼ৗͳΫΤϦσʔλ • WebΞϓϦʹϒϥ΢β͔ΒखಈͰHTTPϦΫΤετΛૹΓɼͦͷաఔͰൃߦ ͞ΕͨΫΤϦΛऔಘʢΫΤϦ਺ɿ17ʣ • ෆਖ਼ͳΫΤϦσʔλ • sqlmapΛ༻͍ͯSQLΠϯδΣΫγϣϯ߈ܸΛWebΞϓϦͷݕࡧϑΥʔϜʹ ߦ͍ɼͦͷաఔͰൃߦ͞ΕͨΫΤϦΛऔಘʢΫΤϦ਺ɿ265ʣ • ͜ΕΒΛϗϫΠτϦετͱর߹ͯ͠False positiveͱFalse negativeΛࢉग़ 27 ݕ஌ਫ਼౓ͷධՁɿ࣮ݧํ๏ Sqlmap: http://sqlmap.org/

Slide 28

Slide 28 text

• False positiveɿ17.65%ɼFalse negativeɿ0% • ਖ਼ৗͳΫΤϦͷҰ෦Λޡݕ஌ • SQLΠϯδΣΫγϣϯ߈ܸʹΑΓൃੜͨ͠ෆਖ਼ΫΤϦΛશͯݕ஌ 28 ݕ஌ਫ਼౓ͷධՁɿ࣮ݧ݁Ռ

Slide 29

Slide 29 text

• શͯͷ࣮૷ϝιουʹରͯ͠ςετΛهड़͕ͨ͠ɼFalse positive͸ൃੜ • ςετέʔεʹΑͬͯ͸ൃߦ͞Εͳ͍ΫΤϦ͕ଘࡏ͠ɼϗϫΠτϦετʹ
 ࿙Ε͕ੜ͡Δ • େن໛ͳWebΞϓϦͰ͸ɼൃߦΫΤϦ਺͕૿Ճ͢ΔͨΊɼޡݕ஌͞ΕΔ
 ΫΤϦ਺΋૿େ • ϗϫΠτϦετʹෆ଍͍ͯ͠ΔΫΤϦΛิ׬͢Δํ๏͕ඞཁ 29 False postiveͷߟ࡯

Slide 30

Slide 30 text

5. ·ͱΊͱࠓޙͷ՝୊

Slide 31

Slide 31 text

• WebΞϓϦέʔγϣϯςετΛ༻͍ͨΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏ ΛఏҊͨ͠ • WebΞϓϦͷൃߦΫΤϦͷมߋʹ௥ैͰ͖Δ • WebΞϓϦՔಇޙɼଈ࣌ʹෆਖ਼ΫΤϦΛݕ஌Ͱ͖Δ • WebΞϓϦͷ࣮૷ʹґଘͤͣɼ൚༻తʹར༻Ͱ͖Δ • SQLΠϯδΣΫγϣϯ߈ܸʹΑΔෆਖ਼ΫΤϦΛશͯݕ஌Ͱ͖Δ͜ͱΛ֬ೝ • ਖ਼ৗͳΫΤϦͷҰ෦Λޡݕ஌͢Δ͜ͱΛ֬ೝ 31 ·ͱΊ

Slide 32

Slide 32 text

• False positiveͷܰݮ • ϗϫΠτϦετʹෆ଍͍ͯ͠ΔΫΤϦΛิ׬͢Δํ๏ͷݕ౼ • False negativeͷՄೳੑΛഉআ • ϗϫΠτϦετʹؚ·ΕΔςετ࣌ͷΈൃߦ͞ΕΔΫΤϦ΁ͷରॲํ๏ͷ
 ݕ౼ • େن໛ͳWebΞϓϦέʔγϣϯʹ͓͚Δݕ஌ਫ਼౓΍ɼWebΞϓϦͱσʔλ ϕʔεؒͷϨΠςϯγʔͷධՁ 32 ࠓޙͷ՝୊