์ฃผ๋‹น 3๋งŒ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ธฐ๋กํ•˜๋Š” pac-resolver NPM ํŒจํ‚ค์ง€์˜ ์ทจ์•ฝ์ 

์ฃผ๋‹น 3๋งŒ ๊ฑด์ด ๋„˜๋Š” ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ธฐ๋กํ•˜๋Š” pac-resolver NPM ํŒจํ‚ค์ง€์—๋Š” Node.js ํ”„๋กœ์ ํŠธ์—์„œ HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ปจํ…์ŠคํŠธ์—์„œ JavaScript ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ (CVE-2021-23406)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก์‹œ ์„œ๋ฒ„ ์ž๋™ ๊ตฌ์„ฑ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

pac-resolver ํŒจํ‚ค์ง€๋Š” ์ž๋™ ํ”„๋ก์‹œ ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ๋œ PAC ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. PAC ํŒŒ์ผ์—๋Š” ํ˜ธ์ŠคํŠธ ๋ฐ ์š”์ฒญ๋œ URL์— ๋”ฐ๋ผ ํ”„๋ก์‹œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋…ผ๋ฆฌ๋ฅผ ์ •์˜ํ•˜๋Š” FindProxyForURL ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ์ผ๋ฐ˜ JavaScript ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์˜ ๋ณธ์งˆ์€ ์ด JavaScript ์ฝ”๋“œ๋ฅผ pac-resolver์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Node.js์—์„œ ์ œ๊ณตํ•˜๋Š” VM API๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด V8 ์—”์ง„์˜ ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์—์„œ JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์ •๋œ API๋Š” ์‹คํ–‰ ์ค‘์ธ ์ฝ”๋“œ๋ฅผ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์›๋ž˜ ์ปจํ…์ŠคํŠธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ฌธ์„œ์— ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ์‹คํ–‰์— ์ ํ•ฉํ•œ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” vm5.0.0 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ด๋™๋œ pac-resolver 2์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ๋‹น 3๋งŒ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ธฐ๋กํ•˜๋Š” pac-resolver NPM ํŒจํ‚ค์ง€์˜ ์ทจ์•ฝ์ 

์ทจ์•ฝํ•œ ๋ฒ„์ „์˜ pac-resolver๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ณต๊ฒฉ์ž๋Š” ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ PAC ํŒŒ์ผ ์ „์†ก์„ ํ†ตํ•ด Node.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์˜ ์ปจํ…์ŠคํŠธ์—์„œ JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ข…์†์„ฑ์ด ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ). pac-resolver๋กœ. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Proxy-Agent๋กœ, urllib, aws-cdk, mailgun.js ๋ฐ firebase-tools๋ฅผ ํฌํ•จํ•œ 360๊ฐœ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ์œผ๋ฉฐ ์ฃผ๋‹น ์ด XNUMX๋ฐฑ๋งŒ ๊ฑด ์ด์ƒ์˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

pac-resolver์— ์ข…์†๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด WPAD ํ”„๋ก์‹œ ์ž๋™ ๊ตฌ์„ฑ ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ œ๊ณตํ•˜๋Š” PAC ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ์ž๋Š” DHCP๋ฅผ ํ†ตํ•œ ํ”„๋ก์‹œ ์„ค์ • ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•…์„ฑ PAC ํŒŒ์ผ์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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