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

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

Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法 / Automatic whitelist generation for SQL queries using web application tests

IOT46 第46回インターネットと運用技術研究会

Komei Nomura

June 14, 2019
Tweet

More Decks by Komei Nomura

Other Decks in Research

Transcript

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

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

    ։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ෇͚ w 8FCΞϓϦέʔγϣϯͷมߋʹ௥ैͯ͠ςετίʔυ ΋มߋ ˠൃߦΫΤϦͷมԽʹ௥ैͯ͠ϗϫΠτϦετΛߋ৽ w 8FCΞϓϦέʔγϣϯՔಈલʹϗϫΠτϦετ࡞੒ ˠՔಈޙɼଈ࠲ʹෆਖ਼ΫΤϦΛݕ஌Մೳ  ։ൃ  ςετίʔυͷهड़  αʔόʔʹ഑ஔ /P :FT  ΞϓϦέʔγϣϯՔಇ ςετ੒ޭʁ ΫΤϦͷऩू  `ࣗಈςετ࣮ߦ ϗϫΠτϦετ࡞੒
  3. • ఏҊख๏͸ςετ࣌ͷΫΤϦ͔ΒϗϫΠτϦετΛ࡞੒͢ΔͷͰɼςετ࣌ͱՔಇ࣌ͷΫΤϦ ͷؔ܎͕ݕ஌ਫ਼౓ʹӨڹΛ༩͑Δ 22 False positive / negativeͷཁҼͱͳΔΫΤϦ Քಇ࣌ʹൃߦ͞ΕΔΫΤϦ ςετ࣌ʹൃߦ͞ΕΔΫΤϦ

    • ςετ࣌ʹ͔͠ൃߦ͞Εͳ͍ཧ༝ • ςετσʔλͷొ࿥ɼҰׅ࡟আ ͳͲͷૢ࡞Λߦ͏ΫΤϦ͕͋Δ • Քಇ࣌ʹ͔͠ൃߦ͞Εͳ͍ཧ༝ • ςετέʔε͸Քಇ࣌ͷ࣮ߦύ λʔϯͷҰ෦ͳͷͰɼՔಇ࣌ͷ ΫΤϦΛ໢ཏͰ͖ͳ͍ 'BMTFOFHBUJWFͷཁҼ 'BMTFQPTJUJWFͷཁҼ
  4. • શͯਖ਼ৗͳॲཧʹΑͬͯൃߦ͞Εͨ΋ͷ • ςετ࣌ʹൃߦ͞Εͳ͔ͬͨཧ༝ɿ ɹ ςετέʔεͷܽ೗ɼDB΁ͷΞΫηεলུ • ࠜຊతʹରॲ͢ΔͨΊʹ͸ɼ͜ΕΒͷΫΤϦΛϗϫΠτϦετ ʹิ͏ํ๏͕ඞཁ •

    ఏҊख๏Λద༻͢ΔςʔϒϧΛݶఆͯ͠ݕ஌ର৅ͷΫΤϦ਺Λ ݮΒ͢ • ػີ৘ใ͕อ؅͞Εͨςʔϒϧͷૢ࡞Λߦ͏ΫΤϦΛݕ஌ ର৅ͱ͢Δ 25 False positiveͷཁҼͱͳΔΫΤϦͷߟ࡯    ࣮؀ڥͰൃߦ͞ΕͨΫΤϦߏ଄ʢΫΤϦϩάʣ ςετ࣌ʹൃߦ͞ΕͨΫΤϦߏ଄
  5. • ͜ͷྖҬʹ͸2छྨͷΫΤϦؚ͕·Ε͍ͯͨ 1. ࣮؀ڥͰൃߦ͞ΕΔ͕ΫΤϦϩάͷظؒͰ͸ൃߦ͞Εͳ ͔ͬͨΫΤϦ 2. ςετͰͷΈൃߦ͞ΕΔΫΤϦ • 2.ͷΫΤϦʹ͸ɼػີ৘ใ͕อ؅͞Εͨςʔϒϧͷશ࡟আͳͲͷ ૢ࡞Λߦ͏΋ͷ͕͋ͬͨ

    • ϒϥοΫϦετͱϗϫΠτϦετΛ૊Έ߹Θͤͯଟ૚తʹ๷͙ • Өڹൣғ͕େ͖͍ʢσʔλͷҰׅ࡟আͳͲʣΫΤϦ͸༧Ίϒ ϥοΫϦετʹఆ͓ٛͯ͘͠ 26 False negativeͷཁҼͱͳΔΫΤϦͷߟ࡯    ࣮؀ڥͰൃߦ͞ΕͨΫΤϦߏ଄ʢΫΤϦϩάʣ ςετ࣌ʹൃߦ͞ΕͨΫΤϦߏ଄
  6. • False positiveͷཁҼͱͳΔΫΤϦ΁ͷରॲ๏ͷݕ౼ • ख๏ͷద༻Λςʔϒϧ୯ҐͰ੍ݶͨ͠৔߹ͷFalse positiveΛධՁ • ϗϫΠτϦετʹෆ଍͍ͯ͠ΔΫΤϦΛิ׬͢Δํ๏ͷௐࠪ • False

    negativeͷཁҼͱͳΔΫΤϦ΁ͷରॲ๏ͷݕ౼ • ϒϥοΫϦετͱϗϫΠτϦετΛซ༻ͨ͠৔߹ͷFalse negativeΛධՁ 29 ࠓޙͷ՝୊