How a Leaked GitHub Token Can Lead to Full Cloud Compromise
PAT 탈취로 이어지는 코드‑투‑클라우드 공격
Hun Jang Dec 10, 2025
최근 본 Wiz CIRT의 보고를 보면, 단순히 깃허브 GitHub 개인 액세스 토큰(PAT) 유출이 곧바로 “코드 노출” 정도로 끝나는 게 아니라, 실제로 클라우드 자격증명 탈취 → 워크플로 악용 → 클라우드 제어 플레인(control‑plane)까지 장악하는 공격 사슬이 현실에서 벌어지고 있다. (wiz.io)
🔎 어떤 흐름으로 공격이 진행되는가
- 유출된 PAT(권한은 보통 read 또는 write 수준)로 리포지토리 내부를 탐색해, 워크플로에 사용된 비밀 변수 이름(
secrets.SECRET_NAME)을 찾아낸다. (wiz.io)
- 이후 write 권한이 있다면 악성 워크플로(workflow)를 새로 만들거나 Pull Request를 만들어 워크플로를 실행하도록 유도 — CI/CD 환경에서 임의 코드 실행이 가능하다. (wiz.io)
- 이 워크플로가 실행되면, 숨겨진 클라우드 자격증명(CSP credentials)을 탈취하거나, 탈취한 자격증명으로 새 키를 발급받아 영구 접근 권한을 확보할 수 있다. (wiz.io)
- 마지막으로, 새로 얻은 자격증명을 이용해 클라우드의 제어 플레인에 접근 — 이른바 “코드 → 클라우드 → 클라우드 운영체제(control plane)”로의 횡이동(lateral movement)이 발생한다. (wiz.io)
⚠️ 왜 지금 이 문제가 중요해졌는가
- 예전에는 “코드에 비밀이 하드코딩 되어 있다”는 단순 노출이 주요 리스크였다면, 이제는 “하드코딩하지 않았더라도” 리포지토리 + CI/CD 권한만으로 클라우드까지 뚫릴 수 있다는 점에서 위협이 훨씬 강해졌다.
- 특히 워크플로 악용 시, 실행 로그 삭제·기록 조작이 가능해 탐지와 사후 포렌식이 매우 어려워진다. 공격자는 흔적을 남기지 않고 침투할 수 있다. (wiz.io)
- 즉, 단순한 “리포지토리 보안”을 넘어, “개발 환경 ↔ CI/CD ↔ 클라우드 인프라” 전체를 통합해서 보는 보안 전략이 반드시 필요해졌다. (wiz.io)