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 ํ์ผ ์ ๋ก๋์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋๊ตฌ ์ํ ํ์ด์ง ์ ๋ณด
๋๊ตฌ ์ํ ํ์ด์ง์(๋) ๋ชจ๋ ์ฝ๋ ์ค์บ ๋๊ตฌ์ ๋ํ ์ ์ฉํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ์ฝ๋ ๊ฒ์์ด ์์๋๋ก ์๋ํ์ง ์๋ ๊ฒฝ์ฐ ๋๊ตฌ ์ํ ํ์ด์ง์(๋) ๋๋ฒ๊น ๋ฌธ์ ๋ฅผ ์ํ ์ข์ ์ถ๋ฐ์ ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๋ ์ค์บ์ ์ํ ๋๊ตฌ ์ํ ํ์ด์ง ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.