Skip to main content

CodeQL CLI ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค ๋งŒ๋“ค๊ธฐ

CodeQL ๋ฌธ์ œ ํ•ด๊ฒฐ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

  • GitHub Code Security๋ฅผ ์ง€์›ํ•˜๋Š” ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

๊ฒฝ๊ณ 

CodeQL CLI ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์—๋Š” CodeQL์—์„œ ๋ถ„์„๋˜๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ณต์‚ฌ๋ณธ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ์†Œ์Šค ์ฝ”๋“œ์— ์•ก์„ธ์Šคํ•  ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž์™€๋งŒ ์ด ๋ฒˆ๋“ค์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

CodeQL CLI ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค ๋งŒ๋“ค๊ธฐ ์ •๋ณด

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ด ๋ฌธ์„œ์—์„œ๋Š” CodeQL CLI 2.20.7 ๋ฒˆ๋“ค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ GitHub Enterprise Server 3.17์˜ ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž๊ฐ€ CodeQL CLI ๋ฒ„์ „์„ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋กœ ์—…๋ฐ์ดํŠธํ•œ ๊ฒฝ์šฐ ์ตœ์‹  ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์˜ GitHub Enterprise Cloud ๋ฒ„์ „์„ ์ฐธ์กฐํ•˜์„ธ์š”.

CodeQL CLI ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•œ ๋ณด๊ด€ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์˜ ๋ณต์‚ฌ๋ณธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒ€ ๊ตฌ์„ฑ์› ๋˜๋Š” GitHub ์ง€์›์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์„ ๋งŒ๋“ค ๋•Œ ๋‹ค์Œ CodeQL CLI ๋ช…๋ น ๊ตฌ๋ฌธ์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ด ์ƒ˜ํ”Œ database bundle ๋ช…๋ น์—๋Š” CodeQL CLI ๋ฒ„์ „ 2.17.6 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

codeql database bundle --output=codeql-debug-artifacts.zip --include-diagnostics --include-logs --include-results -- <dir>

์ด ๋ช…๋ น์˜ ๊ฒฝ์šฐ <dir>๋Š” CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ฒฝ๋กœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น ์‹คํ–‰์ด ์„ฑ๊ณตํ•˜๋ฉด codeql-debug-artifacts.zip์ด๋ผ๋Š” CodeQL ๋ฌธ์ œ ํ•ด๊ฒฐ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ zip ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์ž…๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์€ --log-dir ๋ช…๋ น์ค„ ์ธ์ˆ˜๊ฐ€ database create ๋ฐ database analyze ๋ช…๋ น์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋ช…๋ น์œผ๋กœ ๋งŒ๋“  ๋กœ๊ทธ ํŒŒ์ผ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

database create ๋ฐ database analyze์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด ๋” ์ƒ์„ธํ•˜๊ฒŒ ํ‘œ์‹œ

๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด database create ๋ฐ database analyze ๋ช…๋ น์ด ์ถฉ๋ถ„ํžˆ ์ž์„ธํžˆ ์„ค๋ช…๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋” ์ƒ์„ธํ•˜๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ช…๋ น ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒˆ๋“ค์„ ๋งŒ๋“ค๊ธฐ ์ „์— progress++๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” --verbosity ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.