๋๊ท๋ชจ CodeQL์(๋ฅผ) ์ฌ์ฉํ์ฌ code scanning์ ๋ํ ๊ณ ๊ธ ์ค์ ์ ๋๊ท๋ชจ๋ก ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ์ ๋ณด
์กฐ์ง์ ์ฌ๋ฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํด ๊ณ ๋๋ก ์ฌ์ฉ์ ์ง์ ๊ฐ๋ฅํ code scanning ์ค์ ์ ๊ตฌ์ฑํด์ผ ํ๊ฑฐ๋ ์กฐ์ง์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ๊ธฐ๋ณธ ์ค์ ์ ์ ํฉํ์ง ์์ผ๋ฉด ๊ณ ๊ธ ์ค์ ์ ์ฌ์ฉํ์ฌ ๋๊ท๋ชจ๋ก code scanning์(๋ฅผ) ์ฌ์ฉํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ณ ๊ธ ์ค์ ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ค๋ฉด ๋๋ ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๋ ค๋ฉด ์กฐ์ง์ ๋ํด GitHub Actions์(๋ฅผ) ์ฌ์ฉํ๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
๋๋ ์กฐ์ง์ ์ฌ๋ฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ code scanning ๊ตฌ์ฑ์ ์ธ๋ถํํ์ฌ ์ ์ดํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก code scanning์(๋ฅผ) ๋๊ท๋ชจ๋ก ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋๊ท๋ชจ ์ฝ๋ ์ค์บ์ ์ํ ๊ธฐ๋ณธ ์ค์ ๊ตฌ์ฑ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ธ ์ค์ ์ฌ์ฉ ์ค์
๊ธฐ๋ณธ ์ค์ ์ ์ ํฉํ์ง ์์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฒฝ์ฐ ๋๋ ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ณ ๊ธ ์ค์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋์ผํ code scanning ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ๋ถ์ํ ์ ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ทธ๋ฃน์ ์๋ณํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ก๋์ ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ Java ์ํฐํฉํธ๋ฅผ ๋น๋ํ๋ ๋ชจ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ํด๋น๋ฉ๋๋ค.
- ์ ์ ํ ๊ตฌ์ฑ์ผ๋ก CodeQL ์์ ์ ํธ์ถํ๋ GitHub Actions ์ํฌํ๋ก๋ฅผ ๋ง๋ค๊ณ ํ ์คํธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๋ ์ค์บ์ ์ํ ๊ณ ๊ธ ์ค์ ๊ตฌ์ฑ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
- ์์ ์คํฌ๋ฆฝํธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉ์ ์ง์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ๊ทธ๋ฃน์ ๊ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ํฌํ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- GitHub CLI ํ์ฅ:
advanced-security/gh-add-files
- Python ์์ :
Malwarebytes/ghas-cli
๋ฆฌํฌ์งํ ๋ฆฌ - NodeJS ์์ :
nickliffen/ghas-enablement
๋ฆฌํฌ์งํ ๋ฆฌ - PowerShell ์์ :
jhutchings1/Create-ActionsPRs
๋ฆฌํฌ์งํ ๋ฆฌ
- GitHub CLI ํ์ฅ:
๋ชจ๋ธ ํฉ์ ์ฌ์ฉํ์ฌ CodeQL ์ ์ฉ ๋ฒ์ ํ์ฅ
์ฐธ๊ณ ํญ๋ชฉ
CodeQL ๋ชจ๋ธ ํฉ์ ํ์ฌ ๊ณต๊ฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ํ์ด๋ฉฐ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ชจ๋ธ ํฉ์ C/C++, C#, Java/Kotlin, Python, Ruby ๋ถ์์ ์ํด ์ง์๋ฉ๋๋ค.
Visual Studio Code์ ๋ํ CodeQL ํ์ฅ์ CodeQL ๋ชจ๋ธ ํธ์ง๊ธฐ์์ C#, Java/Kotlin, Python, Ruby์ ๋ํ ๋ชจ๋ธ๋ง ์ข ์์ฑ์ ์ง์ํฉ๋๋ค.
์ฝ๋๋ฒ ์ด์ค๊ฐ CodeQL์ ํ์ค ์ฟผ๋ฆฌ์์ ์ธ์๋์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ํ๋ ์์ํฌ์ ์ข ์ํ๋ ๊ฒฝ์ฐ ๊ฒ์๋ CodeQL ๋ชจ๋ธ ํฉ์ ์ง์ ํ์ฌ ๋๋ ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ์์ CodeQL ์ ์ฉ ๋ฒ์๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๋ ๊ฒ์์ ์ํ ๊ณ ๊ธ ์ค์ ์ฌ์ฉ์ ์ง์ ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋๋ ์กฐ์ง์ ์ฌ๋ฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ code scanning ๊ตฌ์ฑ์ ์ธ๋ถํํ์ฌ ์ ์ดํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ๋๊ท๋ชจ code scanning๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ํฉ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ธฐ๋ณธ ์ค์ ๊ตฌ์ฑ ํธ์ง์(๋ฅผ) ์ฐธ์กฐํ์ธ์.