기술 설명
2026년 5월 18일, 'Megalodon'이라고 불리는 대규모 자동화된 공급망 캠페인이 6시간 동안 5,561개의 GitHub 저장소에 5,718개의 악성 커밋을 푸시했습니다. 위조된 봇 스타일 작성자 신원(build-bot, auto-ci, ci-bot, pipeline-bot)을 가진 임시 계정을 사용하여 공격자들은 base64 인코딩된 bash 페이로드를 포함하는 악성 GitHub Actions 워크플로우 파일을 주입했고, 다음 CI 파이프라인 실행 시 CI 환경 변수, AWS 자격 증명, GCP 액세스 토큰, Azure 자격 증명, SSH 개인 키, Docker/Kubernetes 구성, npm 토큰 및 GitHub Actions OIDC 토큰을 C2 서버로 유출합니다. 이 캠페인은 또한 Tiledesk npm 패키지(@tiledesk/tiledesk-server 버전 2.18.6–2.18.12)를 손상시켜 npm 레지스트리를 통해 백도어를 다운스트림으로 전파했습니다. 공격 기법은 MITRE ATT&CK T1195.002(공급망 침해)에 해당합니다.
공격 경로
직접 중독된 파이프라인 실행(d-PPE): 쓰기 액세스 권한이 있는 공격자(또는 약한 브랜치 보호가 있는 수락된 PR)가 악성 워크플로우 YAML을 기본 브랜치에 직접 푸시합니다. 워크플로우는 push 또는 pull_request_target 이벤트에서 트리거되며, 다음 CI 실행 시 모든 시크릿을 유출합니다. 두 번째 변형은 GitHub API를 통한 휴면 백도어 활성화를 위해 workflow_dispatch를 사용합니다. OIDC 토큰 도용 벡터는 특히 심각합니다: 올바르게 범위가 지정된 저장소를 통해 악성 워크플로우는 단기 클라우드 ID 토큰을 발급하여 정적 자격 증명 없이 클라우드 액세스를 부여합니다.
영향받는 시스템
기본 브랜치에 필수 PR 검토가 부족한 5,561개 이상의 GitHub 저장소; Tiledesk npm 패키지 버전 2.18.6–2.18.12; CI/CD 러너가 클라우드 자격 증명 또는 OIDC 페더레이션에 액세스하는 모든 조직. GitHub Actions를 모델 학습, 데이터셋 처리 또는 에이전트 배포에 사용하는 AI 개발 파이프라인이 직접 범위에 포함됩니다.
완화 방안
1) 2026년 5월 18일에 build-system@noreply.dev 또는 ci-bot@automated.dev의 커밋에 대해 저장소 검색; 2) 'SysDiag' 또는 'Optimize-Build' 워크플로우 이름에 대해 .github/workflows/ 감사; 3) 216.126.225.129:8443에서 C2 차단; 4) 영향을 받는 저장소에 대해 모든 시크릿, 클라우드 키, SSH 키 및 OIDC 신뢰 정책 순환; 5) @tiledesk/tiledesk-server 버전 2.18.6–2.18.12 제거; 6) 모든 기본 브랜치에 필수 PR 검토 적용; 7) OIDC 신뢰 정책을 특정 브랜치 및 환경으로 제한. SafeDep는 5,718개의 악성 커밋 해시 전체 목록을 게시했습니다.