Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ペパコンナイト:セキュリティWG成果報告 / pepacon night: security ...
Search
Komei Nomura
May 13, 2019
Research
2
1.7k
ペパコンナイト:セキュリティWG成果報告 / pepacon night: security working group report
ペパコンナイト :
https://pepabo.connpass.com/event/128486/
Komei Nomura
May 13, 2019
Tweet
Share
More Decks by Komei Nomura
See All by Komei Nomura
さくらのクラウドでのcloud-initの実装と利用例の紹介 / Implementation of cloud-init in SAKURA Cloud and introduction of usage examples
komei22
2
860
Kerasによるモデル構築 / Model-building-with-Keras
komei22
0
6.8k
ハンドメイド作品を対象としたECサイトにおける単語の出現頻度を用いた稀覯品の検出 / Detection of Rare Works Using Term Frequency on Electronic Commerce Site for Trading Handmade Works
komei22
1
870
Automatic Whitelist Generation for SQL Queries Using Web Application Tests
komei22
3
1.3k
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法 / Automatic whitelist generation for SQL queries using web application tests
komei22
2
1k
不正クエリを検知するsqdを作った
komei22
1
800
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法
komei22
0
5.8k
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法
komei22
0
1.4k
新卒研究員の研究開発 〜セキュアなWebサービスを目指して〜
komei22
0
1.8k
Other Decks in Research
See All in Research
Tiaccoon: コンテナネットワークにおいて複数トランスポート方式で統一的なアクセス制御
hiroyaonoe
0
410
地理空間情報と自然言語処理:「地球の歩き方旅行記データセット」の高付加価値化を通じて
hiroki13
1
190
Segment Any Change
satai
2
210
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
300
Geospecific View Generation - Geometry-Context Aware High-resolution Ground View Inference from Satellite Views
satai
2
240
【NLPコロキウム】Stepwise Alignment for Constrained Language Model Policy Optimization (NeurIPS 2024)
akifumi_wachi
3
520
移動ビッグデータに基づく地理情報の埋め込みベクトル化
tam1110
0
230
한국어 오픈소스 거대 언어 모델의 가능성: 새로운 시대의 언어 이해와 생성
inureyes
PRO
0
220
The Economics of Platforms 輪読会 第1章
tomonatu8
0
140
Leveraging LLMs for Unsupervised Dense Retriever Ranking (SIGIR 2024)
kampersanda
2
300
情報処理学会関西支部2024年度定期講演会「自然言語処理と大規模言語モデルの基礎」
ksudoh
10
2.5k
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
4.9k
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
960
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
A Modern Web Designer's Workflow
chriscoyier
693
190k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
KATA
mclloyd
29
14k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Statistics for Hackers
jakevdp
797
220k
Transcript
ଜ໋ / Pepabo R&D institute, GMO pepabo, inc. 2019.05.13 ϖύίϯφΠτ
ηΩϡϦςΟWGՌใࠂ ʙͳΊΒ͔ͳηΩϡϦςΟΛࢦͯ͠ʙ
2 ΤϯδχΞ ଜ໋!,PNFJ (.0ϖύϘגࣜձࣾɹϖύϘݚڀॴ
1. ηΩϡϦςΟWGͱͳΊΒ͔ͳηΩϡϦςΟ 2. ݚڀͷհ 3. ·ͱΊͱࠓޙ 3 ࣍
1. ηΩϡϦςΟWGͱͳΊΒ͔ͳηΩϡϦςΟ
• ݚڀର • ిࢠূ໌ॻͷར׆༻ • TLS1.3ରԠ • TLS/SSLͷ҆શੑͱػձଛࣦ • WebηΩϡϦςΟ
• ߴػೳ҉߸Ԡ༻ 5 ηΩϡϦςΟWG
6 ͳΊΒ͔ͳηΩϡϦςΟʹ͓͚ΔηΩϡϦςΟWG ηΩϡϦςΟ8(ɼηΩϡϦςΟࢪࡦΛ࣮ݱ͢ΔϚΠΫϩίϯϙʔωϯτΛ࡞Γग़͢͜ͱʹ୲ ͜ͷࡍॏཁͳͷɼηΩϡϦςΟରࡦಋೖʹΑΔརศੑͷԼʢΰπΰπʣΛൃੜͤ͞ͳ͍͜ͱ
7 ηΩϡϦςΟࢪࡦಋೖʹ͓͚Δΰπΰπ Ϣʔβ ӡ༻։ൃऀ ίΞαʔϏε ӡ༻։ൃऀଆͷΰπΰπ Ϣʔβଆͷΰπΰπ ͳΊΒ͔ͳηΩϡϦςΟʹ͓͍ͯɼ&EHFར༻ऀʹӨڹΛ༩͑ͣʹ࣮ݱ͢Δ͜ͱ͕ॏཁ &EHF w
ࢪࡦಋೖʹΑΔγεςϜߏͷมߋ w ηΩϡϦςΟͷϝϯςφϯε ʜ w ਖ਼ৗͳϦΫΤετΛޡݕ w ϨεϙϯεͷԼ ʜ &EHF ใγεςϜ
• ͳΊΒ͔ͳηΩϡϦςΟ࣮ݱʹ͚ͨɼηΩϡϦςΟWGͷݚڀࣄྫͱOSSͷ հ • ݚڀࣄྫɿ • ʮWebΞϓϦέʔγϣϯςετΛ༻͍ͨSQLΫΤϦͷϗϫΠτϦετࣗಈ ੜख๏ʯ • OSSɿ
• tcpdp : TCPύέοτΛղੳͯ͠ߏԽϩάΛग़ྗ͢Δπʔϧ • sqd : SQLͷϗϫΠτϦετ࡞ͱෆਖ਼ΫΤϦݕπʔϧ 8 ຊͷ͓
2. ݚڀͷհ
• WebαʔϏεʹ͓͍ͯσʔλϕʔε্ͷػີใͷอޢॏཁ • ߈ܸऀWebΞϓϦέʔγϣϯͷ੬ऑੑΛ͡Ίͱ༷ͯ͠ʑͳखஈͰػີ ใΛऔ • ߈ܸͷྫɿSQLΠϯδΣΫγϣϯɼOSίϚϯυΠϯδΣΫγϣϯͳͲ • σʔλϕʔεͷ߈ܸ։ൃऀͷఆ֎ͷΫΤϦʢෆਖ਼ΫΤϦʣΛσʔλϕʔ εʹൃߦ͢Δ͜ͱͰ࣮ࢪ
• σʔλϕʔεʹൃߦ͞ΕΔΫΤϦΛࢹ͠ෆਖ਼ΫΤϦΛݕ͢ΔΈ͕ඞཁ 10 ݚڀͷഎܠ
• ϒϥοΫϦετํࣜ • ෆਖ਼ͳΫΤϦύλʔϯΛϦετʹఆٛ͠ɼύλʔϯͱ߹க͢ΔͷΛݕ͢Δ • ϗϫΠτϦετํࣜ • ਖ਼ৗͳΫΤϦύλʔϯΛϦετʹఆٛ͠ɼύλʔϯͱ߹க͠ͳ͍ͷΛݕ͢Δ ϒϥοΫϦετͷΈར༻Ͱطͷύλʔϯ͔͠ݕͰ͖ͳ͍͕ɼෆਖ਼ΫΤϦʹະ ͷύλʔϯ͋ΓಘΔ
ະͷύλʔϯͷݕʹϗϫΠτϦετ͕ඞཁͱͳΔ 11 ෆਖ਼ΫΤϦͷݕํ๏
• WebΞϓϦέʔγϣϯ͕ൃߦ͢ΔΫΤϦΛखಈͰϗϫΠτϦετʹొ • େنͳWebΞϓϦέʔγϣϯͰൃߦΫΤϦ͕େ → શͯͷΫΤϦΛϗϫΠτϦετʹొ͢Δ͜ͱ͕ࠔ • WebΞϓϦέʔγϣϯͷվमʹΑͬͯൃߦΫΤϦมԽ → ϗϫΠτϦετͷߋ৽͕ඞཁ
12 ϗϫΠτϦετ࡞ͱͦͷ՝ ӡ༻ऀͷෛՙ͕ߴ͍ ӡ༻ऀͱใγεςϜ͕ؒΰπΰπͨ͠ঢ়ଶ
• ։ൃӡ༻ऀ͕ϗϫΠτϦετͷ࡞Λҙࣝ͢Δ͜ͱͳ͘࡞Ͱ͖ɼϗϫΠτϦ ετΛ༻͍ͯෆਖ਼ΫΤϦΛݕ͢ΔΈͷ࣮ݱ • ϗϫΠτϦετWebΞϓϦέʔγϣϯͷൃߦΫΤϦͷมߋʹै͠ͳ͕ ΒࣗಈͰ࡞͢Δඞཁ͕͋Δ 13 ݚڀͷత
• WebΞϓϦέʔγϣϯͷςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετΛ ࡞͢Δ • ࣗಈςετΛ༻͍ͨ։ൃϓϩηεʹϗϫΠτϦετ࡞ΛΈࠐΉ • ΫΤϦͷऩूσʔλϕʔεϓϩΩγͰߦ͍ɼऩूͨ͠ΫΤϦ͔ΒϗϫΠτ ϦετΛ࡞͢Δ 14 ఏҊख๏ͷ֓ཁ
15 ࣗಈςετΛ༻͍ͨ։ൃϓϩηε w ৽ػೳͷՃ w طଘػೳͷमਖ਼ w 8FCΞϓϦέʔγϣϯͷಈ࡞खॱͱಈ࡞ͷ݁ՌΛهड़ w ςετίʔυΛݩʹࣗಈͰςετΛ࣮ߦ
w 8FCΞϓϦͷಈ࡞͕༷௨Γ͔Λ֬ೝ w ςετࣦഊɿ8FCΞϓϦέʔγϣϯͷιʔείʔυ ͘͠ςετίʔυʹ͋Γ w ςετޭɿ8FCΞϓϦέʔγϣϯ͕༷௨Γʹಈ࡞ w 8FCΞϓϦέʔγϣϯͷιʔείʔυΛαʔόʹஔ w 8FCΞϓϦέʔγϣϯΛՔಇ ։ൃ ςετίʔυͷهड़ αʔόʔʹஔ ࣗಈςετ࣮ߦ /P :FT ΞϓϦέʔγϣϯՔಇ ςετޭʁ
16 w ςετ࣌ʹൃߦ͞ΕͨΫΤϦ͔ΒϗϫΠτϦετΛ ࡞ w ҎԼΛͦΕͧΕαʔόʹஔ w 8FCΞϓϦέʔγϣϯͷιʔείʔυ w ϗϫΠτϦετ
։ൃϓϩηεʹ͓͚ΔఏҊख๏ͷҐஔ͚ w 8FCΞϓϦέʔγϣϯͷมߋʹैͯ͠ςετίʔυ มߋ ˠൃߦΫΤϦͷมԽʹैͯ͠ϗϫΠτϦετΛߋ৽ w 8FCΞϓϦέʔγϣϯՔಈલʹϗϫΠτϦετ࡞ ˠՔಈޙɼଈ࠲ʹෆਖ਼ΫΤϦΛݕՄೳ ։ൃ ςετίʔυͷهड़ αʔόʔʹஔ /P :FT ΞϓϦέʔγϣϯՔಇ ςετޭʁ ΫΤϦͷऩू `ࣗಈςετ࣮ߦ ϗϫΠτϦετ࡞
17 ఏҊख๏ͷઃܭ • σʔλϕʔεͷલஈʹσʔλϕʔεϓϩΩγΛஔ͠ɼςετ࣮ߦதʹൃߦ͞Ε ͨΫΤϦΛऩू • ΫΤϦ͔ΒϗϫΠτϦετΛ࡞Δ͜ͱͰɼWebΞϓϦέʔγϣϯͷ࣮ʹґଘͤ ͣɼϗϫΠτϦετΛ࡞Մೳ ςετ࣮ߦத σʔλϕʔε
8FCΞϓϦέʔγϣϯ σʔλϕʔεϓϩΩγ ϗϫΠτϦετ ΫΤϦͷऩूͱ ϗϫΠτϦετͷग़ྗ ΫΤϦ ΫΤϦ
18 ఏҊख๏ͷઃܭ • WebΞϓϦέʔγϣϯՔಇதൃߦΫΤϦͱϗϫΠτϦετΛর߹͠ɼෆਖ਼ΫΤ ϦΛݕ σʔλϕʔε 8FCΞϓϦέʔγϣϯ σʔλϕʔεϓϩΩγ 8FCΞϓϦέʔγϣϯՔಇத ΫΤϦ
ΫΤϦ ΫΤϦΛϗϫΠτϦετͱর߹ ෆਖ਼ΫΤϦ ग़ྗ ϗϫΠτϦετ
OSSͷհ
• TCPύέοτΛΩϟϓνϟɾղੳͯ͠ɼߏԽϩάͱͯ͠ग़ྗ͢Δπʔϧ • MySQL, PostgreSQLͷϓϩτίϧʹରԠ • σʔλϕʔεϓϩΩγͱͯ͠ར༻ʢtcpdumpͷΑ͏ʹར༻Մೳʣ 20 tcpdp UDQEQ
σʔλϕʔε ΫϥΠΞϯτ ΫΤϦ UDQEQIUUQTHJUIVCDPNL-P8UDQEQ ΫΤϦ ߏԽϩά \ RVFSZl4&-&$5 '30.VTFST8)&3&JEz DMJFOU@BEESl VTFSOBNFlBQQz ʜ ^
• SQLͷϗϫΠτϦετ࡞ͱෆਖ਼ΫΤϦͷݕΛߦ͏πʔϧ 21 sqd ΫΤϦϩά ϗϫΠτϦετͷ࡞ ෆਖ਼ΫΤϦͷݕ TRE ϗϫΠτϦετ 4&-&$5
'30.VTFST8)&3&JE 4&-&$5 '30.VTFST8)&3&OBNF %&-&5&'30.VTFST8)&3&OBNF ʜ ΫΤϦͷϦςϥϧΛ ϓϨʔεϗϧμʔʹஔ͖͑ͨ ΫΤϦߏʹม 4&-&$5 '30.VTFST8)&3&JE 4&-&$5 '30.VTFST8)&3&JE ΫΤϦϩά TRE ϗϫΠτϦετ TREIUUQTHJUIVCDPN,PNFJTRE ΫΤϦߏϕʔεͰͷൺֱ ෆਖ਼ΫΤϦ
• ςετ࣌tcpdpͰऩूͨ͠ΫΤϦ͔Βsqd͕ϗϫΠτϦετΛग़ྗ • WebΞϓϦέʔγϣϯՔಇ࣌tcpdp͕ऩूͨ͠ΫΤϦ͔Βෆਖ਼ΫΤϦΛग़ྗ 22 tcpdp + sqdΛ༻͍ͨఏҊख๏ͷ࣮ UDQEQ σʔλϕʔε
8FCΞϓϦέʔγϣϯ ΫΤϦ TRE ΫΤϦϩά ϗϫΠτϦετ ςετ࣌ 8FCΞϓϦέʔγϣϯՔಈ࣌ ෆਖ਼ΫΤϦ ΫΤϦ ςετ࣌ͱ8FCΞϓϦέʔγϣϯՔಇ࣌Ͱ TREͷಈ࡞ΛΓସ͑
ධՁ
• ఏҊख๏ʹΑͬͯෆਖ਼ΫΤϦΛݕͰ͖Δ͔ɼWebΞϓϦέʔγϣϯ͕ൃߦ ͢Δਖ਼ৗͳΫΤϦΛޡݕ͠ͳ͍͔ɼΛ࣮ݧʹΑΓ֬ೝ͢Δ • ҎԼͷ2ͭͷධՁࢦඪΛఆٛ͢Δ • False positive: WebΞϓϦέʔγϣϯ͕ൃߦ͢Δਖ਼ৗͳΫΤϦΛޡͬͯෆਖ਼ ͱஅ͢Δ͜ͱ
• False negative: ߈ܸʹΑͬͯൃੜ͢Δෆਖ਼ΫΤϦΛޡͬͯਖ਼ৗͱஅ͢Δ ͜ͱ 24 ධՁํ๏
25 ࣮ݧํ๏ 8FC "QQMJDBUJPO %BUBCBTF ϒϥβ TRMNBQ ʢ42-ΠϯδΣΫγϣϯ߈ܸΛߦ͏πʔϧʣ ϖʔδΛཏతʹૢ࡞͠ )551ϦΫΤετ
42-ΠϯδΣΫγϣϯ߈ܸΛؚΜͩ )551ϦΫΤετ ਖ਼ৗͳΫΤϦʢݸʣ ෆਖ਼ͳΫΤϦʢݸʣ ݕ͞Εͨਖ਼ৗͳΫΤϦ ΛΧϯτ ʢ'BMTFQPTJUJWFʣ ݕͰ͖ͳ͔ͬͨ ෆਖ਼ͳΫΤϦΛΧϯτ ʢ'BMTFOFHBUJWFʣ ˞8FCΞϓϦέʔγϣϯʹ42-ΠϯδΣΫγϣϯͷ੬ऑੑ͕͋Γɼશͯͷ࣮ϝιουʹςετ͕هड़ͯ͋͠Δ ϗϫΠτϦετ ϗϫΠτϦετ র߹ র߹
• ਖ਼ৗͳΫΤϦͷҰ෦Λޡݕ • SQLΠϯδΣΫγϣϯʹΑΔෆਖ਼ΫΤϦΛશͯݕ 26 ࣮ݧ݁Ռ σʔληοτ ΫΤϦ 'BMTFQPTJUJWF 'BMTFOFHBUJWF
ਖ਼ৗͳΫΤϦ ෆਖ਼ΫΤϦ ʢ42-ΠϯδΣΫγϣϯʣ
3. ·ͱΊͱࠓޙ
• ͳΊΒ͔ͳηΩϡϦςΟʹ͚ͨηΩϡϦςΟWGͷऔΓΈΛհ • Edgeʹஔ͢ΔϚΠΫϩίϯϙʔωϯτͱͯ͠ɼʮWebΞϓϦέʔγϣϯς ετΛ༻͍ͨSQLΫΤϦͷϗϫΠτϦετͷࣗಈ࡞ख๏ʯΛհ • ࠓޙɼϢʔβͷଐੑʹΑͬͯར༻͢ΔϗϫΠτϦετΛΓସ͑ɼΑΓύʔ ιφϥΠζԽ͞ΕͨίϯϙʔωϯτΛࢦ͢ 28 ·ͱΊͱࠓޙ
ݚڀһɺੵۃతʹืूதʂ http://rand.pepabo.com/