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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kubernetes-log4j-cve-2021-44228-node-agent — 모든 컨테이너와 호스트 JVM에서 JNDI 조회를 비활성화하여 Log4j2 CVE-2021-44228을 완화하는 JVM 수준 핫패치를 배포하는 Kubernetes DaemonSet입니다. | Kitploit
도구/GitHubGitHub/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent
Vulnerability ScannersContainer SecurityVulnerability AnalysisCloud SecurityDevSecOpsIncident ResponseArchived
GitHubaws-samples/kubernetes-log4j-cve-2021-44228-node-agent

kubernetes-log4j-cve-2021-44228-node-agent

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

모든 컨테이너와 호스트 JVM에서 JNDI 조회를 비활성화하여 Log4j2 CVE-2021-44228을 완화하는 JVM 수준 핫패치를 배포하는 Kubernetes DaemonSet입니다.

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

!!!! 폐기 공지 !!!!

이 프로젝트는 아래에 설명된 대로 폐기됩니다.

  • 2023-01-01 - 이 저장소는 더 이상 업데이트되지 않습니다.
  • 2023-04-01 - 이 저장소는 영구적으로 폐기됩니다.

해당 프로젝트는 2023-01-01부터 이슈를 접수하지 않으며 업데이트되지 않습니다. 그 이후로 이 프로젝트는 지원되지 않으며, 이 프로젝트와 관련된 새로운 릴리스나 아티팩트는 생성되지 않습니다.

해당 프로젝트 저장소는 2023-04-01부터 영구적으로 보관(읽기 전용)됩니다.

원래 프로젝트 문서에 명시된 바와 같이, 이는 Kubernetes 사용자를 지원하기 위한 임시 조치였으며 Log4j2 CVE-2021-44228 및 CVE-2021-45046의 보안 노출에 대한 부분적인 완화만 제공했습니다. Log4j 사용자는 모든 위험을 완전히 완화하기 위해 패치된 버전의 프로젝트로 업데이트하는 것이 강력히 권장됩니다.

그래도 이걸 사용하고 싶다면 어떻게 하나요?

최신 릴리스와 관련된 릴리스 아티팩트는 이 프로젝트를 계속 Kubernetes 환경에 배포하는 사용자를 위해 영구적으로 사용할 수 있습니다. 특히 DaemonSet 매니페스트 및 ECR Public 컨테이너 이미지는 폐기 후에도 계속 사용할 수 있지만 더 이상 지원되거나 업데이트되지 않습니다.

Apache Log4j2 CVE-2021-44228 노드 에이전트

AWS는 Log4j2 라이브러리에서 JNDI 조회를 비활성화하여 Log4j2 CVE-2021-44228 및 CVE-2021-45046을 완화하는 JVM 수준 핫패치를 수행하는 RPM을 개발했습니다.

Apache Log4j2 CVE-2021-44228 노드 에이전트는 AWS의 Kubernetes 팀이 구축한 오픈 소스 프로젝트입니다. DaemonSet으로 실행되어 Log4j2 CVE-2021-44228의 영향을 완화하도록 설계되었습니다. 이 취약점은 신뢰할 수 없는 소스의 입력을 처리할 때 Apache Log4j2 버전 < 2.15.0을 실행하는 애플리케이션에 영향을 미칩니다. 이 DaemonSet을 실행하면 호스트뿐만 아니라 컨테이너에서 실행되는 JVM도 패치됩니다.

기능: 실행 중인 JVM을 찾아 Log4J2 CVE를 완화하는 에이전트를 주입하는 프로세스가 모든 작업자 노드에 cron 항목으로 설치됩니다. 컨테이너에서 실행되는 JVM을 포함한 모든 JVM이 이러한 방식으로 핫패치됩니다. 현재 핫패치 프로세스는 30분마다 15분의 지터로 실행되도록 구성되어 있습니다. 효과적인 실행 간격은 15분에서 45분 사이가 될 수 있습니다.

참고: Log4j2 취약점 및 AWS 대응에 대한 추가 정보는 AWS 보안 게시판에서 확인할 수 있습니다.

참고: 2022년 4월 20일, 이미지(v0.0.16)가 Amazon Linux 1 및 2 최신 패치로 업데이트되었습니다. 이전 버전의 DaemonSet을 설치했고 여전히 실행 중인 경우, daemonset.yaml 파일을 다시 적용하여 최신 RPM을 설치해야 합니다. 더 이상 log4j 패치가 필요하지 않은 경우 DaemonSet을 삭제하고 RPM을 제거해야 합니다. 이전 버전의 RPM(< 1.1-16)에는 공격자가 컨테이너에서 탈출하여 기본 호스트에 액세스할 수 있는 취약점이 있었기 때문입니다.

참고: 버전 1.3-5는 ALAS2-2022-1806 및 ALAS-2022-1601을 해결합니다. 자세한 내용은 Amazon Linux "log4j hotpatch" <1.3-5 local privilege escalation to root를 참조하세요.

설치 지침

  1. 매니페스트를 적용합니다:
root@kitploit:~
kubectl apply -f https://raw.githubusercontent.com/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent/main/daemonset.yaml
  1. DaemonSet 파드 중 하나 이상의 로그를 확인합니다.

단일 파드를 점검합니다:

root@kitploit:~
kubectl get pods -l job=node-patch-installer -n node-configuration-daemonset
root@kitploit:~
kubectl logs <pod-name> -c node-patch-installer -n node-configuration-daemonset

또는 모든 노드에 대한 확인을 얻습니다:

root@kitploit:~
kubectl logs -l job=node-patch-installer -c node-patch-installer -n node-configuration-daemonset | grep 'installed'

설치가 성공하면 로그 파일의 마지막 줄에 installed and verified가 표시되고, 그렇지 않으면 오류가 기록됩니다.

고려 사항

  • 이 프로젝트는 모든 Java 기반 Kubernetes 애플리케이션에서 Log4j2 종속성을 최소 Log4j 버전 2.15.0으로 업데이트할 때까지 사용할 수 있는 임시 최선의 완화 조치입니다. 이 에이전트를 장기적인 완화 조치로 의존하지 마십시오. 이 도구는 종속성 업데이트가 즉시 불가능할 때 위험을 완화하는 데 도움이 될 수 있습니다.
  • DaemonSet은 Amazon Linux(AL), Amazon Linux 2(AL2) 및 Ubuntu와 같은 Debian Linux 배포판에서 지원됩니다. Bottlerocket은 셸이나 패키지 관리자가 포함되어 있지 않아 지원되지 않습니다. Bottlerocket에서 log4j를 실행하는 경우 CVE는 Hotdog에 의해 해결됩니다.
  • DaemonSet은 AWS Fargate에서 실행되지 않으므로 Amazon EKS 클러스터의 Fargate에서 실행되는 파드는 이 에이전트에 의해 패치되지 않습니다.
  • 기본 실행 빈도가 30분이므로 에이전트는 장기 실행 컨테이너에 더 적합합니다.
  • RPM은 다음 Java 배포판에서만 작동합니다:
    • Credo
    • Corretto
    • OpenJDK
  • 작업자 노드가 인터넷에 연결되지 않은 샌드박스 환경에 있는 경우, ECR에서 이미지를 가져와 프라이빗 레지스트리로 푸시할 수 있습니다. 또는 이미지 디렉터리의 makefile을 수정하여 결과 이미지를 빌드하고 프라이빗 레지스트리로 푸시할 수 있습니다. daemonset.yaml 파일에서 DaemonSet의 spec.template.spec.initContainers.image를 새 URI:tag로 편집한 다음 매니페스트를 클러스터에 적용합니다.

CVE-2021-44228 정보

Apache Log4j2 < 2.15.0의 JNDI 기능은 구성, 로그 메시지 및 매개변수에 사용될 때 공격자가 제어하는 LDAP 및 기타 JNDI 관련 엔드포인트로부터 보호하지 않습니다. 로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체가 활성화된 경우 LDAP 서버에서 로드된 임의 코드를 실행할 수 있습니다. Log4j2 버전 < 2.15.0에서는 이 동작이 기본적으로 비활성화되었습니다. 전체 내용은 CVE 게시판에서 확인할 수 있습니다.

Log4j2 취약점에 대한 추가 정보는 AWS 보안 게시판에서 확인할 수 있습니다.

작동 방식

AWS는 Log4j2 라이브러리에서 JNDI 조회를 비활성화하는 JVM 수준 핫패치를 수행하는 RPM을 개발했습니다. 이는 호스트의 JVM과 컨테이너에서 실행되는 JVM 모두에 적용되어 Log4j2 문제를 완화합니다. 이 프로젝트는 RPM을 Kubernetes DaemonSet으로 패키징합니다.

설치되면 모든 작업자 노드에서 실행 중인 JVM을 찾아 JVM에 에이전트를 주입하여 Log4j2 취약점을 완화하는 프로세스가 실행됩니다. 에이전트는 로드된 모든 org.apache.logging.log4j.core.lookup.JndiLookup 인스턴스의 lookup() 메서드를 패치하여 조건 없이 문자열 Patched JndiLookup::lookup()을 반환하도록 시도합니다. 이는 Java 프로세스를 다시 시작하지 않고 Log4j2의 CVE-2021-44228 원격 코드 실행 취약점을 해결하기 위해 설계되었습니다.

이 프로세스는 기본적으로 30분마다 실행되도록 구성되어 있으며, 아직 업데이트된 Log4j2 종속성으로 패치되지 않은 애플리케이션이 있는 클러스터에 보호 계층을 추가합니다.

핫패치에 대한 자세한 내용은 AWS 오픈 소스 블로그에서 확인할 수 있습니다.

컨테이너 이미지는 aws-containers ECR Public 저장소에서 호스팅됩니다.

도구 다운로드