Skip to main content

์ฒซ ๋ฒˆ์งธ ์ข…์†์„ฑ ์ทจ์•ฝ์„ฑ ์ฐพ๊ธฐ ๋ฐ ์ˆ˜์ •ํ•˜๊ธฐ

๋ฐ๋ชจ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ Dependabot ๋ฐ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ข…์†์„ฑ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

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

์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„์ฃผ ์ผ๋ฐ˜์ ์ธ ์ผ์ด์ง€๋งŒ, ์ข…์†์„ฑ์—๋Š” ์ทจ์•ฝํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์•ˆ์ „ํ•˜์ง€ ์•Š๊ฒŒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ๋„ Dependabot๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข…์†์„ฑ ์ทจ์•ฝ์„ฑ์„ ์ฐพ์•„๋‚ด๊ณ , ์ด๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๋ฉฐ, ํ–ฅํ›„์— ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์˜ˆ๋ฐฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž์Šต์„œ์—์„œ๋Š” Dependabot๊ณผ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๋ฐ๋ชจ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ค์ •

๋ช‡ ๊ฐ€์ง€ ์ข…์†์„ฑ ์ทจ์•ฝ์„ฑ์ด ์žˆ๋Š” ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌํ•˜์—ฌ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฐฐํฌ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ด ์—ฐ์Šต์—์„œ๋Š” ๋ณด์•ˆ ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค.

  1. new2code/dependabot-demo ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ํŽ˜์ด์ง€์˜ ์˜ค๋ฅธ์ชฝ ์œ„์—์„œ Fork๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.
  3. ํ‘œ์‹œ๋˜๋Š” ํŽ˜์ด์ง€์—์„œ Create fork๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

์ข…์†์„ฑ ๋ณด์•ˆ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”ํ•˜๊ธฐ

์ด์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฏ€๋กœ, Dependabot์„ ๊ตฌ์„ฑํ•˜์—ฌ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ข…์†์„ฑ์„ ์ฐพ์•„ ์ˆ˜์ •ํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ํƒ์ƒ‰ ํ‘œ์‹œ์ค„์—์„œ Security๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. Dependabot alerts ํ–‰์—์„œ Enable Dependabot alerts ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. "Dependabot" ์„น์…˜์—์„œ "Dependabot alerts" ์˜†์— ์žˆ๋Š” Enable์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‚˜ํƒ€๋‚˜๋Š” ํŒ์—…์—์„œ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ํ™œ์„ฑํ™”์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ฝ์€ ๋‹ค์Œ, Enable์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. Dependabot์ด ์ข…์†์„ฑ ์ทจ์•ฝ์„ฑ์„ ์ˆ˜์ •ํ•˜๋Š” ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ์—ด๋„๋ก ํ—ˆ์šฉํ•˜๋ ค๋ฉด "Dependabot security updates" ์˜†์— ์žˆ๋Š” Enable์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ข…์†์„ฑ ๋ณด๊ธฐ

Dependabot์„ ๊ตฌ์„ฑํ–ˆ์œผ๋ฏ€๋กœ ์ด์ œ ์–ด๋–ค ์ข…์†์„ฑ์— ์ทจ์•ฝ์„ฑ์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ํƒ์ƒ‰ ํ‘œ์‹œ์ค„์—์„œ Security๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ Dependabot alerts๋ฅผ ๋ณด๋ ค๋ฉด ํƒ์ƒ‰ ํ‘œ์‹œ์ค„์—์„œ Dependabot ์„ ํด๋ฆญํ•˜์„ธ์š”.
  3. ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๊ฒฝ๊ณ  ์ œ๋ชฉ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ์Šต์—์„œ๋Š” Command Injection in hot-formula-parser๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

Dependabot ๊ฒฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ

Dependabot์ด ์ข…์†์„ฑ์˜ ์ผ๋ถ€ ์ทจ์•ฝ์„ฑ์„ ์‹๋ณ„ํ–ˆ์œผ๋ฏ€๋กœ ์ด์ œ "Command Injection in hot-formula-parser" ๊ฒฝ๊ณ ์— ์ œ๊ณต๋œ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ • ์š”์•ฝ

๊ฒฝ๊ณ  ์ œ๋ชฉ ์•„๋ž˜์—๋Š” ์ด ์ทจ์•ฝ์„ฑ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์š”์•ฝ์ด ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์š”์•ฝ์—๋Š” ํ•ด๊ฒฐ๋  ๊ฒฝ๊ณ ์˜ ์ˆ˜์™€ ์ทจ์•ฝ์„ฑ์ด ๋ฐœ๊ฒฌ๋œ ์œ„์น˜๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒฝ์šฐ, ์ด ๊ฒฝ๊ณ ๋Š” hot-formula-parser ํŒจํ‚ค์ง€๋ฅผ ๋ฒ„์ „ 3.0.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด javascript/package-lock.json ํŒŒ์ผ์—์„œ ์‹๋ณ„๋œ Dependabot ๊ฒฝ๊ณ  ํ•˜๋‚˜๊ฐ€ ์ˆ˜์ •๋  ๊ฒƒ์ด๋ผ๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” ๋˜ํ•œ Dependabot์ด ์ด ์ทจ์•ฝ์„ฑ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๋Š” ์ง„ํ–‰ ์ƒํ™ฉ๋„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•ด์ง€๋ฉด " Review security update"๋ผ๋Š” ๋ ˆ์ด๋ธ”์˜ ๋‹จ์ถ”๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์ด ๋‹จ์ถ”๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

Dependabot ๊ฒฝ๊ณ ์˜ ์ˆ˜์ • ์š”์•ฝ ์„น์…˜ ์Šคํฌ๋ฆฐ์ƒท

์ทจ์•ฝ์„ฑ ์„ธ๋ถ€ ์ •๋ณด

์ˆ˜์ • ์„ธ๋ถ€ ์ •๋ณด ์•„๋ž˜์—์„œ Dependabot์€ ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ทจ์•ฝํ•œ ํŒจํ‚ค์ง€์˜ ์ด๋ฆ„
  • ์ทจ์•ฝ์„ฑ์ด ํฌํ•จ๋œ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „
  • ์ทจ์•ฝ์„ฑ์„ ํ•ด๊ฒฐํ•˜๋Š” ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „
  • ์ทจ์•ฝ์„ฑ ์œ ํ˜• ๋ฐ ์•…์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด

Dependabot ๊ฒฝ๊ณ ์˜ ์ทจ์•ฝ์„ฑ ์„ธ๋ถ€ ์ •๋ณด ์„น์…˜ ์Šคํฌ๋ฆฐ์ƒท

์ด ๊ฒฝ๊ณ ์—์„œ hot-formula-parser ํŒจํ‚ค์ง€์˜ parse ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์˜ ์•ˆ์ „์„ฑ์„ ์ œ๋Œ€๋กœ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ณต๊ฒฉ์ž๊ฐ€ ์•…์„ฑ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํŒ

์ทจ์•ฝ์„ฑ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ฒ ๋‹ค๋ฉด, Copilot Chat์—๊ฒŒ ์งˆ๋ฌธํ•˜๊ธฐ๋ฅผ ์‹œ๋„ํ•˜์—ฌ ์„ค๋ช…์„ ์š”์ฒญํ•ด ๋ณด์„ธ์š”.

ํƒ€์ž„๋ผ์ธ

๋งˆ์ง€๋ง‰์œผ๋กœ ํŽ˜์ด์ง€ ์•„๋ž˜์ชฝ์—์„œ ๊ฒฝ๊ณ ์˜ ํƒ€์ž„๋ผ์ธ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํƒ€์ž„๋ผ์ธ์—๋Š” Dependabot์ด ์ด ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•œ ์‹œ์ ์˜ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์ทจ์•ฝ์„ฑ์ด ์ˆ˜์ •๋  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

Dependabot ๊ฒฝ๊ณ ์˜ ํƒ€์ž„๋ผ์ธ ์Šคํฌ๋ฆฐ์ƒท

์ข…์†์„ฑ ๋ณดํ˜ธํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ๋ฅผ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด Dependabot์ด ์ƒ์„ฑํ•œ ์ˆ˜์ •์„ ์ ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ˆ˜์ • ์š”์•ฝ์ด ํ‘œ์‹œ๋œ ๊ฒฝ๊ณ  ํ•„๋“œ์—์„œ Review security update๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ํŽ˜์ด์ง€์—์„œ Files changed๋ฅผ ํด๋ฆญํ•˜๋ฉด Dependabot์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ฒ€ํ† ํ•œ ํ›„, Conversation์„ ํด๋ฆญํ•˜์—ฌ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ๊ฐœ์š”๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

  3. ์ˆ˜์ •์„ ์ ์šฉํ•˜๋ ค๋ฉด ํŽ˜์ด์ง€ ํ•˜๋‹จ์—์„œ Merge pull request๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ, Confirm merge๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

    ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์ด ๋ณ‘ํ•ฉ๋˜๋ฉด ์—ฐ๊ฒฐ๋œ Dependabot ๊ฒฝ๊ณ ๊ฐ€ ์ž๋™์œผ๋กœ ์ˆ˜์ •๋˜๊ณ , ์ˆ˜์ • ์‹œ๊ฐ„์ด ํƒ€์ž„๋ผ์ธ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

ํ–ฅํ›„ ์ข…์†์„ฑ ์ทจ์•ฝ์„ฑ ๋ฐฉ์ง€ํ•˜๊ธฐ

์•ž์œผ๋กœ ๋ถˆ์•ˆ์ •ํ•œ ์ข…์†์„ฑ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด Dependabot์ด ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋  ๋•Œ๋งˆ๋‹ค ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋„๋ก ํ—ˆ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ํƒ์ƒ‰ ํ‘œ์‹œ์ค„์—์„œ Settings๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์ด๋“œ๋ฐ”์˜ "Security" ์„น์…˜์—์„œ Advanced Security ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. "Dependabot version updates" ์˜†์— ์žˆ๋Š” Enable์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

์ด์ œ ๋ฐ๋ชจ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ Dependabot๊ณผ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์œผ๋ฏ€๋กœ, ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ข…์†์„ฑ ์ทจ์•ฝ์„ฑ์„ ์‰ฝ๊ฒŒ ์ฐพ์•„๋‚ด๊ณ , ์ˆ˜์ •ํ•˜๋ฉฐ, ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.