스파크랫 유포 이어 원격 제어까지! 국내 VPN 설치 파일 악용한 악성코드 주의
올해 5월 초 스파크랫(SparkRAT)이 국내 VPN 설치 파일에 포함돼 유포된 사건이 있었다. 이후 조치가 완료됐지만, 최근 해당 VPN 업체의 인스톨러(Installer)에서 스파크랫을 설치하는 악성코드가 또다시 유포된 정황이 확인됐다. 이번 공격은 일정 기간 이후 유포가 중단된 점, 스파크랫을 악용한 점으로 미루어 보아, 지난번과 동일한 공격자의 소행일 것으로 추정된다. 하지만 조금 다른 점이 있다면, 이번에는 고(Go) 언어로 개발된 드로퍼 및 다운로더 악성코드가 사용됐으며, 원격 데스크톱 연결을 지원하는 메시에이전트(MeshAgent)가 설치됐다. 이번 사례에서는 메시에이전트를 추가 설치하는 악성코드의 유포 과정을 자세히 알아본다.
이번에도 과거와 동일하게 공격자가 국내 특정 VPN 업체의 웹사이트를 공격해 설치 파일을 악성코드로 변경했다. 사용자가 VPN 설치 파일을 다운로드해 실행하면 기존 정상 VPN 인스톨러와 함께 악성코드가 설치된다.
[그림 1] 스파크랫이 포함된 VPN 업체 홈페이지
[그림 2]는 악성코드 설치 과정을 도식화한 것이다. 먼저, 악성 인스톨러가 생성한 다운로더 악성코드가 스파크랫을 다운로드한다. 이후 공격자는 스파크랫에 악성 명령을 전달해 감염 대상 시스템에 메시에이전트를 추가적으로 설치한다. 설치된 메시에이전트는 원격 제어 페이지에 접속해 스스로를 관리 대상 에이전트로 등록한다. 이로써 공격자는 메시센트럴 공개 서버에서 등록된 장치에 대해 제어 권한을 갖는다.
[그림 2] 공격 흐름도
이번 공격에서 공격자는 닷넷(.NET)이 아닌 고 언어로 개발된 드로퍼 및 다운로더 악성코드를 사용했다. 스파크랫 또한 고 언어로 개발됐다는 점을 고려하면, 공격에 사용된 모든 악성코드가 고 언어를 기반으로 제작됐다고 할 수 있다.
공격에 사용된 드로퍼 악성코드는 인스톨러로 위장한 악성코드와 메시에이전트를 설치하는 악성코드 2개이다. 이들은 난독화된 고 언어 악성코드이지만, 형태는 모두 유사하다. 실행 시 PE 내부에 존재하는 악성코드를 생성 및 실행하며, 인스톨러로 위장한 악성코드의 경우 추가로 생성한 파일 “start.exe”를 작업 스케줄러에 등록하는 기능을 수행한다.
[그림 3] PE 내부에 존재하는 악성코드
schtasks.exe /Create /ru SYSTEM /f /SC ONLOGON /rl highest /tn “system update” /tr [%LOCALAPPDATA%]/start.exe
“start.exe”는 다운로더 악성코드로, 마찬가지로 고 언어로 개발돼 있다. 난독화되어 있지 않으며, 외부에서 추가 악성코드를 다운로드해 실행하는 기능을 담당한다. 해당 주소에서는 이전 공격 사례와 동일하게 스파크랫이 다운로드된다.
[그림 4] 다운로더 악성코드 루틴
[그림 5] 스파크랫을 다운로드하는 로그
앞서 설명한 것처럼, 공격에 사용된 스파크랫은 고 언어로 개발된 Remote Administration Tool(RAT)로, 윈도우와 리눅스, 맥OS(MacOS)에서 명령 실행, 정보 탈취, 프로세스 및 파일 제어와 같은 기본적인 기능을 제공한다.
[그림 6] 복호화된 스파크랫의 설정 데이터
[그림 7] 암호화된 스파크랫의 HTTPS 패킷
공격자는 스파크랫을 이용해 파워쉘(PowerShell) 명령을 전달하고 메시에이전트를 설치했다. 드로퍼 악성코드는 -fullinstall 인자를 주고 메시에이전트를 실행해 사용자 몰래 백그라운드에서 설치되도록 했다.
[그림 8] 메시에이전트를 설치하는 스파크랫
일반적으로 공격자들은 백도어 유형의 악성코드를 설치한 이후에도 원격 데스크톱 연결을 지원하는 악성코드나 소프트웨어를 추가로 설치하는 경향이 있다. 이는 악성 행위를 추가로 수행하는 데 있어 명령줄 인터페이스(CLI) 방식보다는 그래픽 사용자 인터페이스(GUI) 방식을 사용하는 것이 더 편리하기 때문일 것이다. 여기서 CLI은 글자를 입력해 PC에 명령을 내리는 방식이며, GUI는 기능을 아이콘과 같은 그래픽으로 표시하고 포인터 디바이스로 지시해 입력하는 것이다. 이에 따라 최근 유포되고 있는 RAT(Remote Access Trojan) 악성코드들은 대부분 VNC(Virtual Network Computing)나 RDP(Remote Desktop Protocol)와 같은 원격 데스크톱 기능을 지원한다.
안랩 분석팀은 “이번 공격에는 메시센트럴의 메시에이전트가 사용됐지만, 향후 이와 유사한 애니데스크(AnyDesk), 팀뷰어(TeamViewr), 에이미(Ammyy), 티메이트(Tmate), 넷서포트(NetSupport) 등 다양한 툴이 사용될 수 있다”라고 경고했다.
스파크랫은 RAT이기는 하지만 제작된 지 오래되지 않은 악성코드이다 보니 아직까지는 원격 데스크톱 기능을 지원하지 않는다. 공격자는 이런 한계를 극복하기 위해 감염 대상 시스템에 대한 제어 권한을 획득한 이후 메시에이전트를 설치한 것으로 보인다.
메시센트럴은 오픈소스이면서 PC를 무료로 원격 제어 및 관리할 수 있도록 하는 툴이다. 메시센트럴에서 제공하는 메시에이전트는 명령 실행이나 파일 다운로드와 같은 각종 시스템 제어 명령뿐만 아니라 VNC, RDP와 같은 원격 데스크톱 기능을 제공한다. 이는 원격으로 시스템을 관리하려는 일반 사용자가 많이 이용하지만, 때로는 악의적인 목적으로 사용될 소지가 있다.
[그림 9] 메시센트럴 공식 홈페이지
또한, 메시센트럴은 다양한 아키텍처를 지원한다. 사용자 및 공격자는 메시센트럴 서버에서 각각의 아키텍처에 해당하는 메시에이전트를 선택해 설치 명령 및 파일을 다운로드할 수 있다.
[그림 10] 메시센트럴이 지원하는 다양한 아키텍처
메시에이전트 설치 명령을 실행하거나 설치 파일을 다운로드하고 실행할 경우 메시에이전트는 메시센트럴 서버에 접속해 실행 중인 시스템을 관리 대상 시스템으로 등록한다. 다시 말해, 만약 공격자가 다운로드한 메시에이전트를 감염 대상 시스템에서 실행할 경우 해당 시스템은 관리 대상이 되는 것이다.
[그림 11] 메시에이전트가 설치된 장비들
메시에이전트는 원격 관리에 필요한 시스템의 기본 정보를 전송하고 전원 및 계정 제어, 채팅 및 메시지 팝업, 파일 업로드/다운로드, 명령 실행과 같은 기능들을 제공하며, 원격 데스크톱 연결을 지원한다. VNC 및 RDP와 같은 원격 데스크톱 기능은 웹 기반으로 지원되는데, 이는 공격자가 감염 대상 시스템을 제어하기 위해 메시에이전트를 사용할 때 장점이 될 수 있다. 이 밖에, 이메일 인증만으로 손쉽게 사용할 수 있다는 점도 공격자에게 유리하게 작용한다.
[그림 12] 메시에이전트가 지원하는 기능들
참고로 메시센트럴 서버에서 메시에이전트를 다운로드할 때 다운로드된 파일 마지막에 존재하는 시그니처 영역에는 사용자에 맞는 설정 정보가 저장돼 있다. 메시에이전트는 “%PROGRAMFILES%\Mesh Agent” 경로에 설치되면서 동일한 경로에 “MeshAgent.msh”라는 설정 파일을 생성한다. 해당 파일의 내용은 메시에이전트 파일 안에 존재했던 설정 정보이다.
[그림 13] 공격자의 메시에이전트 설정 정보
MeshName=ad
MeshType=2
MeshID=0x50E8FD710C689DA3BC4019B7450F43FDFCF21AEDEB7690D5DFD07F74EE0A4E780EEB5D09831D6664E34838AAD12EECE0
ServerID=BEC956642E30BE68AB6B3ED2F40F4E784CBA349DE3EB7E116F5B22319425FB4FE4C5A6831A5CE5524C569F6F42190B24
…
정리하면, 이번 공격은 국내 VPN 설치 파일에 스파크랫을 설치하는 데 그치지 않고 메시에이전트를 함께 설치해 감염 대상 시스템에 대한 제어 권한을 획득한 것이 특징이다. 이처럼 사용자가 홈페이지에서 악성 인스톨러를 다운로드해 설치하면, 악성코드와 함께 기존 VPN 인스톨러도 함께 설치되기 때문에 사용자는 악성코드에 감염된 사실을 인지하기 어렵다. 사용자는 V3를 최신 버전으로 업데이트해 악성코드 감염을 사전에 차단할 수 있도록 신경 써야 한다.
출처 : AhnLab