금융정보 탈취 악성코드 분석
1. 개요
분석한 악성코드는 추가로 드롭한 악성 DLL을 로드하도록 윈도우 시스템 DLL 을 변조하여, 금융 정보 탈취와 변조를 시도 한다. 또한, 온라인 금융거래 시에 MITB(Man-In-The-Browser) 공격을 수행하여 목적을 달성한다.
MITB 공격이란, 금융거래 시 사용자와 제공자 사이에서 거래 문서의 무결성(특히, JavaScript 코드의 무결성 검사)을 확인하지 않아 문서가 변조 됐어도 거래가 가능한 취약점을 노려 거래 과정에서 암호화되지 않은 구간의 민감한 정보를 탈취, 변조하는 공격이다.
이번 보고서에서는 MITB 공격을 수행하는 금융 정보 탈취 악성코드를 상세 분석하였다.
2. 분석 정보
2-1. 파일 정보
| 구분 |
내용 |
| 파일명 |
PrimePC.exe |
| 파일크기 |
777,479 Bytes |
| 진단명 |
Banker/W32.Agent.777479 |
| 악성동작 |
드롭퍼 (숙주파일) |
| 구분 |
내용 |
| 파일명 |
[RANDOM_01].dll |
| 파일크기 |
45,056 Bytes |
| 진단명 |
Banker/W32.Agent.45056.D |
| 주요 악성동작 |
보안 프로세스 동작 방해 |
| 구분 |
내용 |
| 파일명 |
[RANDOM_02].dll |
| 파일크기 |
301,316 Bytes |
| 진단명 |
Banker/W32.Agent.301316 |
| 주요 악성동작 |
금융 정보 탈취 및 변조 |
| 구분 |
내용 |
| 파일명 |
[RANDOM_03].dll |
| 파일크기 |
28,672 Bytes |
| 진단명 |
Banker/W32.Agent.28672.B |
| 주요 악성동작 |
보안 프로세스 동작 방해 |
| 구분 |
내용 |
| 파일명 |
wshtcpip.dll (변조) |
| 파일크기 |
19,456 Bytes |
| 진단명 |
Virus/W32.Patched.Gen |
| 악성동작 |
악성 DLL 로딩 |
| 구분 |
내용 |
| 파일명 |
midimap.dll (변조) |
| 파일크기 |
18,944 Bytes |
| 진단명 |
Virus/W32.Patched.Gen |
| 악성동작 |
악성 DLL 로딩 |
2-2. 실행 과정
숙주 악성코드는 여러 파일을 드롭하고 다양한 동작을 수행한다. 세세한 동작을 제외한 주요 동작에 관한 큰 흐름은 아래 그림과 같다. 아래의 흐름도에서 [Random_c].dll 과 [Random_d].dll 이 변조 된 wshtcpip.dll 과 mdidimap.dll 을 통해 로드 되어 악성행위를 수행한다.
[그림 1] 주요 동작 흐름
해당 악성코드는 일명 ‘메모리 해킹 악성코드’ 로 불린다. 이는 금융 거래 시에 암호화 되어 있어야 하는 민감한 정보들이 일시적으로 메모리 상에 복호화 되어 적재 되어 있는 데이터를 탈취/변조 하기 때문이다. 또한, 공격자는 금융 거래 시에 사용 되는 보안 모듈을 분석하여 해당 보안 모듈에서의 유의미한 데이터를 탈취하도록 했다.
3. 악성 동작
3-1. 파일 드롭
숙주 파일(본 보고서에서 PrimePC.exe) 실행 시 %TEMP% 경로 하위에 임의의 이름([tickCount].tmp)으로 생성한 임시 파일을 생성한다. 해당 임시 파일은 숙주 파일과 동일 한 파일로, 생성 이후 숙주 파일로 의해 다시 실행된다. 새로운 프로세스로 동작하는 임시파일은 숙주 파일의 내용을 변경하고, 또 다른 임의의 파일명을 가진 파일([tickCount].exe)을 %TEMP% 폴더 하위에 생성한다.
해당 파일은 다시 여러 파일을 드롭한다. 또한, 정상 wshtcpip.dll 과 midimap.dll 을 변조하며, 특정 보안 모듈의 동작을 방해한다. 해당 파일이 드롭 하는 주요 파일은 아래와 같다.
| 경로 |
파일 명 |
파일 크기 |
비고 |
| %TEMP% |
ahnmove.bat |
- |
자가 삭제 batch 파일 |
| %TEMP% |
[RANDOM_01].dll |
45,056 Bytes |
백신 프로세스에 DLL 인젝션, 코드 패칭 프로세스 종료 |
| %TEMP% %SYSTEM% |
[RANDOM_02].dll |
301,316 Bytes |
변조 wshtcpip.dll 에 의해 로드 추가 모듈 다운로드 백신 동작 방해 온라인 뱅킹 관련 정보 탈취 |
| %TEMP% %SYSTEM% |
[RANDOM_03].dll |
28,672 Bytes |
변조 midimap.dll 에 의해 로드 백신 동작 방해 |
| %SYSTEM% |
wshtcpip.dll |
19,456 Bytes |
변조 된 wshtcpip.dll |
| %SYSTEM% |
midimap.dll |
18,944 Bytes |
변조 된 midimap.dll |
(※ “%SYSTEMROOT%” 환경변수 경로를 편의상 줄여 “%SYSTEM%” 로 한다.)
3-2. 시스템 DLL 변조
윈도우 정상 DLL인 wshtcpip.dll 과 midimap.dll 을 악성 DLL로 변조한다. 변조 된 DLL 은 LoadLibrary 을 사용하여 각각 “[RANDOM_02].dll(295KB)” 과 “[RANDOM_03].dll(28KB)” 을 로딩 하는 역할을 한다. 그 외 나머지 부분은 정상 시스템 파일과 동일 하다. 로드 되는 특정 악성 DLL은 숙주파일로 부터 %SYSTEM% 폴더 하위에 이미 드롭 되어 있기 때문에 로드 될 수 있다.
이로 인해 wshtcpip.dll 과 midimap.dll 을 기본적으로 로드하는 프로세스는 모두 추가적으로 “[RANDOM_02].dll” 과 “[RANDOM_03].dll” 까지 로드하게 된다.
[그림 2] 변조 된 wshtcpip.dll 에서 악성 DLL을 로드하는 과정
3-3. 백신 무력화
특정 보안 업체의 제품 설치 유무를 검사 한 뒤 존재하면 백신 프로그램 서비스를 중지시키고, 특정 보안 파일을 언로드 및 제거 한다.
[그림 3] 서비스 중지 및 드라이브 파일 제거
3-4. 프로세스 종료
변조된 wshtcpi.dll 에 의해 [RANDOM_02].dll 이 “iexplore.exe”에 로드 된 경우 특정 백신 업체의 제품 프로세스를 조회하여 종료시킨다. 또한 윈도우 타이틀의 이름이 특정 문자열과 맞을 경우 종료 메시지를 전달한다. 검사하는 윈도우 타이틀은 아래와 같다.
| 검사하는 윈도우 타이틀 |
||
| 바람의 나라 – 고대 고구려 |
리니지 :: 보안&편의 서비스 |
액션쾌감!!! 던전앤파이터 |
| 메이플스토리 |
바람의나라 |
월드 오브 워크래프트 |
| Dungeon & Fighter |
Elsword |
LineageWindows Client |
3-5. 추가 파일 다운로드 및 실행
위와 마찬가지로 [RANDOM_02].dll 이 “iexplore.exe” 에 로드 된 경우, 추가 파일을 다운로드 및 실행한다. 다운로드 주소는 특정 알고리즘으로 인코딩 되어 있으며, 복호화 시 분석중인 샘플의 경우 “http://w**b.l***x.com:89/up4/jpg.rar” 과 같다. 해당 파일이 다운로드에 성공하면 실행된다.
[그림 4] 추가 파일 다운로드 시도 URL
[그림 5] 추가 파일 다운로드
3-6. 사용자 PC 정보 탈취
현재 PC의 정보를 수집하여 특정 URL로 전송한다. 수집하는 정보는 하기와 같으며, 분석 샘플의 대상 원격지는 http://a**f.8*****6.com:85 이다.