Skip to main content

๋ณด์•ˆ ์ธ์‚ฌ์ดํŠธ ๋ณด๊ธฐ

๋ณด์•ˆ ๊ฐœ์š”์˜ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ๋‚ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ณด์•ˆ ํ™˜๊ฒฝ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์•ก์„ธ์Šค์—๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์กฐ์ง ๋ณด๊ธฐ: ์กฐ์ง์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ
  • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ณด๊ธฐ: ์กฐ์ง ์†Œ์œ ์ž ๋ฐ ๋ณด์•ˆ ๊ด€๋ฆฌ์ž

GitHub Team ๊ณ„์ •์ด GitHub Secret Protection or GitHub Code Security๋ฅผ ์†Œ์œ ํ•˜๊ฑฐ๋‚˜ GitHub Enterprise ๊ณ„์ •์ด ์†Œ์œ ํ•œ ์กฐ์ง

์กฐ์ง ์ˆ˜์ค€ ๋ณด์•ˆ ์ธ์‚ฌ์ดํŠธ ์ •๋ณด

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

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

๋Œ€์‹œ๋ณด๋“œ๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ณด์•ˆ ๋ชฉํ‘œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ธ ๊ฐœ์˜ ํƒญ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

  • ๊ฐ์ง€: ์ด ํƒญ์€ ์กฐ์ง์˜ ๊ฒฝ๊ณ  ์ƒํƒœ ๋ฐ ๊ธฐ๊ฐ„๊ณผ ์ฐจ๋‹จ ๋˜๋Š” ์šฐํšŒ๋œ ๋น„๋ฐ€, ๊ฐ€์žฅ ๋†’์€ ์ž ์žฌ์  ๋ณด์•ˆ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•˜๋Š” ์ƒ์œ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•œ ๋ฉ”ํŠธ๋ฆญ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ˆ˜์ •: ์ด ํƒญ์€ ๊ฒฝ๊ณ ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ ๊ฒฝ๊ณ  ํ™œ๋™์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๋ฐฉ์ง€: ์ด ํƒญ์—๋Š” ์ทจ์•ฝ์ ์ด ์–ด๋–ป๊ฒŒ ์˜ˆ๋ฐฉ๋˜๊ณ  ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋ฉ”ํŠธ๋ฆญ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

๊ธฐ๋ณธ ๋ถ„๊ธฐ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๊ฐ์ง€ ๋ฐ ์ˆ˜์ • ํƒญ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ฐฉ์ง€ ํƒญ์—์„œ๋Š” ๋ณ‘ํ•ฉ๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์— ์žˆ๋Š” CodeQL ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ๊ธฐ๊ฐ„์„ ์„ ํƒํ•˜์—ฌ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์ถ”๊ฐ€ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ด€์‹ฌ ์˜์—ญ์„ ๋” ์ขํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜๋ฉด ๋Œ€์‹œ๋ณด๋“œ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์™€ ๋ฉ”ํŠธ๋ฆญ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€์‹œ๋ณด๋“œ์—๋Š” GitHub ๋„๊ตฌ์˜ ๋ชจ๋“  ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ, ๋„๊ตฌ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋„๊ตฌ(ํŠน์ • ํƒ€์‚ฌ ๋„๊ตฌ์ธ CodeQL์„ ์‚ฌ์šฉํ•˜๋Š” secret scanning, Dependabot, code scanning) ๋˜๋Š” ๋ชจ๋“  ํƒ€์‚ฌ code scanning ๋„๊ตฌ์˜ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ฐœ์š”์—์„œ ๊ฒฝ๊ณ  ํ•„ํ„ฐ๋ง์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์กฐ์ง ๋˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์— ๋Œ€ํ•œ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ ๋ฐ์ดํ„ฐ์˜ CSV ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ ํŒŒ์ผ์€ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณด์•ˆ ์—ฐ๊ตฌ, ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋“ฑ์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ฐœ์š”์—์„œ ๋ฐ์ดํ„ฐ ๋‚ด๋ณด๋‚ด๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ‘œ์‹œ๋˜๋Š” ๋ฉ”ํŠธ๋ฆญ์€ ์‚ฌ์šฉ์ž์˜ ์—ญํ•  ๋ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ถŒํ•œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ฐœ์š”์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํŒ

ํŠนํžˆ ์กฐ์ง์˜ ๋น„๋ฐ€ ์œ ์ถœ ๋…ธ์ถœ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ GitHub์—์„œ ๋ฌด๋ฃŒ secret risk assessment๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ๋Š” ํผ๋ธ”๋ฆญ ์œ ์ถœ, ํ”„๋ผ์ด๋น— ๋…ธ์ถœ, ํ† ํฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์ง‘๊ณ„ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€ ์œ„ํ—˜ ํ‰๊ฐ€ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

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

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

์ฐธ๊ณ  ํ•ญ๋ชฉ

์š”์•ฝ ๋ณด๊ธฐ("๊ฐœ์š”", "์ ์šฉ ๋ฒ”์œ„", "์œ„ํ—˜")๋Š” ๊ธฐ๋ณธ ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์‹œ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ๋น„ ๊ณต๊ธ‰์ž ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ Secret scanning ๊ฒฝ๊ณ ๋Š” ๋ชจ๋‘ ์ด๋Ÿฌํ•œ ๋ณด๊ธฐ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ณ„ ๊ฒฝ๊ณ  ๋ณด๊ธฐ์—๋Š” ๋” ๋งŽ์€ ์ˆ˜์˜ ์—ด๋ฆฐ ๊ฒฝ๊ณ ์™€ ๋‹ซํžŒ ๊ฒฝ๊ณ ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ ๋ณด์•ˆ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ ๋ณด๊ธฐ

  1. GitHub์—์„œ ์กฐ์ง์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ์กฐ์ง ์ด๋ฆ„์—์„œ ๋ณด์•ˆ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์กฐ์ง์˜ ๊ฐ€๋กœ ํƒ์ƒ‰ ๋ชจ์Œ ์Šคํฌ๋ฆฐ์ƒท ๋ฐฉํŒจ ์•„์ด์ฝ˜๊ณผ "๋ณด์•ˆ"์ด๋ผ๋Š” ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๊ฐœ์š” ํŽ˜์ด์ง€๋Š” "Security" ํƒญ์„ ํด๋ฆญํ•˜๋ฉด ํ‘œ์‹œ๋˜๋Š” ๊ธฐ๋ณธ ๋ณด๊ธฐ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ณด์•ˆ ๊ฐœ์š” ํŽ˜์ด์ง€์—์„œ ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Overview๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

  4. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ์ง€ ํƒญ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํƒญ์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด๋ ค๋ฉด ์ˆ˜์ • ๋˜๋Š” ๋ฐฉ์ง€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 1. ๊ฐœ์š” ํŽ˜์ด์ง€์˜ ๋งจ ์œ„์— ์žˆ๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”ํŠธ๋ฆญ์„ ํ™•์ธํ•  ๊ฒฝ๊ณ  ๊ทธ๋ฃน์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ์กฐ์ •ํ•˜๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์™€ ๋ฉ”ํŠธ๋ฆญ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

    • ๋‚ ์งœ ์„ ํƒ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๊ณ  ํ™œ๋™ ๋ฐ ๋ฉ”ํŠธ๋ฆญ์„ ํ™•์ธํ•  ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฒ€์ƒ‰ ์ƒ์ž๋ฅผ ํด๋ฆญํ•˜๊ณ  ํ‘œ์‹œ๋œ ๊ฒฝ๊ณ  ๋ฐ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•œ ํ•„ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    ๋ณด์•ˆ ๊ฐœ์š”์˜ ๊ฐœ์š” ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฐ์ƒท. ํ•„ํ„ฐ๋ง ์˜ต์…˜์€ ๋‚ ์งœ ์„ ํƒ๊ธฐ์™€ ๊ฒ€์ƒ‰ ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ ์ดํ•ดํ•˜๊ธฐ

๋ณด์•ˆ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ์˜ ์ผ๋ถ€ ๋ฉ”ํŠธ๋ฆญ์—๋Š” ์ด์ „ ๊ธฐ๊ฐ„์— ๋น„ํ•ด ์„ ํƒํ•œ ๊ธฐ๊ฐ„์˜ ์ฆ๊ฐ€์œจ ๋˜๋Š” ์†์‹ค ๋น„์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ถ”์„ธ ์ง€ํ‘œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฝ๊ณ ๊ฐ€ 10๊ฐœ์ธ ์ฃผ๋ฅผ ์„ ํƒํ•˜๋ฉด ์ง€๋‚œ ์ฃผ์— 20๊ฐœ์˜ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ถ”์„ธ ์ง€ํ‘œ๋Š” ๋ฉ”ํŠธ๋ฆญ์ด 50% ๊ฐ์†Œํ–ˆ๋‹ค๊ณ  ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์—ด๋ฆฐ ๊ฒฝ๊ณ ์˜ ํ‰๊ท  ๊ธฐ๊ฐ„์ด 15์ผ์ด๊ณ  ์ด์ „ ๊ธฐ๊ฐ„์ด 5์ผ์ธ ๊ฒฝ์šฐ ์ถ”์„ธ ์ง€ํ‘œ๋Š” ๋ฉ”ํŠธ๋ฆญ์ด 200% ์ฆ๊ฐ€ํ–ˆ๋‹ค๊ณ  ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

๋ณด์•ˆ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ์— ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ๊ณ  ์ˆ˜๊ฐ€ code scanning ๊ฒฝ๊ณ ์˜ ์ˆ˜์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ๋Š” ์กฐ์ง์˜ ๋ณด์•ˆ ํƒœ์„ธ์— ์ค‘์ ์„ ๋‘๊ณ  ๋ณด์•ˆ ์‹ฌ๊ฐ๋„("์œ„ํ—˜", "๋†’์Œ", "๋ณดํ†ต", "๋‚ฎ์Œ")๋งŒ ํฌํ•จํ•˜์ง€๋งŒ CodeQL ๋ฐ ํƒ€์‚ฌ ๋„๊ตฌ๋Š” "์˜ค๋ฅ˜", "๊ฒฝ๊ณ ", "์ฐธ๊ณ  ์‚ฌํ•ญ" ์ˆ˜์ค€์˜ ๋น„๋ณด์•ˆ ๊ฒฝ๊ณ ๋ฅผ ๋ณ„๋„๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. code scanning์˜ ๊ฒฝ๊ณ  ์‹ฌ๊ฐ๋„ ๋ฐ ๋ณด์•ˆ ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๊ฒ€์‚ฌ ๊ฒฝ๊ณ  ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ์ง€ ํƒญ

์‹œ๊ฐ„๋ณ„ ์—ด๋ฆฐ ๊ฒฝ๊ณ 

"์‹œ๊ฐ„๋ณ„ ์—ด๋ฆฐ ๊ฒฝ๊ณ " ๊ทธ๋ž˜ํ”„๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์กฐ์ง์— ๋ฐœ์ƒํ•œ ๊ฒฝ๊ณ  ์ˆ˜์˜ ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฒฝ๊ณ ๋Š” ์‹ฌ๊ฐ๋„๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๊ทธ๋ฃนํ™” ๋ฐฉ๋ฒ•์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ฒฝ๊ณ  ๊ธฐ๊ฐ„

"๊ฒฝ๊ณ  ๊ธฐ๊ฐ„" ๋ฉ”ํŠธ๋ฆญ์€ ์„ ํƒํ•œ ๊ธฐ๊ฐ„์ด ๋๋‚˜๋Š” ์‹œ์ ์—๋„ ์—ฌ์ „ํžˆ ๋ฏธํ•ด๊ฒฐ ์ƒํƒœ์ธ ๋ชจ๋“  ๊ฒฝ๊ณ ์˜ ํ‰๊ท  ๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค.

๊ฐ ๋ฏธํ•ด๊ฒฐ ๊ฒฝ๊ณ ์˜ ๊ธฐ๊ฐ„์€ ์„ ํƒํ•œ ๊ธฐ๊ฐ„์ด ์ข…๋ฃŒ๋œ ๋‚ ์งœ์—์„œ ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋œ ๋‚ ์งœ๋ฅผ ๋นผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์—ด๋ฆฐ ๊ฒฝ๊ณ ์˜ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๊ฐ€ ๋‹ค์‹œ ์—ด๋ฆฐ ๋‚ ์งœ๊ฐ€ ์•„๋‹Œ ์ฒ˜์Œ ์ƒ์„ฑ๋œ ๋‚ ์งœ๋ฅผ ๋นผ์„œ ๊ธฐ๊ฐ„์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ์—ด๋ฆฐ ๊ฒฝ๊ณ 

"๋‹ค์‹œ ์—ด๋ฆฐ ๊ฒฝ๊ณ " ๋ฉ”ํŠธ๋ฆญ์€ ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋‹ค์‹œ ์—ด๋ฆฐ ์ด ์—ด๋ฆฐ ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค. ๋ณด๊ณ  ๊ธฐ๊ฐ„์ด ๋๋‚  ๋•Œ ์—ด๋ ค ์žˆ๋Š” ๊ฒฝ๊ณ ๋งŒ ๋ณด๊ณ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ์ „๋‚  ๋‹ซํ˜”์œผ๋ฉฐ ํ•ด๋‹น ๊ธฐ๊ฐ„์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์—ด๋ ค ์žˆ๋Š” ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ ๋งŒ๋“  ๊ฒฝ๊ณ ๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋‹ซํžŒ ๋‹ค์Œ ๋‹ค์‹œ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค.
  • ์„ ํƒํ•œ ๊ธฐ๊ฐ„์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์—ด๋ ค ์žˆ์—ˆ์ง€๋งŒ ๋‹ซํžŒ ํ›„ ๊ฐ™์€ ๊ธฐ๊ฐ„ ๋‚ด์— ๋‹ค์‹œ ์—ด๋ฆฐ ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค.

๋ฌด์‹œ/์ฐจ๋‹จ๋œ ๋น„๋ฐ€

"๋ฌด์‹œ๋œ ๋น„๋ฐ€" ๋ฉ”ํŠธ๋ฆญ์€ ํ‘ธ์‹œ ๋ณดํ˜ธ์— ์˜ํ•ด ์ฐจ๋‹จ๋œ ์ด ๋น„๋ฐ€์— ๋Œ€ํ•œ ๋ฌด์‹œ๋œ ๋น„๋ฐ€์˜ ๋น„์œจ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

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

์„ธ๋ถ€ ์ •๋ณด ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋™์ผํ•œ ํ•„ํ„ฐ ๋ฐ ๊ธฐ๊ฐ„์ด ์„ ํƒ๋œ secret scanning ๋ณด๊ณ ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

secret scanning์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„๋ฐ€ ๊ฒ€์‚ฌ ํ‘ธ์‹œ ๋ณดํ˜ธ์— ๋Œ€ํ•œ ๋ฉ”ํŠธ๋ฆญ ๋ณด๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ํ–ฅ ๋ถ„์„ ํ…Œ์ด๋ธ”

์˜ํ–ฅ ๋ถ„์„ ํ…Œ์ด๋ธ”์—๋Š” "๋ฆฌํฌ์ง€ํ† ๋ฆฌ", "๊ถŒ๊ณ ", "SAST ์ทจ์•ฝ์„ฑ"์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ณ„๋„์˜ ํƒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • "๋ฆฌํฌ์ง€ํ† ๋ฆฌ" ํƒญ์—๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„์ด ๋๋‚  ๋•Œ ์—ด๋ฆฐ ๊ฒฝ๊ณ ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์ƒ์œ„ 10๊ฐœ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์ด ์—ด๋ฆฐ ๊ฒฝ๊ณ  ์ˆ˜์— ๋”ฐ๋ผ ์ˆœ์œ„๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฏธํ•ด๊ฒฐ ๊ฒฝ๊ณ ์˜ ์ด ์ˆ˜๋Š” ์‹ฌ๊ฐ๋„๋ณ„ ๋ถ„์„๊ณผ ํ•จ๊ป˜ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  • "๊ถŒ๊ณ " ํƒญ์—๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„์˜ ๋์— ๊ฐ€์žฅ ๋งŽ์€ Dependabot ๊ฒฝ๊ณ ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ 10๊ฐœ์˜ CVE ๊ถŒ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์—ด๋ ค ์žˆ๋Š” ๊ฒฝ๊ณ ์˜ ์ด ์ˆ˜์— ๋”ฐ๋ผ ์ˆœ์œ„๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ถŒ๊ณ ์˜ ๊ฒฝ์šฐ ์—ด๋ฆฐ ๊ฒฝ๊ณ ์˜ ์ด ์ˆ˜๋Š” ์‹ฌ๊ฐ๋„ ์ˆœ์œ„์™€ ํ•จ๊ป˜ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  • โ€œSAST ์ทจ์•ฝ์„ฑโ€ ํƒญ์—๋Š” ๊ฐ€์žฅ ๋งŽ์€ code scanning ๊ฒฝ๊ณ ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ 10๊ฐœ์˜ SAST(์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ) ์ทจ์•ฝ์„ฑ์ด ํ‘œ์‹œ๋˜๋ฉฐ, ์—ด๋ ค ์žˆ๋Š” ์ด๊ฒฝ๊ณ ์˜ ์ˆ˜์— ๋”ฐ๋ผ ์ˆœ์œ„๊ฐ€ ๋งค๊ฒจ์ง‘๋‹ˆ๋‹ค. ๊ฐ ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•ด ์—ด๋ฆฐ ์ด ๊ฒฝ๊ณ  ์ˆ˜๋Š” ์‹ฌ๊ฐ๋„ ์ˆœ์œ„์™€ ํ•จ๊ป˜ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ํƒญ

์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ผ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ 

"์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ผ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ " ๊ทธ๋ž˜ํ”„๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์กฐ์ง ๋˜๋Š” ๊ธฐ์—…์— ๋ฐœ์ƒํ•œ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ  ์ˆ˜์˜ ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฒฝ๊ณ ๋Š” ์‹ฌ๊ฐ๋„๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๊ทธ๋ฃนํ™” ๋ฐฉ๋ฒ•์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ ์—๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ์ด์ „ ๋˜๋Š” ํ•ด๋‹น ๊ธฐ๊ฐ„์— ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ํ•ด์ œ๋œ ๋ณด์•ˆ ๊ฒฝ๊ณ ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๊ฐ„ ๋™์•ˆ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ ๋Š” ์ข…๋ฃŒ๋œ ๋‚ ์งœ์˜ ๊ทธ๋ž˜ํ”„์— ํ‘œ์‹œ๋˜๊ณ  ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ์ „์— ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ํ•ด์ œ๋œ ๊ฒฝ๊ณ ๋Š” ํ•ด๋‹น ๊ธฐ๊ฐ„์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ‰๊ท  ์ˆ˜์ • ์‹œ๊ฐ„

"ํ‰๊ท  ์ˆ˜์ • ์‹œ๊ฐ„" ๋ฉ”ํŠธ๋ฆญ์€ ์„ ํƒํ•œ ๊ธฐ๊ฐ„์— ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ํ•ด์ œ๋œ ๋ชจ๋“  ๊ฒฝ๊ณ ์˜ ํ‰๊ท  ๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค. "๊ฐ€์–‘์„ฑ"์œผ๋กœ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ ๋Š” ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.

์ข…๋ฃŒ๋œ ๊ฐ ๊ฒฝ๊ณ ์˜ ๊ธฐ๊ฐ„์€ ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ์ค‘ ํ•ด๋‹น ๊ฒฝ๊ณ ๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ข…๋ฃŒ๋œ ๋‚ ์งœ์—์„œ ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋œ ๋‚ ์งœ๋ฅผ ๋นผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์—ด๋ฆฐ ๊ฒฝ๊ณ ์˜ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๊ฐ€ ๋‹ค์‹œ ์—ด๋ฆฐ ๋‚ ์งœ๊ฐ€ ์•„๋‹Œ ์ฒ˜์Œ ์ƒ์„ฑ๋œ ๋‚ ์งœ๋ฅผ ๋นผ์„œ ๊ธฐ๊ฐ„์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์ˆœ ํ•ด๊ฒฐ ์†๋„

"์ˆœ ํ•ด๊ฒฐ ์†๋„" ๋ฉ”ํŠธ๋ฆญ์€ ๊ฒฝ๊ณ ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์†๋„์ž…๋‹ˆ๋‹ค. ์ด ๋ฉ”ํŠธ๋ฆญ์€ ๊ฒฝ๊ณ ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ์†๋„์™€ ํšจ์œจ์„ฑ์„ ๋ฐ˜์˜ํ•˜๋Š” "๊ฐœ๋ฐœ์ž ์†๋„"๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์†๋„๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„์— ์ข…๋ฃŒ๋˜๊ณ  ์ข…๋ฃŒ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋œ ๊ฒฝ๊ณ  ์ˆ˜๋ฅผ ํ•ด๋‹น ๊ธฐ๊ฐ„ ์ค‘ ์ƒ์„ฑ๋œ ๊ฒฝ๊ณ  ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

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

์„ ํƒํ•œ ๊ธฐ๊ฐ„ ์ค‘ ๋‹ค์‹œ ์—ด๋ฆฌ๊ณ  ๋‹ค์‹œ ๋‹ซํžŒ ๊ฒฝ๊ณ ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  ํ™œ๋™ ๊ทธ๋ž˜ํ”„

๊ฒฝ๊ณ  ์ถ”์„ธ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™•์žฅํ•œ ๊ฒฝ๊ณ  ํ™œ๋™ ๊ทธ๋ž˜ํ”„๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„์˜ ๊ฒฝ๊ณ  ์œ ์ž… ๋ฐ ์œ ์ถœ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋…น์ƒ‰ ๋ง‰๋Œ€๋Š” ๋ถ„ํ• ๋œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ƒ์„ฑ๋œ ์ƒˆ ๊ฒฝ๊ณ ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ณด๋ผ์ƒ‰ ๋ง‰๋Œ€๋Š” ๋ถ„ํ• ๋œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํŒŒ๋ž€์ƒ‰ ์ ์„ ์€ ์ƒˆ ๊ฒฝ๊ณ ์™€ ์ข…๋ฃŒ๋œ ๊ฒฝ๊ณ ์˜ ์ฐจ์ด์ธ ์ˆœ ๊ฒฝ๊ณ  ํ™œ๋™์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋ฐฉ์ง€ ํƒญ

์ฐธ๊ณ  ํ•ญ๋ชฉ

๊ธฐ๋ณธ ๋ถ„๊ธฐ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๊ฐ์ง€ ๋ฐ ์ˆ˜์ • ํƒญ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ฐฉ์ง€ ํƒญ์—์„œ๋Š” ๋ณ‘ํ•ฉ๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์— ์žˆ๋Š” CodeQL ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์œ ์ž…๋œ ์ทจ์•ฝ์„ฑ ๋Œ€ ๋ฐฉ์ง€๋œ ์ทจ์•ฝ์„ฑ

"์œ ์ž…๋œ ์ทจ์•ฝ์„ฑ ๋Œ€ ๋ฐฉ์ง€๋œ ์ทจ์•ฝ์„ฑ" ๊ทธ๋ž˜ํ”„๋Š” ์„ ํƒํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ๊ฐœ๋ฐœ์ž ์›Œํฌํ”Œ๋กœ์—์„œ ์ ๋ฐœ๋œ ๋ˆ„์  ์ทจ์•ฝ์„ฑ ์ˆ˜ ๋Œ€๋น„ ์กฐ์ง ๋˜๋Š” ๊ธฐ์—…์— ์œ ์ž…๋œ ์ทจ์•ฝ์„ฑ์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ๋ฐฉ์ง€๋œ ์ทจ์•ฝ์„ฑ์€ ๋ณ‘ํ•ฉ๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์— ๋Œ€ํ•ด ์ˆ˜์ •๋œ CodeQL์— ์˜ํ•ด ๊ฐ์ง€๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ๊ฒฝ๊ณ ์˜ ์ˆ˜๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์œ ์ž…๋œ ์ทจ์•ฝ์„ฑ์€ CodeQL์— ์˜ํ•ด "์œ„ํ—˜ ํ—ˆ์šฉ๋จ"์œผ๋กœ ํ•ด์ œ๋˜์—ˆ๊ฑฐ๋‚˜ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์ด ๋ณ‘ํ•ฉ๋  ๋•Œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์ƒˆ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ๊ฒฝ๊ณ ์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ฐฉ์ง€๋œ ๊ฒฝ๊ณ ์˜ ๋‚ ์งœ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์ˆ˜์ •๋œ ๋‚ ์งœ, ์œ ์ž…๋œ ๊ฒฝ๊ณ ์˜ ๋‚ ์งœ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋œ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์—์„œ ์ˆ˜์ •๋œ ์ทจ์•ฝ์„ฑ

"๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์—์„œ ์ˆ˜์ •๋œ ์ทจ์•ฝ์„ฑ" ๋ฉ”ํŠธ๋ฆญ์€ ๋ณ‘ํ•ฉ๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์— ์—ฐ๊ฒฐ๋œ "์ˆ˜์ •๋จ"์˜ ์‚ฌ์œ ๋กœ CodeQL ๋˜๋Š” secret scanning์—์„œ ๊ฐ์ง€๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ๊ฒฝ๊ณ ์˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.

Copilot Autofix ์ œ์•ˆ์œผ๋กœ ์ˆ˜์ •๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ

code scanning์˜ GitHub Copilot Autofix๋Š” code scanning์˜ ํ™•์žฅํŒ์œผ๋กœ, code scanning ๊ฒฝ๊ณ ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํƒ€๊ฒŒํŒ…๋œ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๊ฒ€์‚ฌ์— ๋Œ€ํ•œ Copilot Autofix์˜ ์ฑ…์ž„ ์žˆ๋Š” ์‚ฌ์šฉ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

"์ž๋™ ์ˆ˜์ • ์ œ์•ˆ์œผ๋กœ ์ˆ˜์ •๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ๊ฒฝ๊ณ " ๋ฉ”ํŠธ๋ฆญ์€ code scanning์— ์˜ํ•ด ๊ฐ์ง€๋œ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์ด Copilot Autofix ์ œ์•ˆ ์ˆ˜์— ๋Œ€ํ•œ ํ—ˆ์šฉ๋œ Copilot Autofix ์ œ์•ˆ์˜ ๋น„์œจ์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.