23,000๊ฐ+ ์ ์ฅ์ ํ๊ฒฉํ tj-actions ๊ณต๊ธ๋ง ๊ณต๊ฒฉ ๋ฐ ๋์ ์ ๋ต
๐จ ุชูุจูู ุฃู ูู ุนุงุฌู - ุซุบุฑุฉ ุญุฑุฌุฉ ูู tj-actions/changed-files
AI ์์ฝ
Context
GitHub Action์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ tj-actions/changed-files ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฝ๋ ๋ณ์กฐ๋ฅผ ํตํ Supply Chain Attack ๋ฐ์. GitHub Runner์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์ฌ Secrets๋ฅผ ์ถ์ถํ๊ณ ์ธ๋ถ๋ก ์ ์ถํ๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋ ๊ตฌ์กฐ์ ์ทจ์ฝ์ ๋ ธ์ถ.
Technical Solution
- GitHub Runner ๋ฉ๋ชจ๋ฆฌ ๋คํ ๋ฐ ๋ฐํ์ Secrets ์ถ์ถ ๋ก์ง์ ํตํ ๋ฐ์ดํฐ ํ์ทจ ํ๋ก์ธ์ค ์ฐจ๋จ
- Mutableํ Tag ๊ธฐ๋ฐ ๋ฒ์ ์ฐธ์กฐ ๋ฐฉ์์์ Immutableํ Commit SHA Pinning ๊ตฌ์กฐ๋ก ์ ํํ์ฌ ์ฝ๋ ๋ณ์กฐ ๋ฐฉ์ง
- GitHub API๋ฅผ ํ์ฉํ ์ทจ์ฝ ๊ธฐ๊ฐ(2025-03-14~15) ๋ด Workflow Run ID ์๋ณ ๋ฐ ๋ ธ์ถ ๋ก๊ทธ์ ๊ฐ์ ์ญ์ ์ํ
- Environment Protection Rules ๋ฐ Manual Approval ๋์ ์ ํตํ ๋ฏผ๊ฐํ Secrets์ ๋ฐํ์ ์ ๊ทผ ์ ์ด ๊ฐํ
- ์ ๊ธฐ์ ์ธ Dependency Audit ์๋ํ ์ํฌํ๋ก์ฐ ๊ตฌ์ถ์ ํตํ ์ทจ์ฝ ๋ฒ์ ์ ์กฐ๊ธฐ ๋ฐ๊ฒฌ ๋ฐ ์ฐจ๋จ ์ฒด๊ณ ๋ง๋ จ
์ค์ฒ ํฌ์ธํธ
1. ๋ชจ๋ Third-party Action์ ๋ฒ์ ์ Tag(v45)๊ฐ ์๋ Commit SHA๋ก ๋ณ๊ฒฝํ๋์ง ํ์ธ
2. ์ ์ถ ๊ฐ๋ฅ์ฑ์ด ์๋ GitHub Token, AWS Key, DB Password ๋ฑ ๋ชจ๋ Secrets์ ์ฆ์ Rotate ์ํ
3. GitHub API๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๊ณ ๋ฐ์ ๊ธฐ๊ฐ ๋ด ์์ฑ๋ Workflow Artifacts ๋ฐ Logs ์ ์ ์กฐ์ฌ
4. Production ํ๊ฒฝ์ Secrets ์ ๊ทผ ์ Approval ์ ์ฐจ๊ฐ ํฌํจ๋ Environment ์ค์ ์ ์ฉ