서명 툴로 실행되는 X로더 악성코드 주의
안랩이 DLL 사이드 로딩(Side-Loading) 기법을 이용하는 X로더(XLoader) 악성코드의 유포 정황을 확인했다. DLL 사이드 로딩 공격 기법은 정상적인 응용 프로그램과 악성 DLL을 같은 폴더 경로에 저장하여 응용 프로그램이 실행될 때 악성 DLL이 함께 동작하도록 하는 기법이다. 이번 사례에서는 X로더 실행 시 정상 응용 프로그램 jarsigner가 사용됐다. Jarsigner는 이클립스(Eclipse) 재단에서 배포하는 IDE 패키지를 설치할 때 생성되는 파일로, JAR(Java Archive) 파일에 서명하는 도구이다. 이번 글에서는 Jarsigner를 통해 X로더가 실행되는 과정을 살펴본다.
안랩에 따르면, 유포된 파일은 압축 파일 형태로 유포되며, 내부에는 정상 EXE 파일과 악성 DLL 파일이 포함돼 있다. 이 중 악성 파일은 ‘jli.dl’과 ‘concrt140e.dll’ 두 개뿐이다.
[그림 1] 압축 파일에 포함된 파일
[그림 1]의 정상 파일은 대부분 이클립스 재단의 유효한 인증서를 포함하고 있으나, 두 악성 파일은 서명되어 있지 않다.
– jli.dll: 공격자에 의해 변조된 DLL 파일로, concrt140e.dll 복호화 및 인젝션 수행
– concrt140e.dll: 암호화된 페이로드 (X로더 악성코드)
– Documents2012.exe: 정상 파일(jarsigner.exe)의 파일명 변경
[그림 2] 정상 파일에 서명된 인증서
Documents2012.exe 파일은 jli.dll 을 로드하여 export 함수를 사용하는데, 정상 jli.dll과 달리 악성 jli.dll은 모든 export 함수의 주소가 동일하다. 따라서 로드된 악성 jli.dll의 임의 함수를 호출하면 공격자가 작성한 함수가 실행된다.
[그림 3] 정상 jli.dll과 악성 jli.dll export 함수 목록 비교
함께 유포된 concrt140e.dll 파일은 암호화된 페이로드로, 공격 과정에서 복호화되어 정상 파일인 aspnet_wp.exe에 인젝션되어 실행된다. 인젝션된 악성코드는 X로더로, 사용자의 PC 정보, 브라우저 정보 등 민감 정보를 탈취하며, 추가 악성코드 다운로드 등의 다양한 기능을 수행한다.
이처럼 공격자는 정상 EXE 파일을 통해 악성 DLL을 실행하도록 파일을 유포하고 있다. 따라서 사용자들은 실행 파일과 함께, 유포되는 파일에 주의해야 한다.
출처 : AhnLab