NPM ๊ณต๊ฒฉ์œผ๋กœ ํ•ต์‹ฌ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์•”ํ˜ธํ™”ํ ๋„์šฉ ๋ฉ€์›จ์–ด ์ฃผ์ž…

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

์›”์š”์ผ์˜ ์—ฌ๋Ÿฌ ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด ํ•ด์ปค๋Š” ์œ ๋ช… ๊ฐœ๋ฐœ์ž์˜ ๋…ธ๋“œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž(NPM) ๊ณ„์ •์— ์นจ์ž…ํ•˜์—ฌ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธ๊ธฐ ์žˆ๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋น„๋ฐ€๋ฆฌ์— ๋งฌ์›จ์–ด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•…์„ฑ ์ฝ”๋“œ๋Š” ์•”ํ˜ธํ™”ํ ์ง€๊ฐ‘ ์ฃผ์†Œ๋ฅผ ๊ตํ™˜ํ•˜๊ฑฐ๋‚˜ ํ•˜์ด์žฌํ‚นํ•˜์—ฌ ์ž ์žฌ์ ์œผ๋กœ ๋งŽ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ—˜์— ๋น ๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

“๋Œ€๊ทœ๋ชจ ๊ณต๊ธ‰๋ง ๊ณต๊ฒฉ์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค: ํ‰ํŒ์ด ์ข‹์€ ๊ฐœ๋ฐœ์ž์˜ NPM ๊ณ„์ •์ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.” Ledger์˜ ์ตœ๊ณ  ๊ธฐ์ˆ  ์ฑ…์ž„์ž์ธ Charles Guillemet์€ ์›”์š”์ผ์— ๊ฒฝ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํŒจํ‚ค์ง€๋Š” ์ด๋ฏธ 10์–ต ๋ฒˆ ์ด์ƒ ๋‹ค์šด๋กœ๋“œ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ์ „์ฒด JavaScript ์ƒํƒœ๊ณ„๊ฐ€ ์œ„ํ—˜์— ์ฒ˜ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.”

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํ•ด์ปค
๊ทผ์›: ๋ฏธ๋‚  ํˆฌํฌ๋ž„

์ด ์นจํ•ด๋Š” ์ˆ˜๋งŽ์€ ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ ํŠธ๋ฆฌ ๊นŠ์ˆ™์ด ๋ฌปํ˜€ ์žˆ๋Š” ์†Œ๊ทœ๋ชจ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ ๋ถ„ํ•„, ์ŠคํŠธ๋ฆฝ ์•ค์‹œ, ์ปฌ๋Ÿฌ ์ปจ๋ฒ„ํ„ฐ์™€ ๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ํ‘œ์ ์œผ๋กœ ์‚ผ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งค์ฃผ 10์–ต ๋ฒˆ ์ด์ƒ ๋‹ค์šด๋กœ๋“œ๋˜๋ฏ€๋กœ ์ง์ ‘ ์„ค์น˜ํ•œ ์ ์ด ์—†๋Š” ๊ฐœ๋ฐœ์ž๋„ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NPM์€ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์•ฑ ์Šคํ† ์–ด์™€ ๊ฐ™์œผ๋ฉฐ, JavaScript ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์€ ์ฝ”๋“œ ํŒจํ‚ค์ง€๋ฅผ ๊ณต์œ ํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ์ค‘์•™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

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

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

ํ”ผ์‹ฑ ์ด๋ฉ”์ผ์„ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” NPM ๊ด€๋ฆฌ์ž ๊ณ„์ •์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๋“ค์€ ๊ณต์‹ NPM ์ง€์›์„ ๊ฐ€์žฅํ•œ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด 9์›” 10์ผ๊นŒ์ง€ ์ด์ค‘ ์ธ์ฆ์„ “์—…๋ฐ์ดํŠธ”ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ณ„์ •์ด ์ž ๊ธธ ๊ฒƒ์ด๋ผ๊ณ  ๊ด€๋ฆฌ์ž์—๊ฒŒ ๊ฒฝ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์งœ ์‚ฌ์ดํŠธ๋Š” ๋กœ๊ทธ์ธ ์ž๊ฒฉ ์ฆ๋ช…์„ ์บก์ฒ˜ํ•˜์—ฌ ํ•ด์ปค๊ฐ€ ๊ด€๋ฆฌ์ž์˜ ๊ณ„์ •์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ผ๋‹จ ์นจ์ž…ํ•˜๋ฉด ๋งค์ฃผ ์ˆ˜์‹ญ์–ต ๊ฑด์˜ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์žˆ๋Š” ํŒจํ‚ค์ง€์— ์•…์„ฑ ์—…๋ฐ์ดํŠธ๋ฅผ ํ‘ธ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

Aikido Security์˜ ์—ฐ๊ตฌ์›์ธ Charlie Eriksen์€ BleepingComputer์— ์ด ๊ณต๊ฒฉ์ด “์›น์‚ฌ์ดํŠธ์— ํ‘œ์‹œ๋œ ์ฝ˜ํ…์ธ  ๋ณ€๊ฒฝ, API ํ˜ธ์ถœ ๋ณ€์กฐ, ์‚ฌ์šฉ์ž ์•ฑ์ด ์„œ๋ช…ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋ฏฟ๋Š” ๊ฒƒ์„ ์กฐ์ž‘ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๊ณ„์ธต์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ์œ„ํ—˜ํ•˜๋‹ค”๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํ•ด์ปค
์›”์š”์ผ์— JavaScript ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ณด๋‚ธ ํ”ผ์‹ฑ ์ด๋ฉ”์ผ. ๊ทผ์›: github/๋ฒ„๋„ท01

์ด๊ฒƒ์€ ๋ฐœ์ „ ์ค‘์ธ ์ด์•ผ๊ธฐ์ด๋ฉฐ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ๋‚˜์˜ค๋Š” ๋Œ€๋กœ ์ถ”๊ฐ€๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งค๊ฑฐ์ง„: ์‹ค์ œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์•”ํ˜ธํ™”ํ ์—์–ด๋“œ๋ž์„ ํ›”์น˜๋Š” 30,000๋ช…์˜ ํฐ ๋ด‡ ํŒœ ๋‚ด๋ถ€