
몇몇 연구소에서 xz 백도어 취약점(CVE-2024-3094)을 살펴보고 있습니다.
xz-utils 공급망 백도어를 이해하기 위한 안전한 실습 연구소 — 방어자, 학생, 블루팀을 위해 만들어졌습니다.
[!WARNING] 이 프로젝트는 실제 유포 중인 악성코드(xz 5.6.0 / 5.6.1 백도어)를 다룹니다. 방어 교육 및 승인된 연구 목적으로만 제공됩니다. 모든 작업은 인터넷에 연결되지 않은 격리된 임시 게스트에서 실행됩니다. 중요한 시스템, 통제되지 않는 네트워크, 또는 테스트 권한이 없는 시스템에서 이 아티팩트를 실행하지 마십시오. SECURITY.md를 참조하세요.
| 실습 | 설명 | 페이로드 실행? |
|---|---|---|
| Lab 1 — 검사 | 일회용 샌드박스를 실행하고, 오프라인 상태에서 악성 tarball을 가져와서 위장을 확인합니다: git과 tarball의 build-to-host.m4 diff, 테스트 픽스처 페이로드, 매직 마커. | 아니요 — 정적 검사만 수행 |
| Lab 2 — 폭파 | 격리된 3-VM 네트워크(analyst / compromised / normal, Docker 없음)를 구축합니다. 분석 점프박스에서 두 호스트에 SSH로 접속하여 지연 시간과 pcaps를 비교한 후, 자신의 Ed448 키(xzbot 이용)로 compromised에서 백도어가 설치된 sshd를 트리거하여 사전 인증 루트 RCE를 수행합니다. 반면 normal은 영향을 받지 않습니다. | 예 — 격리된 VM, 오프라인, 자신의 키 |
2년 간의 소셜 엔지니어링 캠페인을 통해 악의적인 유지관리자가 xz-utils의 릴리스 권한을 획득했습니다. 페이로드는 릴리스 tarball에만 포함되었고(git에는 없음), 테스트 픽스처에 숨겨져 있었으며, x86-64 glibc 시스템에서 빌드 시 활성화되었습니다. 런타임 시 glibc IFUNC 훅을 RSA_public_decrypt에 사용하여(sshd → libsystemd → liblzma를 통해 도달 가능) 키 보유자에게 사전 인증 RCE를 제공했습니다. 이는 SSH 인증서의 RSA 모듈러스에 숨겨진 명령으로, ChaCha20 암호화 및 Ed448 서명되었습니다. 이는 C2가 아니며 매직 로그인이 아닙니다. 2024년 3월 29일, 안정 배포판에 도달하기 전에 Andres Freund가 약 500ms의 SSH 지연을 통해 발견했습니다.
make setup # install/preflight checks (Multipass or Docker, tcpdump, etc.)
make lab1 # inspection sandbox
make lab2 # build the isolated 3-VM detonation network, then: multipass shell analyst
make clean # tear everything down, purge VMs / pcaps / generated keys
사전 요구 사항 및 각 실습 안내는 docs/에 있습니다.
sshd는 루프백/내부 브리지에만 바인딩되며, 게스트가 인터넷에 연결될 수 있으면 실습 실행을 거부합니다.MIT.