ESXiArgs 랜섬웨어 공격: 위험과 데이터 보호

일반적으로 랜섬웨어는 Windows를 실행하는 물리적 컴퓨터와 가상 머신에 공격을 가하고, 비교적 적게 macOS와 Linux에 공격을 가한다. 불행하게도 사이버 범죄자들은 새로 발견된 취약점을 통해 다른 운영 체제에 감염시킬 수 있는 새로운 버전의 랜섬웨어를 계속해서 개발하고 있다. 최근의 예로 ESXi 랜섬웨어 공격이 있었는데, 이는 ESXi 취약점을 악용하여 VMware 하이퍼바이저를 공격하여 전 세계의 기관들에게 심각한 가동 중지 시간을 야기했다.

이 블로그 게시물은 랜섬웨어 공격이 얼마나 위험한지, 랜섬웨어가 ESXi 호스트에 어떻게 감염될 수 있는지, 그리고 어떻게 랜섬웨어로부터 보호할 수 있는지를 설명합니다. 이는 ESXi Args 랜섬웨어를 포함한다.

ESXi 랜섬웨어 캠페인의 시작

ESXi 랜섬웨어 공격의 첫 사례는 2022년 10월에 VMware이 ESXi 6.5 및 6.7에 대한 일반 지원을 종료했을 때 등장했다. 많은 ESXi 호스트가 프랑스, 독일, 미국, 캐나다, 영국 등 다양한 국가에서 감염되었다. 2023년 2월에는 복구 방법이 없는 3,000개 이상의 감염된 ESXi 호스트가 암호화된 데이터를 가지고 있었다. ESXi 호스트를 공격한 랜섬웨어의 이름은 ESXiArgs, Royal, Cl0p이다. 또한, RansomEXX, Lockbit, BlackBasta, Cheerscrypt, Hive, RedAlert/N13V 등과 같은 새로운 ESXi 랜섬웨어 가족들이 등장했다.

ESXi 호스트는 공격자들에게 매력적입니다. 왜냐하면 서버 가상화가 더 인기를 얻고 있고, 많은 기관들이 가상 머신을 본사 환경으로 사용하고 있기 때문입니다. 이로 인해, 랜섬웨어 제작자들은 거대한 이윤을 얻기 위해 VMware ESXi 랜섬웨어 공격에 집중하고 있습니다. 하나의 ESXi 호스트를 감염시키면 해당 호스트에 있는 여러 가상 머신의 데이터를 암호화/파괴할 수 있습니다. 이 방법은 서로 다른 운영 체제를 실행 중인 VM을 감염시키는 것보다 효과적일 수 있습니다. ESXi Args 랜섬웨어 공격은 비-Windows 서버를 대상으로 한 가장 대형 랜섬웨어 공격 중 하나였습니다.

ESXi 랜섬웨어에 취약한 ESXi 버전은 무엇입니까?

ESXi 랜섬웨어는 CVE-2022-31699, CVE-2021-21995, CVE-2021-21974, CVE-2020-3992, 그리고 CVE-2019-5544를 포함한 다양한 취약점을 악용합니다.

ESXi Args 랜섬웨어는 ESXi 호스트를 감염시키기 위해 CVE-2021-21974를 사용합니다. 이 취약점은 2021년에 발견되었으며, 아직 패치되지 않거나 업데이트되지 않은 ESXi 호스트에서 발생할 수 있습니다. 이는 ESXi에서 실행되는 OpenSLP 서비스의 힙 오버플로우 취약점입니다. CVE-2021-21974에 대한 패치는 2021년 2월 21일에 발표되었습니다.

다음 ESXi 버전은 CVE-2021-21974에 취약합니다:

  • ESXi 7.x의 ESXi70U1c-17325551 이전 버전
  • ESXi 6.7.x의 ESXi670-202102401-SG 이전 버전
  • ESXi 6.5.x의 ESXi650-202102101-SG 이전 버전

왜 패치되지 않은 서버가 많았고 왜 인터넷에서 접근할 수 있었을까? 패치 작업은 ESXi 서버 다운타임이 필요하며 많은 호스트가 있는 경우 일부 관리자들은 리소스나 시간이 부족하여 적시에 패치를 할 수 없을 수도 있습니다. 게다가 ESXi 취약점은 ESXi Args 랜섬웨어 공격 이전에 널리 악용되지 않았습니다. 이로 인해 패치되지 않은 ESXi 서버가 위협이 되지 않는 것처럼 보이고 서버는 천천히 패치되었습니다.

호스팅 제공 업체의 ESXi 서버도 ESXi Args 랜섬웨어에 감염되었습니다. 호스팅 제공 업체는 고객을 위한 인프라를 제공하고 고객은 가상 머신을 실행하기 위해 ESXi 하이퍼바이저를 설치했습니다. 이러한 ESXi 서버는 고객들에 의해 인터넷에 노출되어 있어 공격자가 접근할 수 있었습니다. 공격자는 피해자에게 약 23,000달러의 비트코인을 지불하길 원했습니다.

ESXi 랜섬웨어는 어떻게 작동할까요?

사이버 범죄자들은 취약한 ESXi 호스트를 찾아내는데, 특히 인터넷에 노출된 호스트들을 찾습니다. 침해 방법은 OpenSLP 취약점을 악용하는 것으로 확인되었으며, 이는 가능성 있는 CVE-2021-21974입니다. OpenSLP에는 포트 427(TCP/UDP)가 사용됩니다. 로그에는이 침해 과정에 dcui 사용자가 관여했음을 나타냅니다. 이 ESXi 랜섬웨어 취약점을 통해 공격자는 원격으로 임의의 코드를 악용할 수 있습니다.

/tmp/public.pem에 위치한 멀웨어가 배포한 공개 키를 사용하여 암호화 과정을 거칩니다. 구체적으로 이 암호화 과정은 “.vmdk”, “.vmx”, “.vmxf”, “.vmsd”, “.vmsn”, “.vswp”, “.vmss”, “.nvram”, 그리고 “.vmem” 확장자를 포함한 가상 머신 파일들을 목표로 합니다. 여기서 “.vmdk” 파일은 가상 디스크 디스크립터 파일이고 “-flat.vmdk“는 VM 데이터가 포함된 가상 디스크 파일입니다. ESXi Args 랜섬웨어는 암호화된 파일마다 “.args” 파일을 생성하여 메타데이터를 저장합니다(아마도 랜섬웨어 제작자들은 “.args” 파일이 복호화에 필요할 것이라고 예상합니다).

아래는 그 과정을 자세히 설명한 것입니다.

  1. 서버가 침해되면 /tmp 디렉터리에 다음 파일들이 생성됩니다.
    • encrypt는 ELF 형식의 실행 가능한 암호화 프로그램입니다.
    • encrypt.sh는 공격의 작동 논리를 제공합니다. 이것은 암호화 프로그램을 실행하기 전에 다양한 작업을 수행하는 셸 스크립트입니다.
    • public.pem은 파일 암호화에 사용되는 키를 암호화하는 데 사용되는 RSA 공개 키입니다.
    • motd는 텍스트 형태의 랜섬 노트로, /etc/motd에 복사되어 로그인 시 표시되도록 합니다. 서버의 원래 파일은 /etc/motd1로 보존됩니다.
    • index.html은 랜섬 노트의 HTML 버전으로 VMware ESXi의 홈페이지를 대체하도록 설계되었습니다. 서버의 초기 파일은 같은 디렉터리에 “index1.html”로 백업되어야 합니다.
  2. 암호화기는 명령행 매개변수의 배열을 사용하여 셸 스크립트를 통해 시작됩니다. 이러한 매개변수에는 공개 RSA 키 파일, 암호화 대상 파일, 변경되지 않은 데이터 영역, 암호화 블록 크기 및 전체 파일 크기가 포함됩니다.

    사용법: encrypt <public_key> <file_to_encrypt> [<enc_step>] [<enc_size>] [<file_size>]

    다음과 같습니다:

    • enc_step은 파일을 암호화하는 동안 건너뛸 MB의 수입니다.
    • enc_size은 암호화 블록의 MB 수입니다.
    • file_size는 바이트 단위의 파일 크기입니다(희소 파일용).
  3. 이 암호화기의 초기화는 encrypt.sh 쉘 스크립트를 통해 진행되며, 이는 공격의 기본 논리로 작동합니다. 초기화되면 스크립트가 다음 동작을 수행하고 있습니다. 간단히 설명하겠습니다.
  4. ESXi 랜섬웨어 스크립트는 ESXi 가상 머신의 구성 파일(.vmx)을 수정하여 “.vmdk”와 “.vswp”의 발생을 각각 “1.vmdk”와 “1.vswp”로 대체하는 명령을 실행합니다.
  5. 이후, 랜섬웨어 스크립트는 현재 활성화된 모든 가상 머신을 강제로 종료하여 “kill -9” 명령을 사용하여 “vmx”라는 단어를 포함한 프로세스를 중단합니다.
  6. 랜섬웨어는 VMX 프로세스를 종료하여 잠긴 파일을 해제하고 수정하기 위해 가상 머신을 종료하려고 시도합니다. 그러나 이 기능은 항상 예상대로 작동하지 않으며, 일부 파일이 잠겨 있는 상태로 남아 있습니다. VM 파일을 수정한 후 VM은 사용할 수 없게 됩니다.
  7. 스크립트는 다음 명령을 사용하여 ESXi 볼륨 목록을 검색합니다:

    esxcli storage filesystem list | grep "/vmfs/volumes/" | awk -F' ' '{print $2}

    이 명령을 사용하여 랜섬웨어는 이러한 볼륨을 특정 파일 확장자를 가진 파일을 찾습니다.

  8. 발견된 각 파일에 대해 스크립트는 동일한 디렉터리 내에 해당하는 [파일_이름].args 파일을 생성합니다. 이 .args 파일에는 계산된 매개변수가 포함되며, 일반적으로 ‘1’과 파일 크기를 포함합니다. 예를 들어, 파일이 “VM01.vmx”인 경우, 연관된 “VM01.vmx.args” 파일이 생성됩니다. 악성 코드는 암호화된 이진 파일에 전달된 인수를 저장하기 위해 “argsfile”을 생성합니다. 이에는 건너뛸 메가바이트 수, 암호화 블록의 크기, 파일 크기 등의 정보가 포함됩니다.
  9. 그런 다음 스크립트는 계산된 매개변수를 기반으로 파일을 암호화하기 위해 “encrypt” 실행 파일을 사용합니다.
  10. 암호화 후, 스크립트는 ESXi “index.html” 파일과 서버의 “motd” 파일을 앞서 언급한 랜섬 노트로 교체합니다.

    외부로 데이터가 전송되었다는 증거는 없습니다(데이터 유출). 특정 경우에는 파일의 암호화가 일부만 성공할 수 있어 피해자가 일부 데이터를 복구할 수 있습니다.

    감염 및 데이터 수정/암호화가 성공적으로 완료되었을 때는 다음과 같은 랜섬웨어 알림이 HTML 페이지에 표시됩니다:

    보안 경고! 회사에 성공적으로 침입했습니다.

    3일 이내에 돈을 송금하지 않으면 일부 데이터를 노출하고 가격을 올릴 것입니다.”

  11. 이후, 스크립트는 로그 삭제 및 /store/packages/vmtools.py에 위치한 Python 백도어의 제거와 같은 정리 작업을 수행합니다. 또한 특정 파일에서 특정 라인을 제거합니다:
    • /bin/hostd-probe.sh
    • /var/spool/cron/crontabs/root
    • /etc/rc.local.d/local.sh
    • /etc/vmware/rhttpproxy/endpoints.conf

    관리자들에게 “vmtools.py” 파일이 ESXi 호스트에 존재하는지 확인할 것을 촉구하는 중요한 노트가 발행됩니다. 발견되면 즉시 제거가 권장됩니다.

  12. 마지막으로, 스크립트는 “/sbin/auto-backup.sh”를 실행하여 “/bootbank/state.tgz” 파일에 저장된 구성을 업데이트하고 SSH를 활성화합니다.

또한, 이 취약점은 ESXiArgs 외에도 랜섬웨어 그룹들에 의해 적극적으로 악용되는 것으로 밝혀졌습니다.

주의: VMware ESXi 랜섬웨어의 동작은 랜섬웨어의 업데이트된 버전 및 새로운 랜섬웨어 릴리스와 함께 변경될 수 있습니다.

ESXi Args 랜섬웨어 이후 데이터 복구하는 방법

암호화 메커니즘에는 암호화된 파일을 해독할 수 있는 버그가 없습니다. 그러나 미국 사이버 보안 및 인프라 보안 기관(CISA)이 VM 복구를 돕는 스크립트를 작성했습니다. 좋은 점은 VM 파일, 즉 가상 디스크 설명자(.vmdk)가 암호화되었지만 VM 데이터가 저장된 -flat.vmdk 파일은 그렇지 않습니다. 이를 통해 VM을 복구할 수 있습니다.

CISA는 ESXi Args 랜섬웨어로 영향을 받은 기관을 지원하기 위한 복구 스크립트를 소개했습니다. 이 랜섬웨어는 특히 ESXi 서버를 대상으로 하여 구성 파일을 암호화하고 가상 머신(VM)을 작동 불능 상태로 만들 수 있습니다. 이 도구는 VMware와 공동으로 개발되었지만 직접적으로 VMware에서 지원하지는 않습니다. 이 도구를 사용하는 동안 문제가 발생하면 GitHub의 다음 주소에서 문제를 보고하도록 권장됩니다: https://github.com/cisagov/ESXiArgs-Recover/issues.

CISA는 문제를 신속하게 해결하고 해결하기 위해 최선을 다하고 있습니다. 스크립트 사용에 대한 자세한 내용은 다음 링크를 참조하십시오: 이 링크.지침서를 다운로드할 수도 있습니다.

또한 PDF 문서를 다운로드하여 지침을 확인할 수 있습니다.

ESXi 호스트가 ESXi 랜섬웨어로 감염되었다는 징후가 있는 경우 다음과 같은 조치를 취하십시오:

  • 감염된 ESXi 호스트를 네트워크에서 분리하십시오.
  • 랜섬을 지불하지 마십시오. 랜섬을 지불하는 것은 사이버 범죄자에게 보상을 제공하고 더 많은 랜섬웨어를 만들어 더 많은 돈을 벌게 합니다. 랜섬을 지불하더라도 VMware ESXi 랜섬웨어로 손상된 파일이 복구되는 것을 보장할 수 없습니다.
  • 랜섬웨어 공격을 신고하십시오. 랜섬웨어 신고는 신속한 대응, 법적 준수, 데이터 보호, 신뢰, 위협 완화 및 사이버 공격에 대한 집단적 방어를 가능하게 하는 중요한 요소입니다. 랜섬웨어 공격 신고는 사이버 보안 사고 관리의 기본 부분입니다. 이는 개별 조직이 공격으로부터 회복하는 데 도움이 될 뿐만 아니라 디지털 생태계의 전반적인 보안과 견고성에도 기여합니다.
  • 현재 랜섬웨어 버전에 대한 복구 또는 디코딩 도구가 있는지 확인하십시오.
  • 만약 암호를 풀 수 있는 도구가 없다면, 백업에서 데이터를 복구하세요 (이 방법을 사용하려면 랜섬웨어 공격 전에 생성된 백업이 있어야 합니다). 때로는 VM을 백업에서 복구하는 것이 더 효과적일 수 있습니다. 복구된 VM을 그 곳에 놓는 것이 아니라 새로운 ESXi 설치를 고려하고 복구된 VM을 그 새로운 ESXi 호스트에 복사하여 랜섬웨어 감염의 조각이 호스트에 없는지 확인하세요.

ESXi를 랜섬웨어로부터 보호하는 방법

다음 권장 사항을 따르여 ESXi를 랜섬웨어로부터 보호하세요:

  • CVE-2021-21974, CVE-2022-31699, CVE-2021-21995, CVE-2020-3992, CVE-2019-5544와 같은 취약점이 있는 ESXi 호스트를 패치하세요. ESXi 버전이 더 이상 지원되지 않는 경우 지원되는 주요 버전으로 업데이트를 고려하세요. ESXi를 업데이트할 수 없는 경우 OpenSLP 비활성화 (서비스 위치 프로토콜)를 고려하세요. 취약점이 있는 ESXi 버전의 서비스를 비활성화하면 도움이 됩니다.
  • 보안 패치 설치 (업데이트)를 ESXi 호스트에 정기적으로 설치하여 최신 위협으로부터 보호하세요.
  • ESXi 호스트를 인터넷에 노출하지 마십시오. 작업 프로세스가 ESXi 호스트에 대한 작업자와 파트너들의 인터넷 액세스를 필요로 하면 VPN 서버와 방화벽을 구성하십시오. 방화벽을 트러스트드 IP 주소만 액세스를 허용하도록 구성하십시오. 이 경우 ESXi 호스트에 액세스하기 위해 VPN을 통해 네트워크에 연결하는 것은 안전합니다.
  • SSH 액세스가 필요하지 않으면 이 액세스를 비활성화하거나 시간 제한을 설정하십시오.
  • SMB v1.0 및 기타 오래된 버전의 프로토콜을 비활성화하십시오, 특히 그들을 사용하지 않는다면.
  • 네트워크, ESXi 관리 네트워크를 포함하여 네트워크 분할을 사용하십시오.
  • 8자리 이상의 소문자, 대문자, 숫자, 특수 문자를 포함한 강력한 암호를 사용하십시오.
  • 네트워크 트래픽과 서버 부하를 모니터링하기 위한 인프라 모니터링을 설치하고 구성하십시오. 모니터링을 통해 이상이나 해적 활동을 시간내에 탐지할 수 있습니다.
  • 사용자에게 래임웨어 방지에 대한 교육을 실시하고, 래임웨어 공격이나 공격 시도가 발생한 것으로 의심되었을 때 사용자가 무엇을 해야 하는지를 확실히 이해시키십시오.
  • 안티-맬웨어 이메일 보호를 구성하십시오. 이메일을 통해 해적 링크나 파일을 보내는 것은 래임웨어로 컴퓨터를 감염하는 인기 있는 방법입니다. 이메일 메시지의 활성 링크를 비활성화하십시오.
  • 사용자의 컴퓨터와 서버에 암토바이러스를 설치하고 암토바이러스 소프트웨어의 데이터베이스를 정기적으로 업데이트하십시오.
  • 가상 머신을 정기적으로 백업하고 3-2-1 백업 전략을 사용하십시오. 랜섬웨어 공격 시 해당 백업이 영향을 받지 않도록 불변 백업 또는 에어갭 백업을 갖추는 것을 잊지 마십시오. ESXi 백업vCenter 백업을 갖추면 데이터와 작업負荷을 복원할 때 시간을 절약할 수 있습니다.
  • ESXi 랜섬웨어 공격 시 어떻게 대처해야 하는지 모두에게 알려주는 사건 대응 계획을 준비하십시오.
  • 다양한 시나리오에서 데이터를 복원하고 작업負荷을 되살릴 수 있도록 재난 복구 계획을 작성하십시오. 백업 테스트와 재난 복구 테스트는 중요합니다.

결론

ESXi 랜섬웨어는 하나의 ESXi 호스트가 감염되더라도 많은 VM을 잃을 수 있기 때문에 파괴적일 수 있습니다. 랜섬웨어 공격 시 데이터 손실을 피하기 위한 가장 효과적인 전략은 데이터 백업입니다. 이 블로그 포스트에서 다룬 ESXi를 랜섬웨어로부터 보호하는 권장 사항을 따르세요. NAKIVO Backup & Replication을 사용하여 VMware ESXi 호스트에 있는 VM을 변경할 수 없는 저장소에 백업하세요. 이렇게 하면 랜섬웨어에 견고한 백업을 사용하여 전체 VM이나 애플리케이션 데이터를 신속하게 복구할 수 있습니다.

Source:
https://www.nakivo.com/blog/vmware-esxi-ransomware/