피드로 돌아가기
Dev.toSecurity
원문 읽기
OIDC 인증을 우회한 Build Cache Poisoning 및 84개 패키지 오염 분석
The 20-Minute Compromise: CI/CD Audit Guide for the TanStack Supply Chain Attack
AI 요약
Context
Workload Identity Federation 기반의 OIDC 인증 체계가 구축되었음에도 불구하고, 인증 레이어 하단의 Build Cache에 대한 검증 부재로 인해 공급망 공격 발생. OIDC가 행위자의 신원은 증명하나, 처리 대상인 Artifact의 Lineage Integrity를 보장하지 못하는 아키텍처적 한계 노출.
Technical Solution
- pull_request_target 트리거의 권한 남용 방지를 위해 actions/checkout@v4 SHA 핀닝 및 permissions 블록의 read-only 설정 강제
- PR 워크플로우와 Release 워크플로우 간의 Cache Key Namespace 분리를 통한 Cache Poisoning 경로 차단
- PR 워크플로우 내 actions/cache/restore 사용을 강제하여 Cache Write 권한을 원천적으로 제거하는 읽기 전용 구조 설계
- OIDC Trust Policy의 검증 범위를 sub 필드에서 workflow, environment, actor, ref_type를 포함한 다중 Claim 검증 체계로 확장
- Token TTL을 5분 이하로 제한하고 Job 및 Commit SHA에 바인딩하여 메모리 추출 기반의 Token Replay 공격 무력화
실천 포인트
- 모든 PR 워크플로우에서 id-token: write 권한 제거 및 사용 여부 전수 조사 - PR 및 Release 환경 간 공유되는 Cache Key 존재 여부 확인 및 Namespace 분리 적용 - OIDC Trust Policy 내 sub 외에 workflow 및 environment Claim 검증 로직 추가 - Release 파이프라인의 Runner를 Ephemeral 기반으로 전환하여 상태 잔존 가능성 제거