VxRail: Apache Log4Shell 취약성(CVE-2021-44228, CVE-2021-45046 및 CVE-2021-4104) 문제를 해결하기 위한 VxRail Manager 해결 방법
Summary:이 문서에서는 CVE-2021-44228, CVE-2021-45046 및 CVE-2021-4104(Dell 문서 DSN-2021-007, VMware 문서 VMSA-2021-0028)에 설명된 Apache Log4Shell 취약성을 해결하기 위해 VxRail Manager에서 실행할 수 있는 스크립트를 간략히 설명합니다.
Please select a product to check article relevancy
This article applies to This article does not apply toThis article is not tied to any specific product.Not all product versions are identified in this article.
이 문서에 첨부된 fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip 파일을 다운로드합니다.
SCP를 통해 mystic 사용자를 사용하여 .zip 파일을 VxRail Manager에 업로드합니다(WinSCP는 사용할 수 있는 SCP 클라이언트의 예시).
mystic 사용자를 사용하여 VxRail Manager VM 콘솔 또는 SSH에 로그인합니다.
.zip 파일을 업로드한 디렉토리로 변경하고 unzip 명령을 사용하여 압축을 풉니다. mystic@vxrm:~> unzip fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip Archive: fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip inflating: fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
chmod 명령을 사용하여 스크립트를 실행할 수 있도록 합니다. mystic@vxrm:~> chmod +x fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
su 명령을 사용하여 VxRail Manager 루트 사용자로 로그인합니다. mystic@vxrm:~> su - 비밀번호:
스크립트 패키지의 압축을 푼 디렉토리와 동일한 디렉토리에 있는지 확인합니다. vxrm:~ # cd /home/mystic vxrm:/home/mystic #
다음 스크립트를 실행합니다. vxrm:/home/mystic # ./fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
예제 스크립트 출력: Stop MARVIN and runjars service before patching the system
/mystic/connectors/eservice/lib/log4j-core-2.13.0.jar is affected by CVE-2021-44228 and CVE-2021-45046, need to apply patch patching /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar Successfully patched /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar
/mystic/connectors/cluster/lib/log4j-core-2.13.0.jar is affected by CVE-2021-44228 and CVE-2021-45046, need to apply patch patching /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar Successfully patched /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar
To ensure there is no reload behavior, we need to pack the .war file as well. looks like /usr/lib/vmware-marvin/marvind/webapps/ROOT.war contains the bad log4j-core library WEB-INF/lib/log4j-core-2.13.0.jar Archive: /usr/lib/vmware-marvin/marvind/webapps/ROOT.war inflating: WEB-INF/lib/log4j-core-2.13.0.jar Patching WEB-INF/lib/log4j-core-2.13.0.jar in /usr/lib/vmware-marvin/marvind/webapps/ROOT.war Repack /usr/lib/vmware-marvin/marvind/webapps/ROOT.war updating: WEB-INF/lib/log4j-core-2.13.0.jar (deflated 11%) Clean up the ROOT folder...
Always apply a reboot of MARVIN and runjars services restart MARVIN MARVIN restart successfully restart runjars runjars restart successfully
참고: 모든 파일을 수정하고 VxRail Manager 서비스를 시작하는 데 5~10분 정도 걸릴 수 있습니다.
아래의 수동 검증 단계를 수행하려면 최소 10분 정도 기다립니다.
VxRail Manager 릴리스에 따라 lib4j-core 라이브러리의 여러 버전이 있습니다.
스크립트는 VxRail Manager의 해당 버전에 포함된 lib4j-core 버전과 관계없이 VxRail Manager를 올바르게 수정하도록 설계되었습니다.
스크립트를 실행하여 얻은 위의 출력은 포함된 lib4j-core 버전에 따라 업데이트되는 여러 파일을 표시할 수 있습니다.
참고: 수정 사항이 포함되지 않은 다른 VxRail 빌드로 VxRail 업그레이드를 수행하는 경우 이 스크립트를 다시 실행하여 문제 해결을 다시 적용해야 합니다.
참고: VxRail을 완전히 완화하려면 VMware의 vCSA(vCenter Server Appliance) 해결 방법과 이 스크립트에 의해 수행되는 VxRail Manager의 문제 해결을 모두 구현해야 합니다.
이 스크립트는 이 문제를 해결하기 위해 lib4j-core-* jar 파일에서 JndiLookup.class 파일을 제거합니다.
jar 파일은 단일 파일에 여러 클래스, 메타데이터 및 기타 java 프로그램을 포함하기 위한 Java 패키징 형식입니다. 이 파일은 개념상 .zip 파일과 유사하며 .zip 형식을 기반으로 합니다. 스크립트 실행은 각 jar 파일이 성공적으로 업데이트되었는지 검증합니다.
스크립트가 작동했는지 수동으로 검증하려면 VxRail Manager에 있는 log4j-core-* jar 파일에 영향을 받는 JndiLookup.class 파일이 여전히 포함되어 있는지 확인하면 됩니다. 제대로 작동되었다면 영향을 받는 JndiLookup.class 파일이 jar 파일에 더 이상 없음을 확인하는 아래 명령에 대한 출력이 표시되지 않아야 합니다.
자동화된 명령을 통한 검증
다음 명령을 VxRail Manager에서 실행하여 VxRail Manager에 있는 모든 log4j-core-xxxx.jar 파일을 검사하고 영향을 받는 JndiLookup.class 파일이 포함되어 있는지 확인할 수 있습니다.
vxrm:/home/mystic # for myfile in `find / -name log4j-core*jar -print |grep -v log4jbak`; do echo $myfile; unzip -l $myfile | grep JndiLookup.class; done
위 예제에서는 JndiLookup.class 파일이 jar에 존재하지 않으므로 스크립트가 작동하고 검증에 성공한 것입니다.
아래는 업데이트가 필요한 영향을 받는 시스템의 샘플 출력입니다.
/mystic/connectors/eservice/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class /mystic/connectors/cluster/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class /usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class
위 예제에서 영향을 받는 JndiLookup.class 파일은 여전히 log4j-core-2.13.3.jar 파일에 있습니다.
각 파일의 수동 검사를 통한 검증
VxRail Manager에 있는 모든 log4j-core-xxxx.jar 파일을 빠르게 식별하려면 다음 명령을 실행합니다(이 명령은 출력 형식을 가용 명령으로 지정하기도 함).
vxrm:/home/mystic # find / -name log4j-core*jar -print |grep -v log4jbak | awk '{print("unzip -l " $1 "|grep JndiLookup.class")}'
위의 샘플 출력에서 각 명령을 수동으로 실행하여 영향을 받는 JndiLookup.class 파일을 감지하는지 확인합니다.
vxrm:/home/mystic # unzip -l /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar|grep JndiLookup.class vxrm:/home/mystic #