CDN์„ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” CPDoS ๊ณต๊ฒฉ

ํ•จ๋ถ€๋ฅดํฌ๋Œ€ํ•™๊ต์™€ ์พฐ๋ฅธ๋Œ€ํ•™๊ต ์—ฐ๊ตฌ์ง„
๊ฐœ๋ฐœํ–ˆ๋‹ค ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ ๋ฐ ์บ์‹ฑ ํ”„๋ก์‹œ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ ๊ธฐ์ˆ  - CPDoS (์บ์‹œ ์ค‘๋… ์„œ๋น„์Šค ๊ฑฐ๋ถ€). ์ด ๊ณต๊ฒฉ์„ ํ†ตํ•ด ์บ์‹œ ์ค‘๋…์„ ํ†ตํ•ด ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ๊ฑฐ๋ถ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” CDN์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์š”์ฒญ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ http ์„œ๋ฒ„๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ƒํ™ฉ๋„ ์บ์‹œํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์š”์ฒญ ํ˜•์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” 400(์ž˜๋ชป๋œ ์š”์ฒญ) ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์˜ˆ์™ธ๋Š” IIS์—์„œ ๋„ˆ๋ฌด ํฐ ํ—ค๋”์— ๋Œ€ํ•ด 404(์ฐพ์„ ์ˆ˜ ์—†์Œ) ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€์—์„œ๋Š” ์ฝ”๋“œ 404(์ฐพ์„ ์ˆ˜ ์—†์Œ), 405(ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ), 410(์‚ฌ๋ผ์ง) ๋ฐ 501(๊ตฌํ˜„๋˜์ง€ ์•Š์Œ)์˜ ์˜ค๋ฅ˜๋งŒ ์บ์‹œํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€๋งŒ ์ผ๋ถ€ CDN์€ ์ฝ”๋“œ 400(์ž˜๋ชป๋œ ์š”์ฒญ)์˜ ์‘๋‹ต๋„ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ „์†ก๋œ ์š”์ฒญ์— ๋”ฐ๋ผ.

๊ณต๊ฒฉ์ž๋Š” ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ํ˜•์‹์ด ์ง€์ •๋œ HTTP ํ—ค๋”๊ฐ€ ํฌํ•จ๋œ ์š”์ฒญ์„ ๋ณด๋‚ด ์›๋ž˜ ๋ฆฌ์†Œ์Šค๊ฐ€ "400 ์ž˜๋ชป๋œ ์š”์ฒญ" ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ—ค๋”๋Š” CDN์—์„œ ๊ณ ๋ ค๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํŽ˜์ด์ง€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ •๋ณด๊ฐ€ ์บ์‹œ๋˜๋ฉฐ, ์›๋ž˜ ์‚ฌ์ดํŠธ๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ œํ•œ ์‹œ๊ฐ„์ด ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ๋ชจ๋“  ์œ ํšจํ•œ ์‚ฌ์šฉ์ž ์š”์ฒญ์œผ๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด ๋ฌธ์ œ ์—†์ด.

HTTP ์„œ๋ฒ„๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ ๊ฐ€์ง€ ๊ณต๊ฒฉ ์˜ต์…˜์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • HMO(HTTP Method Override) - ๊ณต๊ฒฉ์ž๋Š” ์ผ๋ถ€ ์„œ๋ฒ„์—์„œ ์ง€์›ํ•˜๋Š” "X-HTTP-Method-Override", "X-HTTP-Method" ๋˜๋Š” "X-Method-Override" ํ—ค๋”๋ฅผ ํ†ตํ•ด ์›๋ž˜ ์š”์ฒญ ๋ฐฉ๋ฒ•์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, CDN์—์„œ๋Š” ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๋ž˜์˜ "GET" ๋ฉ”์„œ๋“œ๋ฅผ ์„œ๋ฒ„์—์„œ ๊ธˆ์ง€๋œ "DELETE" ๋ฉ”์„œ๋“œ๋‚˜ ์ •์ ์— ์ ์šฉํ•  ์ˆ˜ ์—†๋Š” "POST" ๋ฉ”์„œ๋“œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    CDN์„ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” CPDoS ๊ณต๊ฒฉ

  • HHO(HTTP ํ—ค๋” ํฌ๊ธฐ ์ดˆ๊ณผ) - ๊ณต๊ฒฉ์ž๋Š” ์›๋ณธ ์„œ๋ฒ„์˜ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์ง€๋งŒ CDN ์ œํ•œ ์‚ฌํ•ญ์— ์†ํ•˜์ง€ ์•Š๋„๋ก ํ—ค๋” ํฌ๊ธฐ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Apache httpd๋Š” ํ—ค๋” ํฌ๊ธฐ๋ฅผ 8KB๋กœ ์ œํ•œํ•˜๊ณ  Amazon Cloudfront CDN์€ ์ตœ๋Œ€ 20KB์˜ ํ—ค๋”๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    CDN์„ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” CPDoS ๊ณต๊ฒฉ

  • HMC(HTTP ๋ฉ”ํƒ€ ๋ฌธ์ž) - ๊ณต๊ฒฉ์ž๊ฐ€ ์š”์ฒญ์— ํŠน์ˆ˜ ๋ฌธ์ž(\n, \r, \a)๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ž๋Š” ์›๋ณธ ์„œ๋ฒ„์—์„œ๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€๋งŒ CDN์—์„œ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

    CDN์„ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” CPDoS ๊ณต๊ฒฉ

๊ณต๊ฒฉ์— ๊ฐ€์žฅ ์ทจ์•ฝํ•œ ๊ฒƒ์€ Amazon Web Services(AWS)์—์„œ ์‚ฌ์šฉํ•˜๋Š” CloudFront CDN์ด์—ˆ์Šต๋‹ˆ๋‹ค. Amazon์€ ์ด์ œ ์˜ค๋ฅ˜ ์บ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์—ฐ๊ตฌ์›๋“ค์ด ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ 77๊ฐœ์›” ์ด์ƒ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Cloudflare, Varnish, Akamai, CDNXNUMX ๋ฐ
๋น ๋ฅด์ง€๋งŒ ์ด๋ฅผ ํ†ตํ•œ ๊ณต๊ฒฉ์€ IIS, ASP.NET, ํ”Œ๋ผ์Šคํฌ ะธ 1 ํšŒ ํ”Œ๋ ˆ์ด. ๋ช…์‹œ๋˜์–ด์žˆ๋‹ค, ๋ฏธ๊ตญ ๊ตญ๋ฐฉ๋ถ€ ๋„๋ฉ”์ธ์˜ 11%, HTTP ์•„์นด์ด๋ธŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ URL ์ค‘ 16%, Alexa๊ฐ€ ์ˆœ์œ„๋ฅผ ๋งค๊ธด ์ƒ์œ„ 30๊ฐœ ์›น ์‚ฌ์ดํŠธ ์ค‘ ์•ฝ 500%๊ฐ€ ์ž ์žฌ์ ์œผ๋กœ ๊ณต๊ฒฉ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ ์ธก ๊ณต๊ฒฉ์„ ์ฐจ๋‹จํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‘๋‹ต ์บ์‹ฑ์„ ๊ธˆ์ง€ํ•˜๋Š” "Cache-Control: no-store" ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ CDN์—์„œ๋Š”
CloudFront ๋ฐ Akamai์˜ ๊ฒฝ์šฐ ํ”„๋กœํ•„ ์„ค์ • ์ˆ˜์ค€์—์„œ ์˜ค๋ฅ˜ ์บ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉํ™”๋ฒฝ(WAF, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉํ™”๋ฒฝ)์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์บ์‹ฑ ํ˜ธ์ŠคํŠธ ์•ž์˜ CDN ์ธก์—์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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