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

Webアプリケーションテストを用いた
SQLクエリのホワイトリスト自動作成手法 / Autom...

Webアプリケーションテストを用いた
SQLクエリのホワイトリスト自動作成手法 / Automatic Whitelist Generation for SQL Queries Using Web Application Test

野村孔命, 力武健次*, 松本亮介 / ペパボ研究所 / *力武健次技術士事務所
2018.05.18 第41回 情報処理学会 インターネットと運用技術研究会

Komei Nomura

May 18, 2018
Tweet

More Decks by Komei Nomura

Other Decks in Research

Transcript

  1. ໺ଜ޸໋, ྗ෢݈࣍*, দຊ྄հ / ϖύϘݚڀॴ / *ྗ෢݈ٕ࣍ज़࢜ࣄ຿ॴ 2018.05.18 ୈ41ճ ৘ใॲཧֶձ

    Πϯλʔωοτͱӡ༻ٕज़ݚڀձ WebΞϓϦέʔγϣϯςετΛ༻͍ͨ
 SQLΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏
  2. • ϝϦοτ • WebΞϓϦͷ࣮૷ʹґଘͤͣϗϫΠτϦετΛ࡞੒Մೳ • σϝϦοτ • ϗϫΠτϦετ࡞੒த͸ෆਖ਼ΫΤϦͷݕ஌͕Ͱ͖ͳ͍ • WebΞϓϦՔಇ࣌ʹϗϫΠτϦετ࡞੒ͱෆਖ਼ΫΤϦݕ஌͕ࠞࡏ

    • WebαʔϏεͷվमස౓͕ߴ͍͜ͱ͔Βݕ஌Ͱ͖ͳ͍λΠϛϯά͕ଟൃ • ϗϫΠτϦετͷ࡞੒͸WebΞϓϦՔಈલʹߦ͏ඞཁ͕͋Δ 12 ൃߦ͞ΕͨΫΤϦΛ༻͍ͨख๏ͷϝϦοτɾσϝϦοτ
  3. • ϝϦοτ • WebΞϓϦՔಈޙɼଈ࣌ʹෆਖ਼ΫΤϦݕ஌͕Մೳ • σϝϦοτ • ιʔείʔυղੳ͕WebΞϓϦͷ࣮૷ʹґଘ͢ΔͨΊ൚༻తʹར༻ෆՄ • WebαʔϏε͸࣮૷ʹ༷ʑͳݴޠ΍ORM*Λར༻

    • WebΞϓϦͷ࣮૷ʹґଘ͠ͳ͍ํ๏͕ඞཁ 14 ιʔείʔυղੳΛ༻͍ͨख๏ͷϝϦοτɾσϝϦοτ *Scott W. Ambler, Mapping objects to relational databases What you need to know and why Ronin International, July 2000
  4. 18 લఏͱ͢ΔࣗಈςετΛ༻͍ͨ։ൃϓϩηε ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ /P :FT ӡ༻։࢝ ςετ੒ޭ

    w ৽ػೳͷ௥Ճ w طଘػೳͷमਖ਼ w 8FCΞϓϦΛಈ࡞ͤ͞Δखॱͱಈ࡞ͷ݁ՌΛهड़ w ςετίʔυΛݩʹࣗಈͰςετΛ࣮ߦ w 8FCΞϓϦͷಈ࡞͕࢓༷௨Γ͔Λ֬ೝ w ςετࣦഊɿ8FCΞϓϦͷιʔείʔυ΋͘͠͸ ςετίʔυʹ໰୊͋Γ w ςετ੒ޭɿ8FCΞϓϦ͕࢓༷௨Γʹಈ࡞ w ৽͍͠8FCΞϓϦͷιʔείʔυΛαʔόʹ഑ஔ w ৽͍͠8FCΞϓϦͷӡ༻Λ։࢝
  5. 19 ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ ʴ ϗϫΠτϦετ࡞੒ /P :FT ӡ༻։࢝

    ςετ੒ޭ w ࣗಈςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετ Λࣗಈ࡞੒ w ҎԼΛͦΕͧΕαʔόʹ഑ஔ w ৽͍͠8FCΞϓϦͷιʔείʔυ w ৽͍͠8FCΞϓϦͷΫΤϦͷϗϫΠτϦετ ։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ෇͚ w ։ൃϓϩηε΁ͷӨڹ͕খ͍͞ w ӡ༻։࢝࣌ʹ͸ෆਖ਼ΫΤϦΛݕ஌Ͱ͖Δঢ়ଶ w ϗϫΠτϦετͷ໢ཏੑ͸ςετ࣌ʹൃߦ͞ΕͨΫ ΤϦʹґଘ w ߴ͍ςετΧόϨοδ͕ඞཁ
  6. 22 ςετΧόϨοδʹΑΔྖҬͷมԽ શͯͷΫΤϦ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ શͯͷΫΤϦ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ

    ςετΧόϨοδΛ޲্ͤ͞Δ͜ͱͰςετ͞Ε͍ͯΔΫΤϦྖҬΛ֦େ ˠɹϗϫΠτϦετͷ໢ཏੑ͕޲্ ɿςετ͞Ε͍ͯΔΫΤϦྖҬ ɿෆਖ਼ΫΤϦྖҬ ɿςετ͞Ε͍ͯͳ͍ΫΤϦྖҬ
  7. 26 ఏҊख๏ͷઃܭ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ • σʔλϕʔεͷલஈʹσʔλϕʔεϓϩΩγΛ഑ஔ •

    ςετ࣌ʹ͸ൃߦ͞ΕΔΫΤϦΛσʔλϕʔεϓϩΩγͰऩूͯ͠ϗϫΠτϦε τΛ࡞੒ɹˠɹWebΞϓϦͷ࣮૷ݴޠʹґଘ͠ͳ͍ • WebΞϓϦՔಇ࣌ͷෆਖ਼ΫΤϦݕ஌΋ಉ͡ߏ੒
  8. 27 ςετ࣌ͷϗϫΠτϦετ࡞੒ϑϩʔ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ 4&-&$5 '30. VTFST

    8)&3&JE 4&-&$5 '30. VTFST 8)&3&JE 4&-&$5 '30. VTFST 8)&3&JEʁ ΫΤϦΛൃߦ ΫΤϦ͸ͦͷ··σʔλϕʔε΁ ςετऴྃޙΫΤϦߏ଄ʹม׵ ΫΤϦߏ଄ΛϗϫΠτϦετʹొ࿥ ΫΤϦΛऩू
  9. 28 WebΞϓϦՔಇ࣌ͷෆਖ਼ΫΤϦݕ஌ϑϩʔ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ 4&-&$5 '30. VTFST

    8)&3&JE 4&-&$5 '30. VTFST 8)&3&JE 4&-&$5 '30. VTFST 8)&3&JEʁ ΫΤϦߏ଄ʹม׵ ϗϫΠτϦετͱೖྗ͞ΕͨΫΤϦߏ଄Λর߹ ΫΤϦΛൃߦ ΫΤϦΛड͚औΔ র߹݁ՌΛฦ٫ র߹݁Ռ͔ΒΫΤϦΛ࣮ߦ͢Δ͔Λܾఆ