안랩 ASEC 분석팀, 부적절하게 관리되는 MS-SQL 서버 대상 공격 사례 발견
악성코드를 닷넷 네이티브 AOT 컴파일 방식으로 제작했다는 점도 주요 특징

[보안뉴스 김영명 기자] 최근 부적절하게 관리되고 있는 MS-SQL 서버를 대상으로 하는 프록시재킹(Proxyjacking) 공격 사례가 발생한 것이 확인됐다. MS-SQL 서버들은 외부에 공개돼 있으면서 단순한 형태의 암호를 사용하고 있는 마이크로소프트 윈도(Windows) 시스템을 대상으로 하는 대표적인 공격 벡터 중 하나다. 공격자들은 부적절하게 관리되고 있는 MS-SQL 서버를 찾아 무차별 대입 공격이나 사전 공격을 통해 로그인에 성공하면 감염 시스템에 악성코드를 설치할 수 있다.

[보안뉴스 / 8.22.] MS-SQL 서버에 무차별 대입해 악성코드 설치하는 프록시재킹 공격 발견

[이미지=gettyimagesbank]

안랩 ASEC 분석팀에 따르면, 해당 공격자는 과거부터 MS-SQL 서버를 대상으로 러브마이너(LoveMiner)를 설치하고 있으며 프록시재킹(Proxyjacking) 공격과 크립토재킹(Cryptojacking) 공격을 함께 수행하는 것이 특징이다. 최근 공격과 비교해서 차이점이 있다면 Peer2Profit의 프록시웨어(Proxyware)를 공격에 사용했던 과거와 달리 지금은 IPRoyal Pawns, Traffmonetizer, Proxyrack, PacketStream 등 기업의 프록시웨어들을 공격에 사용하고 있다는 점이다. 이렇게 다양한 프록시웨어들이 공격에 사용됐다는 점들 외에도 악성코드를 .NET Native AOT(ahead-of-time) 컴파일 방식으로 제작했다는 점도 특징이다.

프록시재킹(Proxyjacking) 공격이란 사용자의 동의 없이 프록시웨어를 설치해 감염 시스템의 인터넷 대역폭 일부를 외부에 공유하는 방식으로 공격자들이 수익을 내는 공격 방식이다. 프록시웨어란 설치된 시스템에서 현재 사용 가능한 인터넷 대역폭 일부를 외부에 공유하는 프로그램이며, 이를 설치하는 사용자는 대역폭을 제공하는 대신 일정한 금액을 받는다. 만약 공격자가 사용자의 동의 없이 감염 시스템에 프록시웨어를 몰래 설치하면 감염된 시스템은 비자발적으로 네트워크 대역폭을 탈취당하며, 공격자가 수익을 가져간다. 이는 크립토재킹 공격과 유사한데 프록시웨어 대신 코인 마이너를 설치해 암호 화폐를 채굴한다는 것만이 차이점이다.

[보안뉴스 / 8.22.] MS-SQL 서버에 무차별 대입해 악성코드 설치하는 프록시재킹 공격 발견

▲드로퍼 악성코드의 버전 정보[자료=안랩 ASEC 분석팀]

과거 시스코 탈로스(Talos)의 보고서에서 정상 설치 파일로 위장한 악성코드를 통해 설치되고 있는 프록시재킹 공격 사례가 보고된 바 있다. 프록시재킹 공격은 리눅스 시스템을 대상으로도 로그4쉘(Log4Shell) 취약점 공격이나 SSH 서버 공격으로 설치된 사례도 알려졌다.

과거 공격 사례를 살펴보면, 러브마이너 공격자는 지난해 6월 초부터 부적절하게 관리되고 있는 MS-SQL 서버를 공격해 Peer2Profit 업체의 프록시웨어를 ‘sdk.mdf’라는 이름으로 설치했다. ‘sdk.mdf’는 프록시웨어에서 제공하는 파일이기 때문에 이와 동시에 이를 악용하는 CLR Assembly를 사용해 대역폭을 탈취했다. p2p_start() 호출 시에는 수익을 가져갈 이메일 주소를 인자로 전달해야 하기 때문에 악성코드에서 공격자의 이메일 주소를 확인할 수 있다.

참고로 CLR Assembly의 이름 ‘SqlServerWorks.CLR.P2P.dll’은 러브마이너의 CLR Assembly와 유사한데, 이를 통해 러브마이너 공격자가 프록시웨어를 함께 공격에 사용하는 것을 알 수 있다.

러브마이너는 다운로더 형태의 CLR 어셈블리와 로더 형태의 CLR 어셈블리로 나뉘는데, 로더 형태의 경우 내부 리소스 ‘gmp’에 저장된 XMRig를 메모리 상에서 로드하는 역할을 담당한다. ‘gmp’는 커스터마이징된 XMRig로서 초기 루틴에서 마이닝 풀 주소 등 마이닝에 필요한 정보를 설정한다. 참고로 리소스 이름의 ‘gmp’ 문자열은 최신 공격에서도 사용되고 있다.

최근 러브마이너 공격자가 ‘sdk.mdf’ 대신 ‘winupdate0.mdf’라는 이름의 악성코드를 생성하고 있는 것을 확인했다. DLL 포맷인 악성코드는 버전 정보가 ‘SqlserverCLRV2.NativeLib.dll’이다. 이는 러브마이너 CLR 어셈블리의 파일명과 유사하며 Export 함수 중 ‘GmpStart’라는 문자열이 사용됐다는 점도 같은 공격자가 제작한 것으로 추정할 수 있는 근거 중 하나다.

[보안뉴스 / 8.22.] MS-SQL 서버에 무차별 대입해 악성코드 설치하는 프록시재킹 공격 발견

▲.NET Native AOT 컴파일 방식으로 제작된 드로퍼 악성코드[자료=안랩 ASEC 분석팀]

‘winupdate0.mdf’는 드로퍼 악성코드로서, 감염 시스템에 다양한 프록시웨어들을 설치한다. 닷넷(.NET)으로 개발된 러브마이너의 CLR 어셈블리와는 다르게 ‘winupdate0.mdf’는 닷넷이 아니라 닷넷 네이티브 AOT(.NET Native AOT) 컴파일 방식으로 제작된 것이 특징이다. 닷넷 네이티브 AOT는 닷넷 7부터 도입된 메커니즘으로서 닷넷 코드를 네이티브 코드로 직접 컴파일하는 방식이다. 개발자 입장에서는 이를 통해 성능상 이점을 얻게 되지만, 악성코드를 분석하는 관점에서는 일반적인 닷넷 실행 파일들과 달리 더 많은 리소스가 필요하다.

GmpStart() 함수는 실질적인 드로퍼 기능을 담당하며 런처 악성코드인 ‘warpstrat.dll’와 프록시웨어 도구들인 Traffmonetizer, IPRoyal, Proxyrack, PacketStream을 설치한다. GmpStart() 함수는 다음과 같이 단순한 형태로서 각각의 함수들에서 차례대로 설치를 담당하며 파일들은 모두 %APPDATA% 경로에 설치된다.

드로퍼는 설치한 프록시웨어들을 직접 실행하는 대신 ‘warpstrat.dll’을 이용해 간접적으로 실행한다. ‘warpstrat.dll’은 이름과 달리 EXE 실행 파일이며, 인자로 전달받은 명령을 실행시켜주는 단순한 형태의 닷넷 런처 도구다.

[보안뉴스 / 8.22.] MS-SQL 서버에 무차별 대입해 악성코드 설치하는 프록시재킹 공격 발견

▲Traffmonetizer를 이용해 공격자가 얻은 수익[자료=안랩 ASEC 분석팀]

이번 공격에 사용된 프록시웨어들은 Traffmonetizer, IPRoyal Pawns, Proxyrack, PacketStream 등이 있다. 가장 먼저 설치되는 것은 Traffmonetizer다. 공격자는 먼저 특정 경로에 ‘settings.json’ 파일을 생성하는데 여기에는 공격자의 토큰 정보가 저장돼 있다. 그 이후 바이너리에 포함돼 있는 ‘s.zip’ 파일을 생성하고 특정 경로에 압축을 해제한다. 해당 압축파일에는 Traffmonetizer 프로그램들이 존재하며, warpstrat을 이용해 이를 실행시킨다.

Traffmonetizer의 트레이 아이콘을 더블 클릭하면 최근 3개월의 수익을 확인할 수 있는데, 해당 토큰을 사용하는 공격자는 시스템 다수를 감염시켜 상당한 수익을 얻은 것으로 보인다.

[보안뉴스 / 8.22.] MS-SQL 서버에 무차별 대입해 악성코드 설치하는 프록시재킹 공격 발견

▲Device ID 등록 방식[자료=안랩 ASEC 분석팀]

IPRoyal Pawns는 과거 사례를 포함해 대부분의 공격에서 확인되는 프록시웨어 가운데 하나다. IPRoyal Pawns의 특징 중 하나는 프록시웨어를 실행할 때 계정 정보가 필요하다는 점이다. 이에 따라 설치 과정에서 공격자의 이메일 주소와 비밀번호를 확인할 수 있다.

Proxyrack은 ‘device_id’로서 랜덤한 문자열을 생성해 이를 인자로 프록시웨어를 실행한 후 홈페이지에서 자신의 계정에 해당 ‘device_id’를 등록하는 방식으로 수익을 얻을 수 있다. Proxyrack은 이외에도 API를 지원하는데 계정의 API를 이용해 ‘device_id’를 POST로 요청해 등록할 수도 있다.

드로퍼는 Proxyrack의 프록시웨어를 특정 경로에 생성해 실행하는데 그 이전에 ‘prokey.obj’ 파일이 존재하는지를 검사한다. 만약 존재하지 않는다면, 랜덤한 문자열을 생성해 ‘prokey.obj’ 파일에 저장하고, 프록시웨어 실행 시 ‘device_id’ 인자로 사용한다. 또한, PacketStream은 다른 프록시웨어보다 상대적으로 간단한 형태다. 이 악성코드는 특정 경로에 프록시웨어를 설치한 이후 다음과 같은 인자를 전달하고 실행시키는 방식이 사용된다.

최근 확인되고 있는 프록시웨어 드로퍼 악성코드는 시스템의 리소스를 이용해 수익을 얻는다는 점에서 코인 마이너와 비슷하다. 이러한 악성코드들은 애드웨어를 이용해 유포되거나 취약한 MS-SQL 서버를 대상으로 설치되고 있다.

안랩 ASEC 분석팀 관계자는 “MS-SQL 서버의 관리자들은 계정의 비밀번호를 추측하기 어려운 형태로 사용하고 주기적으로 변경해 무차별 대입 공격과 사전 공격으로부터 데이터베이스 서버를 보호해야 하며, 최신 버전으로 패치해 취약점 공격을 방지해야 한다”고 말했다. 이어 “외부에 오픈돼 접근 가능한 데이터베이스 서버에 대해 방화벽과 같은 보안 제품을 이용해 외부 공격의 접근을 통제해야 한다. 또한, V3 등 백신을 최신 버전으로 업데이트해 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다”고 덧붙였다.
[김영명 기자(boan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>