XZ Utils 백도어(CVE-2024-3094)에 대한 기술 사례 연구로, 공급망 신뢰 악용, 악성 릴리스 아티팩트, 빌드 단계 주입, sshd 의존성 악용, 탐지 엔지니어링 및 레드팀 교훈을 다룹니다.
이 보고서는 장기간 유지관리자 신뢰와 릴리스 권한에서 시작하여, 검토된 Git 소스와 배포된 릴리스 tarball 간의 불일치, 빌드 시점의 페이로드 추출, liblzma 수정, sshd로 이어지는 전이적 의존성 경로, GNU IFUNC / 동적 링커 악용, 그리고 운영자 전용 사전 인증 트리거에 이르기까지 이 작전을 추적한다.
초점은 단순히 백도어가 무엇을 했는가가 아니라, 어떻게 여러 정당한 신뢰 관계가 실행 경로로 전환되었는가에 있다.
핵심 교훈: 소스 검토는 릴리스 검증이 아니며, 서명된 업스트림 아티팩트는 그것을 생성한 사람과 빌드 프로세스만큼만 신뢰할 수 있다.
무결성 검사: report/SHA256SUMS.txt
Contributor trust
↓
Maintainer / release authority
↓
Opaque test artifacts
↓
Tarball-specific build logic
↓
Build-time malicious object extraction
↓
Payload linked into liblzma
↓
Trusted distro package build
↓
Transitive load into sshd
↓
IFUNC / loader-time symbol redirection
↓
Operator-only cryptographic SSH trigger
↓
Pre-authentication bypass / command capability
| 발견 사항 | 중요한 이유 |
|---|---|
| 유지관리자 신뢰가 익스플로잇 체인의 일부였다 | 공격자는 최종 단계에서 단순히 패키지 계정을 탈취한 것이 아니라, 정당한 프로젝트 역할 내부에서 활동했다. |
| Git 소스와 릴리스 tarball은 보안적으로 동등하지 않았다 | 릴리스에서만 생성되는 빌드 로직이 일반적인 Git 검토로는 드러나지 않는 경로를 도입했다. |
| 불투명한 테스트 데이터가 실행 가능한 빌드 입력이 되었다 | 조작된 .xz / .lzma 픽스처가 컴파일 중에 복구되는 숨겨진 단계를 담고 있었다. |
| 페이로드는 전이적 의존성 경로에 의존했다 | OpenSSH 자체가 백도어된 것은 아니며, liblzma가 배포판별 systemd 통합을 통해 선택된 sshd 빌드에 간접적으로 도달했다. |
| 런타임 활성화는 의도적으로 좁게 설정되었다 | 플랫폼, 빌드, 프로세스, 환경 및 암호화 게이트가 우발적 노출과 분석을 줄였다. |
| 발견은 이상 징후 조사에서 비롯되었다 | CPU, 지연 시간 및 Valgrind 이상이 정적 신뢰 신호가 받아들였던 공급망 침해를 드러냈다. |
sshd → libsystemd → liblzma 의존성 경로이 사례 연구는 의도적으로 사건 요약을 넘어선다.
보고서는 여섯 가지 신뢰 전환을 매핑한다:
contributor → maintainer → release artifact → distro package → runtime library → SSH control path
각 전환 지점에서 공격자의 지렛대와 방어적 병목 지점을 식별한다.
이 분석은 사건을 다음과 관련된 검증 가능한 가설로 전환한다:
에뮬레이션 섹션은 작동하는 SSH 인증 백도어 없이 안전한 신뢰 경로 테스트, 예를 들어 무해한 tarball/소스 불일치 및 의존성 경로 검증에 초점을 맞춘다.
PDF는 .github/workflows/publish-report.yml에 의해 버전 관리되는 HTML/CSS에서 생성된다.
워크플로는 본문과 전용 표지를 별도로 렌더링하고, 병합하고, SHA-256을 계산하고, 생성된 PDF를 커밋하고 릴리스 자산을 게시한다. 이는 출판 자체를 이 사례의 핵심 교훈과 일치시킨다: 소스에서 아티팩트로 가는 경로는 관찰 가능하고 재현 가능해야 한다.
1차 증거가 회고적 논평보다 우선시된다. 보고서는 확인된 기술적 동작, 프로젝트 기록, 배포 노출, 이후의 리버스 엔지니어링 및 분석적 결론을 구분한다.
docs/METHODOLOGY.md 및 docs/REFERENCES.md를 참조하라.
.
├── .github/workflows/
│ └── publish-report.yml
├── assets/
│ └── cover-mobile-safe.svg
├── docs/
│ ├── METHODOLOGY.md
│ └── REFERENCES.md
├── report/
│ ├── cover.html
│ ├── source.html
│ ├── XZ_Utils_Backdoor_Case_Study_Michel-DV.pdf
│ └── SHA256SUMS.txt
├── CHANGELOG.md
├── CITATION.cff
├── DISCLAIMER.md
├── RELEASE_NOTES.md
├── LICENSE
└── README.md
이 사례 연구가 연구, 교육, 교과 과정 또는 내부 문서에 유용하다면, 저장소를 인용하거나 CITATION.cff를 사용하라.
저자: @Michel-DV
시리즈: Michel-DV Threat Case Studies — CASE-002
릴리스: v1.0.0
연도: 2026
© 2026 Michel-DV.
이 출판물은 **Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)**에 따라 라이선스된다.
이것은 공개적으로 이용 가능한 정보에 기반한 독립적인 기술 연구이다. Tukaani Project, Red Hat, Debian, OpenSSF, OpenSSH, systemd, Kaspersky 또는 기타 참조된 조직과 제휴하거나 이들의 승인을 받지 않았다.
XZ 사건은 단일 악성 패치가 아니었다. 그것은 아무도 독립적으로 검증하지 않은 신뢰할 수 있는 핸드오프의 연쇄였다.