์ถ์ฒ: https://thehackernews.com/2025/03/github-action-compromise-puts-cicd.html
GitHub Action ์นจํด๋ก 23,000๊ฐ ์ด์์ ๋ฆฌํฌ์งํ ๋ฆฌ CI/CD ๋ณด์์ด ์ํ์ ์ฒํ๋ค
์ฌ์ด๋ฒ ๋ณด์ ์ฐ๊ตฌ์๋ค์ GitHub Action์ธ tj-actions/changed-files๊ฐ ์ง์์ ์ผ๋ก CI/CD ์ํฌํ๋ก์ฐ์์ ์ฌ์ฉ๋๋ฉด์ ๋ณด์ ์ ๋ณด๊ฐ ์ ์ถ๋์๋ค๋ ์ฌ๊ฑด์ ์ฃผ๋ชฉํ๊ณ ์๋ค.
์ด๋ฒ ์ฌ๊ฑด์ ๋์์ tj-actions/changed-files๊ฐ ์ฌ์ฉ๋ 23,000๊ฐ ์ด์์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก, ํด๋น ์ก์ ์ ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ๊ฒ์ํ๋ ๋ฐ ํ์ฉ๋๋ค.
์ด ๊ณต๊ธ๋ง ์นจํด ์ฌ๊ฑด์ CVE ์๋ณ์ CVE-2025-30066์ด ๋ถ์ฌ๋์์ผ๋ฉฐ, 2025๋ 3์ 14์ผ์ ๋ฐ์ํ๋ค.
๊ณต๊ฒฉ ๊ณผ์ ์์ ํด์ปค๋ค์ ์ก์ ์ฝ๋๋ฅผ ์์ ํ๊ณ , ๋ค์์ ํ๊ทธ ๋ฒ์ ์ ์๊ธ ์ ๋ฐ์ดํธํ์ฌ ์ ์ฑ ์ปค๋ฐ์ ์ฐธ์กฐํ๋๋ก ๋ง๋ค์๋ค. ์ด ์นจํด๋ ์ก์ ์ GitHub Action ๋น๋ ๋ก๊ทธ์ CI/CD ์ํฌ๋ฆฟ์ ์ ์ถํ๋ ์ญํ ์ ํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ณต๊ฐ๋ ์ํฌํ๋ก์ฐ ๋ก๊ทธ๋ ์ก์ ์ด ์คํ ์ค์ผ ๋ ๋น์ธ๊ฐ ๋ฏผ๊ฐ ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ์์์ ๋ณด์ฌ์ค๋ค. ์ด ์ํฌ๋ฆฟ์๋ AWS ์ก์ธ์ค ํค, GitHub PAT, npm ํ ํฐ, ๊ฐ์ธ RSA ํค ๋ฑ์ด ํฌํจ๋์ด ์์ผ๋, ์ ์ถ๋ ์ ๋ณด๊ฐ ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ ์ธํ๋ผ๋ก ์ด๋ํ๋ค๋ ์ฆ๊ฑฐ๋ ์๋ค.
ํนํ, ์ ์ฑ ์ฝ์ ์ฝ๋๋ runner ์์ปค ํ๋ก์ธ์ค์ CI/CD ์ํฌ๋ฆฟ์ ์ ์ถํ๋ ํ์ด์ฌ ์คํฌ๋ฆฝํธ๋ฅผ GitHub Gist์์ ์คํํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ด๋ ํ์ธ๋์ง ์์ ์์ค ์ฝ๋ ์ปค๋ฐ์์ ๋น๋กฏ๋์๋ค. ์ดํ GitHub Gist๋ ์ ง๋ค์ด ์ํ์ ๋ค์ด๊ฐ๋ค.
tj-actions/changed-files๋ ์กฐ์ง์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์์ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ์ฝ๋ ๋ฆฌ๋ทฐ ํ ๋ณดํต ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉํ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ดํ๋ผ์ธ์ ํตํด ๋น๋ ๋ฐ ๋ฐฐํฌ๋ฅผ ์งํํ๋ ๊ณผ์ ์์ ํ์ฉ๋๋ค. ์ด ์ก์ ์ ์ปค๋ฐ, ๋ธ๋์น, PR ๊ฐ์ ํ์ผ์ด ์ถ๊ฐ, ์์ , ์ญ์ ๋ ๋ด์ญ์ ์ถ์ ํ ์ ์๋๋ก ํด์ค๋ค.
ํด์ปค๋ค์ ์ก์ ์ฝ๋๋ฅผ ์์ ํ๊ณ ์ ์ฑ ์ปค๋ฐ์ ์ฐธ์กฐํ๊ธฐ ์ํด ๋ค์์ ํ๊ทธ ๋ฒ์ ์ ์๊ธ ์ ๋ฐ์ดํธํ์ผ๋ฉฐ, ์ด๋ก ์ธํด ์์ฒ ๊ฐ์ CI ํ์ดํ๋ผ์ธ์ ์ํฅ์ ๋ฏธ์น๋ฉด์ CI/CD ์ํฌ๋ฆฟ์ ์ ์ถํ๋ ์ ์ฑ ํ์ด์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ฒ ๋์๋ค.
์ด๋ฒ tj-actions/changed-files ์นจํด ์ฌ๊ฑด์ ํ์ฐ ์ค์ธ CI/CD ํ๊ฒฝ์์์ ๊ณต๊ธ๋ง ๊ณต๊ฒฉ ์ํ์ ๋ค์ ํ๋ฒ ๋ถ๊ฐ์ํจ๋ค. ์ ์ฑ ํ์ด๋ก๋๋ ์๋ ์ค์บ๋ ๋๊ตฌ์ ํ์ง๋ฅผ ํผํ๊ธฐ ์ํด ์ ๊ตํ๊ฒ ์จ๊ฒจ์ ธ ์์๋ค.
ํ๋ก์ ํธ ์์ ์๋ค์ ์ต๋ช ์ ํด์ปค๋ค์ด ์นจํด๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ๊ทผ ๊ถํ์ด ์๋ @tj-actions-bot์ด ์ฌ์ฉํ GitHub PAT์ ํดํนํ๋ ค ์๋ํ๋ค๊ณ ์ ํ๋ค. ์ด์ ๋ฐ๋ผ ๊ณ์ ๋น๋ฐ๋ฒํธ๋ ์ ๋ฐ์ดํธ๋์๊ณ , ์ธ์ฆ ๋ฐฉ์์ ํจ์คํค ์ฌ์ฉ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋์์ผ๋ฉฐ, ๊ถํ ์์ค๋ ์ต๊ณ ๋ฑ๊ธ์ผ๋ก ์ฌ์ค์ ๋์๊ณ , ์นจํด๋ PAT์ ์ฌ์ฉ ์ค์ง๋์๋ค.
์ํฅ์ ๋ฐ์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉ ์ค์ง๋ GitHub Action ์ํฌ๋ฆฟ์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ, ์ฌ๋ฐ ๋ฐฉ์ง๋ฅผ ์ํด ๋ชจ๋ tj-actions ์กฐ์ง์ ํ๋ก์ ํธ์์๋ ๋ ์ด์ PAT ์ฌ์ฉ์ด ํ์ฉ๋์ง ์์ ์์ ์ด๋ค.
GitHub Action ์ฌ์ฉ์๋ค์ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ ๊ฒ์ ๊ถ๊ณ ํ๋ฉฐ, 3์ 14์ผ~15์ผ ์ฌ์ด์ ์คํ๋ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฒํ ํด ๋ณ๊ฒฝ๋ ํ์ผ๋ก ์ธํ ์๊ธฐ์น ์์ ๊ฒฐ๊ณผ๊ฐ ์๋์ง ํ์ธํด์ผ ํ๋ค.
์ด๋ฒ ๋ณด์ ์ด์๋ ์ฒ์์ด ์๋๋ค. 2024๋ 1์, tj-actions/changed-files์ tj-actions/branch-names์์ ์์์ ์ฝ๋ ์คํ์ ํ์ฉํ๋ ์น๋ช ์ ๊ฒฐํจ(CVE-2023-49291, CVSS ์ ์: 9.8)์ด ๋ฐ๊ฒฌ๋ ๋ฐ ์๋ค.
์ด๋ฒ ์ฌ๊ฑด์ ํตํด ์คํ์์ค ์ํํธ์จ์ด๊ฐ ์ต์ข ์ฌ์ฉ์์๊ฒ ์ ๋ฌ๋๋ ๊ณต๊ธ๋ง ์ํ์ ๋ ธ์ถ๋ ์ ์์์ ๋ค์ ํ ๋ฒ ์ค๊ฐํ๊ฒ ๋์๋ค.
2025๋ 3์ 15์ผ, ๋ชจ๋ ๋ฒ์ ์ tj-actions/changed-files Action์ด ๊ณต๊ฒฉ์ ๋ฐ์๋ค. ํด์ ํ(hash-pinned) ๋ฒ์ ์ ์ฌ์ฉ ์ค์ด๋ ๊ณ ๊ฐ๋ค์ ๊ณต๊ฒฉ ์์ ์ ์ ๋ฐ์ดํธํ์ง ์์๋ค๋ฉด ์ํฅ์ ๋ฐ์ง ์์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
CI/CD
CI(Continuous Integration): ์ง์์ ์ธ ํตํฉ
→ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋์ด ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉ๋๋ ๊ฒ
- ๋น ๋ฅธ ๋ฒ๊ทธ ํ์ธ ๋ฐ ํด๊ฒฐ
- ์ํํธ์จ์ด ํ์ง ๊ฐ์
- ์๋ก์ด ์ ๋ฐ์ดํธ์ ๊ฒ์ฆ ๋ฐ ๋ฆด๋ฆฌ์ฆ ์๊ฐ ๋จ์ถ
CD(Continuous Delivery/Deployment): ์ง์์ ์ธ ๋ฐฐํฌ
→ ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์๋์ผ๋ก ๋ฆด๋ฆฌ์ฆ & ํ๋ก๋์ ๋ ๋ฒจ๊น์ง ์๋์ผ๋ก ๋ฐฐํฌ
- ๋น ๋ฅธ ์๊ฐ ๋ด์ ๊ณ ๊ฐ์๊ฒ ๋ฆด๋ฆฌ์ฆ ๋๋ ๊ฒ
- compromise: ์นจํด
- retrieve: ๊ฒ์ํ๋ค
- retroactively: ์๊ธํ์ฌ
- siphon: ์ด๋ํ๋ค
- unverified: ํ์ธ๋์ง ์์
- deploy: ๋ฐฐํฌ
- revoked: ์ทจ์๋จ
- pave: ๋ฎ์ด์ฐ๋ค
- susceptible: ๋๋ผ๊ธฐ ์ฌ์ด
'๐ฐ๊ธฐ์ฌ ์คํฌ๋ฉ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๋ชจ๋ธ ๊ณต๊ฐ ์ดํ ์์คํ ๊ณผ๋ถํโฆ์คํAIยท๊ตฌ๊ธ, ์์ ์์ ๋ฉ์ถฐ ์ฐ๋ค (0) | 2025.04.01 |
---|