2021년 9월 21일 화요일(EST 기준), VMware는 원격 코드 실행을 할 수 있는 vCenter Server의 파일 업로드 취약점인 CVE-2021-22005에 대한 보안 권고(VMSA-2021-0020) 를 발표하였습니다. CVE-2021-22005는 CVSS(v3) 9.8점으로 평가되었습니다.
CVE-2021-22005 취약점은 세션 토큰을 처리하는 방식으로 인해 발생합니다. 공격이 성공하면 vCenter Server의 포트 443번을 통해 네트워크 액세스 권한이 있는 공격자가 이를 악용하여 악성 파일을 업로드할 수 있습니다. 또한 vCenter Server에서 임의의 코드를 실행할 수 있습니다. CVE-2021-22005 취약점은 vCenter Server의 구성 설정에 관계없이 네트워크를 통해 vCenter Server에 접근할 수 있는 모든 사용자가 액세스할 수 있습니다.
이에 VMware는 CVE-2021-22005 취약점에 대한 세부 정보를 요약한 FAQ를 게시하였으며, vCenter Server를 즉시 패치할 것을 권고하였습니다.
9월 22일 오전, 사이버 위협인텔리전스를 제공하는 Bad Packets은 VMware가 보안 권고를 발표한 지 불과 몇 시간 만에 116.48.233[.]234에서 허니팟을 통한 공격자의 scanning 활동을 탐지했다고 밝혔습니다.
[그림 1] CVE-2021-22005 스캔 작업 탐지 (출처 : Bad Packets 트위터)
영향을 받는 제품
- vCenter Server 버전 6.7 및 7.0 - 클라우드 기반 (vCenter Server) 3.x / 4.x |
해결 방법
VMware에서는 공식 업데이트를 배포하기 전까지 CVE-2021-22005 취약점에 대한 임시 해결 방법을 제공하고 있습니다.
1. “VMSA-2021-0020” 스크립트를 통한 해결 방법
“VMSA-2021-0020” 스크립트는 취약한 vCenter Server 및 PSC appliance에서만 실행해야 합니다. 해당 스크립트는 “https://kb.vmware.com/s/article/85717”에 첨부되어 있는 VMSA-2021-0020.py 파일을 다운로드하면 됩니다.
(1) SSH 세션 및 루트 자격 증명을 사용하여 vCSA에 연결합니다.
(2) 파일을 복사한 디렉토리의 내용을 나열하여 성공적으로 복사되었는지 확인합니다.
>> ls-al /var/tmp/
(3) 아래의 명령 중 하나를 입력하여 스크립트를 실행하고, 파일의 경로를 적절하게 변경합니다. 사용할 파이썬 버전은 vCenter Server 버전에 따라 다르지만, 스크립트는 python, python3.5, 또는 python 3.7로 실행할 수 있습니다.
>> python /var/tmp/VMSA-2021-0020.py
>> python3.5 /var/tmp/VMSA-2021-0020.py
>> python3.7 /var/tmp/VMSA-2021-0020.py
(4) 스크립트가 실행되면,
a. 수정되지 않은 ph-web.xml의 백업을 만듭니다.
b. ph-web.xml 파일을 업데이트 합니다.
c. 업데이트된 ph-web.xml의 백업을 생성합니다.
d. 분석 서비스를 다시 시작합니다.
e. appliance가 더 이상 취약하지 않은지 확인합니다.
[그림 2] python 3.5로 실행된 VMSA-2021-0020 스크립트 (출처 : VMware)
2. 수동 해결 방법
(1) SSH 세션 및 루트 자격 증명을 사용하여 vCSA에 연결합니다.
(2) ph-web.xml 파일을 백업합니다.
>> cp /etc/vmware-analytics/ph-web.xml /etc/vmware-analytics/ph-web.xml.backup
(3) 백업한 파일의 내용은 [그림 3]과 같습니다.
>> vi /etc/vmware-analytics/ph-web.xml
[그림 3] 백업한 ph-web.xml 파일의 내용 (출처 : VMware)
(4) [그림 4]와 같이 키보드에서 “i”를 눌러 Insert 모드로 들어간 뒤, “” 행으로 이동합니다.
[그림 4] ph-web.xml 파일에서 행으로 이동 (출처 : VMware)
(5) [그림 5]와 같이 Enter를 친 후, “”를 입력합니다.
(8) “Esc” 버튼을 눌러 Insert 모드를 종료하고, “:wq” 입력 후 Enter를 눌러서 파일을 저장 및 종료합니다.
(9) VMware 분석 서비스를 다시 시작합니다.
>> service-control --restart vmware-analytics
(10) 아래의 명령을 실행하여 해결 방법이 적용되었는지 테스트합니다. 이때 404 오류를 반환해야 합니다.
curl -X POST "http://localhost:15080/analytics/telemetry/ph/api/hyper/send?_c&_i=test" -d "Test_Workaround" -H "Content-Type: application/json" -v 2>&1 | grep HTTP |
(출처 :
https://securityaffairs.co/wordpress/122454/security/vmware-vcenter-server-cve-2021-22005.html
https://www.rapid7.com/blog/post/2021/09/21/critical-vcenter-server-file-upload-vulnerability-cve-2021-22005/
https://www.vmware.com/security/advisories/VMSA-2021-0020.html
https://kb.vmware.com/s/article/85717
)
보안관제센터 Team MIR