[ Datadog ] Java 어플리케이션 대상 Datadog SSI Injector 관련 취약점 공지

인쇄

Java 어플리케이션에 Datadog APMDatadog Single Step Instrumentation(SSI)를 사용하여 구성한 경우에 대한 취약점 발견되어 안내 드립니다.


datadog-apm-inject 인젝터 버전 0.66.0 미만을 사용하는 경우 로컬 권한 상승 취약점을 유발할 수 있다고 합니다.

Datadog에서 안내한 방법을 참고하여 datadog-apm-inject 인젝터를 0.66.0+ 이상으로 적용하시기 바랍니다.

 

운영 중인 ORG에 취약 대상이 포함됐는지 확인하는 방법에 대해 추가적인 안내를 드리면 다음과 같습니다.

 

  1. Java 어플리케이션에 APM을 적용 중인지 확인

메뉴: APM > Software Catalog > Services 메뉴의 조회 창에서 ‘language:jvm’으로 조회하여 대상 확인

  1. 위에 해당하면 아래 메뉴를 통해서 Datadog Single Step Instrumentation(SSI) 사용 여부를 확인

메뉴: Integrations > Fleet Automation > Fleet View 메뉴의 조회 창에서 ‘single_step_instrumentation:enabled’으로 조회하여 대상 확인

  1. 1~2에 해당하면 Datadog에서 안내한 방법(박스 내용)을 참고하여 상세 확인(버전 확인 등후 해당하는 경우 조치 진행하시기 바랍니다. 


[ Datadog의 안내 ]

안녕하세요,

이 커뮤니케이션은 Datadog SSI 인젝터(datadog-apm-inject)에서 발견된 취약점을 알려드리기 위한 것입니다.

공식 보안 공지(GHSA)가 게시되었고, CVE가 요청된 상태입니다. CVE가 할당되면 공지를 업데이트하겠습니다.

 

요약

 

귀 조직은 지난 30일 내에 Java 서비스와 함께 Datadog Single Step Instrumentation(SSI)을 사용했으며취약한 버전의 datadog-apm-inject 인젝터를 실행 중일 수 있어 이 알림을 수신하셨습니다.

datadog-apm-inject는 로컬 권한 상승 취약점을 유발할 가능성이 있습니다. 영향받는 버전에서는 Java 서비스 계측 중 크래시 훅 스크립트가 모두가 쓸 수 있는 /tmp 디렉터리에 기록됩니다.

호스트에 접근 가능한 로컬 내 비권한의 공격자가 이 스크립트를 수정하여, Java 프로세스의 권한으로 신뢰할 수 없는 코드를 실행할 수 있도록 권한 상승이 이어질 수 있습니다.

 

CVSS 4.0 점수: 7.5 – 높음

 

영향을 받았는지 확인하는 방법

아래 조건이 모두 참인 경우 영향을 받습니다:

  • Linux 또는 Kubernetes에서 Datadog Single Step Instrumentation이 활성화되어 있음(아래 상세)
  • Java 애플리케이션을 실행 중
  • SSI 인젝터(datadog-apm-inject버전이 0.66.0 미만

 

환경 별 Datadog Single Step Instrumentation(SSI)이 활성화되었는지 확인하는 방법

 

1. Kubernetes SSI는 클러스터 전체 또는 특정 네임스페이스/워크로드에 범위 지정되어 활성화될 수 있습니다다음과 같이 구성을 확인하세요.

  • Helm다음 중 하나 이상에 해당하면 SSI가 활성화되어 있습니다.
  • datadog.apm.instrumentation.enabled: true로 설정
  • datadog.apm.instrumentation.enabledNamespaces에 네임스페이스 나열
  • datadog.apm.instrumentation.targets가 정의
  • Datadog Operator다음 중 하나 이상에 해당하면 SSI가 활성화되어 있습니다.
  • spec.features.apm.instrumentation.enabled: true
  • spec.features.apm.instrumentation.enabledNamespaces가 설정
  • spec.features.apm.instrumentation.targets가 정의

참고가장 신뢰할 수 있는 방법은 pod 단위로 확인하는 것입니다계측된 pod Datadog 인젝터를 가리키는 LD_PRELOAD 환경 변수가 설정되어 있습니다.

예시> # kubectl get pod -n <namespace> -o yaml | grep -A1 LD_PRELOAD

실행 값에 launcher.preload.so(path: /opt/datadog-packages/datadog-apm-inject 하위)가 포함되어 있으면 해당 pod SSI로 계측된 것입니다.

주의현재 클러스터 전체에서 인젝터 버전을 신뢰성 있게 판별하는 메커니즘은 없습니다. Java 워크로드에서 SSI를 실행 중인 경우완화 조치를 수행할 것을 권장합니다.

 

2. Linux:

/etc/ld.so.preload Datadog 인젝터가 참조되면 SSI가 활성화된 것입니다.

# grep launcher.preload.so /etc/ld.so.preload

설치된 인젝터의 버전은 다음으로 확인할 수 있습니다.

# cat /opt/datadog-packages/datadog-apm-inject/stable/version

이 파일이 없거나표기된 버전이 0.66.0 미만이면 영향을 받는 SSI 버전을 실행 중입니다.

 

Datadog의 취약점 해결 방안

해당 취약점 확인 즉시 Datadog datadog-apm-inject SSI 인젝터의 수정 버전(0.66.0+)을 릴리스하여영향받는 도구에서 모두 쓸 수 있는 /tmp 경로 사용을 제거함으로써 공격 가능성을 제거했습니다.

 

조치방법

Kubernetes(Helm)

  1. Datadog Helm 차트를 최신 릴리스(최신 권장)로 업그레이드하세요기본 인젝터 버전 스트림에 수정 사항이 반영되어 있습니다.
  2. 인젝터 이미지가 0.66.0 이전 버전으로 고정되어 있지 않은지 확인하세요. datadog.apm.instrumentation.injector.imageTag values에서 확인하세요.
  3. pod 배포를 점검하여더 오래된 인젝터를 고정(pinning)하는 pod levelannotation(admission.datadoghq.com/apm-inject.version 또는 admission.datadoghq.com/apm-inject.custom-image)이 있으면 제거하세요.
  4. 변경 사항을 적용하세요(helm upgrade).
  5. Java 애플리케이션 배포를 재시작하세요.

Kubernetes(Datadog Operator):

  1. Datadog Operator를 최신 릴리스(최신 권장)로 업그레이드하세요기본 인젝터 버전 스트림에는 이미 수정이 포함되어 있습니다.
  2. 인젝터 이미지가 v0.66.0보다 오래된 버전으로 고정되어 있지 않은지 확인하세요. spec.features.apm.instrumentation.injector.imageTag를 확인하세요.
  3. 포드 배포를 점검하여더 오래된 인젝터를 고정하는 포드 수준의 애너테이션(admission.datadoghq.com/apm-inject.version 또는 admission.datadoghq.com/apm-inject.custom-image)이 있으면 제거하세요.
  4. 변경 사항을 적용하세요(kubectl apply -f <file>.yaml).
  5. Java 애플리케이션을 재시작하세요.

Linux:

  1. Datadog Agent SSI 구성요소(인젝터 + SDK)를 최신 버전으로 업데이트하세요.
  2.  
  3. 설치된 인젝터 버전이 0.66.0 이상인지 확인하세요.

예시> # cat /opt/datadog-packages/datadog-apm-inject/stable/version

  1. Java 애플리케이션을 재시작하세요.

 

Workaround

즉시 업그레이드가 불가능한 경우:

  • Java 서비스를 실행하는 호스트 또는 컨테이너에 셸 접근 권한이 있는 다른 로컬 사용자가 없도록 하세요.
  • Kubernetes에서는 pod level의 파일시스템 격리를 적용하고동일한 노드의 pod 간 공유 tmp 볼륨을 피하세요.

 

업그레이드가 불가능하거나 다른 질문이 있으시면 Datadog Support로 문의해 주세요.

감사합니다.

 

온라인상담

문의하기

이 답변이 유용합니까? 아니오

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.