Ⅰ. 서론
랜섬웨어의 공격은 과거부터 현재까지 꾸준히 이어지고 있으며, 시간이 흐를수록 공격 기법 및 갈취 기법이 발전하고 있다. 이러한 랜섬웨어의 위협 증가는 피해 규모를 증가시켜 전 세계적인 사이버 보안 위협으로 자리 잡았다. 최근에는 Linux 환경을 대상으로 한 랜섬웨어가 등장하고 있으며, 이로 인해 기존의 Windows 환경뿐만 아니라 Linux 환경의 위험성 또한 높아지고 있다. Linux 환경은 개인 데스크톱 환경이 주요 목적이 되는 Windows 환경과 다르게 웹 서버, 클라우드 인프라 및 가상화 환경으로써 여러 중요 시스템에서 널리 사용되기 때문에, 이를 대상으로 한 공격은 잠재적으로 큰 위험성을 지닌다. 2023년에는 전년도 대비 Linux 시스템을 대상으로 한 랜섬웨어의 공격이 75% 증가하였다[1]. 이러한 배경에는 웹 서버, 사물인터넷, 임베디드 장비 등 다양한 시스템에서 Linux 운영체제를 사용하고 있는 반면, Linux의 데이터 보호를 위한 엔드포인트 솔루션이 충분하지 않다는 점이 있다. 또한 기존의 Windows 환경을 대상으로 한 랜섬웨어의 변종이 Linux 환경을 대상으로 등장하는 상황이 발생하고 있다. Windows 환경에서 동작하는 RansomExx 랜섬웨어는 인도네시아 국영석유회사 및 미국 텍사스 교통국을 공격한 사례가 존재하지만, 2020년 11월에 Linux 환경에서 동작하는 변종 랜섬웨어가 등장하여 브라질 고등 법원에 실제 피해를 주었다[2]. 이러한 Linux 랜섬웨어의 등장과 공격 배경 속에서 관련 연구가 부족한 상황이다.
본 논문에서는 Linux 환경을 대상으로 한 랜섬웨어의 공격 동향을 살펴보고, 랜섬웨어 2종에 대한 역공학 분석을 통해 랜섬웨어의 다양한 동작을 분석한다.
본 논문의 구성은 다음과 같다. 2장에서는 실제 배포된 Linux 랜섬웨어를 통해 공격 동향을 살펴본다. 이후 3장에서는 분석 대상 랜섬웨어 2종에 대해 분석 대상 지점을 3가지로 분류하여 분석을 진행하였으며, 이를 통해 암호키 생성 방법, 파일 암호화 방법, 랜섬웨어별 공격에 사용되는 주요 작업을 식별한다. 4장에서는 Windows 환경에서의 주요 랜섬웨어와의 동작 비교 분석을 통해 운영환경 별 랜섬웨어의 공통점과 차이점을 분류한다. 마지막으로 5장에서는 결론으로 마무리한다.
Ⅱ. Linux 랜섬웨어의 공격동향
2.1. 2020년 이전 공격 사례
Linux 운영체제의 장비를 대상으로 공격하는 KillDisk 랜섬웨어의 등장이 2017년 공개되었다[3]. 해당 랜섬웨어는 피해 시스템을 암호화하기 위해 Triple-DEX 알고리즘을 사용하며, 파일 복호화를 위해 2억 6200만원 상당의 비트코인을 요구한다. 그러나 감염 시스템과 C&C 서버에 복호화키를 저장하지 않는다고 밝혀졌다.
2017년 6월, 국내 웹 호스팅 업체인 ‘인터넷나야나’ 가 Linux 랜섬웨어인 Erebus에 감염되었다[4]. 이를 통해 리눅스 서버 300여 대 가운데 153대가 감염되었고, 이에 연결된 3천 400여 개의 웹사이트 또한 피해를 입었으며, 피해 기업은 랜섬웨어 공격자와 13억 원의 협상을 통해 피해 복구 작업을 진행하였다.
2019년 12월부터 활동을 시작한 Tycoon 랜섬웨어는 JAVA를 기반으로 개발되어 Windows와 Linux 환경을 모두 공격하는 랜섬웨어이다[5]. Windows의 RDP(Remote Desktop Protocol)를 이용한 침투 및 레지스트리 변조와 같이 Windows 환경을 대상으로 한 다양한 공격을 진행하지만, 악성 JRE 빌드를 분석했을 때, Linux 환경을 대상으로 하는 스크립트 또한 존재하였다.
2.2. 2020년 이후 공격 사례
2021년 10월에 Linux 환경의 Lockbit 랜섬웨어가 식별되었다[6]. 파일 암호화 시 AES와 ECC(Elliptic Curve Cryptography)를 결합하여 사용한다. 또한 Vmware ESXi 서버에서 호스팅되는 VM 이미지를 암호화하기 위해 다양한 ESXi 명령어를 사용한다.
Revil 랜섬웨어는 2021년 Linux 시스템의 Vmware ESXi를 대상으로 한 Linux 버전의 랜섬웨어를 공개하였다[7]. Windows 환경의 Revil 랜섬웨어와 동일한 구성 옵션을 포함하였으며, Vmware의 ESXi 명령어를 통해 실행 중인 모든 가상 시스템을 나열한 후 종료시키는 작업을 수행한다.
IceFire 랜섬웨어는 기존에 Windows 환경을 대상으로 공격을 진행해 왔다. 그러나 Linux 환경을 대상으로 한 IceFire 랜섬웨어의 배포가 2022년에 식별되었다[8]. 랜섬웨어는 Linux 환경을 지원하는 파일 공유 소프트웨어인 IBM Aspera Faspex의 취약점 CVE-2022-47986을 이용하여 랜섬웨어를 배포하였다.
2022년 발견된 Linux 변종의 Conti 랜섬웨어는 ESXi 서버를 공격 대상으로 한다[9]. Salsa20을 통한 파일 암호화를 수행함과 동시에 ESXi 서버의 가상 시스템을 나열하고, 프로세스를 종료시키는 작업을 수행한다.
Abyss Locker 랜섬웨어는 2023년 3월에 공격을 시작하였다[10]. ChaCha 암호화 방식을 사용하여, Vmware ESXi 서버를 대상으로 파일 암호화를 진행하였다.
Linux 시스템을 대상으로 한 Clop 랜섬웨어가 2023년에 등장하였다[11]. Windows 환경에서 동작하는 Clop 랜섬웨어와는 다르게 암호화 제외 대상이 존재하지 않으며, 루트 디렉터리에서 모든 파일 유형을 암호화 대상으로 한다[12]. 또한 Windows 환경에서 파일 암호화에 사용되는 RC4 키를 동적으로 생성하고, RSA 공개키로 암호화하여 저장하는 것과는 다르게 Linux 환경의 Clop 랜섬웨어는 하드코딩 된 RC4 마스터키를 통해 파일 암호화에 사용된 RC4 키를 암호화하여 저장한다. 이러한 특징으로 Linux 환경의 Clop 랜섬웨어는 암호학적 취약 요소가 존재하였다.
Ⅲ. Linux 랜섬웨어의 동작 분석
Linux 환경에서 동작하는 랜섬웨어의 주요 특징을 분석하기 위해 [표 1]의 랜섬웨어 2종을 대상으로 분석하였으며, 랜섬웨어의 동작을 암호키 생성 및 관리, 파일 암호화, 기타 작업으로 분류하였다. 암호키 생성 및 관리에서는 랜섬웨어가 어떤 방식으로 암호키를 생성하고, 동작 과정 중 또는 종료 이후 암호키를 어떻게 관리하는지를 분석하였다. 파일 암호화 과정에서는 어떤 암호 알고리즘을 사용하며, 어떤 방식으로 암호화를 진행하는지 분석하였다. 기타 작업에서는 Linux 랜섬웨어가 성공적인 공격 수행을위해서 피해 시스템에 영향을 주는 주요 작업을 설명한다.
[표 1] 분석 대상 랜섬웨어
3.1. RansomExx
RansomExx 랜섬웨어는 작업 초기에 바이너리상에 하드코딩 된 RSA4096 공개키를불러온다. 이후 mbedtls 라이브러리의 mbedtls_ctr_drbg_ random 함수를 통해 32바이트의 암호키와 16바이트의 IV를 생성한다. 이때 랜덤한 데이터를 생성하기 위한 시드값은 현재시간을 사용한다. 이렇게 생성된 암호키와 IV는 파일 암호화 시 사용되며, RSA 공개키를 통해 암호화되어 파일 하위에 추가된다. RansomExx는 동작 과정 중 0.18초마다 새로운 암호키와 IV를 생성한다. 이 과정은 동작 초기에 처음 암호키와 IV를 생성하는 과정과 동일하게 진행하며, 최종적으로 암호키, IV, RSA 공개키를 통해 암호화된 암호키 데이터를 생성한다. 이러한 작업은 하위 쓰레드를 생성하여 진행되며, 하위 쓰레드는 데이터를 생성한 후 메인 쓰레드와 동기화를 진행한다. 이러한 특성으로 인해 RansomExx를 통해 감염된 파일의 개수가 작은 경우 하나의 암호키로 모든 파일이 암호화된다.
암호화 단계에서 랜섬웨어는 선행적으로 파일 확장자 변경을 수행한다. 이후 암호화 파라미터를 설정한 후, 파일 암호화를 진행한다. RansomExx는 AES256 암호 알고리즘을 통해 파일을 암호화하며, 암호화 이후에는 RSA 공개키를 통해 암호키 및 IV를 암호화하여 파일 하위에 추가한다. 이때 암호화된 암호화 파라미터는 RSA4096을 통해 암호화되기 때문에 512바이트의 크기를 갖는다.
3.2. Monti
Monti 랜섬웨어는 실행 초기에 암호화 관련 초기화 작업을 수행하는 과정에서 바이너리 상에 하드코딩된 RSA4096 공개키를 불러온다. 파일을 암호화하기 위해 하나의 파일을 암호화할 때마다 OpenSSL 라이브러리의 Rand_bytes 함수를 통해 32바이트의 암호키와 8바이트의 IV를 생성한다. 해당 함수는 리눅스 환경에서 시스템 엔트로피인 ‘/dev/urandom’을 사용한다. 해당 값은 키보드 타이밍, 마우스 움직임, 디스크 I/O 등 디바이스 드라이버 및 기타 요소에서 엔트로피를 수집하기에 불규칙적이고 예측할 수 없는 데이터를 갖고 있다[13]. 생성된 암호키와 IV는 ECRYPT 라이브러리의 keysetup 및 ivsetup 함수를 통해 암호화 파라미터가 설정된다.
암호화 파라미터 설정 후 파일 암호화를 진행하기 위해 Monti 랜섬웨어는 이전에 생성한 암호키와 IV를 RSA 공개키를 통해 암호화하여 암호화 대상 파일 하위에 추가한다. 이때 파일의 크기는 ‘[원본 파일]+[암호화된 암호키+IV]’의 형태를 하고 있으며, 원본 파일에서 파일 크기가 512바이트 커진다. 이후 진행되는 파일 암호화는 암호화된 암호키 및 IV 부분을 제외한, 원본 파일 내용만을 대상으로 한다. 파일 암호화는Salsa20 알고리즘을 사용하는 ECRYPT_encrypt_bytes 함수를 사용한다. 이때[그림 1]과 같이 암호화 대상 파일의 크기에 따라 파일을 암호화하는 방식에 차이가 있다. 원본 파일의 크기가 5MB 미만인 경우 원본의 전체 내용을 암호화하며, 5MB 이상인 경우 일부만 암호화한다. 부분 암호화를 진행하는 경우 랜섬웨어 실행 시 인자값을 통해 지정한 값 또는 기본값에 의해 파일 오프셋에서의 암호화 시작 위치와 암호화 크기가 결정된다.
[그림 1] 파일 크기에 따른 Monti 랜섬웨어의 암호화 동작
[그림 2]는 역공학 분석을 통해 식별한 Monti 랜섬웨어의 부분 암호화 알고리즘 내용이다. 랜섬웨어 실행 시 ’--size’ 인자값으로 입력되는 param3 값을 통해 암호화 시작 위치와 크기가 결정되며, 기본값은 0x14이다. 이러한 부분 암호화를 통해 암호화된 파일은 전체 암호화와는 다르게 일부 내용이 평문으로 남아 있게 된다.
[그림 2] Monti 랜섬웨어의 부분 암호화 알고리즘
Monti 랜섬웨어는 Vmware ESXi를 대상으로 목록화 및 강제종료 공격을 진행한다. 이는 랜섬웨어 실행 초기에 실행 인자 처리 단계에서 진행된다. 랜섬웨어 실행 시 ‘--vmkiller’ 인자가 존재할 경우 esxcli 유틸리티를 이용하여 시스템에 존재하는 가상 환경을 목록화하여 ‘vm-list.txt’에 저장한 후, 목록화된 가상 환경에 대해 강제 종료를 진행한다.
Ⅳ. 운영환경 별 랜섬웨어 행위 비교
본 장에서는 Linux 환경 및 Windows 환경의 랜섬웨어의 행위를 비교하고 차이점을 분석하여 운영환경 별 랜섬웨어의 주요 특징을 분석하였다.
4.1. 암호키 생성 및 관리 비교
2019년에 등장한 Windows 환경의 Clop 랜섬웨어는 암호키 생성 시 CryptoAPI의 CryptGenKey 함수를 사용한다[14]. 생성된 암호키는 단일 파일에만 사용되며 랜섬웨어 내에 하드코딩 된 공격자의 RSA 공개키를 통해 암호화되어 암호화된 파일 하위에 추가된다.
Linux 환경의 랜섬웨어가 암호키를 생성하기 위해선 현재시간 또는 시스템 엔트로피를 사용한다. 이러한 엔트로피를 통해 암호 라이브러리의 랜덤 값 생성함수를 사용하여 암호키를 생성한다. 이렇게 생성된 암호키는 단일 파일에 사용되거나, 일정 시간마다 키를 재생성한다. 또한 파일 암호화 시 사용한 암호키를 바이너리 상에 하드코딩 된 RSA 공개키를 이용하여 암호화한 후, 암호화된 파일 하위에 추가한다.
랜섬웨어는 암호 라이브러리의 함수를 통해서 암호키를 생성하고, 공개키 알고리즘을 통해 피해 시스템에 사용된 암호키를 암호화된 상태로 보관한다. 결과적으로 암호키를 생성하고 관리하는 단계에서는 운영환경에 상관없이 유사한 형태를 지닌다.
4.2. 파일 암호화 비교
Windows 환경의 Conti 랜섬웨어는 ChaCha8 스트림 암호를 사용하여 파일을 암호화한다[15]. 또한 멀티스레드를 통해 파일 암호화 속도를 향상시키고 파일 크기별로 부분 및 전체 암호화를 진행한다. Makop 랜섬웨어는 AES256을 통해 파일을 암호화하며, 파일의 전체 내용을 암호화한다[16].
Linux 환경에서의 RansomExx 및 Monti 랜섬웨어는 각각 AES256 및 Salsa20를 사용하여 파일을 암호화한다. 또한 Monti 랜섬웨어는 파일 크기가 일정 크기보다 큰 경우 부분 암호화를 진행하였다.
랜섬웨어는 블록암호 또는 스트림 암호를 통해 파일을 암호화하며, 일부 랜섬웨어는파일 암호화 시 속도 향상을 위해 부분 암호화를 사용하였다. 이러한 랜섬웨어의 암호화 특징은 랜섬웨어의 동작 환경에 상관없이 유사한 형태를 갖고 있다.
4.3. 기타 작업 비교
윈도우 환경의 랜섬웨어는 공격 성공을 위해 특정 프로세스 강제 종료, Windows 시스템 내 존재하는 백업파일 삭제 등의 작업을 수행한다. Hive 랜섬웨어의 경우 mspub, msdesktop 프로세스를 종료시키고 랜섬웨어 파일을 삭제하여 자신의 동작 흔적을 지우는 작업을 진행한다[17]. 또한 Windows 환경에 존재하는 백업 파일인 볼륨섀도복사본을 삭제하여 피해 시스템이 백업을 통한 복구를 하지 못하도록 차단한다. 이렇듯 Windows 환경의 랜섬웨어는 동작 흔적 삭제, 백업 차단 등과 같은 다양한 작업을 수행한다. 반면에 본 연구에서 분석한 Linux 환경의 랜섬웨어에서는 이러한 작업을 진행하지 않는다. Monti 랜섬웨어는 Windows 환경의 랜섬웨어와 마찬가지로 특정 프로세스를 강제 종료시키는 작업을 수행하지만, 대상이 VMware ESXi 로 공격 차단 방지가 아닌 목표물을 성공적으로 암호화시키기 위해 종료하는 작업만을 수행하였다.
[표 2]와 같이 Windows 환경의 랜섬웨어가 성공적인 공격 수행 및 흔적을 은닉하기위해 프로세스 강제 종료, 백업 삭제 등 다양한 작업을 수행하였다. 반면 Linux 환경의 RasomExx 랜섬웨어는 파일 암호화 작업 이외에 별도의 작업을 수행하지 않았고, Monti 랜섬웨어는 성공적인 암호화 작업을 위해 특정 프로세스에 대한 강제 종료만을 수행하였다.
[표 2] 운영환경 별 랜섬웨어의 암호화 외 동작
Ⅴ. 결론
Linux 운영환경을 대상으로 한 랜섬웨어의 공격이 지속되고 있는 상황에서, 기존의 Windows 운영환경을 공격하던 랜섬웨어 또한 Linux를 대상으로 변종을 등장시키고 있다. 본 논문은 이러한 배경 속에서 Linux 환경을 대상으로 한 랜섬웨어의 공격 동향을 살펴보고, 실제 배포된 Linux 환경에서 동작하는 RansomExx 및 Monti 랜섬웨어를 분석하여 키 생성 및 관리, 암호화, 기타 행위 동작을 식별하였다. 또한 Windows 환경의 주요 랜섬웨어와의 비교를 통해 운영환경 별 랜섬웨어의 공통점과 차이점을 분류하였다.
참고문헌
- "빠르게 증가하고 있는 리눅스 랜섬웨어, 사회 전체로 인지해야", 보안뉴스, https://www.boannews.com/media/view.asp?idx=120358
- "리눅스 환경으로 확대된 RansomExx 랜섬웨어", 잉카인터넷 시큐리티대응센터블로그, https://isarc.tachyonlab.com/3843
- EST SECURITY, "몸값으로 $250,000를 요구하지만, 파일은 복호화하지 않는 리눅스용 랜섬웨어 KillDisk 발견", https://blog.alyac.co.kr/925
- 연합뉴스, "인터넷나야나 "랜섬웨어 피해 복구중" ... '해커와 13억 협상' 논란(종합)", https://www.yna.co.kr/view/AKR20170615125151017
- BlackBerry, "Threat Spotlight: Tycoon Ransomware Targets Education and Software Sectors", https://blogs.blackberry.com/en/2020/06/threat-spotlight-tycoon-ransomware-targets-education-and-software-sectors
- Trendmicro, "Analysis and Impact of LockBit Ransomware's First Linux and VMware ESXi Variant", https://www.trendmicro.com/en_us/research/22/a/analysis-and-Impact-of-lockbit-ransomwares-first-linux-and-vmware-esxi-variant.html
- BLEEPINGCOMPUTER, "REvil ransomware's new Linux encryptor targets ESXi virtual machines", https://www.bleepingcomputer.com/news/securit y/revil-ransomwares-new-linux-encryptor-targets-esxi-virtual-machines/
- SentinelOne, "IceFire Ransomware Returns | Now Targeting Linux Enterprise Networks", https://www.sentinelone.com/labs/icefire-ransomware-returns-now-targeting-linux-enterprise-networks/
- Trellix, "Conti Group Targets ESXi Hypervisors With its Linux Variant", https://www.trellix.com/blogs/research/conti-group-targets-esxi-hypervisors-with-its-linux-variant/
- BLEEPINGCOMPUTER, "Linux version of Abyss Locker ransomware targets VMware ESXi servers", https://www.bleepingcomputer.com/news/security/linux-version-of-abyss-locker-ransomware-targets-vmware-esxi-servers/
- TechM, "[글로벌] 클롭 랜섬웨어 '변종' 발견...리눅스 랜섬웨어 피해 늘어", https://www.techm.kr/news/articleView.html?idxno=106678
- SentinelLABS, "Cl0p Ransomware Targets Linux Systems with Flawed Encryption | Decryptor Available", https://www.sentinelone.com/labs/cl0p-ransomware-targets-linux-systems-with-flawed-encryption-decryptor-available/
- "random(4) - Linux manual page", https://www.man7.org/linux/man-pages/man4/urandom.4.html
- 이세훈, 윤병철, 김소람, 김기윤, 이영주, "2019년 랜섬웨어 암호화 프로세스 분석 및 복호화 방안 연구." 정보호호학회논문지, 2019.
- 이영주, "스트림 암호 기반 랜섬웨어에 대한 기술적 분석 동향," 정보보호학회지, 2022.
- 김준섭, "블록암호 기반 랜섬웨어에 대한 분석 사례 동향," 정보보호학회지, 2022.
- Kim, G., Kim, S., Kang, S., & Kim, J.. "A method for decrypting data infected with hive ransomware." Journal of Information Security and Applications, 2022.