본문 바로가기

벌새::Analysis

백신에서 차단하지만 치료하지 못하는 레지스트리 방식의 Sodinokibi 랜섬웨어 문제 (2020.11.18)

반응형

2018년 여름경부터 네봄이 사이트를 통해 다운로드된 ZIP 압축 파일 내의 .js 스크립트 파일 실행을 통해 감염되는 GandCrab 랜섬웨어는 현재 동일한 방식으로 Sodinokibi 랜섬웨어 유포에 꾸준히 활용되고 있습니다.

 

ZIP 압축 파일 내 .js 스크립트 파일로 감염되는 Sodinokibi 랜섬웨어 주의 (2020.4.14)

 

그런데 2020년 10월 13일경부터 기존의 파일(File) 기반이 아닌 레지스트리(Registry) 방식의 Fileless 기반으로 변화하면서 감염된 PC에서는 백신에서 Windows 부팅 시마다 랜섬웨어(Ransomware) 동작이 시작될 경우 PowerShell.exe 파일을 탐지하지만 레지스트리에 추가된 랜섬웨어 코드를 삭제하지 못하여 매번 탐지되는 문제가 발생하는 것으로 보입니다.

 

<체크멀 블로그> 레지스트리 값에 추가된 Sodinokibi 랜섬웨어 코드를 통한 파일 암호화 주의 (2020.10.14)

 

<ASEC 블로그> 새롭게 변형되어 유포 중인 JS.BlueCrab 랜섬웨어 (2020.10.26)

 

이미 관련 랜섬웨어 감염과 동작 방식에 대한 정보가 공개되어 있지만 실제 피해를 당한 사용자가 PC를 그대로 사용하면서 Windows 부팅 시마다 자동 재실행되는 랜섬웨어를 삭제하지 못하여 위험을 안고 지내는 문제에 대해 알아보도록 하겠습니다.

 

Sodinokibi 랜섬웨어 유포 사이트 (네봄이)

Sodinokibi 랜섬웨어 유포 방식으로 가장 꾸준하게 활용되는 네봄이 사이트는 디자인이 2018년 시작 당시와 전혀 변화가 없을 정도로 고정되어 있지만 해당 정보를 모르는 인터넷 사용자들은 파일 다운로드를 진행하게 됩니다.

 

ZIP 압축 파일 내의 .js 스크립트 파일

다운로드한 ZIP 압축 파일 내에는 .js 스크립트 파일이 포함되어 있는데 사용자는 단순히 파일명만 보고 실행하거나 실행 파일(.exe)이 아니므로 안전하다는 착각으로 인해 파일을 실행하게 됩니다.

 

실행된 .js 스크립트 파일은 외부 서버와의 통신을 통해 사용자 몰래 랜섬웨어 코드를 추가 다운로드하는데 이전에는 파일 기반(.txt 등)으로 특정 폴더에 생성하였지만 이번에는 다음과 같이 레지스트리에 랜섬웨어 코드를 추가합니다.

 

HKEY_CURRENT_USER\SOFTWARE\<컴퓨터 이름>

사용자 PC의 컴퓨터 이름을 참조하여 "HKEY_CURRENT_USER\SOFTWARE\<컴퓨터 이름>" 키를 추가한 후 564개의 문자열을 통해 각 문자열마다 4,000 Bytes 단위로 랜섬웨어 바이너리 코드를 분할하여 탐지를 우회합니다.

 

사용자 변수에 추가된 랜섬웨어 실행 코드

레지스트리에 추가된 Sodinokibi 랜섬웨어 코드를 실행하기 위하여 사용자 변수에 컴퓨터 이름을 이용한 변수를 추가합니다.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\<컴퓨터 이름>

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
 - <컴퓨터 이름> = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -windowstyle hidden -Command "IEX([Environment]::GetEnvironmentVariable('<컴퓨터 이름>', 'User'))"

이후 Windows 부팅 시 자동 실행되도록 시작 프로그램 등록값에 컴퓨터 이름을 가진 문자열을 추가하여 실행 코드를 추가합니다.

 

Sodinokibi 랜섬웨어에 의해 암호화된 파일
<암호화 확장명> +readme.txt 메시지 파일
Sodinokibi 랜섬웨어에 감염된 PC의 바탕 화면 배경

이후 실행된 Sodinokibi 랜섬웨어가 파일 암호화를 진행하고, 암호화 대상 폴더마다 <암호화 확장명>+readme.txt 메시지 파일을 생성하고 마지막 단계에서는 바탕 화면 배경을 변경하는 것으로 1차적인 공격이 완료됩니다.

 

위와 같은 일련의 공격이 이루어진 후 Windows 재부팅을 진행하면 사전에 자동 실행값 추가를 통해 Sodinokibi 랜섬웨어는 또 다시 실행됩니다.

 

Windows PowerShell 실행창

사용자 PC가 사용자 계정 컨트롤(UAC) 알림 기능을 사용할 경우에는 부팅 이후 Windows PowerShell 실행을 알리는 사용자 계정 컨트롤 알림창이 생성되며, UAC 알림 기능을 사용하지 않을 경우에는 Windows PowerShell은 알림창 생성없이 자동으로 랜섬웨어가 실행됩니다.

 

사용자 계정 컨트롤 설정

그러므로 Windows 기본값에서 제공하는 사용자 계정 컨트롤 설정은 기본값 또는 1단계 하향 조절하여 사용하시기 바라며, 알리지 않도록 끄고 사용할 경우에는 원치않는 코드 실행이 자동으로 이루어질 수 있으므로 기본 보안 설정을 임의로 끄지 않도록 주의하시기 바랍니다.

 

Windows PowerShell 실행창 (자세한 내용 표시)

생성된 Windows PowerShell 실행 알림창으로는 어떤 부분에 대한 실행인지 사용자가 알기 어려우므로 반드시 "자세한 내용 표시" 메뉴를 클릭하여 프로그램 위치 정보를 통해 위와 같은 코드 실행인 경우에는 실행을 허용하지 말아야 합니다.

 

문제는 사용자가 "아니요" 버튼을 클릭하여도 자동으로 Windows PowerShell 실행 알림창이 재생성되도록 랜섬웨어가 제작되어 있으므로 다음과 같은 방식으로 코드 실행이 이루어지지 않도록 종료하시기 바랍니다.

 

(1) Windows 작업 관리자를 실행하여 세부 정보에서 powershell.exe 프로세스 모두를 "작업 끝내기" 하시기 바랍니다.

 

Windows 작업 관리자

(2) 생성되어 있는 Windows PowerShell 알림창의 "아니요" 버튼을 클릭하시면 더 이상 재실행되지 않고 종료 처리됩니다.

 

Windows PowerShell 실행창

(3) 레지스트리 편집기(regedit)를 실행하여 "HKEY_CURRENT_USER\SOFTWARE\<컴퓨터 이름>" 키와 "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 키 우측에 표시된 <컴퓨터 이름> 문자열을 찾아 삭제하시기 바랍니다. 참고로 컴퓨터 이름은 "설정 - 시스템 - 정보" 메뉴에서 제공하는 "디바이스 이름"을 참고하시기 바랍니다.

 

(4) "고급 시스템 설정 - 시스템 속성 - 고급 - 환경 변수" 메뉴에서 사용자 변수에 추가되어 있는 <컴퓨터 이름>을 찾아 삭제하시기 바랍니다.

 

만약 Sodinokibi 랜섬웨어 감염 후 암호화된 파일만 삭제하고 PC를 그대로 사용할 경우에는 이전에 언급한 것처럼 웹 브라우저를 통한 파일 다운로드 등이 정상적으로 이루어지지 않는 문제가 발생할 수 있습니다.

 

Sodinokibi 랜섬웨어 감염 후 파일 다운로드 실패

Sodinokibi 랜섬웨어 감염 후 파일 다운로드 시 권한 부족으로 실패하는 원인 (2020.9.12)

 

그러므로 Sodinokibi 랜섬웨어 감염 PC를 입은 경우에는 되도록이면 포맷을 통해 Windows 재설치를 하는 것이 안정적인 시스템 사용에 도움이 될 수 있습니다.

 

그렇다면 국내외 주요 백신 프로그램은 레지스트리 방식으로 동작하는 Sodinokibi 랜섬웨어 공격 시 어떻게 대응하는지 살펴보겠습니다. 단, 사전에 랜섬웨어 동작을 위한 레지스트리 추가가 이루어진 환경에서 Windows 재부팅 시의 대응이며 백신에서 제공하는 수동 검사를 통해서는 추가되어 있는 레지스트리 키 자체를 탐지하지는 못합니다.

 

(1) AhnLab V3 365 Clinic

 

AhnLab V3 365 Clinic 백신 탐지 모습

AhnLab V3 365 Clinic 백신에서는 Windows PowerShell 실행 후 랜섬웨어 코드 실행 시점에서 Malware/MDP.Behavior.M3501 탐지를 통해 Fileless 기법으로 동작하는 powershell.exe 프로세스를 종료 처리하여 랜섬웨어 행위를 사전 차단합니다.

 

(2) ESET Internet Security

 

ESET Internet Security 백신 탐지 모습

ESET Internet Security 백신에서도 Windows PowerShell 실행 후 랜섬웨어 코드 실행 시점에서 MSIL/Injector.LOS 진단명으로 메모리에서 위협을 발견하여 차단이 이루어집니다.

 

(3) Kaspersky Internet Security

 

Kaspersky Internet Security 백신 탐지 로그

Kaspersky Internet Security 백신에서도 Windows PowerShell 실행 후 랜섬웨어 코드 실행 시점에서 HEUR:Trojan.Win32.Generic 진단명으로 탐지되는 것을 확인할 수 있었습니다.

 

(4) 알약(ALYac)

 

알약(ALYac) 백신이 설치된 PC 모습

알약(ALYac) 백신 프로그램의 경우에는 미끼 파일을 Sodinokibi 랜섬웨어가 접근하지 않도록 제작되어 있는 관계로 랜섬웨어 행위 탐지에 실패하였으며, Windows PowerShell 실행을 통한 랜섬웨어 코드 실행에 대해서도 진단되지 않았습니다.

 

참고로 알약(ALYac) 백신의 미탐에 대해서는 관계자분에게 재현 가능한 방법을 전달하여 차후 탐지될 수 있도록 조치가 이루어질 예정입니다.

 

Sodinokibi 랜섬웨어 감염 PC의 네트워크 연결 정보

마지막으로 Sodinokibi 랜섬웨어에 감염된 상태로 부팅 시마다 자동 실행될 경우 위와 같이 다양한 외부 서버와의 통신이 지속적으로 발생하며, 일부 연결 서버에 대해서는 ESET 백신 프로그램에서 차단을 하는 것으로 보아 악성 사이트도 포함되어 있을 것으로 보입니다.

 

레지스트리 키에 랜섬웨어 코드를 추가할 경우 백신 프로그램에서는 랜섬웨어 행위를 탐지할 수 있지만 레지스트리 키를 삭제하지 못하여 부팅 시마다 동작하게 되는 문제가 있으므로 Sodinokibi 랜섬웨어 감염이 있었던 PC는 사용자가 레지스트리 값을 찾아서 삭제하시기 바랍니다.

 

<체크멀 블로그> 변화된 레지스트리 동작 방식의 Sodinokibi 랜섬웨어 감염 주의 (2020.11.17)

 

단지 2020년 11월 6일경부터는 레지스트리 방식은 동일하지만 Windows 부팅 시마다 재실행되지 않도록 1회성으로 다시 변했지만 여전히 레지스트리에는 랜섬웨어 코드가 남아있으므로 사용자가 찾아서 삭제해야 합니다.

728x90
반응형