국내 기업 노린 안다리엘 해킹 공격, 최신 사례와 대응 방안
안랩은 불특정 공격자가 국내 ERP 솔루션을 악용해 공격을 수행하는 정황을 확인했다. 공격자는 시스템에 침투한 이후, 기업 내의 시스템들을 장악하기 위해 국내 특정 ERP 솔루션의 업데이트 서버를 공격한 것으로 추정된다. 최근에 발견된 사례에서는 공격자가 국내 방산 업체 및 제조업의 취약한 웹 서버를 공격해 악성코드를 유포했다. 해당 악성코드의 유포 과정을 살펴보자.
확인된 악성코드들 중에는 기존 ERP 솔루션의 업데이트 프로그램에 악성 루틴이 삽입된 형태가 존재하는데, 이런 방식은 2017년 안다리엘 그룹이 HotCroissant 백도어를 설치하기 위해 사용했던 사례와 유사하다. 제작자는 악성코드들을 개발하는 과정에서 Xct라는 문자열을 사용했으며, 여기에서는 최종적으로 사용된 백도어를 Xctdoor로 분류한다.
라자루스(Lazarus)의 하위 그룹으로 알려진 안다리엘(Andariel)은 ‘Rifdoor’라는 백도어 악성코드를 사용한다. 이 악성코드는 2015년 11월 처음 발견됐으며, 2016년 초까지 활동이 확인됐다. 이후 2017년부터는 Rifdoor의 변종이 공격에 사용됐다. 이 글에서는 Rifdoor의 변종을 ‘HotCroiassant’로 분류한다.
HotCroissant를 이용한 공격 사례들 중에는 2017년 국내 ERP 솔루션을 악용해 악성코드를 유포한 사례가 존재한다. 공격자는 업데이트 프로그램인 “ClientUpdater.exe”에 악성 루틴을 삽입했다. 이는 공격자가 특정 조직에 침투한 이후, ERP의 업데이트 서버를 공격해 내부 전파 목적으로 이를 악용한 것으로 추정된다.
업데이트 프로그램에 삽입된 루틴은 다음과 같이 외부에서 추가 페이로드를 다운로드해 실행하는 기능을 담당한다. 해당 주소에서 다운로드된 악성코드는 2017년도부터 공격에 사용되고 있던 HotCroissant 백도어였다.
[그림 1] ERP 업데이트 프로그램에 삽입된 다운로더 루틴
2024년 5월에도 유사한 공격 사례가 확인됐다. 과거 “ClientUpdater.exe”에 다운로더 루틴이 삽입된 것과 달리, 이번에는 단순하게 Regsvr32.exe 프로세스를 이용해 특정 경로의 DLL(Dynamic Link Library)을 실행하는 루틴이 삽입돼 있었다.
[그림 2] ERP 업데이트 프로그램에 삽입된 실행 루틴
비록 최초 설치 과정은 확인되지 않지만, 확인된 DLL이 시스템 내의 정보를 탈취하고, 공격자의 명령을 실행할 수 있는 악성코드인 것으로 보아, 과거와 유사하게 특정 ERP의 업데이트 서버가 공격당한 것으로 보인다.
최종적으로 설치된 DLL 악성코드는 공격자가 개발 과정에서 사용한 “XctMain”과 동일한 키워드를 기반으로, Xctdoor로 분류된다. Xctdoor는 Regsvr32.exe 프로세스를 통해 실행될 수 있도록 DLL 포맷이며, 고(Go) 언어로 개발됐다.
Regsvr32.exe 프로세스에 의해 실행될 경우, 자신을 “taskhost.exe”, “taskhostex.exe”, “taskhostw.exe”, “explorer.exe”와 같은 프로세스에 인젝션한다. 이후 자신을 “%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge.Current_8wekyb3d8bbwe\Settings\roaming.dat” 경로에 복사하고 재부팅 후에도 동작할 수 있도록 시작 프로그램 폴더에 바로 가기 파일을 생성한다. 바로 가기 파일인 “MicrosoftEdge.lnk”는 “roaming.dat”을 직접 실행하는 형태가 아니며, Regsvr32.exe를 이용해 동일 경로의 “settings.lock” 파일을 실행한다.
“settings.lock”은 인젝터 악성코드로서 공격자가 제작할 때 사용한 이름에 따라 XcLoader로 분류한다. XcLoader는 단순하게 동일 경로의 “roaming.dat” 파일을 탐색기, 즉, explorer.exe에 인젝션하는 기능을 담당한다.
[그림 3] XcLoder의 인젝션 루틴
참고로 고 언어로 개발된 XctLoader는 최초로 확인됐으며, 이번 공격에서는 고 언어로 개발된 XctLoader와 함께, C언어로 개발된 XctLoader가 확인됐다.
최종적으로 실행되는 Xctdoor는 C&C 서버에 사용자 및 PC 이름, 악성코드의 PID 등과 같은 기본적인 정보를 전송하고 명령을 전달받아 실행할 수 있는 백도어 악성코드다. 이 외에도 스크린샷, 키로깅, 클립보드 로깅, 드라이브 정보를 전송하는 정보 탈취 기능도 함께 지원한다.
[그림 4] Xctdoor가 지원하는 기능들
Xctdoor는 HTTP 프로토콜을 이용해 C&C 서버와 통신하는데 패킷 암호화에는 메르센 트위스터(mt19937) 알고리즘과 베이스64(Base64) 알고리즘이 사용된다.
[그림 5] Xctdoor의 C&C 통신 패킷
2024년 3월에는 웹 서버를 공격해 XcLoader를 설치하는 사례가 확인됐다. 공격 대상이 2013년 개발된 8.5 버전의 윈도우 IIS 웹 서버인 것으로 보아, 부적절한 설정이나 취약점 공격을 통해 악성코드를 유포한 것으로 추정된다.
[그림 6] 웹 서버를 공격해 XcLoader를 설치하는 로그
IIS 서버에서 실행된 명령들을 보면, 악성코드 설치와 관련된 행위 외에도 시스템의 정보를 조회하는 등의 행위가 확인된다. 이는 일반적으로 웹 서버에 웹 셸을 설치하고 이를 이용해 명령을 실행하는 사례들과 유사하며, 해당 시스템 또한 웹 셸이 설치돼 있을 것으로 추정된다.
공격에 사용된 XcLoader는 고 언어로 개발된 유형과 유사하게 동일 경로에 위치한 “roaming.dat” 파일을 읽어 복호화한 후, 프로세스에 인젝션하는 기능을 담당한다. 차이점이 있다면, 2024년 5월 사례에서는 “roaming.dat” 파일이 PE 형태지만, 해당 사레에서는 암호화된 파일이라는 점이다. XcLoader는 주로 탐색기 프로세스를 인젝션 대상으로 하지만, “sihost.exe” 프로세스를 선택하는 경우도 존재한다
해당 공격에 사용된 XcLoader의 특징으로는 [그림 7]과 같이 특정 경로에 로그를 쓰는 것이다. 이 경로는 웹 서버와 관련된 구체적인 경로로 보이며, 이미 공격자에 의해 웹 서버가 장악됐다는 것을 의미한다.
[그림 7] 악성코드가 행위를 로깅하는 경로
참고로 공격이 발생한 시스템들 중 하나에서는 이후 Ngrok의 로그가 확인되기도 했다. Ngrok는 터널링 프로그램으로서 외부에서 NAT 환경 내부에 존재하는 시스템에 접속할 수 있게 노출시켜 주는 툴이다. 일반적으로 공격자가 감염 대상 시스템에 RDP(Remote Desktop Protocol)로 접속해 원격 제어를 하기 위해 설치하는 경우가 많으며, 김수키(Kimsuky) 그룹의 공격 사례에서 자주 확인된다.
update tcp 3389 –authtoken 2gX7z8V0maCIrjdsYA1jaDF9wSz_4RyHTgn7eAnYhSBxjis9J
공격자가 입력한 Ngrok(update.exe) Command Line
ASEC에서는 고도화된 지능형 지속 위협(Advanced Persistent Threat, APT)을 모니터링하고 있으며, 최근 국내 ERP 솔루션을 악용한 공격 사례를 확인했다. 공격자는 과거 안다리엘 그룹이 사용한 방식과 유사하게 조직 내부에 악성코드를 전파하기 위해 ERP 솔루션을 악용했다.
웹 서버를 노린 공격 중 최신 사례는 올해 5월, 방산 업체를 대상으로 한 공격으로, 이전에도 유사한 공격이 이루어졌다. 2024년 3월에는 국내 제조 업체의 웹 서버를 공격해 XcLoader를 설치한 사례가 확인됐다. XcLoader는 Xcdoor를 정상 프로세스에 인젝션하는 기능을 담당하는 인젝터 악성코드다. Xcdoor는 스크린 캡쳐, 키로깅, 클립보드 로깅, 드라이브 정보 등 감염 대상 시스템의 정보를 탈취하고, 공격자의 명령을 실행할 수 있는 백도어 악성코드다. 따라서, 공격자는 해당 악성코드를 통해 감염 대상 시스템을 제어하고 정보를 탈취할 수 있다.
사용자들은 출처가 불분명한 메일의 첨부 파일이나 웹 페이지에서 다운로드한 실행 파일을 각별히 주의해야 하며, 기업 보안 담당자는 자산 관리 프로그램의 모니터링을 강화하고 프로그램 보안 취약점이 있다면 패치해야 한다. 또한, 운영체제(OS) 및 인터넷 브라우저 등의 프로그램들에 대한 최신 패치와 V3를 최신 버전으로 업데이트해 악성코드 감염을 사전에 차단할 수 있도록 신경 써야 한다.
출처 : AhnLab