CLR Shell 악성코드 설치 이후 트리고나 랜섬웨어 설치돼
[보안뉴스 김영명 기자] 최근 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 트리고나(Trigona) 랜섬웨어가 유포되고 있는 것이 확인됐다. 트리고나는 지난해 10월에 최초로 확인된 랜섬웨어로, 최근 Unit 42에서도 CryLock 랜섬웨어와의 유사성을 바탕으로 보고서를 공개하기도 했다.

▲MS-SQL 서버 공격에 사용되는 랜섬웨어 유형 통계[자료=안랩 ASEC 분석팀]
부적절하게 관리되고 있는 MS-SQL 서버는 주로 외부에 노출돼 있으면서 계정정보를 단순하게 설정해 무차별 대입 공격이나 사전 공격에 취약한 서버를 말한다. 만약 공격자가 로그인에 성공할 경우 시스템에 대한 제어는 공격자에게 넘어가게 되며 악성코드를 설치하거나 악의적인 명령을 실행할 수 있다.
참고로 MS-SQL은 윈도 서버에서만 설치되는 것이 아니며, 데스크톱 환경에도 설치될 수 있다. 예를 들어 특정 ERP 및 업무용 솔루션을 설치할 경우 함께 설치되는 경우도 있기 때문에 MS-SQL 서버 공격은 윈도 서버와 함께 윈도 데스크톱 환경도 대상이 될 수 있다는 특징이 있다.
안랩 ASEC 분석팀에서는 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 하는 공격을 꾸준히 모니터링하고 있다고 밝혔다. 공격에 사용되는 악성코드들로는 Trojan, Backdoor, CoinMiner, Ransomware 등 악성코드 유형 대부분이 사용된다. 이 중에서 랜섬웨어를 기준으로 한다면 Mallox, GlobeImposter 랜섬웨어가 대부분을 차지하고 있다.
현재 분석 대상 시스템은 외부에 노출된 MS-SQL 서버가 설치된 환경이며 부적절한 계정정보를 갖고 있는 것으로 추정된다. 다양한 공격자들은 이미 계정정보를 획득했으며, 이에 따라 Remcos RAT나 코인 마이너와 같은 다양한 악성코드들의 탐지 로그가 확인된다.
공격자는 트리고나 랜섬웨어를 설치하기 이전에 CLR Shell 악성코드를 먼저 설치하는 것으로 추정된다. 다수의 악성코드 로그들이 함께 확인되지만, 랜섬웨어 공격 시점과의 시간적 유사성과 함께 트리고나 랜섬웨어 공격이 이루어진 시스템들 대부분에서 CLR Shell 악성코드가 확인되고 있기 때문이다. 이외에도 해당 CLR Shell 악성코드는 권한 상승 취약점을 악용하는 루틴도 확인되는데, 이는 서비스로 동작하는 트리고나 랜섬웨어가 높은 권한이 필요로 하기 때문으로 보인다.
MS-SQL 환경에서는 xp_cmdshell 명령 외에도 OS 명령을 실행할 수 있는 다양한 기법들이 존재하는데, 이 중 CLR 확장 프로시저를 이용하는 방식이 있다. 해당 기능은 원래 SQL 서버에서 확장된 기능을 제공하기 위해 사용된다. 하지만 공격자들이 이를 악용해 악의적인 기능을 포함시켜 사용할 수 있다. CLR Shell은 CLR 어셈블리 형태의 악성코드 중 웹 서버의 웹셸(Web Shell)처럼 공격자로부터 명령을 전달받아 악성 행위를 수행할 수 있는 기능을 제공하는 형태다.
이러한 CLR Shell을 사용하는 악성코드로는 예를 들어 LemonDuck이 있다. LemonDuck은 내부 네트워크 전파를 위해 MS-SQL 서버도 대상으로 하며 스캐닝 및 사전 공격을 통해 sa 계정에 로그인한 후 악성 행위를 수행한다. 악성 행위는 xp_cmdshell 명령을 사용하기도 하지만 추가 페이로드 다운로드 행위는 CLR Shell, 즉 ‘evilclr.dll’의 ExecCommand() 메소드가 사용된다.
트리고나 랜섬웨어 공격 시점에 확인되는 CLR Shell은 명령 실행 루틴은 없지만 권한 상승(MS16-032) 취약점과 정보 수집, 사용자 계정 설정과 같은 기능들을 지원한다. 공격자는 이를 이용해 높은 권한을 가진 상태로 다양한 악성 행위를 수행할 수 있다.

▲공격에 사용된 CLR Shell 악성코드[자료=안랩 ASEC 분석팀]
이러한 공격에 사용되는 루틴은 공개된 코드와 거의 유사하며, 상승된 권한으로 내부에 포함돼 있는 바이너리를 실행한다. CLR Shell을 통해 생성 및 실행되는 ‘nt.exe’는 SQL 관련 서비스의 계정을 LocalSystem으로 변경하기 위해 레지스트리를 수정한 후 재부팅시키는 단순한 기능이 있다.
현재 ‘NT Service\MSSQL$SQLEXPRESS’ 권한으로 실행 중인 MS-SQL 프로세스 sqlservr.exe는 레지스트리 수정 및 재부팅 이후에는 LocalSystem 권한으로 실행된다. 공격자는 이후 상승된 권한을 갖는 MS-SQL 프로세스를 이용해 악성 행위를 수행할 수 있다.

▲기존 레지스트리 값 및 재부팅 이후 프로세스 실행 계정[자료=안랩 ASEC 분석팀]
감염 로그를 분석해보면 CLR Shell 악성코드가 설치된 이후 트리고나 랜섬웨어가 설치된다. 트리고나 랜섬웨어 설치 로그는 svcservice.exe라는 이름의 파일명에서 확인할 수 있다. svcservice.exe는 드로퍼 악성코드로서 서비스로 동작하는 것이 특징이다. 서비스로 실행될 경우 실제 트리고나 랜섬웨어인 svchost.exe를 동일한 경로에 생성하고 이를 실행시켜 주는 기능을 담당하는 Batch 파일인 svchost.bat를 생성하고 실행한다. svchost.bat은 먼저 트리고나 바이너리를 Run 키에 등록해 재부팅 이후에도 실행될 수 있도록 하며, 이후 볼륨 쉐도 삭제 및 시스템 복원 기능을 비활성화해 랜섬웨어 감염 이후 복구를 불가능하게 한다.
그 이후 svchost.exe, 즉 트리고나 랜섬웨어를 실행시킨 후 등록했던 서비스 svcservice를 삭제한다. 트리고나 실행 시에는 C:\ 드라이브부터 Z:\ 드라이브까지 각 드라이브 별로 각각 인자로 전달해 실행시킨다.

▲암호화된 폴더에 생성되는 랜섬노트[자료=안랩 ASEC 분석팀]
안랩 ASEC 분석팀은 “트리고나 랜섬웨어는 델파이로 개발된 랜섬웨어로서 파일 암호화 시 확장자를 구분하지 않고 암호화하며 암호화가 완료된 파일은 ‘._locked’ 확장자가 덧붙여진다”며 “각 폴더에는 ‘how_to_decrypt.hta’라는 이름의 랜섬노트가 생성된다”고 말했다. 이어 “공격자는 사용자 데이터가 안전한 AES 알고리즘으로 암호화됐으며 복구하기 위해서는 Tor 브라우저를 설치해 지정한 주소로 연락할 것을 요구한다”며, “기업들은 MS-SQL 서버의 보안 관리에 만전을 기해야 한다”고 당부했다.
[김영명 기자(boan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>