QueryPie Community Edition is live ๐ŸŽ‰ Get it now for free Download today!

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
๋ฐฑ์„œ

QueryPie gRPC ํ†ต์‹ ์„ ์œ„ํ•œ DAST ๋ณด์•ˆ ์ „๋žต : ZAP ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ ์ ์šฉ ์‚ฌ๋ก€

QueryPie๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด gRPC ํ†ต์‹ ์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์„ธ์š”.

Noah Kim

Noah Kim

Security Engineer

๋…ธ์•„๋Š” ์นจํˆฌ ํ…Œ์ŠคํŠธ ์ปจ์„คํ„ดํŠธ์ด์ž ์‚ฌ๋‚ด ์นจํˆฌ ํ…Œ์ŠคํŠธ ์ „๋ฌธ๊ฐ€๋กœ, ๋‹ค์–‘ํ•œ ์ทจ์•ฝ์„ฑ ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ์กฐ์ง์˜ ์‹œ์Šคํ…œ๊ณผ ์ œํ’ˆ์˜ ์•ˆ์ •์„ฑ ๋ฐ ๋ณด์•ˆ์„ ์ฒ ์ €ํžˆ ๋ณด์žฅํ•˜๋Š” ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค. SAST(์†Œ์Šค ์ฝ”๋“œ ๋ถ„์„) ๋ฐ DAST(๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ)์™€ ๊ฐ™์€ ๊ณ ๊ธ‰ ๋ณด์•ˆ ์†”๋ฃจ์…˜์„ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•˜์—ฌ, ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ๊ณผ์ • ์ „๋ฐ˜์—์„œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ํšŒ์‚ฌ์˜ ์ œํ’ˆ์— ๋Œ€ํ•œ ์ทจ์•ฝ์  ๊ด€๋ฆฌ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์—ฌ, ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ๋ฆฌ์Šคํฌ๋ฅผ ๋ฏธ๋ฆฌ ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋งก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2025๋…„ 2์›” 6์ผ

QueryPie gRPC ํ†ต์‹ ์„ ์œ„ํ•œ DAST ๋ณด์•ˆ ์ „๋žต : ZAP ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ ์ ์šฉ ์‚ฌ๋ก€

QueryPie์˜ gRPC ๋ณด์•ˆ: ZAP ์Šคํฌ๋ฆฝํŠธ ์ ์šฉ ์‚ฌ๋ก€

QueryPie๋Š” ๋†’์€ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด gRPC ํ†ต์‹  ๋ฐฉ์‹์„ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. gRPC๋Š” HTTP/2 ๊ธฐ๋ฐ˜์˜ ๊ณ ํšจ์œจ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๋กœ, ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ณ  ๊ฒฝ๋Ÿ‰ํ™”๋œ ํ˜•ํƒœ๋กœ ์ „์†กํ•จ์œผ๋กœ์จ ๋„คํŠธ์›Œํฌ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ์–‘๋ฐฉํ–ฅ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”Œ๋žซํผ๊ณผ์˜ ํ˜ธํ™˜์„ฑ๋„ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฑ์„œ์—์„œ๋Š” gRPC๋กœ ๊ตฌํ˜„๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Œ€์ƒ์œผ๋กœ ์ทจ์•ฝ์  ์ง„๋‹จํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ฃผ์š” ์ด์Šˆ๋ฅผ ์‚ดํŽด๋ณด๊ณ , ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

gRPC ์ทจ์•ฝ์  ์ง„๋‹จ, ์™œ ์–ด๋ ค์šธ๊นŒ?

HTTP/2์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๋งท์€ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ HTTP/1.1๊ณผ ๋‹ฌ๋ฆฌ, ์š”์ฒญ ๋ฐ ์‘๋‹ต์˜ ๋‚ด์šฉ์„ ์ผ๋ฐ˜์ ์ธ ํ”„๋ก์‹œ ๋„๊ตฌ(์˜ˆ: Burp Suite, ZAP)๋กœ ์‰ฝ๊ฒŒ ์ฝ๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. gRPC๋Š” ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™” ํฌ๋งท์œผ๋กœ Protocol Buffers (Protobuf)๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๋Š” JSON์ด๋‚˜ XML๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๋งท์ด๋ฏ€๋กœ ๋ถ„์„์ด ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ gRPC๋กœ ๊ตฌํ˜„๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒจํ‚ท์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, POST ์š”์ฒญ ๋ฐ์ดํ„ฐ๋Š” ์–ธ๋œป ๋ณด๋ฉด โ€˜catโ€™์ด๋ผ๋Š” ๋ฌธ์ž๊ฐ€ Base64๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ์žˆ์„ ๋ฟ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.


gRPC ์š”์ฒญ POST ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•˜์—ฌ Base64 ๋””์ฝ”๋”ฉ
gRPC ์š”์ฒญ POST ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•˜์—ฌ Base64 ๋””์ฝ”๋”ฉ


gRPC ์š”์ฒญ POST ๋ฐ์ดํ„ฐ ํ™•์ธ
gRPC ์š”์ฒญ POST ๋ฐ์ดํ„ฐ ํ™•์ธ

ํ•˜์ง€๋งŒ 'cat'์ด๋ผ๋Š” ๋ฌธ์ž๋ฅผ ๋‹ค์‹œ base64๋กœ ์ธ์ฝ”๋”ฉํ•ด ๋ณด๋ฉด ๊ธฐ์กด POST ๋ฐ์ดํ„ฐ์™€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„œ๋ฒ„์—์„œ๋Š” ํ•ด๋‹น ์š”์ฒญ์„ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ธฐ์กด gRPC ์š”์ฒญ POST ๋ฐ์ดํ„ฐ์™€ ์ƒ์ดํ•จ
๊ธฐ์กด gRPC ์š”์ฒญ POST ๋ฐ์ดํ„ฐ์™€ ์ƒ์ดํ•จ


๋‹จ์ˆœ Base64๋กœ ์ธ์ฝ”๋”ฉ๋œ โ€˜catโ€™ ๋ฌธ์ž๋Š” ์„œ๋ฒ„์—์„œ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€ํ•จ
๋‹จ์ˆœ Base64๋กœ ์ธ์ฝ”๋”ฉ๋œ โ€˜catโ€™ ๋ฌธ์ž๋Š” ์„œ๋ฒ„์—์„œ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€ํ•จ

gRPC ๋ฐ์ดํ„ฐ๋Š” .proto ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์ž‘์—…์„ ์ถ”๊ฐ€๋กœ ์ˆ˜ํ–‰์ด ํ•„์š”ํ•˜์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋ก์‹œ ๋ฐ DAST ๋„๊ตฌ๋Š” gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ œํ•œ์ ์œผ๋กœ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์ทจ์•ฝ์  ์ง„๋‹จ์„ ํ•˜๋ ค๋ฉด ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์œผ๋กœ DAST ์Šค์บ” ์‹œ gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์ž‘์—…๊ณผ ์ทจ์•ฝ์  ์‹๋ณ„์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํšจ์œจ์ ์ธ gRPC ์ทจ์•ฝ์  ์ง„๋‹จ์„ ์œ„ํ•œ ZAP ํ™œ์šฉ๋ฒ•

ZAP์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ทจ์•ฝ์  ์ง„๋‹จ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ก์‹œ ๋ฐ DAST ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ์„ ํ†ตํ•˜์—ฌ ์ž๋™ ์Šค์บ” ๊ณผ์ •์—์„œ ๋กœ์ปฌ์˜ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ž‘์—…์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด gRPC POST ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์ฝ”๋”ฉํ•œ ํ›„ ๊ณต๊ฒฉ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ๋‹ค์‹œ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, gRPC ์„œ๋ฒ„ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ๋””์ฝ”๋”ฉํ•˜์—ฌ ๋ถ„์„ํ•จ์œผ๋กœ์จ ์ทจ์•ฝ์ ์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ECMAScript(Graal.js) ์—”์ง„์€ ์ฝ”๋”ฉ์ด๋ผ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ์ง„๋‹จ์ž์—๊ฒŒ ๋†’์€ ์ž์œ ๋„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋กœ์ปฌ์—์„œ ์‰˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ™œ์šฉํ•ด ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


grpc-pentest-suite ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ํ†ตํ•œ gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ
grpc-pentest-suite ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ํ†ตํ•œ gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ

gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์ž๋™ํ™”

์•„๋ž˜ ๋งํฌ์˜ grpc-pentest-suite ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์ž๋™ํ™”์— ํ•„์š”ํ•œ ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ZAP ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํŒจํ‚ท ๋ณ€์กฐ ๊ณผ์ •์˜ ์ ์ ˆํ•œ ์‹œ์ ์— ์‹คํ–‰๋˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • grpc-pentest-suite ์Šคํฌ๋ฆฝํŠธ: GitHub - nxenon/grpc-pentest-suite: gRPC-Web Pentesting Suite + Burp Suite Extension
  • gRPC ์ธ์ฝ”๋”ฉ ๋ช…๋ น์–ด: /Users/noah/go/bin/protoscope -s plain.txt | python3 ./grpc-coder.py --encode --type grpc-web-text
  • gRPC ๋””์ฝ”๋”ฉ ๋ช…๋ น์–ด: echo "AAAAAAUKA2NhdA==" | python3 grpc-coder.py --decode --type grpc-web-text | /Users/noah/go/bin/protoscope

grpc-pentest-suite ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ํ†ตํ•œ gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ
grpc-pentest-suite ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ํ†ตํ•œ gRPC ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ

์ดํ›„์— ํƒ์ง€ํ•˜๊ณ ์ž ํ•˜๋Š” ํ•ญ๋ชฉ์— ๋”ฐ๋ผ ์ทจ์•ฝ์  ํƒ์ง€ ์กฐ๊ฑด์„ ์ •์˜ํ•˜๊ณ , ํ•ด๋‹น ํƒ์ง€ ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ZAP ๊ฒฝ๊ณ  ํƒญ์—์„œ ํƒ์ง€ ์•Œ๋ฆผ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


SQL Injection ์ทจ์•ฝ์  ํŒ๋‹จ ๊ธฐ์ค€ ๋ฐ ํƒ์ง€ ์•Œ๋ฆผ ์ •์˜
SQL Injection ์ทจ์•ฝ์  ํŒ๋‹จ ๊ธฐ์ค€ ๋ฐ ํƒ์ง€ ์•Œ๋ฆผ ์ •์˜

์ทจ์•ฝ์  ํƒ์ง€ ์‚ฌ๋ก€

์•„๋ž˜ ๋™์˜์ƒ์€ SQL Injection ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” gRPC ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ZAP ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•˜์—ฌ ์ทจ์•ฝ์ ์„ ์ž๋™์œผ๋กœ ์‹๋ณ„ํ•˜๊ณ  ๊ฒฝ๊ณ  ํƒญ์—์„œ ํƒ์ง€ ์•Œ๋ฆผ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.



๊ฒฐ๋ก  ๋ฐ ์ œ์•ˆ

gRPC๋Š” ํšจ์œจ์ ์ด๊ณ  ๊ณ ์„ฑ๋Šฅ์˜ ํ†ต์‹  ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ํŠน์„ฑ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ ๊ฒ€ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ์ผ์€ ์—ฌ์ „ํžˆ ํฐ ๋„์ „ ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, gRPC์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹๊ณผ ์ง๋ ฌํ™”๋œ ๋ฐ์ดํ„ฐ๋กœ ์ธํ•ด ๊ธฐ์กด์˜ ๋ณด์•ˆ ์ง„๋‹จ ๋„๊ตฌ๋“ค์ด ์ง๊ด€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ธฐ์—…๋“ค์ด DAST ๋„๊ตฌ๋ฅผ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ์ ์šฉํ•ด ์ทจ์•ฝ์  ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‹œ๋ฆฌ์–ผ๋ผ์ด์ง•, ์ธ์ฝ”๋”ฉ, ์•”ํ˜ธํ™” ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ˜•์‹์ ์œผ๋กœ๋งŒ ์Šค์บ”์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋กœ ์ธํ•ด ์‹ค์ œ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์„ ์ถฉ๋ถ„ํžˆ ํƒ์ง€ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

QueryPie๋Š” ZAP ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ gRPC์˜ ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ์„ ์ž๋™ํ™”ํ•˜๊ณ , ์ž์‚ฌ gRPC ๊ธฐ๋ฐ˜ ์ œํ’ˆ์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ž๋™์œผ๋กœ ์‹๋ณ„, ๋ถ„์„ ๋ฐ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ๋‹ด๋‹น์ž๋Š” ์ˆ˜๋™์œผ๋กœ ์ง„ํ–‰๋˜๋˜ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…๋“ค์„ ์ž๋™ํ™”ํ•˜์—ฌ, ๋ณด์•ˆ ๊ฐ์‚ฌ์™€ ์ทจ์•ฝ์  ๋ถ„์„์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฐฑ์„œ์—์„œ ์ œ์‹œ๋œ ํ•ด๊ฒฐ์ฑ…์€ gRPC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฆฌ ์˜ˆ๋ฐฉํ•˜๊ณ , ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ QueryPie๋Š” ๋ณด์•ˆ ์ง„๋‹จ์˜ ์ •ํ™•๋„๋ฅผ ๋†’์ด๊ณ , ๋ณด์•ˆ ๊ด€๋ฆฌ์˜ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ์„œ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „ํ•˜์—ฌ, ๊ธฐ์—…๋“ค์˜ ์‹ ๋ขฐ์„ฑ์„ ๊ฐ•ํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

QueryPie gRPC ํ†ต์‹ ์„ ์œ„ํ•œ DAST ๋ณด์•ˆ ์ „๋žต : ZAP ์ปค์Šคํ…€ ์Šคํฌ๋ฆฝํŠธ ์ ์šฉ ์‚ฌ๋ก€ | QueryPie