์ฝ๋ ์ค์บ ๊ตฌ์ฑ ๊ด๋ฆฌ
๋ถ์์์ ์์ฑ๋ ๋ฉํธ๋ฆญ ๋ฐ ๋ก๊น ์ถ๋ ฅ์ ๋์์ผ๋ก ๊ธฐ์กด code scanning ๊ตฌ์ฑ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋๊ฐ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋์?
Code scanning์ ๋ค์ ๋ฆฌํฌ์งํ ๋ฆฌ ์ ํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- GitHub.com์ ๋ํ ํผ๋ธ๋ฆญ ๋ฆฌํฌ์งํ ๋ฆฌ
- GitHub Code Security๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ๋ GitHub Team์ ์กฐ์ง ์์ ๋ฆฌํฌ์งํ ๋ฆฌ
์ฝ๋ ์ค์บ์ ์ํ ๋๊ตฌ ์ํ ํ์ด์ง ์ ๋ณด
๋๊ตฌ ์ํ ํ์ด์ง์(๋) ๋ชจ๋ ์ฝ๋ ์ค์บ ๋๊ตฌ์ ๋ํ ์ ์ฉํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ์ฝ๋ ๊ฒ์์ด ์์๋๋ก ์๋ํ์ง ์๋ ๊ฒฝ์ฐ ๋๊ตฌ ์ํ ํ์ด์ง์(๋) ๋๋ฒ๊น ๋ฌธ์ ๋ฅผ ์ํ ์ข์ ์ถ๋ฐ์ ์ ๋๋ค.
๊ธฐ๋ณธ ์ค์ ๊ตฌ์ฑ ํธ์ง
์๊ตฌ ์ฌํญ์ ๋ ์ ์ถฉ์กฑํ๊ธฐ ์ํด code scanning์ ๋ํ ๊ธฐ๋ณธ ์ค์ ์ ๊ธฐ์กด ๊ตฌ์ฑ์ ํธ์งํ ์ ์์ต๋๋ค.
์ฝ๋ ๊ฒ์ฌ ๋ณํฉ ๋ณดํธ ์ค์
๊ท์น ์งํฉ์ ์ฌ์ฉํ์ฌ ๋น๊ฒจ๋ฐ๊ธฐ ์์ฒญ์ ๋ํ code scanning ๋ณํฉ ๋ณดํธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์ฝ๋ ๊ฒ์ฌ์ ์์๋ ๊ฒฝ๊ณ ํด์ ์ฌ์ฉ
์์๋ ๊ฒฝ๊ณ ํด์ ๋ฅผ ์ฌ์ฉํ์ฌ code scanning์์ ์ฐพ์ ๊ฒฝ๊ณ ๋ฅผ ํด์ ํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
CodeQL ์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์
CodeQL code scanning ์ค์ ์์ ์ฌ์ฉํ ๋ค๋ฅธ ๊ธฐ๋ณธ ์ ๊ณต CodeQL ์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์ ์ค์์ ์ ํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ค์ ์ ๋ํด ๋ํ ๋ฌ๋ ๊ตฌ์ฑํ๊ธฐ
๋ํ ๋ฌ๋์(๋ฅผ) ์ฌ์ฉํ์ฌ ๋ ํฐ ์ฝ๋๋ฒ ์ด์ค์์ code scanning์(๋ฅผ) ๋ ๋น ๋ฅด๊ฒ ์คํํ ์ ์์ต๋๋ค.
์ฝ๋ ๊ฒ์ฌ ๋ก๊ทธ ๋ณด๊ธฐ
GitHub์์ code scanning ๋ถ์ ์ค์ ์์ฑ๋ ์ถ๋ ฅ์ ๋ณผ ์ ์์ต๋๋ค.
CodeQL ๋ถ์์ ์ํ ์์ ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋ชจ์์ ์ ํํ๋ฉด CodeQL์ด GitHub Actions ์ํฌํ๋ก ํ์ผ์ ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ณด์ธ์.
CodeQL ๋ถ์์ ์ํ C ๋ฐ C++ ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ C ๋๋ C++๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ C# ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ C#์ผ๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ GitHub Actions ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์ด GitHub Actions์์ ์ฌ์ฉํ๋ ์ํฌํ๋ก๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ณด์ธ์.
CodeQL ๋ถ์์ ์ํ Go ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ Go(Golang)๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ Java ๋ฐ Kotlin ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ Java ๋๋ Kotlin์ผ๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ JavaScript ๋ฐ TypeScript ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ JavaScript ๋๋ TypeScript๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ Python ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ Python์ผ๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ Ruby ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ Ruby๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ Rust ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ Rust๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.
CodeQL ๋ถ์์ ์ํ Swift ์ฟผ๋ฆฌ
default
๋๋ security-extended
์ฟผ๋ฆฌ ๋๊ตฌ ๋ชจ์์ ์ ํํ ๋ CodeQL์์ Swift๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ดํด๋ด
๋๋ค.