CI/CD 파이프라인(Pipeline) 공격, 보안 도구도 안전하지 않다!

by DD
2개월 전
조회수 8

TeamPCP라는 공격 그룹이 CI/CD 파이프라인(Pipeline)을 악용하여 Trivy 및 LiteLLM 패키지에 악성코드를 삽입함

Trivy를 통해 SSH 키, AWS 토큰, 쿠버네티스(Kubernetes) 시크릿(Secrets) 등 민감 정보 탈취 시도

LiteLLM을 통해 OpenAI, Anthropic, Google Vertex AI API 키 탈취 시도, AI 애플리케이션(Application)의 보안 위협 증가

OIDC(OpenID Connect) 기반의 배포SHA(Secure Hash Algorithm) 고정을 통해 공급망 공격(Supply Chain Attack) 방어 필요

Trivy 공급망 공격(Supply Chain Attack)의 기술적 분석

공격자들은 Trivy GitHub Actions에 대한 쓰기 권한을 획득하여 악성 코드를 삽입했다. 특히, 75개의 버전 태그에 대해 강제 푸시(Force-Push)를 수행하여, 개발자들이 특정 버전 태그를 사용하도록 설정한 경우 악성 코드가 자동으로 배포되도록 했다. 이로 인해, 보안 검사 도구인 Trivy가 트로이 목마(Trojan Horse)로 변질되어, 민감한 정보가 공격자의 C2 서버로 전송되었다.

LiteLLM을 통한 AI API 키 탈취 시도

Trivy 공격으로 탈취한 PyPI 토큰을 사용하여 LiteLLM의 악성 버전을 배포했다. 특히, 1.82.8 버전에서는 .pth 파일을 사용하여, 라이브러리 임포트(Import) 없이도 악성 코드가 실행되도록 했다. 이로 인해, AI 애플리케이션(Application)에서 사용되는 OpenAI, Anthropic, Google Vertex AI API 키가 탈취될 위험에 노출되었다. 이는 AI 서비스의 보안에 심각한 위협을 가한다.

지속적인 공격을 위한 백도어(Backdoor) 설치

공격자들은 Sysmon 백도어(Backdoor)를 생성하고, Systemd 서비스를 등록하여 지속적인 접근 권한을 확보했다. 또한, 쿠버네티스(Kubernetes) 환경에서는 권한 있는 파드(Pod)를 배포하여 호스트 파일 시스템에 접근하는 시도를 했다. 이러한 지속적인 접근 권한 확보 시도는, 공격자가 시스템에 장기간 머무르며 추가적인 피해를 입힐 수 있는 기반을 마련한다.

공급망 공격(Supply Chain Attack) 방어를 위한 권장 사항

본문에서는 OIDC(OpenID Connect) 기반의 배포를 통해 PyPI/NPM 토큰을 안전하게 관리하고, GitHub Actions에서 SHA(Secure Hash Algorithm)를 사용하여 버전 고정할 것을 권장한다. 또한, 감염된 환경을 격리하고, 모든 자격 증명을 교체하며, CI/CD 러너(Runner)와 도커 이미지(Docker Image)를 처음부터 다시 구축해야 한다. 이러한 조치들은 공급망 공격(Supply Chain Attack)의 피해를 최소화하는 데 기여한다.

How the TeamPCP attack exploited CI/CD pipelines and trusted releases to release infected Trivy and LiteLLM packages