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

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

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

Ec3fcf78fa2ad21dcc48478df80e0dc4?s=128

Komei Nomura

June 14, 2019
Tweet

Transcript

  1. 16.

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

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

    17 w ςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετΛ
 ࡞੒ w ҎԼΛͦΕͧΕαʔόʹ഑ஔ w 8FCΞϓϦέʔγϣϯͷιʔείʔυ w ϗϫΠτϦετ

    ։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ෇͚ w 8FCΞϓϦέʔγϣϯͷมߋʹ௥ैͯ͠ςετίʔυ ΋มߋ ˠൃߦΫΤϦͷมԽʹ௥ैͯ͠ϗϫΠτϦετΛߋ৽ w 8FCΞϓϦέʔγϣϯՔಈલʹϗϫΠτϦετ࡞੒ ˠՔಈޙɼଈ࠲ʹෆਖ਼ΫΤϦΛݕ஌Մೳ  ։ൃ  ςετίʔυͷهड़  αʔόʔʹ഑ஔ /P :FT  ΞϓϦέʔγϣϯՔಇ ςετ੒ޭʁ ΫΤϦͷऩू  `ࣗಈςετ࣮ߦ ϗϫΠτϦετ࡞੒
  3. 22.

    • ఏҊख๏͸ςετ࣌ͷΫΤϦ͔ΒϗϫΠτϦετΛ࡞੒͢ΔͷͰɼςετ࣌ͱՔಇ࣌ͷΫΤϦ ͷؔ܎͕ݕ஌ਫ਼౓ʹӨڹΛ༩͑Δ 22 False positive / negativeͷཁҼͱͳΔΫΤϦ Քಇ࣌ʹൃߦ͞ΕΔΫΤϦ ςετ࣌ʹൃߦ͞ΕΔΫΤϦ

    • ςετ࣌ʹ͔͠ൃߦ͞Εͳ͍ཧ༝ • ςετσʔλͷొ࿥ɼҰׅ࡟আ ͳͲͷૢ࡞Λߦ͏ΫΤϦ͕͋Δ • Քಇ࣌ʹ͔͠ൃߦ͞Εͳ͍ཧ༝ • ςετέʔε͸Քಇ࣌ͷ࣮ߦύ λʔϯͷҰ෦ͳͷͰɼՔಇ࣌ͷ ΫΤϦΛ໢ཏͰ͖ͳ͍ 'BMTFOFHBUJWFͷཁҼ 'BMTFQPTJUJWFͷཁҼ
  4. 23.
  5. 25.

    • શͯਖ਼ৗͳॲཧʹΑͬͯൃߦ͞Εͨ΋ͷ • ςετ࣌ʹൃߦ͞Εͳ͔ͬͨཧ༝ɿ ɹ ςετέʔεͷܽ೗ɼDB΁ͷΞΫηεলུ • ࠜຊతʹରॲ͢ΔͨΊʹ͸ɼ͜ΕΒͷΫΤϦΛϗϫΠτϦετ ʹิ͏ํ๏͕ඞཁ •

    ఏҊख๏Λద༻͢ΔςʔϒϧΛݶఆͯ͠ݕ஌ର৅ͷΫΤϦ਺Λ ݮΒ͢ • ػີ৘ใ͕อ؅͞Εͨςʔϒϧͷૢ࡞Λߦ͏ΫΤϦΛݕ஌ ର৅ͱ͢Δ 25 False positiveͷཁҼͱͳΔΫΤϦͷߟ࡯    ࣮؀ڥͰൃߦ͞ΕͨΫΤϦߏ଄ʢΫΤϦϩάʣ ςετ࣌ʹൃߦ͞ΕͨΫΤϦߏ଄
  6. 26.

    • ͜ͷྖҬʹ͸2छྨͷΫΤϦؚ͕·Ε͍ͯͨ 1. ࣮؀ڥͰൃߦ͞ΕΔ͕ΫΤϦϩάͷظؒͰ͸ൃߦ͞Εͳ ͔ͬͨΫΤϦ 2. ςετͰͷΈൃߦ͞ΕΔΫΤϦ • 2.ͷΫΤϦʹ͸ɼػີ৘ใ͕อ؅͞Εͨςʔϒϧͷશ࡟আͳͲͷ ૢ࡞Λߦ͏΋ͷ͕͋ͬͨ

    • ϒϥοΫϦετͱϗϫΠτϦετΛ૊Έ߹Θͤͯଟ૚తʹ๷͙ • Өڹൣғ͕େ͖͍ʢσʔλͷҰׅ࡟আͳͲʣΫΤϦ͸༧Ίϒ ϥοΫϦετʹఆ͓ٛͯ͘͠ 26 False negativeͷཁҼͱͳΔΫΤϦͷߟ࡯    ࣮؀ڥͰൃߦ͞ΕͨΫΤϦߏ଄ʢΫΤϦϩάʣ ςετ࣌ʹൃߦ͞ΕͨΫΤϦߏ଄
  7. 29.

    • False positiveͷཁҼͱͳΔΫΤϦ΁ͷରॲ๏ͷݕ౼ • ख๏ͷద༻Λςʔϒϧ୯ҐͰ੍ݶͨ͠৔߹ͷFalse positiveΛධՁ • ϗϫΠτϦετʹෆ଍͍ͯ͠ΔΫΤϦΛิ׬͢Δํ๏ͷௐࠪ • False

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