OWASP VulnerableApp OWASP VulnerableApp

OWASP Incubator License Java CI with Gradle PRs Welcome Docker Pulls codecov

๋ถ€์ˆ˜๊ณ , ์Šค์บ”ํ•˜๊ณ , ์žฌํ˜„ํ•˜๊ณ , ๋ฒค์น˜๋งˆํฌํ•˜๊ณ , ๊ฐœ์„ ํ•˜๋ผ.

OWASP VulnerableApp์€ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์Šค์บ๋„ˆ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋ฒค์น˜๋งˆํ‚นํ•˜๋Š” ๊ฒƒ์„ ์ฃผ๋ชฉ์ ์œผ๋กœ ์„ค๊ณ„๋œ, ์˜๋„์ ์œผ๋กœ ์ทจ์•ฝํ•˜๊ฒŒ ๋งŒ๋“  ๋ชจ๋“ˆํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— ํ•™์Šต๊ณผ ์‹คํ—˜ ์šฉ๋„๋กœ๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€

๊ธฐ์กด์˜ ์ทจ์•ฝํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค๊ณผ ๋‹ฌ๋ฆฌ, VulnerableApp์€ ์ •์ ์ธ ํ•™์Šต์šฉ ์•ฑ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ ์ƒํƒœ๊ณ„๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ:

  • ๐Ÿ”ฌ Burp Suite, OWASP ZAP, ์ปค์Šคํ…€ DAST ์—”์ง„ ๋“ฑ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์— ๋Œ€ํ•œ ์Šค์บ๋„ˆ ๋ฒค์น˜๋งˆํ‚น
  • ๐Ÿงฉ ํ•ต์‹ฌ ์„œ๋น„์Šค๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ ์ƒˆ๋กœ์šด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆํ˜• ์ทจ์•ฝ์  ์„ค๊ณ„
  • ๐Ÿ“Š ๋ฆด๋ฆฌ์Šค์™€ ํ™˜๊ฒฝ ์ „๋ฐ˜์— ๊ฑธ์นœ ๋ณด์•ˆ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ
  • ๐ŸŽฏ ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒจํ„ด์„ ๋ฐ˜์˜ํ•œ ํ˜„์‹ค์ ์ธ ๊ณต๊ฒฉ ํ‘œ๋ฉด ์‹œ๋ฎฌ๋ ˆ์ด์…˜
  • ๐Ÿงช ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์Šค์บ๋‹ ๊ฒฐ๊ณผ๋ฅผ ์œ„ํ•œ ๊ฒฐ์ •๋ก ์ (deterministic) ์ทจ์•ฝ์  ๋™์ž‘
  • ๐Ÿง  ๋ณด์•ˆ ์—”์ง€๋‹ˆ์–ด, ์—ฐ๊ตฌ์ž, ๊ต์œก์ž๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง

Entire architecture stack

VulnerableApp์ด ๋„์™€์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ:

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

โš™๏ธ ์™œ ์ค‘์š”ํ•œ๊ฐ€

๋Œ€๋ถ€๋ถ„์˜ ์ทจ์•ฝํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€:

  • ์ •์ ์ด๊ณ 
  • ํ™•์žฅํ•˜๊ธฐ ์–ด๋ ค์šฐ๋ฉฐ
  • ์ˆ˜๋™ ํ•™์Šต๋งŒ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค

VulnerableApp์ด ์ง€ํ–ฅํ•˜๋Š” ๊ฒƒ:

์ž๋™ํ™”, ์žฌํ˜„์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์ง„ํ™”

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค

VulnerableApp-facade UI

ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋œ ์™„์ „ํ•œ VulnerableApp์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
    1. Docker Compose๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค
    2. ์ด GitHub ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค
    3. ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค
    4. docker-compose pull && docker-compose up ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
    5. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  http://localhost๋กœ ์ด๋™ํ•˜๋ฉด VulnerableApp ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    6. ๋กœ์ปฌ SMTP ์„œ๋ฒ„๊ฐ€ ์บก์ฒ˜ํ•œ ์ด๋ฉ”์ผ์„ ํ™•์ธํ•˜๋ ค๋ฉด http://localhost/mailpit/์—์„œ Mailpit๋„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฐธ๊ณ : ์œ„์˜ ๋‹จ๊ณ„๋Š” ์ตœ์‹  ๋ฏธ์ถœ์‹œ(non-release) ๋ฒ„์ „์˜ VulnerableApp์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด Docker์˜ latest ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

  2. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ VulnerableApp์„ ๋…๋ฆฝ ์‹คํ–‰ํ˜•(standalone) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:
    1. GitHub์˜ ๋ฆด๋ฆฌ์Šค ์„น์…˜์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ตœ์‹  ๋ฒ„์ „์˜ JAR ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค
    2. ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค
    3. java -jar VulnerableApp-* ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
    4. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  http://localhost:9090/VulnerableApp์œผ๋กœ ์ด๋™ํ•˜๋ฉด ๋ ˆ๊ฑฐ์‹œ(Legacy) ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋นŒ๋“œํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ์™„์ „ํ•œ VulnerableApp์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ Docker ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋นŒ๋“œํ•˜๊ธฐ:
    1. ./gradlew jibDockerBuild ๋ช…๋ น์œผ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค
    2. Docker-Compose๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๊ฐ™์€ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ docker-compose up์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
    3. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  http://localhost๋กœ ์ด๋™ํ•˜๋ฉด VulnerableApp ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  2. ๋ ˆ๊ฑฐ์‹œ UI ๋˜๋Š” REST API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” SpringBoot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋นŒ๋“œํ•˜๊ธฐ โ€” ๋””๋ฒ„๊น…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค:
    1. ํ”„๋กœ์ ํŠธ๋ฅผ IDE๋กœ ๊ฐ€์ ธ์™€์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
    2. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  http://localhost:9090/VulnerableApp์œผ๋กœ ์ด๋™ํ•˜๋ฉด ๋””๋ฒ„๊น… ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ ˆ๊ฑฐ์‹œ VulnerableApp ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ธฐ์—ฌํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๊ฐœ๋ฐœ์ž์ด๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ด์ œ ๋ง‰ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ๊ณ„๋ผ๋ฉด, good first issue ๋ผ๋ฒจ์ด ๋ถ™์€ ์ด์Šˆ ๋ชฉ๋ก์„ ํ™•์ธํ•ด๋ณด๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๊ธฐ ์ข‹์€ ํ•ญ๋ชฉ๋“ค์ž…๋‹ˆ๋‹ค.
  2. ๊ฐœ๋ฐœ์ž์ด๊ฑฐ๋‚˜ ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๋กœ์„œ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ์ทจ์•ฝ์ ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ./gradlew GenerateSampleVulnerability ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”. ์ด ๋ช…๋ น์€ ์ž๋ฆฌํ‘œ์‹œ์ž(placeholder)์™€ ์ฃผ์„์ด ํฌํ•จ๋œ ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์€ ๋ช…๋ น ์‹คํ–‰ ๋กœ๊ทธ๋‚˜ git ํžˆ์Šคํ† ๋ฆฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ๋กœ ์ด๋™ํ•ด ์ž๋ฆฌํ‘œ์‹œ์ž๋ฅผ ์ฑ„์šฐ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  3. ํ”„๋กœ์ ํŠธ์˜ ์„ฑ์žฅ์ด๋‚˜ ํ™๋ณด์— ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ํ† ๋ก (discussion)์ด๋‚˜ ์ด์Šˆ ์„น์…˜์— ์ž์œ ๋กญ๊ฒŒ ์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๊ธฐ๊บผ์ด ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋˜ UI๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

VulnerableApp-facade๋Š” VulnerableApp์„ ์œ„ํ•œ ๋ชจ๋˜ UI๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ๋ชจ๋˜ UI๋กœ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด:

  1. ์‚ฌ์ „ ์ค€๋น„: Docker์™€ Docker-Compose๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰:
    • Windows: .\scripts\testWithModernUI.bat
    • Linux/Mac: ./scripts/testWithModernUI.sh

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ Docker ์ด๋ฏธ์ง€(sasanlabs/owasp-vulnerableapp:unreleased)๋กœ ๋นŒ๋“œํ•˜๊ณ , docker-compose.local.yml์„ ์‚ฌ์šฉํ•ด facade, jsp, php ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ์Šคํƒ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. UI ์ ‘์†: ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost๋กœ ์ด๋™ํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ๋ฐ˜์˜๋œ ๋ชจ๋˜ UI๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. Mailpit ์ ‘์†: ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost/mailpit/๋กœ ์ด๋™ํ•˜๋ฉด ๋กœ์ปฌ SMTP ์„œ๋ฒ„๊ฐ€ ์บก์ฒ˜ํ•œ ์ด๋ฉ”์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋œ ๊ธฐ์ˆ 

  • Java 17
  • Spring Boot
  • ReactJS
  • Javascript/TypeScript

๋‚ด์žฅ H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐํ•˜๊ธฐ

๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ฃผ์†Œ๋กœ ์ด๋™ํ•˜์„ธ์š”: http://localhost:9090/VulnerableApp/h2

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด:

JDBC Url: jdbc:h2:mem:testdb
User Name: admin
Password: hacker

ํ˜„์žฌ ๋‹ค๋ฃจ๊ณ  ์žˆ๋Š” ์ทจ์•ฝ์  ๋ชฉ๋ก

  1. JWT ์ทจ์•ฝ์ 
  2. ์ปค๋งจ๋“œ ์ธ์ ์…˜
  3. ์•”ํ˜ธํ™” ๊ด€๋ จ ์ทจ์•ฝ์ 
  4. ํŒŒ์ผ ์—…๋กœ๋“œ ์ทจ์•ฝ์ 
  5. ๊ฒฝ๋กœ ํƒ์ƒ‰(Path Traversal) ์ทจ์•ฝ์ 
  6. SQL ์ธ์ ์…˜
    1. ์—๋Ÿฌ ๊ธฐ๋ฐ˜ SQL ์ธ์ ์…˜
    2. UNION ๊ธฐ๋ฐ˜ SQL ์ธ์ ์…˜
    3. ๋ธ”๋ผ์ธ๋“œ SQL ์ธ์ ์…˜
  7. XSS
    1. ์ €์žฅํ˜•(Persistent) XSS
    2. ๋ฐ˜์‚ฌํ˜•(Reflected) XSS
  8. XXE
  9. ์˜คํ”ˆ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
    1. HTTP 3xx ์ƒํƒœ ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์ธ์ ์…˜
  10. SSRF
  11. IDOR
  12. ํด๋ฆญ์žฌํ‚น(Clickjacking)
  13. LDAP ์ธ์ ์…˜
  14. ์ธ์ฆ ์ทจ์•ฝ์ 

์Šค์บ๋„ˆ ๋ฒค์น˜๋งˆํ‚นํ•˜๊ธฐ

VulnerableApp์€ ์Šค์บ๋„ˆ๊ฐ€ ์ฐพ์•„๋‚ธ ๊ฒฐ๊ณผ๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋‚ด์žฅ๋œ ์ •๋‹ต(ground truth)๊ณผ ๋น„๊ตํ•ด์„œ ์ฑ„์ ํ•˜๊ณ , ์ปค๋ฒ„๋ฆฌ์ง€/๋ˆ„๋ฝ/๋ถˆ์ผ์น˜ ๋ฆฌํฌํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋น„๊ต๊ธฐ(comparator)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. DAST์™€ SAST ์Šค์บ๋„ˆ ๋ชจ๋‘ ๋™์ผํ•œ ์—”๋“œํฌ์ธํŠธ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค:

  • ์—”๋“œํฌ์ธํŠธ: POST http://<baseurl>/VulnerableApp/scanner/benchmark
  • ์š”์ฒญ ๋ณธ๋ฌธ โ€” ์‚ฌ์šฉํ•˜๋Š” ์Šค์บ๋„ˆ์— ๋งž๋Š” ํ˜•ํƒœ๋ฅผ ์„ ํƒํ•˜์„ธ์š”:
    • DAST: { tool, scanType: "DAST", findings: [ { url, type, cwe, wascId } ] } (scanType์€ ์„ ํƒ ํ•ญ๋ชฉ์ด๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ DAST์ž…๋‹ˆ๋‹ค. type/cwe/wascId๋„ ๊ฐ๊ฐ ์„ ํƒ ํ•ญ๋ชฉ์ด๋ฉฐ, ์ด ์ค‘ ํ•˜๋‚˜๋งŒ ์ผ์น˜ํ•ด๋„ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค)
    • SAST: { tool, scanType: "SAST", findings: [ { filePath, line, cwe, type } ] }
  • ์‘๋‹ต ๋ณธ๋ฌธ๊ณผ ๋””์Šคํฌ์— ์ €์žฅ๋˜๋Š” benchmarks/<tool>-results.json: ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฆฌํฌํŠธ

์Šค์บ๋„ˆ ์ž์ฒด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์ด ๊ธฐ๋Šฅ์˜ ๋ฒ”์œ„ ๋ฐ–์ด๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ JSON์„ ์ง์ ‘ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ž…์ถœ๋ ฅ ์Šคํ‚ค๋งˆ, ๋งค์นญ ๊ทœ์น™, ํ‘œ์ค€ ์ทจ์•ฝ์  ์œ ํ˜• ์šฉ์–ด์ง‘, curl ์˜ˆ์ œ๋Š” benchmarks/README.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฌธ์˜

์ง„ํ–‰ ๋‹จ๊ณ„๋‚˜ ํ”„๋กœ์ ํŠธ์˜ ๋ชฉ์  ๋ฐ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ๋‹ค๋ฉด karan.sasan@owasp.org๋กœ ๋ฉ”์ผ์„ ๋ณด๋‚ด์‹œ๊ฑฐ๋‚˜ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์„ธ์š”. ์ตœ์„ ์„ ๋‹คํ•ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ ๋ฐ ๋งํฌ

  1. ๋ฌธ์„œ
  2. ์„ค๊ณ„ ๋ฌธ์„œ
  3. OWASP VulnerableApp
  4. OWASP Spotlight ์‹œ๋ฆฌ์ฆˆ ์†Œ๊ฐœ ์˜์ƒ
  5. ์†Œ๊ฐœ ์˜์ƒ

๊ธฐ์‚ฌ ๋ฐ ๋ธ”๋กœ๊ทธ

  1. OWASP-VulnerableApp ๊ฐœ์š” โ€” Medium ๊ฒŒ์‹œ๊ธ€
  2. OWASP-VulnerableApp ๊ฐœ์š” โ€” Blogspot ๊ฒŒ์‹œ๊ธ€
  3. Kenji Nakajima์˜ OWASP VulnerableApp ์†Œ๊ฐœ
  4. VulnerableApp์„ ํ™œ์šฉํ•œ ์ƒ์„ฑํ˜• AI ๊ธฐ๋ฐ˜ Shannon ํ”Œ๋žซํผ
  5. OWASP ZAP ํŒŒ์ผ ์—…๋กœ๋“œ ์• ๋“œ์˜จ์„ ๋งŒ๋“  ์ด์•ผ๊ธฐ โ€” VulnerableApp-Facade๊ฐ€ ๋จผ์ € ์กด์žฌํ•ด์•ผ ํ–ˆ๋˜ ์ด์œ 

OWASP VulnerableApp ํ™œ์šฉ ์‚ฌ๋ก€

  1. ์ „ ์„ธ๊ณ„ ํ•™๊ณ„์˜ ๊ด€์‹ฌ ํ˜„ํ™ฉ ๋ณด๊ธฐ

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๊ด€๋ จ ๋งํฌ

  1. Reddit: SQL ์ธ์ ์…˜ ์ทจ์•ฝ์  ํ™œ์šฉ ์‚ฌ๋ก€

๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋œ README

  1. ๋Ÿฌ์‹œ์•„์–ด
  2. ์ค‘๊ตญ์–ด
  3. ํžŒ๋””์–ด
  4. ํŽ€์ž๋ธŒ์–ด