AhnLab Security Emergency response Center(ASEC)에서는 과거 “국내 VPN 설치파일에 포함되어 유포 중인 SparkRAT” [1] 포스팅과 “국내 VPN 설치에서 MeshAgent 감염으로 이어지는 공격 사례 분석” [2] 포스팅을 통해 국내 VPN 업체의 설치 파일에서 SparkRAT 악성코드가 유포된 사례를 공개한 바 있다.
ASEC에서는 최근 유사한 악성코드들이 국내 VPN 업체들과 마케팅 프로그램 판매 업체의 설치 파일로 위장하여 유포 중인 것을 확인하였다. 차이점이 있다면 과거 SparkRAT을 설치한 대신 Sliver C2가 공격에 사용되었으며, [3] 탐지를 우회하기 위한 기법들이 함께 사용되었다는 점이다.
현재 기준 해당 업체들 대부분은 홈페이지에서 정상 설치 파일이 다운로드되고 있다. 이에 따라 과거처럼 공식 홈페이지의 설치 파일에서 유포된 후 현재 조치가 되었는지 또는 다른 유포 경로가 있는지는 확실하지 않다. 하지만 관련 악성코드들을 조사한 결과 모두 동일한 프로그램 개발 업체에서 제공되는 프로그램이라는 사실이 확인되었다. 악성코드들 대부분은 해당 개발 업체의 인증서를 위장하고 있었으며 유효한 인증서로 서명된 악성코드들도 다수 확인된다.
또한 해당 개발 업체에서 제공하는 소프트웨어 다운로드 웹 사이트에서는 아직까지도 악성 설치 파일이 업로드되어 있어 사용자들이 이러한 사실을 모르고 설치할 수 있다. 이러한 사실들을 통해 공격자가 프로그램 개발 업체를 공격해 악성코드가 포함된 설치 파일들을 유포시킨 것으로 추정되며 이러한 공격은 올해 상반기부터 지속적으로 이루어지고 있다.
Figure 1. 악성코드 유포에 사용 중인 개발 업체의 소프트웨어 다운로드 웹 사이트
1. 과거 공격 사례
Figure 2. 과거 공격 흐름도
과거 사례들을 보면 국내 VPN 업체의 홈페이지에서 기존 설치 파일 대신 악성 설치 파일이 업로드되어 있었다. 이에 따라 사용자는 정상적으로 설치 파일을 실행했다고 인지할 수 있지만 악성코드도 함께 시스템에 설치되어 동작하게 된다. 최초 공격에서 악성 설치 파일은 닷넷으로 개발되어 있었으며 단순하게 정상 설치 파일과 SparkRAT 악성코드를 생성하고 실행하였다. SparkRAT은 Go 언어로 개발된 오픈 소스 RAT 악성코드로서 깃허브에 공개되어 있으며 명령 실행, 정보 탈취, 프로세스 및 파일 제어와 같이 감염 시스템을 제어할 수 있는 기능들을 제공한다.
이후에도 해당 VPN 업체의 홈페이지에서는 지속적으로 악성코드가 업로드되었으며 탐지를 우회하기 위해 직접 악성코드를 드롭하는 대신 다운로더 악성코드를 거쳐 SparkRAT을 설치하는 방식으로 변경되었다. 그리고 백도어인 SparkRAT을 감염 시스템에 설치한 이후에도 원격 데스크톱을 위해 MeshCentral의 MeshAgent를 추가적으로 설치하였다.
2. 현재 공격에 사용 중인 악성코드 분석
Figure 3. 현재 공격 흐름도
악성코드를 함께 설치하는 드로퍼였던 과거의 악성 설치 파일과 달리 현재 사용되는 유형은 다운로더이자 인젝터 악성코드이다. 인스톨러를 포함하여 공격에 사용된 악성코드들은 Go 언어로 개발되었으며 모두 난독화된 형태이다. 공격자가 과거 사용한 SparkRAT 또한 Go 언어로 개발된 백도어이며 이후 공격 과정에서도 Go 언어로 개발한 드로퍼 및 다운로더 악성코드를 사용하였다. 최근 확인되고 있는 Sliver C2 또한 Go 언어로 개발된 점을 보면 공격자는 악성코드 제작 시 Go 언어를 선호하는 것으로 보인다.
Figure 4. 난독화된 Go 바이너리
악성 설치 파일은 C&C 서버에 접속해 암호화된 설정 데이터를 다운로드하며 조건에 매칭될 경우 Sliver C2를 다운로드해 정상 프로그램인 메모장(notepad.exe)를 실행하고 여기에 인젝션한다. 이러한 과정은 정상 설치 파일을 생성하고 실행하는 작업과 동시에 이루어지기 때문에 사용자들은 정상적인 설치 파일이라고 생각할 수 있다.
Figure 5. 악성 설치 파일이 생성한 정상 설치 파일
악성 설치 파일은 안티 샌드박스 기능이 포함되어 있다. 현재 실행 중인 프로세스들의 목록을 조회하여 특정 프로세스가 실행 중일 경우에만 인젝션 행위를 수행한다. 검사하는 프로세스의 목록은 다음 주소에 암호화된 형태로 존재하며 악성코드는 이를 다운로드해 복호화하여 조건 검사에 사용한다.
해당 문자열들은 일반적인 사용자들의 PC에 설치되어 있을만한 프로그램들이다. 참고로 이러한 VPN 서비스들의 주요 고객이 중국에서 원활한 인터넷 접속을 위해 VPN을 설치하는 사용자들이기 때문에 중국 메신저들도 많이 확인된다. 악성코드는 조건에 매칭되면 외부에서 암호화된 Sliver C2를 다운로드하고 복호화하며, 이후 정상 프로그램인 메모장을 실행시키고 여기에 Sliver C2를 인젝션한다.