MCS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๋ณด์•ˆ ๊ฐ์‚ฌ

MCS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๋ณด์•ˆ ๊ฐ์‚ฌ
์Šค์นด์ด์‰ฝ ํ™ฉํ˜ผ ์ž‘์„ฑ์ž: SeerLight

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

์ด ๊ธฐ์‚ฌ๋Š” Mail.ru MCS(ํด๋ผ์šฐ๋“œ ์†”๋ฃจ์…˜) ํŒ€์ด ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€ ์™ธ๋ถ€ ์ „๋ฌธ๊ฐ€์˜ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒฌํ•ด์™€ ๊ทธ๋“ค์ด ๋ฐœ๊ฒฌํ•œ ๋‚ด์šฉ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. MCS๋Š” '์™ธ๋ถ€์„ธ๋ ฅ'์œผ๋กœ ์ •๋ณด๋ณด์•ˆ ๋ถ„์•ผ ์ „๋ฌธ์„ฑ์ด ๋†’์€ ๋””์ง€ํ„ธ๋ณด์•ˆ์—…์ฒด๋ฅผ ์„ ํƒํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์™ธ๋ถ€ ๊ฐ์‚ฌ์˜ ์ผ๋ถ€๋กœ ๋ฐœ๊ฒฌ๋œ ๋ช‡ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ์ทจ์•ฝ์ ์„ ๋ถ„์„ํ•˜์—ฌ ์ž์ฒด ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๋™์ผํ•œ ๋ ˆ์ดํฌ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ะžะฟะธัะฐะฝะธะต์˜ ะฟั€ะพะดัƒะบั‚ะฐ

Mail.ru ํด๋ผ์šฐ๋“œ ์†”๋ฃจ์…˜(MCS) ํด๋ผ์šฐ๋“œ์— ๊ฐ€์ƒ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” IaaS, PaaS ๋ฐ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ธฐ์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. MCS ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋‹ค์Œ ์˜์—ญ์—์„œ ์ œํ’ˆ์˜ ์•ˆ์ „์„ฑ์„ ํ™•์ธํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์˜ ์ธํ”„๋ผ ๋ณดํ˜ธ: ํ•˜์ดํผ๋ฐ”์ด์ €, ๋ผ์šฐํŒ…, ๋ฐฉํ™”๋ฒฝ;
  • ๊ณ ๊ฐ์˜ ๊ฐ€์ƒ ์ธํ”„๋ผ ๋ณดํ˜ธ: ๋„คํŠธ์›Œํฌ, SDN์˜ ๊ฐœ์ธ ๋„คํŠธ์›Œํฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์„œ๋กœ ๊ฒฉ๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • OpenStack ๋ฐ ํ•ด๋‹น ๊ฐœ๋ฐฉํ˜• ๊ตฌ์„ฑ ์š”์†Œ
  • ์ž์ฒด ๋””์ž์ธ์˜ S3;
  • IAM: ์—ญํ•  ๋ชจ๋ธ์ด ์žˆ๋Š” ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ ํ”„๋กœ์ ํŠธ
  • ๋น„์ „(์ปดํ“จํ„ฐ ๋น„์ „): ์ด๋ฏธ์ง€ ์ž‘์—… ์‹œ API ๋ฐ ์ทจ์•ฝ์ 
  • ์›น ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๊ณ ์ „์ ์ธ ์›น ๊ณต๊ฒฉ;
  • PaaS ๊ตฌ์„ฑ์š”์†Œ์˜ ์ทจ์•ฝ์ ;
  • ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์˜ API์ž…๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ๋” ๋งŽ์€ ์—ญ์‚ฌ์— ํ•„์ˆ˜์ ์ธ ์ „๋ถ€์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ์ข…๋ฅ˜์˜ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ ์™œ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋ณด์•ˆ ๊ฐ์‚ฌ๋Š” ๊ฐœ์ธ ๋ฐ์ดํ„ฐ ์œ ์ถœ, ๋ฏผ๊ฐํ•œ ์ •๋ณด ์ˆ˜์ • ๋˜๋Š” ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ ์ค‘๋‹จ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์„ฑ๊ณผ ๊ตฌ์„ฑ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

ํ‰๊ท  1~2๊ฐœ์›” ๋™์•ˆ ์ง€์†๋˜๋Š” ์ž‘์—… ๋™์•ˆ ๊ฐ์‚ฌ์ž๋Š” ์ž ์žฌ์ ์ธ ๊ณต๊ฒฉ์ž์˜ ํ–‰๋™์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์„ ํƒํ•œ ์„œ๋น„์Šค์˜ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ๋ถ€๋ถ„์—์„œ ์ทจ์•ฝ์ ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. MCS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๊ฐ์‚ฌ ๊ณผ์ •์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชฉํ‘œ๊ฐ€ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๋‚ด ์ธ์ฆ ๋ถ„์„. ์ด ๊ตฌ์„ฑ์š”์†Œ์˜ ์ทจ์•ฝ์ ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๊ณ„์ •์— ์ฆ‰์‹œ ์นจํˆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ„์ • ๊ฐ„์˜ ์—ญํ•  ๋ชจ๋ธ ๋ฐ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์—ฐ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž์—๊ฒŒ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๊ฐ€์ƒ ๋จธ์‹ ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋ฐ”๋žŒ์งํ•œ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ์ธก ์ทจ์•ฝ์ . XSS/CSRF/CRLF/๋“ฑ๋“ฑ. ์•…์„ฑ๋งํฌ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
  4. ์„œ๋ฒ„ ์ธก ์ทจ์•ฝ์ : RCE ๋ฐ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ฃผ์ž…(SQL/XXE/SSRF ๋“ฑ). ์„œ๋ฒ„ ์ทจ์•ฝ์ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฐพ๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์ง€๋งŒ ํ•œ ๋ฒˆ์— ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ๋„คํŠธ์›Œํฌ ์ˆ˜์ค€์—์„œ ์‚ฌ์šฉ์ž ์„ธ๊ทธ๋จผํŠธ ๊ฒฉ๋ฆฌ ๋ถ„์„. ๊ณต๊ฒฉ์ž์˜ ๊ฒฝ์šฐ ๊ฒฉ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๊ณต๊ฒฉ ํ‘œ๋ฉด์ด ํฌ๊ฒŒ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
  6. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ„์„. ๊ธฐ์—…์„ ์†์ด๊ณ  ๋ฌด๋ฃŒ๋กœ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” "๊ทธ๋ ˆ์ด๋ฐ•์Šค" ๋ชจ๋ธ์— ๋”ฐ๋ผ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ์ž๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์œผ๋กœ ์„œ๋น„์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ–ˆ์ง€๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ API ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์†Œ์œ ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž์™€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ํ•  ๊ธฐํšŒ๋ฅผ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ํŽธ๋ฆฌํ•˜๊ณ  ๋™์‹œ์— ๋งค์šฐ ํ˜„์‹ค์ ์ธ ์ž‘์—… ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์ •๋ณด๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ๊ณ„์† ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹œ๊ฐ„ ๋ฌธ์ œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๋ฐœ๊ฒฌ๋œ ์ทจ์•ฝ์ 

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

์˜์‹ฌ์Šค๋Ÿฌ์›Œ ๋ณด์ด๊ฑฐ๋‚˜ ์–ด๋–ค ๋ฉด์—์„œ ๋‹ค๋ฅธ ๊ณณ๊ณผ ๋งŽ์ด ๋‹ค๋ฅธ ๊ณณ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์ตœ์ดˆ์˜ ์œ„ํ—˜ํ•œ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

IDOR

IDOR(์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ง์ ‘ ๊ฐœ์ฒด ์ฐธ์กฐ) ์ทจ์•ฝ์ ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์ทจ์•ฝ์  ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์ด๋กœ ์ธํ•ด ์•ก์„ธ์Šค๊ฐ€ ์‹ค์ œ๋กœ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IDOR ์ทจ์•ฝ์ ์œผ๋กœ ์ธํ•ด ๋‹ค์–‘ํ•œ ์‹ฌ๊ฐ๋„์˜ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IDOR ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋Š” ์‹œ์Šคํ…œ ๊ฐœ์ฒด(์‚ฌ์šฉ์ž, ์€ํ–‰ ๊ณ„์ขŒ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์žˆ๋Š” ํ•ญ๋ชฉ)์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์‹๋ณ„์ž๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ํ•ด๋‹น ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๊ธˆ ๋ณด๋‚ธ ์‚ฌ๋žŒ์˜ ๊ณ„์ •์„ ๊ต์ฒดํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž๊ธˆ์„ ํ›”์น  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

MCS์˜ ๊ฒฝ์šฐ ๊ฐ์‚ฌ์ž๋“ค์€ ๋น„๋ณด์•ˆ ์‹๋ณ„์ž์™€ ๊ด€๋ จ๋œ IDOR ์ทจ์•ฝ์ ์„ ์ตœ๊ทผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ๊ณ„์ •์—์„œ๋Š” UUID ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ๋งค์šฐ ์•ˆ์ „ํ•˜์ง€ ์•Š์€(์ฆ‰, ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋˜๋Š”) ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ชจ๋“  ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • ์—”ํ„ฐํ‹ฐ์˜ ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ •๊ธฐ์ ์œผ๋กœ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ˆซ์ž๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ID๋ฅผ ํ•˜๋‚˜์”ฉ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋‚ด ACL(์•ก์„ธ์Šค ์ œ์–ด ๋ชฉ๋ก, ํ”„๋กœ์„ธ์Šค ๋ฐ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ทœ์น™)์„ ์šฐํšŒํ•˜์—ฌ ์ •๋ณด๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค๊ณ  ์ง์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์ธก ์š”์ฒญ ์œ„์กฐ(SSRF)

OpenSource ์ œํ’ˆ์˜ ์ข‹์€ ์ ์€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๊ธฐ์ˆ  ์„ค๋ช…๊ณผ ์šด์ด ์ข‹์œผ๋ฉด ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ์„ค๋ช…์ด ํฌํ•จ๋œ ์ˆ˜๋งŽ์€ ํฌ๋Ÿผ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋™์ „์—๋Š” ์ด๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ๋„ ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด OpenStack ํฌ๋Ÿผ์—๋Š” ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค. [XSS] ะธ [SSRF], ์–ด๋–ค ์ด์œ ๋กœ ๋“  ์•„๋ฌด๋„ ์„œ๋‘˜๋Ÿฌ ๊ณ ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ์€ ์„œ๋ฒ„๊ฐ€ ํด๋ฆญํ•˜๋Š” ๋งํฌ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค(์˜ˆ: ์ง€์ •๋œ ์†Œ์Šค์—์„œ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ). ๋ณด์•ˆ ๋„๊ตฌ๊ฐ€ ๋งํฌ ์ž์ฒด๋‚˜ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜๋˜๋Š” ์‘๋‹ต์„ ํ•„ํ„ฐ๋งํ•˜์ง€ ์•Š์œผ๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SSRF ์ทจ์•ฝ์ ์€ ๊ณต๊ฒฉ ๊ฐœ๋ฐœ์„ ํฌ๊ฒŒ ์•ž๋‹น๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ๋‹ค์Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ๋„คํŠธ์›Œํฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ๋ฐ›์€ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์•ก์„ธ์Šค
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์—์„œ ์ „์†ก ์ˆ˜์ค€์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ „์ฒด ์•ก์„ธ์Šค ๋ฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์—์„œ ์ „์ฒด ๋กœ๋“œ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„์˜ ๋กœ์ปฌ ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์•ก์„ธ์Šค(file:/// ๊ตฌ์„ฑํ‘œ๊ฐ€ ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ)
  • ๊ทธ๋ฆฌ๊ณ  ํ›จ์”ฌ ๋”.

SSRF ์ทจ์•ฝ์ ์€ OpenStack์—์„œ ์˜ค๋žซ๋™์•ˆ ์•Œ๋ ค์ ธ ์™”์œผ๋ฉฐ ๋ณธ์งˆ์ ์œผ๋กœ "๋งน์ธ"์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‘๋‹ต์„ ๋ฐ›์ง€ ๋ชปํ•˜์ง€๋งŒ ์š”์ฒญ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์˜ค๋ฅ˜/์ง€์—ฐ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. . ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์˜ ํ˜ธ์ŠคํŠธ์—์„œ ํฌํŠธ ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทธ์— ๋”ฐ๋ฅธ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํšŒ์‚ฌ ๋„คํŠธ์›Œํฌ์—์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑ์˜คํ”ผ์Šค API๊ฐ€ ์ œํ’ˆ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ(๋‚ด๋ถ€์ž๋„ ์žŠ์ง€ ๋งˆ์„ธ์š”)๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” SSRF๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ ์šฉํ•œ URL์˜ ๋Œ€๋žต์ ์ธ ๋ชฉ๋ก์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด SSRF๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น URL์„ ๊ฒ€ํ† ํ•˜๊ณ  ์š”์ฒญ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•˜๋ฉด ๊ณ„์ขŒ์—์„œ ๊ณ„์ขŒ๋กœ ๋ˆ์„ ์ด์ฒดํ•˜๊ฑฐ๋‚˜ ํ•œ๋„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenStack์—์„œ SSRF ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋œ ๊ฒƒ์€ ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” ์ง์ ‘ ๋งํฌ์—์„œ VM ISO ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ๋น„์Šทํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ด์ œ OpenStack์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” ์ด๊ฒƒ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ ์— ์ด HackerOne ์„œ๋น„์Šค(h1)์˜ ๊ณต๊ฐœ ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด, ์ธ์Šคํ„ด์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋” ์ด์ƒ ๋ธ”๋ผ์ธ๋“œ๊ฐ€ ์•„๋‹Œ SSRF๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ „์ฒด Shopify ์ธํ”„๋ผ์— ๋Œ€ํ•œ ๋ฃจํŠธ ์•ก์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

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

์‰˜์„ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  XSS

์ˆ˜๋ฐฑ ๊ฐœ์˜ ์—ฐ๊ตฌ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ•ด๋งˆ๋‹ค XSS(๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…) ๊ณต๊ฒฉ์ด ์—ฌ์ „ํžˆ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์ฃผ ์ ‘ํ•˜๋Š” ์›น ์ทจ์•ฝ์ (๋˜๋Š” ๊ณต๊ฒฉ?).

ํŒŒ์ผ ์—…๋กœ๋“œ๋Š” ๋ชจ๋“  ๋ณด์•ˆ ์—ฐ๊ตฌ์›์ด ์„ ํ˜ธํ•˜๋Š” ์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ์นจํˆฌ ํ…Œ์Šคํ„ฐ๋ผ๋Š” ์šฉ์–ด๋กœ "์‰˜ ๋กœ๋“œ"๋ผ๋Š” ์šฉ์–ด๋กœ ์ž„์˜์˜ ์Šคํฌ๋ฆฝํŠธ(asp/jsp/php)๋ฅผ ๋กœ๋“œํ•˜๊ณ  OS ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์ทจ์•ฝ์ ์˜ ์ธ๊ธฐ๋Š” ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ทจ์•ฝ์ ์ด ๊ธฐ์–ต๋˜๊ณ  ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ๊ฐœ๋ฐœ๋˜๋ฏ€๋กœ ์ตœ๊ทผ์—๋Š” "์…ธ ๋กœ๋“œ" ํ™•๋ฅ ์ด XNUMX์ด ๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉํŒ€(๋””์ง€ํ„ธ์‹œํ๋ฆฌํ‹ฐ ๋Œ€ํ‘œ)์€ ์šด์ด ์ข‹์•˜๋‹ค. ์ข‹์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์ธก MCS์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ–ˆ๋Š”๋ฐ ์ด๋ฏธ์ง€๋งŒ ํ—ˆ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ SVG๋Š” ๊ทธ๋ฆผ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. SVG ์ด๋ฏธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋‚˜์š”? JavaScript ์ฝ”๋“œ ์กฐ๊ฐ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค!

๋‹ค์šด๋กœ๋“œ๋œ ํŒŒ์ผ์€ MCS ์„œ๋น„์Šค์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์œผ๋ฉฐ, ์ด๋Š” ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ ์‚ฌ์šฉ์ž, ์ฆ‰ ๊ด€๋ฆฌ์ž๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

MCS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๋ณด์•ˆ ๊ฐ์‚ฌ
ํ”ผ์‹ฑ ๋กœ๊ทธ์ธ ์–‘์‹์— ๋Œ€ํ•œ XSS ๊ณต๊ฒฉ์˜ ์˜ˆ

XSS ๊ณต๊ฒฉ ์•…์šฉ์˜ ์˜ˆ:

  • ๋กœ๋“œ๋œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค API์— ์ฆ‰์‹œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์™œ ์„ธ์…˜์„ ๋„์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๊นŒ(ํŠนํžˆ ์ด์ œ HTTP ์ „์šฉ ์ฟ ํ‚ค๊ฐ€ ์–ด๋””์—๋‚˜ ์žˆ๊ณ  js ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„์šฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋˜๋ฏ€๋กœ)? ์ด ๊ฒฝ์šฐ ํŽ˜์ด๋กœ๋“œ๋Š” XHR ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณต๊ฒฉ์ž์˜ ๊ณต๊ฐœ SSH ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์„œ๋ฒ„์— ๋Œ€ํ•œ SSH ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CSP ์ •์ฑ…(์ฝ˜ํ…์ธ  ๋ณดํ˜ธ ์ •์ฑ…)์—์„œ JavaScript ์‚ฝ์ž…์„ ๊ธˆ์ง€ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ž๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์ˆ˜ HTML์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๊ฐ€์งœ ๋กœ๊ทธ์ธ ์–‘์‹์„ ๋งŒ๋“ค๊ณ  ์ด ๊ณ ๊ธ‰ ํ”ผ์‹ฑ์„ ํ†ตํ•ด ๊ด€๋ฆฌ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ›”์นฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ํ”ผ์‹ฑ ํŽ˜์ด์ง€๋Š” ๋™์ผํ•œ URL๋กœ ๋๋‚˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ณต๊ฒฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ DoS โ€” ์ฟ ํ‚ค๋ฅผ 4KB๋ณด๋‹ค ํฌ๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋งํฌ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์—ด๋ฉด ๋˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน๋ณ„ํžˆ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ •๋ฆฌํ•˜๋ ค๊ณ  ์ƒ๊ฐํ•  ๋•Œ๊นŒ์ง€ ์ „์ฒด ์‚ฌ์ดํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์›น ์„œ๋ฒ„๋Š” ์ด๋Ÿฌํ•œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ˆ˜๋ฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํƒ์ง€๋œ ๋˜ ๋‹ค๋ฅธ XSS์˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์ข€ ๋” ์˜๋ฆฌํ•œ ์ต์Šคํ”Œ๋กœ์ž‡์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. MCS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฉํ™”๋ฒฝ ์„ค์ •์„ ๊ทธ๋ฃน์œผ๋กœ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฃน ์ด๋ฆ„์€ XSS๊ฐ€ ๊ฐ์ง€๋œ ๊ณณ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํŠน์ง•์€ ๊ทœ์น™ ๋ชฉ๋ก์„ ๋ณผ ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทธ๋ฃน์„ ์‚ญ์ œํ•  ๋•Œ ๋ฒกํ„ฐ๊ฐ€ ์ฆ‰์‹œ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

MCS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๋ณด์•ˆ ๊ฐ์‚ฌ

์ฆ‰, ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ์ด๋ฆ„์— "load"๊ฐ€ ํฌํ•จ๋œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌ์ž๋Š” ์ž ์‹œ ํ›„ ์ด๋ฅผ ์•Œ์•„์ฐจ๋ฆฌ๊ณ  ์‚ญ์ œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์•…์„ฑ JS๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

MCS ๊ฐœ๋ฐœ์ž๊ฐ€ ์—…๋กœ๋“œ๋œ SVG ์ด๋ฏธ์ง€์—์„œ XSS๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด(์ƒ๋žตํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ) ๋””์ง€ํ„ธ ๋ณด์•ˆ ํŒ€์€ ๋‹ค์Œ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์€ "์ฟ ํ‚ค"์™€ ๊ด€๋ จ์ด ์—†๋Š” ๋ณ„๋„์˜ ๋„๋ฉ”์ธ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋ฉฐ MCS์— ์œ„ํ˜‘์„ ๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„์˜ HTTP ์‘๋‹ต์—์„œ "Content-disposition: attachment" ํ—ค๋”๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํŒŒ์ผ์ด ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด์ œ ๊ฐœ๋ฐœ์ž๊ฐ€ XSS ์•…์šฉ ์œ„ํ—˜์„ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • "HTTP Only" ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•…์„ฑ JavaScript๊ฐ€ ์„ธ์…˜ "์ฟ ํ‚ค" ํ—ค๋”์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CSP ์ •์ฑ…์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ XSS๋ฅผ ์•…์šฉํ•˜๋Š” ๊ฒƒ์„ ํ›จ์”ฌ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • Angular ๋˜๋Š” React์™€ ๊ฐ™์€ ์ตœ์‹  ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•˜๊ธฐ ์ „์— ์ž๋™์œผ๋กœ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์ด์ค‘ ์ธ์ฆ ์ทจ์•ฝ์ 

๊ณ„์ • ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ญ์ƒ 2FA(XNUMX๋‹จ๊ณ„ ์ธ์ฆ)๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋Š” ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์ด ์†์ƒ๋œ ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ์ธ์ฆ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ญ์ƒ ๊ณ„์ • ์•ˆ์ „์ด ๋ณด์žฅ๋˜๋‚˜์š”? 2FA ๊ตฌํ˜„์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • OTP ์ฝ”๋“œ(์ผํšŒ์„ฑ ์ฝ”๋“œ)์— ๋Œ€ํ•œ ๋ฌด์ฐจ๋ณ„ ๊ฒ€์ƒ‰. ์šด์˜์˜ ๋‹จ์ˆœ์„ฑ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  OTP ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…์— ๋Œ€ํ•œ ๋ณดํ˜ธ ๋ถ€์กฑ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋Š” ๋Œ€๊ธฐ์—…์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์Šฌ๋ž™ ์ผ€์ด์Šค, ํŽ˜์ด์Šค๋ถ ์‚ฌ๋ก€.
  • ์•ฝํ•œ ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์˜ˆ: ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ธฐ๋Šฅ)
  • ์ž์‹ ์˜ ํœด๋Œ€ํฐ์—์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ OTP๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์žˆ์—ˆ๋‹ค Shopify์—์„œ.

MCS์˜ ๊ฒฝ์šฐ Google Authenticator๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ 2FA๊ฐ€ ๊ตฌํ˜„๋˜๋ฉฐ, ๋“€์˜ค. ํ”„๋กœํ† ์ฝœ ์ž์ฒด๋Š” ์ด๋ฏธ ์‹œ๊ฐ„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธก์˜ ์ฝ”๋“œ ํ™•์ธ ๊ตฌํ˜„์€ ํ™•์ธํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

MCS 2FA๋Š” ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•  ๋•Œ. ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…์— ๋Œ€ํ•œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ผํšŒ์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ช‡ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ์ž ์‹œ ๋™์•ˆ ์ž…๋ ฅ์ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” OTP์˜ ๋ฌด์ฐจ๋ณ„ ์„ ํƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • 2FA๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์˜คํ”„๋ผ์ธ ๋ฐฑ์—… ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ. ์—ฌ๊ธฐ์„œ๋Š” ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ณดํ˜ธ๊ฐ€ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ณ„์ • ๋ฐ ํ™œ์„ฑ ์„ธ์…˜์— ๋Œ€ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐฑ์—… ์ฝ”๋“œ๋ฅผ ์žฌ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ 2FA๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—…์ฝ”๋“œ๊ฐ€ OTP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ƒ์„ฑ๋œ ๋ฌธ์ž์—ด ๊ฐ’๊ณผ ๋™์ผํ•œ ๋ฒ”์œ„์— ์œ„์น˜ํ–ˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ๋‹จ์‹œ๊ฐ„์— ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๋‚ผ ํ™•๋ฅ ์€ ํ›จ์”ฌ ๋†’์•˜๋‹ค.

MCS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ๋ณด์•ˆ ๊ฐ์‚ฌ
โ€œBurp: Intruderโ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 2FA๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•œ OTP๋ฅผ ์„ ํƒํ•˜๋Š” ๊ณผ์ •

๊ฒฐ๊ณผ

์ „๋ฐ˜์ ์œผ๋กœ MCS๋Š” ์ œํ’ˆ์œผ๋กœ์„œ ์•ˆ์ „ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ์ค‘์— ์นจํˆฌ ํ…Œ์ŠคํŠธ ํŒ€์€ ํด๋ผ์ด์–ธํŠธ VM ๋ฐ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์—ˆ์œผ๋ฉฐ ๋ฐœ๊ฒฌ๋œ ์ทจ์•ฝ์ ์€ MCS ํŒ€์— ์˜ํ•ด ์‹ ์†ํ•˜๊ฒŒ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

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

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€