* 출처는 안랩입니다.
웹 서버는 불특정 다수의 사용자들에게 웹 서비스를 제공하기 위한 목적으로 외부에 공개돼 있어 공격자의 표적이 되기 쉽다. 안랩 분석팀은 취약한 웹 서버를 노린 취약점이 패치되지 않았거나 부적절하게 관리되고 있는 웹 서버에 대한 공격을 모니터링하고 있다. 이번 글에서는 수년 동안 국내 기업의 웹 서버를 지속적으로 노려 온 APT 공격 사례와 함께, 공격에 사용된 악성코드 및 툴의 침해지표(Indicator of Compromise, IOC)를 살펴본다.
1. 개요
윈도우 서버에서 웹 서비스를 제공하는 웹 서버들로는 대표적으로 인터넷 정보 서비스(Internet Information Services, IIS)와 아파치 톰캣(Apache Tomcat), 제이보스(JBoss), 엔진엑스(Nginx) 등이 있다. 이들 웹 서버는 취약점이 패치되지 않았거나 부적절하게 관리되고 있는 경우 공격자의 표적이 된다. 실제로 작년 7월, 취약한 아파치 톰캣 웹 서버 및 제이보스 기반 PACS(Picture Archiving and Communication System) 서버를 공격해 메타스플로잇 미터프리터(Metasploit Meterpreter)를 설치한 사례가 있었다.
윈도우 서버를 사용 중인 국내 기업의 경우 IIS 웹 서버의 비중이 높으며, 이에 따라 IIS 서버를 대상으로 하는 공격 또한 다수 확인된다. 과거 달빗(Dalbit)을 비롯해 국내 기업을 대상으로 공격을 시도한 중국의 해커 조직 역시 IIS 웹 서버를 공격 대상으로 삼았다. 이뿐만 아니라 북한의 김수키(Kimsuky) 및 라자루스(Lazarus) 공격 그룹도 IIS 웹 서버를 공격했으며, 라자루스의 경우 해당 서버를 감염시킨 후, 악성코드 배포 서버로 사용하기도 했다.
이번 APT 공격도 윈도우 IIS 웹 서버가 주요 표적이었으며, 최소 2019년부터 국내 기업을 꾸준히 공격해온 것으로 확인된다. 이 공격과 관련해 한국인터넷진흥원(KISA)은 2021년 ‘비정상 광고삽입 침해사고 사례 및 대응방안’이라는 보고서를 발간한 바 있다. 해당 보고서에 따르면, 공격자는 특정 기업의 홈페이지를 공격해 무단으로 광고 코드를 삽입했다. 웹 서버의 방치된 게시판에 존재하는 파일 업로드 취약점을 통해 웹 셸(Web Shell)을 설치하고, 이후 최종적으로 광고 삽입 인프라를 구축해 방문자에게 광고를 노출시켰다. 공격자는 보안 솔루션의 탐지를 우회하기 위해 저녁 시간이나 서버에 관리자가 로그오프할 때 등을 노려 광고 코드가 삽입된 페이지로 변경하고, 아침 또는 서버에 관리자가 로그인할 시간에는 다시 정상 페이지로 복구하는 치밀함을 보였다.
피해를 입은 것으로 확인된 국내 업계는 호텔, 통신 장비 제조사, 온라인 쇼핑몰, 외국계 제조업 등으로 다양하다. 공격 과정에서 대부분 알려진 악성코드와 툴이 사용돼 공격자를 특정하는데 어려움이 있지만, 공격에 사용된 일부 툴이 중국어 버전인 것으로 보아, 공격자는 중국어에 능통한 사용자일 것으로 추정된다.
또한, KISA의 보고서에 공개된 사례에서는 공격자가 최종적으로 정상 웹 서비스에 광고를 삽입했지만, 이번 사례에서는 광고와 관련된 파일이나 로그가 아닌, 볼륨 섀도 복사본을 삭제하는 행위가 확인됐다. 따라서 공격자가 감염 대상 시스템에 랜섬웨어를 설치하는 등의 다른 목적이 있었을 가능성을 무시할 수 없다.
2. 공격자 분석
취약한 시스템은 다양한 공격 대상이 된다. 특히 IIS 웹 서버나 MS-SQL 서버의 경우 각각 다른 공격자가 지속적으로 동일한 시스템을 공격하는 경향이 있다. 이로 인해 여러 악성코드 및 공격 로그 중 특정 공격자의 행위 만을 추출하는 데 한계가 있다. 이 글에서는 짧은 기간 동안 진행된 공격을 기반으로 해당 공격자에게서만 나타난 고유한 특징을 정리했다. 하지만 동일한 시점에 다른 공격자가 유사한 공격을 수행했을 가능성, 즉 다른 공격자의 악성코드 및 공격 로그가 포함됐을 수 있다.
2.1. 웹 서버 공격 사례에서 발견된 공통점
일반적으로 IIS 웹 서버 공격 사례에서는 웹 셸, 포테이토(Potato), 권한 상승 취약점 PoC(Proof of Concept), 라돈(Ladon)과 같은 공통적인 악성코드들이 확인된다. 이들 툴은 대부분 중국어를 사용하는 공격자가 자주 이용하지만, 인터넷에 공개돼 있어 파일만으로는 공격자를 특정하기 힘들다.
하지만 이번에 확인된 공격자는 파일 진단을 우회하기 위해 악성코드를 VM프로텍트(VMProtect)로 패킹하거나 직접 개발해 공격에 사용한 사례가 있었다. 이 외에도 악성코드를 아래 경로에 주로 생성한다는 특징이 있다.
· %ALLUSERSPROFILE%\Microsoft\DeviceSync\
· %SystemRoot%\debug\WIA\
또한, Sy_Runas가 공격에 사용됐는데, 이는 웹 셸을 통해 특정 사용자의 권한으로 명령을 실행하는 툴이다. Sy_Runas를 공격에 사용하는 사례는 현재 기준으로 흔하지 않으며, 다음과 같은 파일명으로 생성된다.
· %SystemRoot%\debug\WIA\wiatrace.log
[그림 1] Sy_Runas
이 밖에, 공격자는 국내 특정 업체의 웹 서버를 악성코드 다운로드 서버로 사용하고 있다. 해당 업체를 공격해 악성코드를 업로드한 후, 다른 업체를 공격할 때 업로드한 악성코드를 다운로드해 사용하는 것으로 추정된다. 참고로 해당 주소는 추후 제어 유지를 위해 넷캣(NetCat)의 C&C 서버로도 사용됐다.
하지만 무엇보다도 가장 큰 특징은 지속성 유지를 위해 웹 셸을 추가적으로 설치하는 악성코드가 확인된다는 점이다. 이에 따라 감염 대상 시스템은 작업 스케줄러에 해당 배치(Batch) 파일을 실행하는 명령이 등록돼 있다.
공격자는 감염 대상 시스템을 장악한 이후 관리자(Administrator)의 계정 정보를 탈취해 사용하거나 UserClone으로 게스트(Guest) 계정에 관리자 권한을 부여해 사용한다. 하지만 이번에는 여러 시스템에서 ‘tripod’라는 이름의 계정이 확인된 것으로 봤을 때, 공격자는 ‘tripod’ 계정을 생성해 사용한 것으로 보인다.
[그림 2] 대다수 감염 대상 시스템에서 확인된 ‘tripod’ 계정
2.2. 공격에 사용된 중국어 툴
공격에 사용된 툴 중 대다수는 이미 공개된 툴이며, 공격자가 직접 제작한 것으로 추정되는 파일들도 모두 PDB(Program DataBase)와 같은 부가적인 정보가 존재하지 않는다. 하지만 공격자가 공격에 사용한 툴이나 직접 제작한 악성코드에서 중국어 환경과의 연관성이 확인됐다.
공격자는 지속성 유지 과정에서 WinRAR를 사용해 웹 셸을 설치한다. 일부 사례에서는 일반적인 영문 버전의 WinRAR가 사용됐지만, 2019년도에 확인된 공격에서는 중국어 버전의 rar가 사용된 이력이 확인된다.
[그림 3] 중국어 버전의 WinRAR.exe
공격자는 공격 과정에서 테스트 목적의 프로그램을 제작해 사용하기도 했다. 테스트 프로그램은 WinRAR SFX 형태의 실행 파일로, 어떤 파일은 단순하게 동일한 경로에 ‘test.txt’라는 이름의 빈 파일을 생성하는 행위가 전부지만, 동일한 경로에 ‘test’라는 이름의 빈 파일을 생성하는 것 외에도 다음 경로에 존재하는 ‘sd2.bat’ 파일을 실행하는 명령이 함께 포함된 파일도 있다. 참고로 해당 경로는 공격에 사용되는 경로로, 만일 해당 경로에 배치 파일이 존재할 경우 실행시키는 런처(Launcher) 기능을 담당할 수도 있다.
> “C:\Windows\System32\cmd.exe” /c C:\WINDOWS\System32\spool\drivers\color\sd2.bat |
[그림 4] 테스트 목적으로 추정되는 WinRAR SFX 실행 파일
* 전체내용은 아래에서 확인하세요