Skip to main content

GitHub security features(GitHub ๋ณด์•ˆ ๊ธฐ๋Šฅ)

GitHub์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค.

GitHub์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ ์ •๋ณด

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

  • ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ ๋ชจ๋“  GitHub ํ”Œ๋žœ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • GitHub Team๊ณผ GitHub Enterprise Cloud์—์„œ GitHub Advanced Security ์ œํ’ˆ์„ ๊ตฌ๋งคํ•˜๋Š” ์กฐ์ง ์—์„œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ์—ฌ๋Ÿฌ GitHub Secret Protection ๋ฐ GitHub Code Security ๊ธฐ๋Šฅ์€ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฌด๋ฃŒ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  GitHub ํ”Œ๋žœ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์ค‘์ธ GitHub ํ”Œ๋žœ์— ๊ด€๊ณ„์—†์ด ๋‹ค์Œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GitHub Secret Protection or GitHub Code Security๋ฅผ ๊ตฌ์ž…ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์˜ ๋Œ€๋ถ€๋ถ„์€ ํผ๋ธ”๋ฆญ, ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ_์—๋งŒ_ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ ์ •์ฑ…

์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ๊ธฐ๋ฐ€๋กœ ์‰ฝ๊ฒŒ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Adding a security policy to your repository(๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ณด์•ˆ ์ •์ฑ… ์ถ”๊ฐ€)์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„

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

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ธ์‚ฌ์ดํŠธ ํƒญ์—์„œ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

SBOM(์†Œํ”„ํŠธ์›จ์–ด ์ œํ’ˆ ๊ตฌ์„ฑ ์ •๋ณด)

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๋ฅผ SPDX ํ˜ธํ™˜ SBOM(์†Œํ”„ํŠธ์›จ์–ด ์ œํ’ˆ ๊ตฌ์„ฑ ์ •๋ณด)์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ž๋ฃŒ ์ฒญ๊ตฌ์„œ ๋‚ด๋ณด๋‚ด๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub Advisory Database

GitHub Advisory Database์—๋Š” ๋ณด๊ณ , ๊ฒ€์ƒ‰ํ•˜๊ณ , ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์˜ ํ๋ ˆ์ดํŒ…๋œ ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Advisory Database์—์„œ ๋ณด์•ˆ ๊ถŒ๊ณ  ํƒ์ƒ‰์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Dependabot alerts ๋ฐ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ

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

GitHub๊ฐ€ ํ๋ ˆ์ดํŒ…ํ•œ ๊ธฐ๋ณธ Dependabot ์ž๋™ ์‹ฌ์‚ฌ ๊ทœ์น™๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ๋‹น๋Ÿ‰์˜ ๊ฐ€์–‘์„ฑ์„ ์ž๋™์œผ๋กœ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dependabot์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ์š” ๋ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์€ Dependabot ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Dependabot version updates

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

๋ณด์•ˆ ๊ณต์ง€

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

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ทœ์น™ ์ง‘ํ•ฉ

๋ถ„๊ธฐ์™€ ํƒœ๊ทธ์—์„œ ์ผ๊ด€๋œ ์ฝ”๋“œ ํ‘œ์ค€, ๋ณด์•ˆ, ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ทœ์น™ ์„ธํŠธ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์•„ํ‹ฐํŒฉํŠธ ์ฆ๋ช…

๋นŒ๋“œํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•ด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ถœ์ฒ˜์™€ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„ํ‹ฐํŒฉํŠธ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ์˜ ์ถœ์ฒ˜ ์„ค์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ํ•ญ๋ชฉ

GitHub Free, GitHub Pro, GitHub Team ํ”Œ๋žœ์„ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ ์•„ํ‹ฐํŒฉํŠธ ์ฆ๋ช…์€ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ผ์ด๋น—์ด๋‚˜ ๋‚ด๋ถ€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์•„ํ‹ฐํŒฉํŠธ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GitHub Enterprise Cloud ํ”Œ๋žœ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒํŠธ๋„ˆ์— ๋Œ€ํ•œ ๋น„๋ฐ€ ๊ฒ€์‚ฌ ๊ฒฝ๊ณ 

GitHub๊ฐ€ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ํผ๋ธ”๋ฆญ npmํŒจํ‚ค์ง€์—์„œ ์œ ์ถœ๋œ ๋น„๋ฐ€์„ ํƒ์ง€ํ•˜๋ฉด GitHub๋Š” ๊ด€๋ จ ์„œ๋น„์Šค ๊ณต๊ธ‰์ž์—๊ฒŒ ๋น„๋ฐ€์ด ์†์ƒ๋  ์ˆ˜ ์žˆ์Œ์„ ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์›ํ•˜๋Š” ๋น„๋ฐ€ ๋ฐ ์„œ๋น„์Šค ๊ณต๊ธ‰์ž์— ๋Œ€ํ•œ ๊ฐœ์š”๋Š” ์ง€์›๋˜๋Š” ๋น„๋ฐ€ ๊ฒ€์‚ฌ ํŒจํ„ด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ํ‘ธ์‹œ ๋ณดํ˜ธ

์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ํ‘ธ์‹œ ๋ณดํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์šฐ๋ฐœ์ ์œผ๋กœ ๋น„๋ฐ€์„ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๋„๋ก ์ž๋™์œผ๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ž์ฒด์—์„œ secret scanning์ด(๊ฐ€) ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋“  ์•„๋‹ˆ๋“  ๊ด€๊ณ„์—†์ด ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ํ‘ธ์‹œ ๋ณดํ˜ธ๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ON์ด์ง€๋งŒ, ์–ธ์ œ๋“  ๊ฐœ์ธ ๊ณ„์ • ์„ค์ •์„ ํ†ตํ•ด ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ํ‘ธ์‹œ ๋ณดํ˜ธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub Secret Protection ์‚ฌ์šฉ ๊ฐ€๋Šฅ

GitHub Team ๋ฐ GitHub Enterprise Cloud์˜ ๊ณ„์ •์˜ ๊ฒฝ์šฐ GitHub Secret Protection ์„ ๊ตฌ๋งคํ•  ๋•Œ ์ถ”๊ฐ€ ๋ณด์•ˆ ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub Secret Protection์—๋Š” secret scanning ๋ฐ ํ‘ธ์‹œ ๋ณดํ˜ธ์™€ ๊ฐ™์€ ๋น„๋ฐ€ ์œ ์ถœ์„ ํƒ์ง€ํ•˜๊ณ  ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋Š” ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด GitHub Secret Protection์„ ๊ตฌ๋งคํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋น„๋ฐ€ ๊ฒ€์‚ฌ ๊ฒฝ๊ณ 

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ฒดํฌ ์ธ๋œ ํ† ํฐ ๋˜๋Š” ์ž๊ฒฉ ์ฆ๋ช…์„ ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ Security ํƒญ์—์„œ GitHub๊ฐ€ ์ฝ”๋“œ์—์„œ ์ฐพ์€ ๋ชจ๋“  ๋น„๋ฐ€์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์†์ƒ๋œ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ํ† ํฐ์ด๋‚˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„๋ฐ€ ๊ฒ€์‚ฌ ๊ฒฝ๊ณ  ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copilot ๋น„๋ฐ€ ๊ฒ€์ƒ‰

Copilot ๋น„๋ฐ€ ๊ฒ€์ƒ‰์˜ ์ผ๋ฐ˜ ๋น„๋ฐ€ ๊ฐ์ง€๋Š” ์†Œ์Šค ์ฝ”๋“œ์—์„œ ๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ๋น„๋ฐ€(์•”ํ˜ธ)์„ ์‹๋ณ„ํ•œ ๋‹ค์Œ, ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•˜๋Š” secret scanning์˜ AI ๊ธฐ๋ฐ˜ ํ™•์žฅ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Copilot ๋น„๋ฐ€ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ์ผ๋ฐ˜ ๋น„๋ฐ€์˜ ์ฑ…์ž„ ์žˆ๋Š” ๊ฐ์ง€์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ‘ธ์‹œ ๋ณดํ˜ธ

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

๊ธฐ๋ณธ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘ธ์‹œ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์œ„์ž„๋œ ๋ฐ”์ดํŒจ์Šค ์‚ฌ์šฉ

ํ‘ธ์‹œ ๋ณดํ˜ธ์— ๋Œ€ํ•œ ์œ„์ž„๋œ ๋ฐ”์ดํŒจ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‘ธ์‹œ ๋ณดํ˜ธ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ธ, ์—ญํ• , ํŒ€์„ ์ œ์–ดํ•˜๊ณ  ๋น„๋ฐ€์„ ํฌํ•จํ•˜๋Š” ํ‘ธ์‹œ์— ๋Œ€ํ•œ ๊ฒ€ํ† ์™€ ์Šน์ธ ์ฃผ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ‘ธ์‹œ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ ์œ„์ž„ ๋ฐ”์ดํŒจ์Šค ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ„ด

์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ„ด์„ ์ •์˜ํ•˜์—ฌ ์กฐ์ง์˜ ๋‚ด๋ถ€ ํŒจํ„ด๊ณผ ๊ฐ™์ด secret scanning์—์„œ ์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ํŒจํ„ด์—์„œ ๊ฒ€์ƒ‰๋˜์ง€ ์•Š๋Š” ๋น„๋ฐ€์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„๋ฐ€ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ„ด ์ •์˜์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋ณด์•ˆ ๊ฐœ์š”

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

GitHub Code Security ์‚ฌ์šฉ ๊ฐ€๋Šฅ

GitHub Team ๋ฐ GitHub Enterprise Cloud์˜ ๊ณ„์ •์˜ ๊ฒฝ์šฐ GitHub Code Security ๋ฅผ ๊ตฌ๋งคํ•  ๋•Œ ์ถ”๊ฐ€ ๋ณด์•ˆ ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub Code Security์—๋Š” code scanning, ํ”„๋ฆฌ๋ฏธ์—„ Dependabot ๊ธฐ๋Šฅ, ์ข…์†์„ฑ ๊ฒ€ํ† ์™€ ๊ฐ™์€ ์ทจ์•ฝ์„ฑ์„ ์ฐพ์•„์„œ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋Š” ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด GitHub Code Security๋ฅผ ๊ตฌ๋งคํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Code scanning

์ƒˆ ์ฝ”๋“œ ๋˜๋Š” ์ˆ˜์ •๋œ ์ฝ”๋“œ์—์„œ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ ๋ฐ ์ฝ”๋”ฉ ์˜ค๋ฅ˜๋ฅผ ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์„ธ๋ถ€ ์ •๋ณด์™€ ํ•จ๊ป˜ ๊ฐ•์กฐ ํ‘œ์‹œ๋˜์–ด ๊ธฐ๋ณธ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๊ฒ€์‚ฌ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CodeQL CLI

CodeQL ํ”„๋กœ์„ธ์Šค๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ์—์„œ ๋กœ์ปฌ๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ code scanning ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ GitHub์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL CLI ์•Œ์•„๋ณด๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copilot Autofix

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

๊ธฐ๋ณธ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dependabot์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ž๋™ ์‹ฌ์‚ฌ ๊ทœ์น™

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

์ข…์†์„ฑ ๊ฒ€ํ† 

์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์˜ ์ „์ฒด ์˜ํ–ฅ์„ ํ‘œ์‹œํ•˜๊ณ  ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๋ณ‘ํ•ฉํ•˜๊ธฐ ์ „์— ์ทจ์•ฝํ•œ ๋ฒ„์ „์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ข…์†์„ฑ ๊ฒ€ํ†  ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ ์บ ํŽ˜์ธ

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

๋ณด์•ˆ ๊ฐœ์š”

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

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ