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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
leaky-vessels-dynamic-detector — eBPF 기반 런타임 탐지기로, runc 및 Docker의 컨테이너 탈출 취약점을 모니터링하며, 빌드 및 런타임 중 CVE-2024-21626, CVE-2024-23651, CVE-2024-23652, CVE-2024-23653의 악용을 탐지하기 위해 syscall과 Docker 데몬 호출을 감시합니다. | Kitploit
도구/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
Defensive ToolsContainer SecurityDynamic Analysis (Sandboxing)Vulnerability AnalysisCloud SecurityIntrusion DetectionArchived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

eBPF 기반 런타임 탐지기로, runc 및 Docker의 컨테이너 탈출 취약점을 모니터링하며, 빌드 및 런타임 중 CVE-2024-21626, CVE-2024-23651, CVE-2024-23652, CVE-2024-23653의 악용을 탐지하기 위해 syscall과 Docker 데몬 호출을 감시합니다.

저장소 보기
10581년 전Kitploit 검토 완료

경고

이 저장소는 현재 보관(archive)되었습니다.

코드에 대한 더 이상의 업데이트는 이루어지지 않으며, 이 공지를 읽는 시점에는 코드가 안전하지 않거나 손상되었을 수도 있습니다. 역사적 목적으로만 간주하고 주의해서 취급하시기 바랍니다.

Leaky Vessels 동적 탐지기

snyk-oss-category

이 저장소에서는 runc 및 Docker 취약점 CVE-2024-21626, CVE-2024-23651, CVE-2024-23652, CVE-2024-23653에 대한 eBPF 기반 런타임 탐지의 참조 구현을 찾을 수 있습니다. 이 도구는 Linux 시스템 호출(예: chdir, mount)과 Docker 데몬의 함수 호출을 후킹(hook)하여 이를 Docker 빌드 및 컨테이너 프로세스와 연관시켜 이러한 취약점의 악용을 식별합니다. 정적 분석 기반 접근 방식은 이곳을 참조하십시오.

runc process.cwd 및 유출된 fd 컨테이너 탈출 [CVE-2024-21626]

CVE-2024-21626은 runc 컨테이너 런타임의 취약점으로, 공격자가 컨테이너 격리를 벗어나 조작된 이미지를 통해 WORKDIR 명령어 처리의 문제를 악용하여 호스트에서 완전한 루트 RCE를 달성할 수 있게 합니다. 호스트에 대한 일부 파일 디스크립터가 열리고 닫히는 사이에 "경쟁(race)" 조건이 존재하므로, 공격자는 WORKDIR /proc/self/fd/[ID](여기서 ID는 시스템 종속 파일 디스크립터) 명령어가 포함된 Dockerfile을 생성하여 기본 호스트 머신의 파일 시스템을 가리키게 할 수 있습니다. 이는 다음 상황에서 악용될 수 있습니다:

  1. docker build - 두 가지 경우:
    • 빌드 중인 Dockerfile에 악용을 트리거하는 명령어가 포함된 경우.
    • 빌드 중인 Dockerfile이 ONBUILD 명령어(예: ONBUILD WORKDIR /proc/self/fd/[ID])를 포함하는 기본 이미지를 FROM 명령어로 참조하는 경우. ONBUILD 명령어는 해당 명령어를 포함하는 이미지가 아닌, 이를 기본 이미지로 사용하는 이미지에 명령어를 주입합니다. 즉, 기본 이미지가 손상되었거나 의도적으로 악의적인 경우(예: Dockerhub 또는 기타 공용 컨테이너 레지스트리에 호스팅된 경우), docker build 명령어가 실제로 빌드하는 이미지에 아무런 변경이 없더라도 악용이 가능합니다.
  2. docker run

따라서 이 취약점은 빌드 시스템과 프로덕션 환경 모두를 위험에 빠뜨릴 수 있습니다.

Buildkit 마운트 캐시 경쟁: 빌드 시점 경쟁 조건 컨테이너 탈출 [CVE-2024-23651]

CVE-2024-23651은 Docker의 취약점으로, RUN 명령어가 --mount=cache 플래그를 사용할 때 발생합니다. Docker 데몬 호스트에 source 디렉터리가 존재하는지 확인하는 시점과 실제 mount 시스템 호출 사이에 TOCTOU(time-of-check/time-of-use) 취약점이 존재합니다. 공격자는 이 두 호출 사이에 심볼릭 링크를 설치하는 Dockerfile을 제작하여 임의의 바인드 마운트를 유도하고, 결과적으로 호스트에서 완전한 루트 RCE를 달성할 수 있습니다. 이 취약점은 docker build 명령어에만 영향을 미칩니다.

Buildkit GRPC SecurityMode 권한 검사 [CVE-2024-23653]

CVE-2024-23653은 Docker의 취약점으로, # syntax 지시어와 함께 사용자 정의 Buildkit LLB 생성기를 사용할 때 발생합니다. 생성기는 Client.NewContainer 및 Container.Start GRPC 호출을 사용하여 빌드 중에 새 컨테이너를 실행할 수 있습니다. StartRequest.SecurityMode 인자는 Docker 데몬 또는 docker build 호출의 권한 기대치에 대해 적절히 검사되지 않으므로, GRPC 호출자가 빌드 중에 권한 있는(privileged) 컨테이너를 생성할 수 있습니다. 이 새 권한 있는 컨테이너는 이후 탈출하여 빌드 호스트에서 완전한 루트 RCE를 얻는 데 사용될 수 있습니다. 이 취약점은 docker build 명령어에만 영향을 미칩니다.

Buildkit 빌드 시점 컨테이너 종료 시 임의 삭제 [CVE-2024-23652]

CVE-2024-23652는 Docker의 임의 삭제 취약점입니다. Dockerfile에서 RUN --mount를 사용할 때 마운트 대상이 존재하지 않으면 해당 환경을 위해 생성됩니다. 실행이 완료되면 생성된 디렉터리는 정리됩니다. 실행 중인 명령어가 마운트에 사용된 경로를 심볼릭 링크로 변경하면, 정리 절차가 이 심볼릭 링크를 따라가 호스트 루트 파일 시스템의 임의 디렉터리를 잠재적으로 정리할 수 있습니다. 이 취약점은 docker build 명령어에만 영향을 미칩니다.

설치 및 사용법

빌드 시점 eBPF 탐지

빌드 시점 탐지는 4가지 취약점 모두에 적용됩니다.

  1. 탐지기 바이너리를 컴파일합니다: GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. eBPF에 필요한 대로 빌드 환경에서 sudo를 사용하여 컴파일된 바이너리를 백그라운드로 실행합니다(예: sudo ebpf-detector &).
  3. 취약점 중 하나의 악용이 감지되면 해당 CVE, 취약점 이름 및 추가 포렌식 정보와 함께 Leaky vessels vulnerability detected가 STDOUT에 출력됩니다.

Kubernetes 런타임 eBPF 탐지

런타임 탐지는 WORKDIR 취약점(CVE-2024-21626)에만 적용됩니다.

  1. 제공된 Dockerfile을 사용하여 탐지기의 컨테이너 이미지를 빌드하고 이미지 레지스트리에 푸시합니다.
  2. detector.yaml의 image 값(TODO로 표시됨)을 채웁니다.
  3. kubectl apply -f detector.yml을 실행하여 Kubernetes 클러스터에서 탐지기를 DaemonSet으로 실행합니다.
  4. WORKDIR 취약점 악용이 감지되면 DaemonSet 포드 로그에 Leaky Vessels vulnerability detected가 출력됩니다.

테스트

단위 테스트는 eBPF에 의존하므로 sudo로 실행해야 합니다: sudo go test ebpf-detector/....

제한 사항

  • 루트 액세스 / 권한 있는(privileged) 모드로 컨테이너 실행 필요(eBPF에 필요).
  • 런타임 WORKDIR 악용(CVE-2024-21626)은 컨테이너 초기화 중에 발생하므로 실행 중인 컨테이너에서는 감지되지 않습니다. 또한 탐지는 컨테이너 런타임이 containerd라고 가정합니다.
  • Buildkit 마운트 캐시 경쟁(CVE-2024-23651) 및 Buildkit 빌드 시점 컨테이너 종료 시 임의 삭제(CVE-2024-23652) 탐지는 타이밍 기반이며 경쟁 조건으로 인해 오탐(false negative)이 발생할 수 있습니다.
  • 다음 환경에서 테스트되었습니다:
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu 및 Alpine Linux, AMD64)
    • EKS (Ubuntu 및 Alpine Linux, AMD64) - EKS 버전 >= 1.25 지원
    • Ubuntu 22.04 (ARM64)

이슈

버그 및 이슈의 최신 목록은 프로젝트 이슈를 참조하십시오.

기여

기여는 환영합니다. 자세한 내용은 CONTRIBUTING.md를 참조하십시오.

라이선스

Leaky Vessels 동적 탐지기는 Apache-2.0 라이선스 하에 있습니다. 자세한 내용은 LICENSE를 참조하십시오.

도구 다운로드