Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
不正クエリを検知するsqdを作った
Komei Nomura
February 12, 2019
Technology
1
430
不正クエリを検知するsqdを作った
Fukuoka.go#13+Okayama.go
https://fukuokago.connpass.com/event/112073/
Komei Nomura
February 12, 2019
Tweet
Share
More Decks by Komei Nomura
See All by Komei Nomura
Kerasによるモデル構築 / Model-building-with-Keras
komei22
0
4.9k
ハンドメイド作品を対象としたECサイトにおける単語の出現頻度を用いた稀覯品の検出 / Detection of Rare Works Using Term Frequency on Electronic Commerce Site for Trading Handmade Works
komei22
1
450
Automatic Whitelist Generation for SQL Queries Using Web Application Tests
komei22
3
610
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法 / Automatic whitelist generation for SQL queries using web application tests
komei22
2
510
ペパコンナイト:セキュリティWG成果報告 / pepacon night: security working group report
komei22
2
1.2k
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法
komei22
0
2.2k
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法
komei22
0
920
新卒研究員の研究開発 〜セキュアなWebサービスを目指して〜
komei22
0
1.3k
キャリアキーノート
komei22
5
2.1k
Other Decks in Technology
See All in Technology
Swift Regex Builder
kumamotone
1
110
miisan's career talk
mii3king
0
230
インフラのCI/CDはGitHub Actionsに任せた
mihyon
0
120
【Pythonデータ分析勉強会#33】「DearPyGuiに入門しました」の続き~Image-Processing-Node-Editor~
kazuhitotakahashi
0
180
Camp Digital 2022: tailored advice
kyliehavelock
0
150
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.2k
機械学習システムのアーキテクチャとデザインパターン
washizaki
1
640
データ分析で切り拓け! エンジニアとしてのデータ分析職キャリア戦略
ksnt
0
180
Laravel.shibuyaで改善してきた IRT勉強会の運営方法について / IRT Study Session Improved Through Laravel Shibuya
fendo181
0
120
ソフトウェアライセンス 2022 / Software License 2022
cybozuinsideout
PRO
1
1.2k
SlackBotで あらゆる業務を自動化。問い合わせ〜DevOpsまで #CODT2022
kogatakanori
0
980
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
Featured
See All Featured
The Invisible Side of Design
smashingmag
290
48k
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.5k
Code Reviewing Like a Champion
maltzj
506
37k
Web Components: a chance to create the future
zenorocha
303
40k
Statistics for Hackers
jakevdp
781
210k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
Visualization
eitanlees
125
11k
What's new in Ruby 2.0
geeforr
336
30k
What the flash - Photography Introduction
edds
62
10k
Faster Mobile Websites
deanohume
294
28k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
Transcript
ଜ໋ / Pepabo R&D Institute, GMO Pepabo, Inc. 2019.02.12 Fukuoka.go#13
ෆਖ਼ΫΤϦΛݕ͢ΔsqdΛ࡞ͬͨ
2 ΤϯδχΞ ଜ໋!,PNFJ (.0ϖύϘגࣜձࣾɹϖύϘݚڀॴ
ෆਖ਼ΫΤϦΛݕ͢Δsqd
ෆਖ਼ΫΤϦͬͯԿʁԿ͕ͳͷ͔ʁ
• ෆਖ਼ΫΤϦͱʁ • WebΞϓϦέʔγϣϯͷ੬ऑੑΛར༻ͯ͠σʔλϕʔεʹൃߦ͞ΕΔΫΤϦ • SQLΠϯδΣΫγϣϯʹΑͬͯൃߦ͞ΕΔΫΤϦͳͲ • ෆਖ਼ΫΤϦԿΛҾ͖ى͜͢ʁ • σʔλϕʔε্ͷػີใͷ࿙Ӯ
• σʔλϕʔεͷվ᜵ɾফڈ 5 ෆਖ਼ΫΤϦʹ͍ͭͯ ෆਖ਼ΫΤϦ͕ൃߦ͞Εͨ͜ͱΛݕ͍ͨ͠
• sqdɼϗϫΠτϦετϕʔεͰɼΫΤϦϩά͔Βෆਖ਼ΫΤϦΛݕ 6 sqd TREIUUQTHJUIVCDPN,PNFJTRE 8FCΞϓϦέʔγϣϯͷ ΫΤϦϩά w ΫΤϦ" w
ΫΤϦ# w ΫΤϦ$ TRE ϗϫΠτϦετ ΫΤϦΛϗϫΠτϦετͱর߹ ϗϫΠτϦετʹͳ͔ͬͨ ΫΤϦΛग़ྗ w ΫΤϦ" w ΫΤϦ# ΫΤϦ$
7 sqdʹΑΔෆਖ਼ΫΤϦݕ $ cat whitelist SELECT * FROM users WHERE
id = ? $ cat query.log | jq -r .query SELECT * FROM users WHERE id = 1 SELECT * FROM users WHERE id = 2 SELECT * FROM users DROP TABLE users ϗϫΠτϦετ ݕରͷΫΤϦ܈ ϦςϥϧϓϨʔεϗϧμʔʹ͢Δ $ cat query.log | jq -r .query | sqd -W whitelist SELECT * FROM users DROP TABLE users ݕ͞ΕͨΫΤϦ ϗϫΠτϦετϑΝΠϧΛࢦఆ ݕରͷΫΤϦ܈Λೖྗ
sqdϗϫΠτϦετΛͪΌΜͱఆٛͰ͖Ε ɼෆਖ਼ΫΤϦΛݕͰ͖Δ
ͰɼϗϫΠτϦετ࡞ΔͷେมͳͷͰʁ
• ߴ͍ਫ਼Ͱෆਖ਼ΫΤϦΛݕ͢ΔʹɼWebΞϓϦέʔγϣϯ͕ൃߦ͠ಘΔΫ ΤϦΛશͯϗϫΠτϦετʹఆٛ͠ͳ͚ΕͳΒͳ͍ • WebΞϓϦέʔγϣϯ͕ൃߦ͠ಘΔΫΤϦେ • WebΞϓϦέʔγϣϯ͕վम͞Εͨ߹ɼΫΤϦ͕มԽ͢ΔՄೳੑ͋Γ • ORMͬͯͨΒɼࣗͰSQLΛॻ͘͜ͱ͕গͳ͍ 10
ϗϫΠτϦετ࡞ͷ͠͞
11 IUUQTTQFBLFSEFDLDPNLPNFJXFCBQVSJLFTJZPOUFTVUPXPZPOHJUBTRMLVFSJGBMTFIPXBJUPSJTVUP[JEPOH [VPDIFOHTIPVGBFCDGCDFBFBEDF
• ෆਖ਼ΫΤϦʹΑͬͯσʔλϕʔε্ͷػີใͷ࿙Ӯɼվ᜵ɼফڈ͕ൃੜ • ϗϫΠτϦετϕʔεͰෆਖ਼ΫΤϦͷݕΛߦ͏sqdΛհ • sqdͰɼϗϫΠτϦετ࡞͕ॏཁ͚ͩͲ͍͠ • ϗϫΠτϦετ࡞ʹؔͯ͠ɼจݚڀձͰͷൃදࢿྉΛ͝ཡ͍ͩ͘͞ 12 ·ͱΊ
จɿIUUQTSBOEQFQBCPDPNQBQFSTJPUTLPNFJQEG
None