'MUICache'에 해당되는 글 1건

  1. 2010.07.01 감염PC 분석시 유용한 Cache 정보들
0x04 reference&tools2010. 7. 1. 15:35


감염PC 분석시 보통 숙주파일(exe,dll)이나 숙주서버(C&C) 정도를 찾는게 대부부입니다.
하지만 좀 더 정확한 분석을 통해 피해를 줄이고자 할 경우 어떤 경로를 통해서 감염이 되었는지에 대한 조사가 필요한 경우가 있습니다. 이런 경우 Cache와 같은 정보들을 뒤져서 감염 경로를 역추적하는 것이 가능한데 본 글에서는 이런 정보들에 대해 언급하고자 합니다.

대표적으로 많이 보는 것이 IECache입니다. 과거 인터넷 기록들이 모두 남기 때문에 분석에 큰 도움을 줍니다.

현재 존재하는 좀비PC들은 인터넷 서핑을 통해 악성코드가 설치된 경우가 대부분입니다. 패치가 정상적으로 되어 있지 않거나 게임이나 인터넷을 하는데 느리다는 이유로 백신을 Deactive 시킨 경우에 악성코드에 노출될 위험성이 큽니다.

본 포스팅에서는 총 4가지 정보에 대해서 알아보도록 하겠습니다.



0x01 MUICache (Multilingual User Interface Cache)

MUICache는 다중 언어를 지원하기 위해 프로그램 이름을 캐쉬하는 레지스트리입니다.
흔히들 부팅 후 사용되는 메모리의 양을 줄이기 위해 레지스트리에서 MUICache를 지우는 경우가 있습니다.
지우셔도 상관은 없습니다. 아래 그림이나 레지스트리를 자세히 보시면 평소 실행하지 않았던 프로그램들도 목록에 포함되어 있는걸 확인하실 수 있습니다.

MUICache는 아래 레지스트리에서 확인이 가능하며 Nirsoft에서 배포하는 MUICacheView라는 프로그램을 통해서도 확인할 수 있습니다.

HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\ShellNoRoam\MUICache
HKEY_USERS\{SID}\Software\Microsoft\Windows\ShellNoRoam\MUICache





http://www.nirsoft.net/utils/muicacheview.zip

MUICache에 있는 목록들을 삭제하더라도 해당 프로그램을 다시 실행시키면 MUICache 목록에 추가가 됩니다.
즉, 자주 사용하지 않는 프로그램이라면 삭제하셔도 무방합니다.

분석자 입장에서는 이 MUICache 목록에 일반적이지 않은 프로그램들이 추가되어 있지 않은지 확인해봐야 한다는 것이죠.
일반적인 프로그램 중 윈도우에서 사용되는 기본 프로그램들은 이미 목록에 있을테고 사용자가 설치하여 사용하는 프로그램도 한번이라도 실행했다면 MUICache 목록에 기록이 됩니다. 즉, 일부러 지우지 않는한 한번이라도 실행된 프로그램은 MUICache에 남는다는 점을 기억해야 할 것입니다.



0x02 UserAssist

UserAssist는 시스템에서 실행되었던 프로그램이 목록과 실행 횟수 그리고 마지막 실행시간 정보를 가지고 있습니다.
UserAssist 정보 또한 레지스트리에 저장되어 있는데요

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist




Didier Stevens씨가 만드신 UserAssist 프로그램도 있습니다.
UserAssist는 MUICache와는 달리 프로그램으로 보는게 훨씬 보기 좋은데요..
위 레지스트리를 보시면 이상하게 암호화되어 있는것처럼 보이는데 이것은 ROT13으로 간단하게 암호화되어 있기 때문에 이걸 보기 좋게 보여주는 프로그램을 쓰는게 훨씬 낫겠죠..^^

http://didierstevens.com/files/software/UserAssist_V2_4_3.zip




UserAssist 정보는 IECache나 Prefetch의 정보들과 연관지어 분석을 하시면 악성코드가 어떤 경로를 통해서 다운로드되고 실행되었는지를 파악하기 좋습니다. 그 이유는 실행시간 정보가 있기 때문입니다.

Prefetch 부분에서 언급이 되겠지만 보통 사용자의 동의를 구하지 않고 실행된 악성코드가 2~3회 실행되는 경우는 그다지 많지 않습니다. 즉, 딱 한번 그러니까 특정 취약점이나 사회공학 기법에 의해 악성코드를 실행하고 서비스를 올려서 C&C와 통신을 하게 되는데 딱 한번 실행되기 때문에 Prefetch 폴더에 있는 악성코드라 의심되는 파일의 prefetch 파일의 생성시간을 가지고 감염 시간대를 좁혀 나갈 수 있다는 것이죠..



0x03 IECache (Internet Explorer Cache)

다들 잘 아시는 인터넷 익스플로러 캐쉬 파일입니다. 웹 사이트 방문 기록이라던지 열어 보았던 파일(html, 이미지 등등)들에 대한 기록을 가지고 있습니다.

IECache를 보는 대표적인 프로그램 두가지를 소개하겠습니다.


IECache Viewer - http://www.nirsoft.net/utils/iecacheview.zip




IECache Viewer는 C:\Document and Settings\{사용자ID}\Local Settings\Temporary Internet Files에 있는 파일들의 목록을 보여줍니다.


Index.dat Analyzer - http://www.systenance.com/download/indexdat-setup.exe




Index.dat Analyzer는 시스템에 존재하는 index.dat 파일을 모두 찾아서 index.dat 파일에 담겨져 있는 정보를 보여줍니다.
그런데 운영체제마다 index.data 파일의 위치가 다르기 때문에 매번 찾는 수고를 덜어 줄 수 있습니다.(귀차니즘~)

운영체제별 index.data 파일의 위치는 아래 링크를 참조하시기 바랍니다.

http://forensic-proof.com/20


앞에서도 언급했듯이 이런 정보들은 시간과 관련된 정보들 조합해서 결론을 도출해야 되는데

예를 들어 악성코드에 감염되어 서비스로 등록된 것이 확인이 되었다면 시스템 이벤트 뷰어를 통해서 해당 악성 서비스가 실행된 시간을 찾고 이 시간대에 Cache 정보(MUICache, UserAssist, IECache 등)를 통해 어느 경로로 감염되었는지 확인하는 것이 가능합니다.

하지만 만약 사용자가 하루에 한번씩 또는 주기적으로 이런 Cache 정보를 지우게끔 설정하였거나(특정 프로그램을 통해서)
IE에서 직접 삭제하거나 하였다면 감염 경로를 찾아내는 것이 쉽지는 않을 것입니다.



0x04 Prefetch

Prefetch는 일종의 미리 올려놓기(?) 정도로 해석할 수 있습니다.
프로그램 성능향상을 위해 프로그램이 실행에 필요한 데이터들을 먼저(Pre) 메모리에 올리는 역할을 하는데 이런 정보를 가지고 있는 파일이 Prefetch 파일입니다.

C:\WINDOWS\Prefetch




최적화 프로그램이니 최적화시켜주는 레지스트리 변경값이니 하면서 배포되는게 있는데 그런 파일들이 이런 Prefetch 파일을 지워버리거나 생성이 안되게 하는 경향이 있습니다.

물론 Prefetch 파일을 지우면 시스템 부팅 속도는 향상될지 몰라도 응용프로그램 실행 성능은 떨어질 수 있습니다.
Prefetch가 있다고 해서 부팅 성능이 눈에 띄게 올라가는건 아닌데 말이죠..

분석자 입장에서 Prefetch는 악성코드(exe)가 실행된 후 Prefetch 파일이 있는지 그리고 몇번 실행되었는지
생성된 시간이 이벤트 뷰어에 악성서비스와 시간대가 비슷한지 등등을 확인하시면 좋을 듯 합니다.



Prefetch에 대한 좀 더 자세한 분석 내용은 궁상박군의 블로그 글 - Prefetch Header 가지고 놀기을 참조하시면 되겠습니다.






Posted by demantos