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

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

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

Ec3fcf78fa2ad21dcc48478df80e0dc4?s=128

Komei Nomura

May 18, 2018
Tweet

Transcript

  1. 1.

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

    Πϯλʔωοτͱӡ༻ٕज़ݚڀձ WebΞϓϦέʔγϣϯςετΛ༻͍ͨ
 SQLΫΤϦͷϗϫΠτϦετࣗಈ࡞੒ख๏
  2. 12.

    • ϝϦοτ • WebΞϓϦͷ࣮૷ʹґଘͤͣϗϫΠτϦετΛ࡞੒Մೳ • σϝϦοτ • ϗϫΠτϦετ࡞੒த͸ෆਖ਼ΫΤϦͷݕ஌͕Ͱ͖ͳ͍ • WebΞϓϦՔಇ࣌ʹϗϫΠτϦετ࡞੒ͱෆਖ਼ΫΤϦݕ஌͕ࠞࡏ

    • WebαʔϏεͷվमස౓͕ߴ͍͜ͱ͔Βݕ஌Ͱ͖ͳ͍λΠϛϯά͕ଟൃ • ϗϫΠτϦετͷ࡞੒͸WebΞϓϦՔಈલʹߦ͏ඞཁ͕͋Δ 12 ൃߦ͞ΕͨΫΤϦΛ༻͍ͨख๏ͷϝϦοτɾσϝϦοτ
  3. 14.

    • ϝϦοτ • 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.

    18 લఏͱ͢ΔࣗಈςετΛ༻͍ͨ։ൃϓϩηε ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ /P :FT ӡ༻։࢝ ςετ੒ޭ

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

    19 ։ൃ ςετίʔυهड़ αʔόʹ഑ஔ ࣗಈςετ ʴ ϗϫΠτϦετ࡞੒ /P :FT ӡ༻։࢝

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

    22 ςετΧόϨοδʹΑΔྖҬͷมԽ શͯͷΫΤϦ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ શͯͷΫΤϦ 8FCΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦྖҬ ςετ͞Ε͍ͯΔΫΤϦྖҬ ʢϗϫΠτϦετʹొ࿥ʣ

    ςετΧόϨοδΛ޲্ͤ͞Δ͜ͱͰςετ͞Ε͍ͯΔΫΤϦྖҬΛ֦େ ˠɹϗϫΠτϦετͷ໢ཏੑ͕޲্ ɿςετ͞Ε͍ͯΔΫΤϦྖҬ ɿෆਖ਼ΫΤϦྖҬ ɿςετ͞Ε͍ͯͳ͍ΫΤϦྖҬ
  7. 26.

    26 ఏҊख๏ͷઃܭ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ • σʔλϕʔεͷલஈʹσʔλϕʔεϓϩΩγΛ഑ஔ •

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

    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.

    28 WebΞϓϦՔಇ࣌ͷෆਖ਼ΫΤϦݕ஌ϑϩʔ σʔλϕʔε σʔλϕʔε
 ϓϩΩγ 8FCΞϓϦ ϗϫΠτϦετ 4&-&$5 '30. VTFST

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