Skip to main content

CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ

CodeQL code scanning ์„ค์ •์—์„œ ์‚ฌ์šฉํ•  ๋‹ค๋ฅธ ๊ธฐ๋ณธ ์ œ๊ณต CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

CodeQL์€(๋Š”) ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ ์ •๋ณด

CodeQL code scanning์„(๋ฅผ) ์‚ฌ์šฉํ•˜๋ฉด CodeQL ์ฟผ๋ฆฌ์˜ ํŠน์ • ๊ทธ๋ฃน(CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์ด๋ผ๊ณ  ํ•จ)์„ ์„ ํƒํ•˜์—ฌ ์ฝ”๋“œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธฐ๋ณธ ์ œ๊ณต ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ GitHub์„(๋ฅผ) ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ
  • security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ ์ด ๋„๊ตฌ ๋ชจ์Œ์„ GitHub์˜ "ํ™•์žฅ" ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ๊ณผ security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ ๋ชจ๋‘ code scanning์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์กฐ์ง ์†Œ์œ ์ž์™€ ๋ณด์•ˆ ๊ด€๋ฆฌ์ž๋Š” ์กฐ์ง ์ „์ฒด์—์„œ ๊ธฐ๋ณธ ์„ค์ •์— ์‚ฌ์šฉํ•  ์ฟผ๋ฆฌ ๊ทธ๋ฃน์„ ์ถ”์ฒœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ฝ”๋“œ ์Šค์บ”์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์„ค์ • ๊ตฌ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”. ๋Œ€๊ทœ๋ชจ๋กœ ๊ธฐ๋ณธ ์„ค์ •์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ฟผ๋ฆฌ ๊ทธ๋ฃน์„ ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ ์Šค์บ”์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์„ค์ • ๊ตฌ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ์ง€์ • ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด CodeQL code scanning์— ๋Œ€ํ•œ ๊ณ ๊ธ‰ ์„ค์ •์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ธ‰ ์„ค์ • ๋ฐ ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ฝ”๋“œ ์Šค์บ”์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ์„ค์ • ๊ตฌ์„ฑ ๋ฐ CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ ๋งŒ๋“ค๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ ์ œ๊ณต CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ

๊ธฐ๋ณธ ์ œ๊ณต CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์ธ default, security-extended์€(๋Š”) GitHub์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ณ  ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ ๋ชจ๋“  CodeQL ์ง€์› ์–ธ์–ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CodeQL ์ง€์› ์–ธ์–ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” CodeQL์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ๊ฒ€์‚ฌ ์•ˆ๋‚ด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ

  • default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ GitHub์˜ CodeQL code scanning์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ฟผ๋ฆฌ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.
  • ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์˜ default ์ฟผ๋ฆฌ๋Š” ๋งค์šฐ ์ •ํ™•ํ•˜๋ฉฐ ๋ช‡ ๊ฐ€์ง€ ๊ฐ€์–‘์„ฑ code scanning ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ๊ธฐ์ค€์œผ๋กœ default ๋„๊ตฌ ๋ชจ์Œ์€ ์‹ ๋ขฐ๋„๊ฐ€ ๋‚ฎ์€ code scanning ๊ฒฐ๊ณผ๋ฅผ ๋” ์ ๊ฒŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ code scanning์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ

  • security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์˜ ๋ชจ๋“  ์ฟผ๋ฆฌ์™€ ์•ฝ๊ฐ„ ๋‚ฎ์€ ์ •๋ฐ€๋„ ๋ฐ ์‹ฌ๊ฐ๋„์˜ ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ๊ธฐ์ค€์œผ๋กœ security-extended ๋„๊ตฌ ๋ชจ์Œ์€ ๋” ๋งŽ์€ ์ˆ˜์˜ ๊ฐ€์–‘์„ฑ code scanning ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์€ code scanning์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ GitHub์—์„œ "ํ™•์žฅ" ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ๋ชฉ๋ก

๋‹ค์Œ ๋ฌธ์„œ์—๋Š” ๊ฐ ์–ธ์–ด๋ณ„๋กœ default ๋ฐ security-extended ๋„๊ตฌ ๋ชจ์Œ์— ํฌํ•จ๋œ ์ฟผ๋ฆฌ๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์–ด์— ๋Œ€ํ•ด Copilot Autofix๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ง€์›๋˜๋Š” ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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