
CVE-2021-44228 (Log4j RCE 취약점)에 대한 해결 방법을 제공하는 빌드팩
이 프로젝트는 원격 코드 실행을 초래하는 Log4j 익스플로잇인 CVE-2021-44228에 대한 우회 조치로 CNCF 빌드팩을 생성하는 방법을 보여줍니다.
이 빌드팩을 사용하면 모든 Java 앱에 대해 이 익스플로잇에 대한 우회 조치를 적용할 수 있습니다. 이 우회 조치는 JVM 시스템 속성 log4j2.formatMsgNoLookups 값을 true로 설정하여 로그 포맷을 간단히 비활성화합니다.
장기적인 해결책으로는 Log4j 2.15.0+로 앱을 업데이트해야 합니다.
이 프로젝트를 프로덕션 워크로드에 사용하지 마십시오. 교육 목적으로만 제공됩니다!
Java 앱을 빌드할 때 이 빌드팩을 포함하십시오:
pack build myrepo/myapp -b ghcr.io/alexandreroman/cve-2021-44228-workaround-buildpack -b paketo-buildpacks/java
이 저장소에는 Log4j(RCE 익스플로잇 포함)를 활용하는 간단한 Java 앱이 포함되어 있습니다. 빌드팩으로 이 앱을 빌드하십시오:
pack build myrepo/myapp -p app -b ghcr.io/alexandreroman/cve-2021-44228-workaround-buildpack -b paketo-buildpacks/java
이제 이 앱을 실행할 수 있습니다:
docker run --rm -p 8080:8080 myrepo/myapp
...
2021-12-10 18:58:03.234 INFO 77965 --- [ main] f.a.c.Application : Is Log4j2 workaround for CVE-2021-44228 enabled? true
Kubernetes 클러스터 내에서 컨테이너 이미지를 빌드하기 위해 kpack을 사용하는 경우, 다음 단계를 적용해야 합니다:
ClusterStore에 빌드팩 ghcr.io/alexandreroman/cve-2021-44228-workaround-buildpack을 추가합니다.ClusterBuilder 또는 Builder에서 이 빌드팩을 사용합니다.VMware Tanzu Build Service를 사용하는 경우, 다음 명령어를 사용하여 ClusterStore에 빌드팩을 추가할 수 있습니다:
kp clusterstore add default -b ghcr.io/alexandreroman/cve-2021-44228-workaround-buildpack
그런 다음 Tanzu Build Service로 빌더에 빌드팩을 추가합니다:
kp clusterbuilder patch mybuilder -b tanzu-buildpacks/java -b alexandreroman/cve-2021-44228-workaround-buildpack
그러면 빌더를 참조하는 모든 컨테이너 이미지가 Log4j RCE 익스플로잇에 대한 우회 조치를 포함하여 다시 빌드됩니다.
즐기세요!
기여는 언제나 환영합니다!
언제든지 이슈를 열고 PR을 보내주세요.
Copyright © 2021 VMware, Inc. or its affiliates.
이 프로젝트는 Apache 소프트웨어 라이선스 버전 2.0에 따라 라이선스가 부여됩니다.