๋Ÿฌ์‹œ์•„์™€ ๋ฒจ๋กœ๋ฃจ์‹œ์˜ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” node-ipc NPM ํŒจํ‚ค์ง€๊ฐ€ ์•…์˜์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

node-ipc NPM ํŒจํ‚ค์ง€(CVE-2022-23812)์—์„œ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด "โค๏ธ" ๋ฌธ์ž๋กœ ๋Œ€์ฒด๋  ํ™•๋ฅ ์ด 25%์ธ ์•…์˜์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•…์„ฑ ์ฝ”๋“œ๋Š” ๋Ÿฌ์‹œ์•„๋‚˜ ๋ฒจ๋กœ๋ฃจ์‹œ์˜ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋  ๋•Œ๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. node-ipc ํŒจํ‚ค์ง€๋Š” ์ฃผ๋‹น ์•ฝ ๋ฐฑ๋งŒ ๊ฑด์˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ฐ€์ง€๋ฉฐ vue-cli๋ฅผ ํฌํ•จํ•œ 354๊ฐœ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. node-ipc๊ฐ€ ์ข…์†์„ฑ์ธ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋„ ์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์•…์„ฑ ์ฝ”๋“œ๋Š” node-ipc 10.1.1 ๋ฐ 10.1.2 ๋ฆด๋ฆฌ์Šค์˜ ์ผ๋ถ€๋กœ NPM ์ €์žฅ์†Œ์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 11์ผ ์ „์— ํ”„๋กœ์ ํŠธ ์ž‘์„ฑ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ Git ์ €์žฅ์†Œ์— ์•…์˜์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตญ๊ฐ€๋Š” api.ipgeolocation.io ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฝ”๋“œ์—์„œ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์•…์„ฑ ์‚ฝ์ž…์—์„œ ipgeolocation.io API์— ์•ก์„ธ์Šคํ•œ ํ‚ค๊ฐ€ ์ด์ œ ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

node-ipc 11.0.0 ๋ฐ 11.1.0์˜ ๋ฆด๋ฆฌ์Šค๋Š” ๋‚˜์ค‘์— NPM ์ €์žฅ์†Œ์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ๋‚ด์žฅ๋œ ์•…์„ฑ ์ฝ”๋“œ๋ฅผ ์™ธ๋ถ€ ์ข…์†์„ฑ์ธ "peacenotwar"๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ๋™์ผํ•œ ์ž‘์„ฑ์ž๊ฐ€ ์ œ์–ดํ•˜๊ณ  ์›ํ•˜๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ํฌํ•จํ•˜๋„๋ก ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์œ„์— ๋™์ฐธํ•˜๊ธฐ ์œ„ํ•ด. Peacenotwar ํŒจํ‚ค์ง€๋Š” ํ‰ํ™”์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€๋งŒ ํ‘œ์‹œํ•œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์ง€๋งŒ ์ž‘์„ฑ์ž๊ฐ€ ์ด๋ฏธ ์ทจํ•œ ์กฐ์น˜๋ฅผ ๊ณ ๋ คํ•˜๋ฉด ํŒจํ‚ค์ง€์˜ ์ถ”๊ฐ€ ๋‚ด์šฉ์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํŒŒ๊ดด์ ์ธ ๋ณ€๊ฒฝ์ด ์—†์Œ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— Vue.js ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” stable node-ipc 9.2.2 ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋„ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” Peacenotwar ์™ธ์—๋„ ์ƒ‰์ƒ ํŒจํ‚ค์ง€๋„ ์ข…์†์„ฑ ๋ชฉ๋ก์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ์ž‘์„ฑ์ž๋Š” XNUMX์›”์— ์ฝ”๋“œ์— ํŒŒ๊ดด์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์˜ ์†Œ์Šค ๋ผ์ด์„ผ์Šค๊ฐ€ MIT์—์„œ DBAD๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์„ฑ์ž์˜ ์ถ”๊ฐ€ ์กฐ์น˜๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ node-ipc ์‚ฌ์šฉ์ž๋Š” ๋ฒ„์ „ 9.2.1์˜ ์ข…์†์„ฑ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ 41๊ฐœ์˜ ํŒจํ‚ค์ง€๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•œ ๋™์ผํ•œ ์ž‘์„ฑ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ๋ฒ„์ „์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ž‘์„ฑ์ž๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ผ๋ถ€ ํŒจํ‚ค์ง€(js-queue, easy-stack, js-message, event-pubsub)๋Š” ์ฃผ๋‹น ์•ฝ ๋ฐฑ๋งŒ ๊ฑด์˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ง์ ‘์ ์ธ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ์ด ์—†๊ณ  IP ์ฃผ์†Œ ๋˜๋Š” ์‹œ์Šคํ…œ ๋กœ์ผ€์ผ์— ์—ฐ๊ฒฐ๋œ ๋‹ค์–‘ํ•œ ๊ณต๊ฐœ ํŒจํ‚ค์ง€์— ์ž‘์—…์„ ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ์‹œ๋„๊ฐ€ ๊ธฐ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ(es5-ext, rete, PHP Composer, PHPUnit, Redis Desktop Manager, Awesome Prometheus Alerts, verdaccio, filestash) ์ค‘ ๊ฐ€์žฅ ๋ฌดํ•ดํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๊ฒฐ๊ตญ ๋Ÿฌ์‹œ์•„์™€ ๋ฒจ๋กœ๋ฃจ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์Ÿ์„ ์ข…๋ฃŒํ•˜๋ผ๋Š” ์š”์ฒญ์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— AWS Terraform ๋ชจ๋“ˆ ํŒจํ‚ค์ง€์— ์•”ํ˜ธํ™” ๋„๊ตฌ๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ  ๋ผ์ด์„ ์Šค์— ์ •์น˜์  ์ œํ•œ์ด ๋„์ž…๋˜๋Š” ๋“ฑ ๋” ์œ„ํ—˜ํ•œ ์ง•ํ›„๋„ ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ESP8266 ๋ฐ ESP32 ์žฅ์น˜์šฉ Tasmota ํŽŒ์›จ์–ด์—๋Š” ์žฅ์น˜ ์ž‘๋™์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ๋งˆํฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ํ™œ๋™์€ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋ฅผ ์‹ฌ๊ฐํ•˜๊ฒŒ ํ›ผ์†ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์–ด์ง‘๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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