이 문서는 국내 정보보안 관련 기관인 KISA(한국인터넷 진흥원)에서 제공하는 보고서 문서를 참고하였습니다. (KISA 홈페이지 > 지식플랫폼 > 동향분석 > 랜섬웨어 동향)
이 문서는 2021년 3분기까지 공개된 KISA의 분기별 랜섬웨어 동향 보고서를 제외하고 이후 공개된 랜섬웨어 암호기능 분석 보고서를 대상으로 확인하였습니다.
문서에 표기된 특정 랜섬웨어에 대한 자세한 정보는 KISA 홈페이지를 통해 분석 보고서를 다운로드하여 열람할 수 있습니다.
1. Maze
Maze 랜섬웨어는 ChaCha 랜섬웨어의 변종으로 2019년 5월 24일 국내에서 발견되었습니다. (해외, 2019년 5월 14일 발견) 이 랜섬웨어는 Windows의 Powershell을 통해 다운로드되며 악성코드 제작 툴킷인 Fallout Exploit Kit에 의해 유포됩니다.
Maze 랜섬웨어는 감염 시 PC 바탕화면이 변경되고 음성으로 감염 사실을 알립니다.
Maze 랜섬웨어는 총 4 단계 과정을 거쳐 사용자 PC를 암호화합니다.
1단계. C&C 서버 통신 : 제작자가 지정한 특정 서버에 연결을 시도하고 감염 PC의 기기정보를 수집하고 서버로 전송합니다.
2단계. 볼륨 섀도 복사본 삭제 : 1단계가 완료되면 윈도우 시스템 복원 기능을 사용한 데이터 복구를 방지하기 위해 볼륨 섀도 복사본을 삭제합니다.
3단계. 파일 암호화 : 볼륨 섀도 복사본 삭제가 완료되면 특정 폴더와 파일을 제외한 모든 파일을 암호화합니다. 암호화된 파일의 확장자 끝에 4 ~ 7 자리 랜덤한 문자열이 추가됩니다.
(암호화된 파일의 내부에 Maze 시그니쳐가 포함되어 있습니다.)
4단계. 랜섬노트 생성 : 파일이 암호화되면 폴더에 html 형식의 랜섬노트를 생성하고 랜섬노트에는 파일이 암호화되었다는 문구와 공격자의 이메일 주조가 나타나 있습니다. 또한 암호화된 키 정보, 감염된 PC 사용자의 PC 이름, OS 등의 정보를 Base64로 인코딩한 값이 나타나 있습니다.
Maze 랜섬웨어는 파일을 암호화할 때 ChaCha20과 RSA-2048 알고리즘을 사용하고 각 파일마다 다른 키와 nonce를 생성하여 파일을 암호화합니다. 이때 사용되는 키는 메모리 할당, 해제, 제로화 과정을 수행하기 때문에 메모리 요소를 통해 암호 키를 복구 할 수 없습니다.
Maze 랜섬웨어에 감염된 파일을 복호화하기 위해서는 파일에 저장된 암호화된 ChaCha20 암호 키와 nonce가 필요합니다. 이 값들은 로컬에서 생성된 RSA 개인 키를 사용하여 복호화 할 수 있지만 RSA 개인 키는 ChaCha20 알고리즘으로 암호화되어 있습니다. 따라서 공격자의 RSA 개인 키를 알 수 없다면 복호화는 불가능합니다.
2. Magniber2
Magniber 랜섬웨어의 초기 버전 1 은 2017년 10월에 처음 등장하였습니다. 그리고 2018년 3월 하드코딩된 암호 키를 사용하는 Magniber 랜섬웨어의 복호화 도구를 배포하여 대응했지만 2018년 7월 악성 웹 사이트에 접근하면서 광고에 포함된 악성 스크립트로 감염되는 Magniber2 랜섬웨어가 등장했습니다. 이전 버전과 달리 한국, 중국, 대만, 홍콩 등 아시아 국가들에서도 발견되었습니다.
Magniber2 랜섬웨어는 PC의 시스템 언어를 확인하여 감염 여부를 결정합니다. 사용자의 PC의 언어가 홍콩, 마카오, 중국, 싱가포르, 대만, 한국, 브루나이, 말레이시아 환경이 아니면 PC를 감염시키지 않습니다.
또한 운영체제 설치 시 기본적으로 제공하는 샘플 사진, 비디오, 음악 데이터 등을 저장하고 있는 폴더나 윈도우 운영체제 동작에 필요한 폴더 내 파일에 대해서는 암호화를 수행하지 않습니다.
Magniber2 랜섬웨어는 파일 암호화 완료 후, 윈도우 백업 기능을 사용하지 못하도록 볼륨 섀도 복사본 삭제를 위한 레지스트리 경로와 값을 생성하여 주기적으로 랜섬노트 작성합니다 그리고 사용자에게 시각적인 안내를 위해 복구 안내용 브라우저 생성을 위한 작업 스케줄러를 등록합니다.
Magniber2 랜섬웨어는 암호화를 위해 AES-128-CBC 방식의 암호 키와 IV 를 생성하고 RSA 공개 키와 함께 RSA-2048 알고리즘을 통해 파일을 암호화 합니다. 그리고 파일 암호화를 위해 사용되는 파일 암호키와 IV를 메모리 내에서 삭제하기 때에 메모리 분석을 통해 암호 키를 복구할 수 없습니다. Magniber2를 통해 암호화된 파일을 복구하기 위해서는 공격자의 RSA 개인 키가 필요합니다.
3.JCry
JCry 랜섬웨어는 Go 언어로 제작되어 이스라엘 웹 사이트의 가짜 플래시 플레이어 업데이트 메시지를 통해 2019년 3월에 유포되었습니다. 이 JCry 랜섬웨어는 플래시 플레이어 설치파일(flash_player_install.exe)로 위장하여 피해자 PC를 감염시켰습니다.
JCry 랜섬웨어는 "Enc.exe", "Dec.exe" 파일을 드랍하고 각 파일 암호화와 복호화를 위해 사용됩니다. 또한 파일 암호화를 진행하면 "PersonalKey.txt" 파일을 생성하며 이 파일이 있다면 이미 감염된 PC로 판단하여 실행이 종료됩니다.
이 랜섬웨어는 AES-128-GCM 암호 알고리즘을 사용하여 파일 암호화를 수행하고, 파일 암호 키는 단일 키로써 모든 파일 암호화 시 사용됩니다. (다만 nonce는 파일마다 새롭게 생성합니다.)
다른 랜섬웨어와 마찬가지로 JCry 랜섬웨어도 파일을 암호화를 하고 랜섬노트 생성, 볼륨 섀도 복사본 삭제 동작이 이어집니다.
JCry 랜섬웨어는 파일 암호화에 사용하는 파일 암호화키를 랜섬웨어 내부에 내장되어 있습니다. 이 암호화키는 RSA 암호화를 위한 공개 키이지만 동일 랜섬웨어 피해에 있어서 기존 공격자의 개인 키를 공유 받을 수 있다면 복구도 가능할 수 있습니다. 다만 복구를 위해 개인 키를 공유 받기가 상황에 따라 어려울 수 있습니다.