Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

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에서 실행할 수 있는 스크립트를 간략히 설명합니다.

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Instructions

Apache Software Foundation은 GitHub 권고 데이터베이스(CVE-2021-44228, CVE-2021-45046CVE-2021-4104에도 자세히 설명되어 있음)에 따라 Log4Shell로 알려진 중요한 Apache Log4j 라이브러리 원격 코드 실행 취약성 문제에 대한 정보를 게시했습니다. VxRail Manager는 이 취약성에 설명된 문제에 노출되어 있습니다.

참고: 두 개의 추가 CVE(CVE-2021-45046 및 CVE-2021-4104)가 보고되었으며 이는 CVE-2021-44228(Log4j 2.x)에 설명된 문제를 해결하기 위한 원래 권장 사항이 완전한 해결 방법이 아님을 나타냅니다.

이러한 CVE에 대한 자세한 내용은 다음 문서를 참조하십시오.

참고: 이 문서의 스크립트는 세 가지 CVE(CVE-2021-44228, CVE-2021-45046, CVE-2021-4104) 모두에 권장되는 문제 해결을 포함하는 버전 1.1.2로 업데이트되었습니다.

이전 스크립트에서 추가 문제가 발견되었으며 이로 인해 영향을 받는 파일이 시스템 아카이브에서 VxRail Manager에 복원될 수 있습니다. 해당 문제는 이 릴리스에서도 해결되었습니다.

이 문서와 함께 제공된 이전 스크립트를 사용한 경우 최신 스크립트(1.1.2)를 다운로드하고 VxRail Manager에서 실행하여 완전한 수정 사항이 있는지 확인합니다.

 

요구 사항 및 범위

이 문서의 문제 해결 단계에서 다루는 범위는 다음과 같습니다.

  • 이 문서는 VxRail 4.5.x, 4.7.x 및 7.0.x 릴리스의 VxRail Manager와 VCF 3.x 및 4.x 릴리스의 VxRail Manager에 적용됩니다.
  • 제공된 스크립트 및 문제 해결 단계는 VxRail Manager 어플라이언스 VM의 취약성만 해결합니다.
  • vCSA(vCenter Server Appliance), NSX 등과 같은 VxRail Manager 외부의 다른 구성 요소는 취약성을 별도로 완화해야 하며 이 스크립트에는 포함되어 있지 않습니다.
  • 또한 이 스크립트는 취약성에 노출될 수 있는 VM 내에서 실행되는 애플리케이션 또는 서비스의 문제를 해결하지 않습니다. Dell EMC는 모든 고객이 해당 애플리케이션 또는 소프트웨어 공급업체에 VM에서 실행되는 서비스가 영향을 받지 않는지 확인할 것을 권장합니다.

영향을 받는 VMware 제품 및 잠재적인 해결 방법에 대한 링크는 다음 VMware VMSA 문서에 자세히 설명되어 있습니다.

VMware는 다음 문서에서 vCenter Server Appliance의 문제 해결을 자동화하는 스크립트를 제공합니다.

이 문서에는 VxRail Manager 전용 스크립트가 포함된 fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip 파일이 첨부되어 있습니다.
 

수정 사항이 포함된 VxRail 릴리스

이 문제는 다음 VxRail 소프트웨어 릴리스에서 해결되었습니다.

  • VxRail 패키지 소프트웨어 7.0.320
  • VxRail 어플라이언스 소프트웨어 4.7.541
  • VxRail 어플라이언스 소프트웨어 4.5.471

수정 사항이 포함된 VxRail 소프트웨어 릴리스로 업그레이드하는 것이 좋습니다.
이 스크립트는 즉시 업그레이드할 수 없는 고객에게 권장됩니다.

참고: VxRail 7.0.xxx 클러스터가 고객 관리 vCenter에 의해 관리되는 경우 적용될 수 있는 추가 고려 사항은 다음 문서를 참조하십시오.

 

문제 해결 단계

문제를 해결하려면 다음 단계를 수행합니다.
  1. 이 문서에 첨부된 fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip 파일을 다운로드합니다.
  2. SCP를 통해 mystic 사용자를 사용하여 .zip 파일을 VxRail Manager에 업로드합니다(WinSCP는 사용할 수 있는 SCP 클라이언트의 예시).
  3. mystic 사용자를 사용하여 VxRail Manager VM 콘솔 또는 SSH에 로그인합니다. 
  4. .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
  5. chmod 명령을 사용하여 스크립트를 실행할 수 있도록 합니다.
    mystic@vxrm:~> chmod +x fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
  6. su 명령을 사용하여 VxRail Manager 루트 사용자로 로그인합니다.
    mystic@vxrm:~> su -
    비밀번호:
  7. 스크립트 패키지의 압축을 푼 디렉토리와 동일한 디렉토리에 있는지 확인합니다.
    vxrm:~ # cd /home/mystic
    vxrm:/home/mystic #
  8. 다음 스크립트를 실행합니다.
    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의 문제 해결을 모두 구현해야 합니다.


VMware 제품 및 수정 사항에 대한 해결 방법을 설명하는 VMware 문서 링크는 VxRail: Log4Shell(CVE-2021-44228) 및 VxRail 환경에 대한 정보에서 찾을 수 있습니다.
 

검증 단계

이 스크립트는 이 문제를 해결하기 위해 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

샘플 출력(업데이트된 시스템):
/mystic/connectors/eservice/lib/log4j-core-2.13.0.jar
/mystic/connectors/cluster/lib/log4j-core-2.13.0.jar
/usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.0.jar


위 예제에서는 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")}'

샘플 출력:
unzip -l /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar|grep JndiLookup.class
unzip -l /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar|grep JndiLookup.class
unzip -l /usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.0.jar|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 #

vxrm:/home/mystic # unzip -l /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar|grep JndiLookup.class
vxrm:/home/mystic #

vxrm:/home/mystic # unzip -l /usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.0.jar|grep JndiLookup.class
vxrm:/home/mystic #


위의 예에서는 JndiLookup.class 파일이 jar에 존재하지 않으므로 스크립트가 작동하고 검증에 성공한 것입니다.

참고: 위의 샘플 출력에서 jar 파일 이름은 사용 중인 VxRail Manager 버전에 따라 다를 수 있습니다. 위의 find 명령에서 받은 샘플 출력을 사용합니다. 

여전히 영향을 받고 있는 jar 파일에 영향을 받는 JndiLookup.class 파일이 포함된 출력의 예:

vxrm:/home/mystic # unzip -l /mystic/connectors/cluster/lib/log4j-core-2.4.1.jar |grep JndiLookup.class
2576 2015-10-08 17:50 org/apache/logging/log4j/core/lookup/
JndiLookup.class

위 예제에서 영향을 받는 JndiLookup.class 파일은 여전히 log4j-core-2.4.1.jar 파일에 있습니다.

 

 참고: VxRail을 완전히 완화하려면 VMware의 vCSA(vCenter Server Appliance) 해결 방법과 이 스크립트에 의해 수행하는 VxRail Manager의 문제 해결을 모두 구현해야 합니다.

Article Properties


Affected Product

VxRail, VxRail Appliance Family, VxRail Appliance Series, VxRail Software

Last Published Date

30 Aug 2022

Version

18

Article Type

How To