피드로 돌아가기
GeekNewsSecurity
원문 읽기
Trivy가 다시 공격받다: 광범위한 GitHub Actions 태그 변조로 비밀정보 유출
Trivy GitHub Actions 태그가 강제 업데이트로 변조되어 DockerHub의 악성 v0.69.5, v0.69.6 이미지 배포 및 다수 CI 워크플로우에서 자격증명 유출
AI 요약
Context
GitHub Actions는 git 태그 모델을 기반으로 하며 태그의 불변성을 강제하지 않는다. 보안 가이드는 커밋 SHA로 고정할 것을 권장하지만, 강제성이 없어 태그 덮어쓰기 공격에 취약하다. 특히 모든 CI 워크플로에서 광범위하게 실행되는 보안 도구들의 침해는 공급망 전체에 파급된다.
Technical Solution
- 탈취된 자격증명으로 공격자가 인증된 상태에서 태그 강제 업데이트(force-update) 수행: 새로운 커밋 없이 기존 태그(v0.69.5, v0.69.6)를 악성 이미지로 재지정
- GitHub Actions 워크플로우에서 메인 브랜치를 직접 클론하고 쉘 스크립트를 실행하는 구조로 설정되어 있어 임의 코드 실행 가능
- 비원자적 자격증명 회전 과정에서 새 토큰이 노출: 두 번의 자격증명 회전 후에도 공격자가 지속적인 접근 권한 유지
- 2월부터 전체 리포지토리 침해가 있었으나 3월 19일, 22일에 태그 변조 공격으로 실제 피해 발생
- GitHub의 "태그 덮어쓰기 금지" 설정을 활성화하지 않아 태그 강제 업데이트 방지 불가
Key Takeaway
보안 도구 제공자는 최신 버전 자동 반영의 이점과 고정 버전의 보안성 사이의 "Pinning의 역설"에 직면한다. 외부 도구에 광범위한 접근 권한을 부여하는 것은 위험 감소가 아니라 위험 확산이며, 격리된 샌드박스 환경에서 읽기 전용 권한만 부여할 때까지 프로덕션 권한 부여를 지연해야 한다.
실천 포인트
CI/CD 워크플로에서 GitHub Actions를 사용하는 팀은 Nix 같은 버전 관리 도구로 커밋 SHA를 고정하고, GitHub 저장소 설정에서 "태그 덮어쓰기 금지" 옵션을 필수로 활성화하며, 보안 도구는 사전에 충분히 검증될 때까지 읽기 전용 격리된 샌드박스 환경에서만 실행해야 한다.
태그