์กฐ์ง ์์ค ๋ณด์ ์ธ์ฌ์ดํธ ์ ๋ณด
๋ณด์ ๊ฐ์์ ๊ฐ์ ํ์ด์ง๋ ์กฐ์ง์ ๋ณด์ ํ๊ฒฝ ๋ฐ ์งํ ์ํฉ์ ๋ํ ์ธ์ฌ์ดํธ์ ํตํฉ ๋์๋ณด๋์ ๋๋ค. ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ๋ก๊ทธ๋จ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ์์ง๋์ด๋ง ํ๊ณผ ๊ณต๋ ์์ ํ๊ณ , ๋ฒค์น๋งํน์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์์ต๋๋ค.
์กฐ์ง์ ๋ณด์ ๊ฒฝ๊ณ ์ ๋ํ ๋ค์ํ ๋ฉํธ๋ฆญ์ ๋ณผ ์ ์์ต๋๋ค. ๋์๋ณด๋์๋ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๊ฒฝ๊ณ ์ ๋ฐ ํ๋๋ฟ ์๋๋ผ ํ์ฌ ์ํ๋ฅผ ๋ฐ์ํ๋ ์ค๋ ์ท ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํ๋ ์ถ์ธ ๋ฐ์ดํฐ๊ฐ ํ์๋ฉ๋๋ค.
๋์๋ณด๋๋ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ณด์ ๋ชฉํ๋ฅผ ์ค์ฌ์ผ๋ก ์ธ ๊ฐ์ ํญ์ผ๋ก ๋๋ฉ๋๋ค.
- ๊ฐ์ง: ์ด ํญ์ ์กฐ์ง์ ๊ฒฝ๊ณ ์ํ ๋ฐ ๊ธฐ๊ฐ๊ณผ ์ฐจ๋จ ๋๋ ์ฐํ๋ ๋น๋ฐ, ๊ฐ์ฅ ๋์ ์ ์ฌ์ ๋ณด์ ์ํ์ ์ด๋ํ๋ ์์ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ ์ทจ์ฝ์ฑ์ ๋ํ ๋ฉํธ๋ฆญ์ ํ์ํฉ๋๋ค.
- ์์ : ์ด ํญ์ ๊ฒฝ๊ณ ๊ฐ ํด๊ฒฐ๋๋ ๋ฐฉ๋ฒ๊ณผ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๊ฒฝ๊ณ ํ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
- ๋ฐฉ์ง: ์ด ํญ์๋ ์ทจ์ฝ์ ์ด ์ด๋ป๊ฒ ์๋ฐฉ๋๊ณ ์์ ๋์๋์ง์ ๋ํ ๋ฉํธ๋ฆญ์ด ํ์๋ฉ๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
๊ธฐ๋ณธ ๋ถ๊ธฐ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ณ ํ๋ ๊ฐ์ง ๋ฐ ์์ ํญ๊ณผ๋ ๋ฌ๋ฆฌ ๋ฐฉ์ง ํญ์์๋ ๋ณํฉ๋ ๋์ด์ค๊ธฐ ์์ฒญ์ ์๋ CodeQL ๊ฒฝ๊ณ ์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํน์ ๊ธฐ๊ฐ์ ์ ํํ์ฌ ๊ฐ์ ๋์๋ณด๋๋ฅผ ํํฐ๋งํ๊ณ ์ถ๊ฐ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ๊ด์ฌ ์์ญ์ ๋ ์ขํ ์ ์์ต๋๋ค. ํํฐ๋ฅผ ์ ์ฉํ๋ฉด ๋์๋ณด๋์ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ฉํธ๋ฆญ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋์๋ณด๋์๋ GitHub ๋๊ตฌ์ ๋ชจ๋ ๊ฒฝ๊ณ ๊ฐ ํ์๋์ง๋ง, ๋๊ตฌ ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋๊ตฌ(ํน์ ํ์ฌ ๋๊ตฌ์ธ CodeQL์ ์ฌ์ฉํ๋ secret scanning, Dependabot, code scanning) ๋๋ ๋ชจ๋ ํ์ฌ code scanning ๋๊ตฌ์ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด์ ๊ฐ์์์ ๊ฒฝ๊ณ ํํฐ๋ง์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์กฐ์ง ๋๋ ์ํฐํ๋ผ์ด์ฆ์ ๋ํ ๊ฐ์ ๋์๋ณด๋ ๋ฐ์ดํฐ์ CSV ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ์ด ๋ฐ์ดํฐ ํ์ผ์ ์ธ๋ถ ๋ฐ์ดํฐ ์ธํธ์ ์ฝ๊ฒ ํตํฉํ ์ ์์ผ๋ฏ๋ก ๋ณด์ ์ฐ๊ตฌ, ๋ฐ์ดํฐ ๋ถ์ ๋ฑ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด์ ๊ฐ์์์ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
ํ์๋๋ ๋ฉํธ๋ฆญ์ ์ฌ์ฉ์์ ์ญํ ๋ฐ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ถํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด์ ๊ฐ์์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
ํ
ํนํ ์กฐ์ง์ ๋น๋ฐ ์ ์ถ ๋ ธ์ถ์ ํ๊ฐํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ GitHub์์ ๋ฌด๋ฃ secret risk assessment๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ ๋ณด๊ณ ์๋ ํผ๋ธ๋ฆญ ์ ์ถ, ํ๋ผ์ด๋น ๋ ธ์ถ, ํ ํฐ ์ ํ์ ๋ํ ์ง๊ณ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ ๋ฟ๋ง ์๋๋ผ ๋ณด์์ ๊ฐํํ๊ณ ์ฝ๋๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ์คํ ๊ฐ๋ฅํ ๋จ๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋น๋ฐ ์ํ ํ๊ฐ ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ ํ ์ฌํญ
๊ฐ์ ํ์ด์ง๋ฅผ ์ฑ์ฐ๋ ๋ฐ์ดํฐ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์ญ์ ๋๋ ๋ณด์ ๊ถ๊ณ ์์ ๊ณผ ๊ฐ์ ๋ค์ํ ์์ธ์ผ๋ก ์ธํด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ฆ, ๊ฐ์ ๊ธฐ๊ฐ์ ๋ํ ๊ฐ์ ๋ฉํธ๋ฆญ์ ์๋ก ๋ค๋ฅธ ๋ ์์ ์ ๋ณผ ๊ฒฝ์ฐ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๊ท์ ์ค์ ๋ณด๊ณ ์ ๋๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ์ค์ํ ๋ค๋ฅธ ์๋๋ฆฌ์ค์ ๊ฒฝ์ฐ ๊ฐ์ฌ ๋ก๊ทธ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด์ ๊ฒฝ๊ณ ๊ฐ์ฌ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๊ฐ์ ํ์ด์ง๋ ๋ณด์ ๊ฒฝ๊ณ ๋ฐ์ดํฐ์ ๋ํด์๋ง ์๊ฐ์ ๋ฐ๋ฅธ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ถ์ ํฉ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ ์ํ์ ๊ฐ์ ๋น๊ฒฝ๊ณ ํน์ฑ์ผ๋ก ํ์ด์ง๋ฅผ ํํฐ๋งํ๋ ๊ฒฝ์ฐ ํ์๋๋ ๋ฐ์ดํฐ๋ ๊ธฐ๋ก ์ํ๊ฐ ์๋ ํด๋น ํน์ฑ์ ํ์ฌ ์ํ๋ฅผ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒฝ๊ณ ๋ฅผ ๋ซ๋ ์์ ์ธ ์ด๋ฆฐ ๋ณด์ ๊ฒฝ๊ณ ๊ฐ ํฌํจ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด๊ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด๊ดํ๊ธฐ ์ ์ ์ผ์ฃผ์ผ ๊ฐ์ ๊ฐ์ ํ์ด์ง๋ฅผ ๋ณด๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ์ ํ์ฌ ์ํ๊ฐ ๋ณด๊ด๋๋ฏ๋ก ๋ณด๊ด๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋๋ก ํํฐ๋งํ ๋๋ง ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฒฝ๊ณ ๋ฐ์ดํฐ๊ฐ ํ์๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฝ๊ณ ๋ ํด๋น ๊ธฐ๊ฐ ๋์ ์ด๋ ค ์๊ณ ๊ฐ์ ํ์ด์ง์์ ๊ฒฝ๊ณ ์ ๊ธฐ๋ก ์ํ๋ฅผ ์ถ์ ํ๋ฏ๋ก ์ด๋ฆฐ ์ํ๋ก ํ์๋ฉ๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
์์ฝ ๋ณด๊ธฐ("๊ฐ์", "์ ์ฉ ๋ฒ์", "์ํ")๋ ๊ธฐ๋ณธ ๊ฒฝ๊ณ ์ ๋ํ ๋ฐ์ดํฐ๋ง ํ์ํฉ๋๋ค. ๋ฌด์๋ ๋๋ ํฐ๋ฆฌ ๋ฐ ๋น ๊ณต๊ธ์ ๊ฒฝ๊ณ ์ ๋ํ Secret scanning ๊ฒฝ๊ณ ๋ ๋ชจ๋ ์ด๋ฌํ ๋ณด๊ธฐ์์ ์ ์ธ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ณ ๊ฒฝ๊ณ ๋ณด๊ธฐ์๋ ๋ ๋ง์ ์์ ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ๋ซํ ๊ฒฝ๊ณ ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
์ ๋ณด์ ๊ฐ์ ๋์๋ณด๋ ๋ณด๊ธฐ
-
GitHub์์ ์กฐ์ง์ ๊ธฐ๋ณธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
์กฐ์ง ์ด๋ฆ์์ ๋ณด์์ ํด๋ฆญํฉ๋๋ค.
-
๊ฐ์ ํ์ด์ง๋ "Security" ํญ์ ํด๋ฆญํ๋ฉด ํ์๋๋ ๊ธฐ๋ณธ ๋ณด๊ธฐ ํ์ด์ง์ ๋๋ค. ๋ค๋ฅธ ๋ณด์ ๊ฐ์ ํ์ด์ง์์ ๋์๋ณด๋๋ก ์ด๋ํ๋ ค๋ฉด ์ฌ์ด๋๋ฐ์์ Overview๋ฅผ ํด๋ฆญํ์ธ์.
-
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ง ํญ์ด ํ์๋ฉ๋๋ค. ๋ค๋ฅธ ํญ์ผ๋ก ์ ํํ์ฌ ๋ค๋ฅธ ๋ฉํธ๋ฆญ์ ๋ณด๋ ค๋ฉด ์์ ๋๋ ๋ฐฉ์ง๋ฅผ ํด๋ฆญํฉ๋๋ค. 1. ๊ฐ์ ํ์ด์ง์ ๋งจ ์์ ์๋ ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ฉํธ๋ฆญ์ ํ์ธํ ๊ฒฝ๊ณ ๊ทธ๋ฃน์ ํํฐ๋งํฉ๋๋ค. ํํฐ๋ฅผ ์กฐ์ ํ๋ฉด ํด๋น ํ์ด์ง์ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ฉํธ๋ฆญ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
- ๋ ์ง ์ ํ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๊ณ ํ๋ ๋ฐ ๋ฉํธ๋ฆญ์ ํ์ธํ ์๊ฐ ๋ฒ์๋ฅผ ์ค์ ํฉ๋๋ค.
- ๊ฒ์ ์์๋ฅผ ํด๋ฆญํ๊ณ ํ์๋ ๊ฒฝ๊ณ ๋ฐ ๋ฉํธ๋ฆญ์ ๋ํ ํํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๊ฐ์ ๋์๋ณด๋ ์ดํดํ๊ธฐ
๋ณด์ ๊ฐ์ ๋์๋ณด๋์ ์ผ๋ถ ๋ฉํธ๋ฆญ์๋ ์ด์ ๊ธฐ๊ฐ์ ๋นํด ์ ํํ ๊ธฐ๊ฐ์ ์ฆ๊ฐ์จ ๋๋ ์์ค ๋น์จ์ ๋ณด์ฌ์ฃผ๋ ์ถ์ธ ์งํ๊ฐ ํฌํจ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒฝ๊ณ ๊ฐ 10๊ฐ์ธ ์ฃผ๋ฅผ ์ ํํ๋ฉด ์ง๋ ์ฃผ์ 20๊ฐ์ ๊ฒฝ๊ณ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ถ์ธ ์งํ๋ ๋ฉํธ๋ฆญ์ด 50% ๊ฐ์ํ๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค. ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ํ๊ท ๊ธฐ๊ฐ์ด 15์ผ์ด๊ณ ์ด์ ๊ธฐ๊ฐ์ด 5์ผ์ธ ๊ฒฝ์ฐ ์ถ์ธ ์งํ๋ ๋ฉํธ๋ฆญ์ด 200% ์ฆ๊ฐํ๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
๋ณด์ ๊ฐ์ ๋์๋ณด๋์ ํ์๋๋ ๊ฒฝ๊ณ ์๊ฐ code scanning ๊ฒฝ๊ณ ์ ์์ ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค. ๋ณด์ ๊ฐ์ ๋์๋ณด๋๋ ์กฐ์ง์ ๋ณด์ ํ์ธ์ ์ค์ ์ ๋๊ณ ๋ณด์ ์ฌ๊ฐ๋("์ํ", "๋์", "๋ณดํต", "๋ฎ์")๋ง ํฌํจํ์ง๋ง CodeQL ๋ฐ ํ์ฌ ๋๊ตฌ๋ "์ค๋ฅ", "๊ฒฝ๊ณ ", "์ฐธ๊ณ ์ฌํญ" ์์ค์ ๋น๋ณด์ ๊ฒฝ๊ณ ๋ฅผ ๋ณ๋๋ก ์์ฑํ ์ ์์ต๋๋ค. code scanning์ ๊ฒฝ๊ณ ์ฌ๊ฐ๋ ๋ฐ ๋ณด์ ์ฌ๊ฐ๋ ์์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฝ๋ ๊ฒ์ฌ ๊ฒฝ๊ณ ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๊ฐ์ง ํญ
- ์๊ฐ๋ณ ์ด๋ฆฐ ๊ฒฝ๊ณ
- ๊ฒฝ๊ณ ๊ธฐ๊ฐ
- ๋ค์ ์ด๋ฆฐ ๊ฒฝ๊ณ
- ๋ฌด์/์ฐจ๋จ๋ ๋น๋ฐ
- ์ํฅ ๋ถ์ ํ ์ด๋ธ
์๊ฐ๋ณ ์ด๋ฆฐ ๊ฒฝ๊ณ
"์๊ฐ๋ณ ์ด๋ฆฐ ๊ฒฝ๊ณ " ๊ทธ๋ํ๋ ์ ํํ ๊ธฐ๊ฐ ๋์ ์กฐ์ง์ ๋ฐ์ํ ๊ฒฝ๊ณ ์์ ๋ณํ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฝ๊ณ ๋ ์ฌ๊ฐ๋๋ณ๋ก ๊ทธ๋ฃนํ๋ฉ๋๋ค. ๊ฒฝ๊ณ ๊ทธ๋ฃนํ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ฏธํด๊ฒฐ ๊ฒฝ๊ณ ์๋ ์๋ก ์์ฑ๋ ๋ณด์ ๊ฒฝ๊ณ ์ ๊ธฐ์กด์ ๋ฏธํด๊ฒฐ ๋ณด์ ๊ฒฝ๊ณ ๊ฐ ๋ชจ๋ ํฌํจ๋ฉ๋๋ค. ์ ๊ฒฝ๊ณ ๋ ์์ฑ ๋ ์ง์ ํ์๋๊ณ ์ ํํ ๊ธฐ๊ฐ ์ด์ ์ ์กด์ฌํ๋ ๊ฒฝ๊ณ ๋ ํด๋น ๊ธฐ๊ฐ์ ์์ ๋ถ๋ถ์ ํ์๋ฉ๋๋ค. ๊ฒฝ๊ณ ๊ฐ ์์ ๋๊ฑฐ๋ ํด์ ๋๋ฉด ๊ทธ๋ํ์ ํฌํจ๋์ง ์์ต๋๋ค. ๋์ ํด๋น ๊ฒฝ๊ณ ๋ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ๊ทธ๋ํ๋ก ์ด๋ํฉ๋๋ค.
๊ฒฝ๊ณ ๊ธฐ๊ฐ
"๊ฒฝ๊ณ ๊ธฐ๊ฐ" ๋ฉํธ๋ฆญ์ ์ ํํ ๊ธฐ๊ฐ์ด ๋๋๋ ์์ ์๋ ์ฌ์ ํ ๋ฏธํด๊ฒฐ ์ํ์ธ ๋ชจ๋ ๊ฒฝ๊ณ ์ ํ๊ท ๊ธฐ๊ฐ์ ๋๋ค.
๊ฐ ๋ฏธํด๊ฒฐ ๊ฒฝ๊ณ ์ ๊ธฐ๊ฐ์ ์ ํํ ๊ธฐ๊ฐ์ด ์ข ๋ฃ๋ ๋ ์ง์์ ๊ฒฝ๊ณ ๊ฐ ์์ฑ๋ ๋ ์ง๋ฅผ ๋นผ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ๋ค์ ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๊ฐ ๋ค์ ์ด๋ฆฐ ๋ ์ง๊ฐ ์๋ ์ฒ์ ์์ฑ๋ ๋ ์ง๋ฅผ ๋นผ์ ๊ธฐ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
๋ค์ ์ด๋ฆฐ ๊ฒฝ๊ณ
"๋ค์ ์ด๋ฆฐ ๊ฒฝ๊ณ " ๋ฉํธ๋ฆญ์ ์ ํํ ๊ธฐ๊ฐ ๋์ ๋ค์ ์ด๋ฆฐ ์ด ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ๋๋ค. ๋ณด๊ณ ๊ธฐ๊ฐ์ด ๋๋ ๋ ์ด๋ ค ์๋ ๊ฒฝ๊ณ ๋ง ๋ณด๊ณ ๋ฉ๋๋ค. ๋ค์ ๋ด์ฉ์ด ํฌํจ๋ฉ๋๋ค.
- ์ ํํ ๊ธฐ๊ฐ ์ ๋ ๋ซํ์ผ๋ฉฐ ํด๋น ๊ธฐ๊ฐ์ด ๋๋ ๋๊น์ง ์ด๋ ค ์๋ ๊ฒฝ๊ณ ์ ๋๋ค.
- ์๋ก ๋ง๋ ๊ฒฝ๊ณ ๋ ์ ํํ ๊ธฐ๊ฐ ๋์ ๋ซํ ๋ค์ ๋ค์ ์ด๋ ธ์ต๋๋ค.
- ์ ํํ ๊ธฐ๊ฐ์ ์์ ๋ถ๋ถ์ ์ด๋ ค ์์์ง๋ง ๋ซํ ํ ๊ฐ์ ๊ธฐ๊ฐ ๋ด์ ๋ค์ ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ๋๋ค.
๋ฌด์/์ฐจ๋จ๋ ๋น๋ฐ
"๋ฌด์๋ ๋น๋ฐ" ๋ฉํธ๋ฆญ์ ํธ์ ๋ณดํธ์ ์ํด ์ฐจ๋จ๋ ์ด ๋น๋ฐ์ ๋ํ ๋ฌด์๋ ๋น๋ฐ์ ๋น์จ์ ๋ณด์ฌ์ค๋๋ค.
๋ํ ์ฑ๊ณต์ ์ผ๋ก ์ฐจ๋จ๋ ๋น๋ฐ์ ์๋ ํ์ธํ ์ ์์ผ๋ฉฐ, ์ด ์์น๋ ํธ์ ๋ณดํธ์ ์ํด ์ฐจ๋จ๋ ์ด ๋น๋ฐ์ ์์์ ๋ฌด์๋ ๋น๋ฐ์ ์๋ฅผ ๋นผ์ ๊ณ์ฐํฉ๋๋ค. ๋น๋ฐ์ ์์ ๋๊ณ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ปค๋ฐ๋์ง ์์ ๊ฒฝ์ฐ ์ฑ๊ณต์ ์ผ๋ก ์ฐจ๋จ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
์ธ๋ถ ์ ๋ณด ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ๋์ผํ ํํฐ ๋ฐ ๊ธฐ๊ฐ์ด ์ ํ๋ secret scanning ๋ณด๊ณ ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
secret scanning์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋น๋ฐ ๊ฒ์ฌ ํธ์ ๋ณดํธ์ ๋ํ ๋ฉํธ๋ฆญ ๋ณด๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ํฅ ๋ถ์ ํ ์ด๋ธ
์ํฅ ๋ถ์ ํ ์ด๋ธ์๋ "๋ฆฌํฌ์งํ ๋ฆฌ", "๊ถ๊ณ ", "SAST ์ทจ์ฝ์ฑ"์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ณ๋์ ํญ์ด ์์ต๋๋ค.
-
"๋ฆฌํฌ์งํ ๋ฆฌ" ํญ์๋ ์ ํํ ๊ธฐ๊ฐ์ด ๋๋ ๋ ์ด๋ฆฐ ๊ฒฝ๊ณ ๊ฐ ๊ฐ์ฅ ๋ง์ ์์ 10๊ฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ํ์๋๋ฉฐ, ์ด ์ด๋ฆฐ ๊ฒฝ๊ณ ์์ ๋ฐ๋ผ ์์๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ๊ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ฏธํด๊ฒฐ ๊ฒฝ๊ณ ์ ์ด ์๋ ์ฌ๊ฐ๋๋ณ ๋ถ์๊ณผ ํจ๊ป ํ์๋ฉ๋๋ค.
-
"๊ถ๊ณ " ํญ์๋ ์ ํํ ๊ธฐ๊ฐ์ ๋์ ๊ฐ์ฅ ๋ง์ Dependabot ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํ 10๊ฐ์ CVE ๊ถ๊ณ ๊ฐ ํ์๋๋ฉฐ, ์ด๋ ค ์๋ ๊ฒฝ๊ณ ์ ์ด ์์ ๋ฐ๋ผ ์์๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ๊ฐ ๊ถ๊ณ ์ ๊ฒฝ์ฐ ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ์ด ์๋ ์ฌ๊ฐ๋ ์์์ ํจ๊ป ํ์๋ฉ๋๋ค.
-
โSAST ์ทจ์ฝ์ฑโ ํญ์๋ ๊ฐ์ฅ ๋ง์ code scanning ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํ 10๊ฐ์ SAST(์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ) ์ทจ์ฝ์ฑ์ด ํ์๋๋ฉฐ, ์ด๋ ค ์๋ ์ด๊ฒฝ๊ณ ์ ์์ ๋ฐ๋ผ ์์๊ฐ ๋งค๊ฒจ์ง๋๋ค. ๊ฐ ์ทจ์ฝ์ฑ์ ๋ํด ์ด๋ฆฐ ์ด ๊ฒฝ๊ณ ์๋ ์ฌ๊ฐ๋ ์์์ ํจ๊ป ํ์๋ฉ๋๋ค.
์์ ํญ
- ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ์ข ๋ฃ๋ ๊ฒฝ๊ณ
- ํ๊ท ์์ ์๊ฐ
- ์ ํด๊ฒฐ ์๋
- ๊ฒฝ๊ณ ํ๋ ๊ทธ๋ํ
์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ์ข ๋ฃ๋ ๊ฒฝ๊ณ
"์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ์ข ๋ฃ๋ ๊ฒฝ๊ณ " ๊ทธ๋ํ๋ ์ ํํ ๊ธฐ๊ฐ ๋์ ์กฐ์ง ๋๋ ๊ธฐ์ ์ ๋ฐ์ํ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ์์ ๋ณํ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฝ๊ณ ๋ ์ฌ๊ฐ๋๋ณ๋ก ๊ทธ๋ฃนํ๋ฉ๋๋ค. ๊ฒฝ๊ณ ๊ทธ๋ฃนํ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ข ๋ฃ๋ ๊ฒฝ๊ณ ์๋ ์ ํํ ๊ธฐ๊ฐ ์ด์ ๋๋ ํด๋น ๊ธฐ๊ฐ์ ์ฑ๊ณต์ ์ผ๋ก ์์ ๋๊ฑฐ๋ ํด์ ๋ ๋ณด์ ๊ฒฝ๊ณ ๊ฐ ํฌํจ๋ฉ๋๋ค. ํด๋น ๊ธฐ๊ฐ ๋์ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ๋ ์ข ๋ฃ๋ ๋ ์ง์ ๊ทธ๋ํ์ ํ์๋๊ณ ์ ํํ ๊ธฐ๊ฐ ์ ์ ์์ ๋๊ฑฐ๋ ํด์ ๋ ๊ฒฝ๊ณ ๋ ํด๋น ๊ธฐ๊ฐ์ ์์ ๋ถ๋ถ์ ํ์๋ฉ๋๋ค.
ํ๊ท ์์ ์๊ฐ
"ํ๊ท ์์ ์๊ฐ" ๋ฉํธ๋ฆญ์ ์ ํํ ๊ธฐ๊ฐ์ ์์ ๋๊ฑฐ๋ ํด์ ๋ ๋ชจ๋ ๊ฒฝ๊ณ ์ ํ๊ท ๊ธฐ๊ฐ์ ๋๋ค. "๊ฐ์์ฑ"์ผ๋ก ์ข ๋ฃ๋ ๊ฒฝ๊ณ ๋ ์ ์ธ๋ฉ๋๋ค.
์ข ๋ฃ๋ ๊ฐ ๊ฒฝ๊ณ ์ ๊ธฐ๊ฐ์ ์ ํํ ๊ธฐ๊ฐ ์ค ํด๋น ๊ฒฝ๊ณ ๊ฐ ๋ง์ง๋ง์ผ๋ก ์ข ๋ฃ๋ ๋ ์ง์์ ๊ฒฝ๊ณ ๊ฐ ์์ฑ๋ ๋ ์ง๋ฅผ ๋นผ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ๋ค์ ์ด๋ฆฐ ๊ฒฝ๊ณ ์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๊ฐ ๋ค์ ์ด๋ฆฐ ๋ ์ง๊ฐ ์๋ ์ฒ์ ์์ฑ๋ ๋ ์ง๋ฅผ ๋นผ์ ๊ธฐ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
์ ํด๊ฒฐ ์๋
"์ ํด๊ฒฐ ์๋" ๋ฉํธ๋ฆญ์ ๊ฒฝ๊ณ ๊ฐ ์ข ๋ฃ๋๋ ์๋์ ๋๋ค. ์ด ๋ฉํธ๋ฆญ์ ๊ฒฝ๊ณ ๊ฐ ํด๊ฒฐ๋๋ ์๋์ ํจ์จ์ฑ์ ๋ฐ์ํ๋ "๊ฐ๋ฐ์ ์๋"๋ฅผ ์ธก์ ํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.
์ด ์๋๋ ์ ํํ ๊ธฐ๊ฐ์ ์ข ๋ฃ๋๊ณ ์ข ๋ฃ๋ ์ํ๋ก ์ ์ง๋ ๊ฒฝ๊ณ ์๋ฅผ ํด๋น ๊ธฐ๊ฐ ์ค ์์ฑ๋ ๊ฒฝ๊ณ ์๋ก ๋๋์ด ๊ณ์ฐํฉ๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
์ ํด๊ฒฐ ์๋๋ ์ ํํ ๊ธฐ๊ฐ ๋์์ ๋ชจ๋ ์ ๊ฒฝ๊ณ ์ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ๋ฅผ ๊ณ ๋ คํฉ๋๋ค. ์ฆ, ๊ณ์ฐ์ ์ฌ์ฉ๋๋ ์ ๊ฒฝ๊ณ ์งํฉ๊ณผ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ์งํฉ์ ๊ฒฝ๊ณ ๋ชจ์ง๋จ์ด ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ๋ฐ๋์ ์ผ์นํ์ง๋ ์์ต๋๋ค.
์ ํํ ๊ธฐ๊ฐ ์ค ๋ค์ ์ด๋ฆฌ๊ณ ๋ค์ ๋ซํ ๊ฒฝ๊ณ ๋ ๋ฌด์๋ฉ๋๋ค.
๊ฒฝ๊ณ ํ๋ ๊ทธ๋ํ
๊ฒฝ๊ณ ์ถ์ธ ๊ทธ๋ํ๋ฅผ ํ์ฅํ ๊ฒฝ๊ณ ํ๋ ๊ทธ๋ํ๋ ์ ํํ ๊ธฐ๊ฐ์ ๊ฒฝ๊ณ ์ ์ ๋ฐ ์ ์ถ์ ๋ณด์ฌ์ค๋๋ค.
๋ น์ ๋ง๋๋ ๋ถํ ๋ ๊ธฐ๊ฐ ๋์ ์์ฑ๋ ์ ๊ฒฝ๊ณ ์ ์๋ฅผ ๋ํ๋ ๋๋ค. ๋ณด๋ผ์ ๋ง๋๋ ๋ถํ ๋ ๊ธฐ๊ฐ ๋์ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ์ ์๋ฅผ ๋ํ๋ ๋๋ค. ํ๋์ ์ ์ ์ ์ ๊ฒฝ๊ณ ์ ์ข ๋ฃ๋ ๊ฒฝ๊ณ ์ ์ฐจ์ด์ธ ์ ๊ฒฝ๊ณ ํ๋์ ๋ํ๋ ๋๋ค.
๋ฐฉ์ง ํญ
์ฐธ๊ณ ํญ๋ชฉ
๊ธฐ๋ณธ ๋ถ๊ธฐ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ณ ํ๋ ๊ฐ์ง ๋ฐ ์์ ํญ๊ณผ๋ ๋ฌ๋ฆฌ ๋ฐฉ์ง ํญ์์๋ ๋ณํฉ๋ ๋์ด์ค๊ธฐ ์์ฒญ์ ์๋ CodeQL ๊ฒฝ๊ณ ์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ ์ ๋ ์ทจ์ฝ์ฑ ๋ ๋ฐฉ์ง๋ ์ทจ์ฝ์ฑ
- ๋์ด์ค๊ธฐ ์์ฒญ์์ ์์ ๋ ์ทจ์ฝ์ฑ
- Copilot Autofix suggestions
์ ์ ๋ ์ทจ์ฝ์ฑ ๋ ๋ฐฉ์ง๋ ์ทจ์ฝ์ฑ
"์ ์ ๋ ์ทจ์ฝ์ฑ ๋ ๋ฐฉ์ง๋ ์ทจ์ฝ์ฑ" ๊ทธ๋ํ๋ ์ ํํ ๊ธฐ๊ฐ ๋์ ๊ฐ๋ฐ์ ์ํฌํ๋ก์์ ์ ๋ฐ๋ ๋์ ์ทจ์ฝ์ฑ ์ ๋๋น ์กฐ์ง ๋๋ ๊ธฐ์ ์ ์ ์ ๋ ์ทจ์ฝ์ฑ์ ๋ณด์ฌ ์ค๋๋ค. ๋ฐฉ์ง๋ ์ทจ์ฝ์ฑ์ ๋ณํฉ๋ ๋์ด์ค๊ธฐ ์์ฒญ์ ๋ํด ์์ ๋ CodeQL์ ์ํด ๊ฐ์ง๋ ๋์ด์ค๊ธฐ ์์ฒญ ๊ฒฝ๊ณ ์ ์๋ก ์ ์๋ฉ๋๋ค. ์ ์ ๋ ์ทจ์ฝ์ฑ์ CodeQL์ ์ํด "์ํ ํ์ฉ๋จ"์ผ๋ก ํด์ ๋์๊ฑฐ๋ ๋์ด์ค๊ธฐ ์์ฒญ์ด ๋ณํฉ๋ ๋ ํด๊ฒฐ๋์ง ์์ ์ ๋์ด์ค๊ธฐ ์์ฒญ ๊ฒฝ๊ณ ์ ์์ ๋๋ค.
๋ฐฉ์ง๋ ๊ฒฝ๊ณ ์ ๋ ์ง๋ ๊ฒฝ๊ณ ๊ฐ ์์ ๋ ๋ ์ง, ์ ์ ๋ ๊ฒฝ๊ณ ์ ๋ ์ง๋ ๊ฒฝ๊ณ ๊ฐ ์์ฑ๋ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
๋์ด์ค๊ธฐ ์์ฒญ์์ ์์ ๋ ์ทจ์ฝ์ฑ
"๋์ด์ค๊ธฐ ์์ฒญ์์ ์์ ๋ ์ทจ์ฝ์ฑ" ๋ฉํธ๋ฆญ์ ๋ณํฉ๋ ๋์ด์ค๊ธฐ ์์ฒญ์ ์ฐ๊ฒฐ๋ "์์ ๋จ"์ ์ฌ์ ๋ก CodeQL ๋๋ secret scanning์์ ๊ฐ์ง๋ ๋์ด์ค๊ธฐ ์์ฒญ ๊ฒฝ๊ณ ์ ์๋ฅผ ๋ณด์ฌ ์ค๋๋ค.
Copilot Autofix ์ ์์ผ๋ก ์์ ๋ ๋์ด์ค๊ธฐ ์์ฒญ
code scanning์ GitHub Copilot Autofix๋ code scanning์ ํ์ฅํ์ผ๋ก, code scanning ๊ฒฝ๊ณ ๋ฅผ ์์ ํ๋ ๋ฐ ๋์์ด ๋๋ ํ๊ฒํ ๋ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๋ ๊ฒ์ฌ์ ๋ํ Copilot Autofix์ ์ฑ ์ ์๋ ์ฌ์ฉ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
"์๋ ์์ ์ ์์ผ๋ก ์์ ๋ ๋์ด์ค๊ธฐ ์์ฒญ ๊ฒฝ๊ณ " ๋ฉํธ๋ฆญ์ code scanning์ ์ํด ๊ฐ์ง๋ ๋์ด์ค๊ธฐ ์์ฒญ ๊ฒฝ๊ณ ์ ๋ํ ์ด Copilot Autofix ์ ์ ์์ ๋ํ ํ์ฉ๋ Copilot Autofix ์ ์์ ๋น์จ์ ๋ณด์ฌ ์ค๋๋ค.