Skip to main content

์ฝ”๋“œ ๊ฒ€์‚ฌ ์ •๋ณด

code scanning์„ ์‚ฌ์šฉํ•˜์—ฌ GitHub์˜ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์—์„œ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ ๋ฐ ์˜ค๋ฅ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Code scanning์€ ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub.com์— ๋Œ€ํ•œ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ
  • GitHub Code Security๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋œ GitHub Team์˜ ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

Code scanning๋Š” GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ ๋ฐ ์ฝ”๋”ฉ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋ถ„์„์œผ๋กœ ์‹๋ณ„๋˜๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

code scanning์ด(๊ฐ€) ์ฝ”๋“œ์—์„œ ์ž ์žฌ์  ์ทจ์•ฝ์„ฑ ๋˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด GitHub์ด(๊ฐ€) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด GitHub์ด(๊ฐ€) ๊ฒฝ๊ณ ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๊ฒ€์‚ฌ ๊ฒฝ๊ณ  ํ•ด๊ฒฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ์กฐ์ง์—์„œ code scanning์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ ค๋ฉด ์›นํ›„ํฌ ๋ฐ code scanning API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. code scanning์˜ ์›นํ›„ํฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์›นํ›„ํฌ ์ด๋ฒคํŠธ ๋ฐ ํŽ˜์ด๋กœ๋“œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”. API ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ฝ”๋“œ ๊ฒ€์ƒ‰์— ๋Œ€ํ•œ REST API ์—”๋“œํฌ์ธํŠธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

code scanning๋กœ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์ฝ”๋“œ ์Šค์บ”์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์„ค์ • ๊ตฌ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

code scanning์— ๋Œ€ํ•œ ์ฒญ๊ตฌ ์ •๋ณด

Code scanning์€(๋Š”) GitHub Actions์„(๋ฅผ) ์‚ฌ์šฉํ•˜๋ฉฐ, code scanning ์›Œํฌํ”Œ๋กœ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค GitHub Actions์— ๋ช‡ ๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions ์ฒญ๊ตฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ code scanning์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GitHub Code Security์— ๋Œ€ํ•œ ๋ผ์ด์„ ์Šค๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GitHub Enterprise ๋ฐ GitHub Advanced Security๋ฅผ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•ด ๋ณด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Enterprise Cloud ์„ค๋ช…์„œ์—์„œ GitHub Enterprise Cloud ํ‰๊ฐ€ํŒ ์„ค์น˜ ๋ฐ Setting up a trial of GitHub Advanced Security์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

code scanning์— ๋Œ€ํ•œ ๋„๊ตฌ ์ •๋ณด

GitHub์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” CodeQL ์ œํ’ˆ ๋˜๋Š” ์ œ3์ž code scanning ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก code scanning์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CodeQL ๋ถ„์„ ์ •๋ณด

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

ํƒ€์‚ฌ code scanning ๋„๊ตฌ ์ •๋ณด

Code scanning๋Š” SARIF(์ •์  ๋ถ„์„ ๊ฒฐ๊ณผ ๊ตํ™˜ ํ˜•์‹) ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํƒ€์‚ฌ ์ฝ”๋“œ ๊ฒ€์ƒ‰ ๋„๊ตฌ์™€ ์ƒํ˜ธ ์šด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SARIF๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๊ฒ€์‚ฌ์— ๋Œ€ํ•œ SARIF ์ง€์›์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ž‘์—…์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ CI ์‹œ์Šคํ…œ ๋‚ด์—์„œ GitHub ๋‚ด์˜ ํƒ€์‚ฌ ๋ถ„์„ ๋„๊ตฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ์Šค์บ”์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ์„ค์ • ๊ตฌ์„ฑ ๋˜๋Š” GitHub์— SARIF ํŒŒ์ผ ์—…๋กœ๋“œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋„๊ตฌ ์ƒํƒœ ํŽ˜์ด์ง€ ์ •๋ณด

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