ASEC에서는 그 동안 악성코드에 의해 정상 윈도우(Windows) 시스템 파일을 변조시켜 악의적인 기능을 수행하는 패치드(Patched) 형태의 악성코드에 대한 정보들을 공개하였다.


특히 다양한 온라인 게임의 사용자 정보들을 탈취하는 온라인 게임 관련 트로이목마(OnlineGameHack)에 의해 온라인 게임의 메인 실행 프로세스의 주소 공간에 악성코드인  DLL 파일을 안정적으로 실행시키기 위해 윈도우 시스템의 정상 DLL 파일들을 감염 시키는 형태가 자주 발견되고 있다.


이러한 형태의 악성코드들을 일반적으로 패치드(Patched) 형태의 악성코드라고 불리고 있으며, 현재까지 발견된 악성코드에 의해 사용되는 패치드 기법들을 다음과 같이 정리 할 수 있다.


1. DLL 파일에 악의적인 DLL 파일을 로드하는 코드 삽입 후 이 코드로 분기하도록 패치하는 형태


일반적으로 많이 알려진 패치드 형태로서, 과거 3년 전부터 발견되기 시작하였으며, 주로 패치의 대상이 되었던 윈도우 정상 DLL 파일들은 imm32.dll, olepro32.dll, dsound.dll과 같다. 


패치가 된 DLL 파일은 위 이미지와 같이 파일의 섹션 끝 부분에 쉘코드(Shellcode)가 삽입 되어 있다



엔트리포인트(EntryPoint) 변경 후에는 콜 패치(Call Patch) 등의 방법으로 삽입된 코드가 실행이 되면 아래 이미지와 같이 LoadLibraryA가 호출이 되어 악의적인 DLL 파일이 로드 된다.



2. 윈도우 정상 DLL 파일을 악의적인 DLL 파일로 교체 한 뒤, 정상의 Export 함수들을 리다이렉트(Redirect) 시키는 형태

직접적으로 윈도우 정상 DLL 파일을 악의적인 DLL 파일로 교체하는 형태를 이야기 한다. 

이렇게 윈도우 정상 DLL 파일을 감염 시켰을 경우 원래 정상 DLL 파일의 익스포트(Export) 함수들이 정상적으로 호출이 되어야 함으로 익스포트 네임 테이블(Export Name Table)에서 이 함수들로 리다이렉트(Redirect) 시켜 주게 된다.

일반적으로 대상이 되었던 윈도우 정상 DLL 파일들은 ws2help.dll이나 wshtcpip.dll 들이다.


3. AppInit_DLL 레지스트리를 이용한 악의적인 DLL 파일 로드


윈도우 정상 DLL 파일들을 직접적으로 감염 시키는 형태는 아니지만, 온라인 게임 프로세스에 악의적인 DLL을 로드하기 위해 AppInit_DLL 레지스트리를 이용하는 형태이다.


해당 레지스트리에 악의적인 DLL 파일의 파일명을 삽입하게 되면 프로세스가 생성이 될 때, 레지스트리에 있는 존재하는 악의적인 DLL 파일이 로드되는 형태 이다.


4. 온라인 게임 프로세스와 동일 경로에 윈도우 정상 DLL 파일들과 동일한 파일명의 악의적인 DLL 파일 생성


전통적인 DLL 인젝션(Injection) 기법 중 하나로 많이 알려진 형태이며, 2012년 상반기에 발견되기 시작하여 최근 자주 발견되고 있는 온라인 게임 관련 악성코드에서 사용하는 기법이다. 주 대상이 되고 있는 윈동 정상 DLL 파일은  Usp10.dll 을 들 수 있다.

 

온라인 게임 관련 트로이목마 드로퍼(Dropper)가 온라인 게임 프로세스와 같은 경로에 악의적인 usp10.dll 파일을 생성한다. 그 이후 온라인 게임 프로세스가 생성이 될 때 윈도우 시스템 폴더(system32)에 존재하는 정상 usp10.dll 파일 보다 우선 순위가 높은 CurrentPath에 존재하는 악의적인 usp10.dll을 먼저 로드 하게 된다. 그 후 악의적인 usp10.dll 파일이 악의적인 행위를 수행한 뒤에  정상 usp10.dll로 로드하여 정상적인 기능도 제공을 해주는 형태로 동작한다.


5. 리다이렉트(Redirect) 대신 LoadLibrary로 직접 정상 DLL 파일을 로드한 뒤, 해당 익스포트(Export) 함수를 호출하는 형태


각 익스포트(Export) 함수에서 직접 정상 DLL 파일을 로드한 후, GetProcAddress 함수를 이용해 정상 DLL 파일의 익스포트(Export) 함수 주소를 얻은 후 호출하여 정상적인 기능을 제공한다.

이러한 형태로 각각의 익스포트(Expor)t 함수들을 분석을 해보면 아래 이미지와 같이 쉽게 백업된 정상 DLL 파일의 파일명인 ws2helpxp.dll을 확인 할 수 있다.




6. 각각의 익스포트(Export) 함수가 널(Null)로 채워져 있거나, 인코딩(Encoding) 되어 있는 형태

 

정상 DLL 파일명을 확인하기 어려도록 하기 위한 목적으로 각 익스포트(Export) 함수가 아래 이미지와 같이 널(Null)로 채워져 있거나 인코딩(Encoding) 되어 있는 형태들이다.



최근에는 아래 이미지와 같이 문자열을 바로 보여지지 않으려는 시도까지 하고 있다.



앞서 우리는 윈도우 시스템 정상 DLL 파일들을 변조하는 패치드 형태의 악성코드들의 다양한 기법들을 살펴 보았다.


이러한 패치드 형태의 악성코드들이 자주 발견되고 있는 배경으로는 온라인 게임의 사용자 개인 정보를 탈취 하려는 목적과 연관이 되어 있으며, 최근에는 보안 소프트웨어를 무력화하기 위한 목적까지 포함되기 시작하였다.


특히 몇 년전부터 온라인 게임 관련 악성코드들은 유저모드(User Mode)와 커널 모드(Kernel Mode)에 걸쳐 다양한 기법들을 이용해 보안 소프트웨어를 무력화하고자 시도하고 있다. 최근에는 직접적으로 보안 소프트웨어를 공격하기 보다는 좀더 취약하고 방어하기 어려운 윈도우 정상 DLL 파일을 감염시켜 보안 소프트웨어를 무력화 시키고자 시도하고 있다.


이렇게 보안 소프트웨어의 발전과 함께 악성코드 역시 다양한 기법들을 동원하여 진단 및 치료를 어렵게 함과 동시에 직접적으로 보안 소프트웨어를 무력화하기 위한 다양한 기법들을 사용하고 있다. 그러므로 컴퓨터 시스템을 사용하는 개별 사용자가 시스템 관리와 보안에 대한 각별한 관심이 필요하다.

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by 비회원

ASEC에서는 4월 4일 온라인 뱅킹 정보 탈취를 위해 제작된 스파이아이(SpyEye) 트로이목마가 이제는 온라인 뱅킹외에 다양한 국가에 위치한 다양한 산업군의 웹 사이트들에서 사용자 계정 정보들의 탈취를 노린다는 정보를 전달한 바가 있다.


이러한 스파이아이 트로이목마가 감염 형태가 기존에 발견되었던 스파이아이 변형들과 다른 새로운 형태의 스파이아이 변형이 발견되었다.


이 번에 발견된 스파아이 트로이목마는 전체적인 동작면에서는 기본적으로 동일한 것으로 미루어 현재까지 언더그라운드에 공개된 다양한 온라인 뱅킹 정보 탈취 트로이목마들의 소스코드 중 스파이아이의 소스코드를 사용된 것으로 추정된다.


추가적으로 ASEC에서는 2012년 5월 중순부터 해당 새로운 스파이아이 트로이목마 변형이 유포되기 시작한 것으로 추정되며, 그리고 웹 익스플로잇 툴킷(Web Exploit Toolkit)의 한 종류인 블랙홀 익스플로잇 툴킷(Blackhole Exploit Toolkit)에 의해 유포된 것으로 추정하고 있다.


해당 스파이아이 트로이목마에 감염되면 감염된 시스템에서 실행 중인 정상 윈도우 시스템 파일 explorer.exe의 프라이빗 메모리(Private Memory) 영역에 자신의 코드 16,384 바이트를 삽입하게 된다.



정상적으로 explorer.exe의 메모리 영역에 자신의코드가 삽입되면 자신의 복사본을 다음 경로에 설정 파일과 함께 생성하나, 기존 스파이아이 변형들처럼 유저 모드(User Mode)의 은폐 기능을 수행하지는 않는다.


C:\Documents and Settings\All Users\Application Data\default\bin.exe


다음 레지스트리 키(Registry Key)를 생성하여 윈도우 시스템이 재부팅되어도 자동 실행되도록 구성한다.


HKCU\Software\Microsoft\Windows\CurrentVersion\Run\default

"C:\Documents and Settings\All Users\Application Data\default\bin.exe"


그리고 독일에 위치한 C&C 서버와 암호화된 통신을 통하여 별도의 설정 파일인 web.dat을 아래의 경로에 생성하게 된다.


C:\Documents and Settings\All Users\Application Data\default\web.dat 

C:\Documents and Settings\All Users\Application Data\default\cfg.dat


생성된 설정 파일은 RC4로 인코딩되어 있으며, 이를 디코딩하는 키값은 해당 스파이아이 트로이목마 내부에 가지고 있으며, 생성된 설정 파일을 디코딩하게 되면 아래 이미지와 같은 텍스트 파일이 나타나게 된다.



해당 설정 파일에는 아래 이미지와 같은 독일에 위치한 은행의 온라인 뱅킹 웹 사이트의 로그인을 위한 사용자 계정과 암호를 후킹하기 위한 코드가 설정되어 있다. 



이 외에 이번에 발견된 스파이아이 변형은 웹 폼 인젝션(Web Form Injection)을 위해 마이크로소프트 인터넷 익스플로러(Internet Explorer), 구글 크롬(Google Chrome)과 파이어폭스(Firefox) 웹 브라우저 실행 여부를 확인하고 접속하는 웹 사이트 주소를 확인하게 된다.


그리고 파이어폭스의 사용자 설정 파일인 user.js 을 확인하여 아래 이미지와 같은 코드를 삽입하여, 파이어폭스에 포함되어 있는 보안 경고 기능을 무력화 하게 된다.



이 번에 발견된 스파이아이 변형은 전체적인 감염 동작은 기존에 발견된 스파이아이 변형들과 동일하게 정상 explorer.exe 의 메모리 영역에 자신의 코드를 삽입하고, 웹 브라우저가 접속하는 웹 사이트 주소를 설정 파일과 비교하여 웹폼 인젝션을 통해 사용자 계정과 암호를 후킹하는 것은 동일하다. 


그러나 기존 스파이아이 변형들이 가지고 있는 유저 모드 은폐 기능을 통해 생성한 파일 복사본과 설정 파일들을 은폐하는 기능이 존재하지 않는 차이점만을 가지고 있다.


이 번에 발견된 스파이아이의 새로운 변형은 V3 제품군에서 다음과 같이 진단한다.


Win-Trojan/Spyeyes.19968.B


저작자 표시
신고
Creative Commons License
Creative Commons License
Posted by 비회원