3. 악성코드 분석 사례

1,156 views

Published on

2008년 서울여대 강의 자료

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,156
On SlideShare
0
From Embeds
0
Number of Embeds
313
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

3. 악성코드 분석 사례

  1. 1. 악성코드 분석 사례 2008.10.07 ㈜ 안철수연구소 AhnLab Security E-response Center Anti-Virus Researcher, CISSP 장 영 준 주임 연구원
  2. 2. 2 1. Dropper/PcClient.47873 은폐 기능을 수행하며 별도의 파일들을 생성하는 드로퍼 (Dropper) 형태의 트로이목마 1) Visual C++로 제작 2) 윈도우 시스템 폴더에 2개의 DLL 파일과 1개의 드라이버 파일 생성 3) 생성한 드라이버 파일을 이용한 커널 모드(Kernel Mode) 은폐 기능 수행 4) 생성한 파일들에 대한 파일 및 레지스트리 은폐 기능 수행 5) 실행한 인터넷 익스플로러의 프로세스 및 네트워크 포트 은폐 기능 수행 6) 실행한 인터넷 익스플로러를 이용하여 외부 특정 시스템으로 접속 시도 7) 접속한 시스템을 통하여 제3의 시스템으로 재접속 후 공격자의 명령 수행 8) 실행 중인 모든 프로세스에 스레드 (Thread)로 인젝션 (Injection)하여 사용자가 입력하는 모든 키보드 입력을 후킹 (Hooking) 1. 악성코드 분석 사례
  3. 3. 3 2. 파일 형태 분석 헥사 코드(Hex Code)를 분석할 수 있는 유틸리티를 이용하여 파일 형태 분석 윈도우에서 실행이 가능하도록 제작된 PE (Portable Executable) 파일 .text, .rdata, .data의 3개의 PE (Portable Executable) 섹션 (Section)을 가지고 있음. 1. 악성코드 분석 사례
  4. 4. 4 3. 파일 구조 분석 파일의 구조를 분석할 수 있는 유틸리티를 이용하여 파일의 구조 분석 단독으로 윈도우에서 실행이 가능 하도록 제작된 실행 파일 비주얼 C++로 제작 메모리에서 시작 주소는 0x403466 1. 악성코드 분석 사례
  5. 5. 5 4. 윈도우 API 분석 파일의 IAT (Import Address Table) 분석 툴로 윈도우 API 분석 다음의 API들을 사용함으로 정상 파일 이 아닐 것으로 추정 GetSystemDirectoryA Process32Next CreateRemoteThread GetModuleHandleA WriteProcessMemory OpenProcess AdjustTokenPrivileges OpenProcessToken LookupPrivilegeValueA 1. 악성코드 분석 사례
  6. 6. 6 5. 파일 내부 문자열 분석 파일의 내부 문자열 (String)을 분석할 수 있는 유틸리티를 이용하여 분석 파일 내부 문자열 (String)에서는 정상 파일 또는 악성코드로 추정되는 특별한 내부 문자열을 확인 할 수 없음 1. 악성코드 분석 사례
  7. 7. 7 6. 파일을 시스템에서 실행 시스템 변화를 분석 할 수 있는 유틸리티를 이용하여 파일을 시스템에서 실행 후 시스템 변화 분석 생성된 파일은 없으나 레지스트리 키 값 생성으로 특정 드라이버 파일을 서비스로 등록 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesyncqjmkq "ImagePath" Type: REG_EXPAND_SZ Data: C:WINDOWSsystem32driversyncqjmkq.sys 파일이 드라이버 파일을 생성하고 윈도우 서비스로 레지스트리에 등록한 것으로 확인 레지스트리 분석 유틸리티를 이용하여 해당 레지스트리 키 값을 검색해보았으나 정상 윈도우 모드에서 확인되지 않음 해당 드라이버 파일을 윈도우 시스템 폴더의 드라이버 폴더에서 검색 해보았으나 정상 윈도우 모드에서 확인되지 않음 1. 악성코드 분석 사례
  8. 8. 8 7. 파일 실행 후 네트워크 분석 네트워크 포트와 패킷을 분석할 수 있는 유틸리티를 이용하여 시스템의 네트워크 분석 사용되는 포트가 없으나 특정 시스템으로 접속하는 네트워크 패킷이 분석됨 1. 악성코드 분석 사례
  9. 9. 9 8. 파일 실행 후 시스템 추가 분석 (1) 현재까지 분석 상황으로 미루어 은폐형 악성코드로 의심됨으로 은폐 기능을 탐지 할 수 있는 유틸리티로 시스템 분석 은폐 기능 탐지 유틸리티를 이용하여 인터넷 익스플로러가 은폐되어 있는 것을 탐지 그 외의 파일들이 윈도우 시스템에서 은폐되어 있는 것을 탐지 1. 악성코드 분석 사례
  10. 10. 10 실행 파일이 생성한 파일들의 현재 상태를 유틸리티를 이용하여 추가 분석 실행 파일이 생성한 YNCQJMKQ.D1L 은 은폐된 인터넷 익스플로러에 핸들 (Handle)로 실행 실행 파일이 생성한 YNCQJMKQ.DLL 은 실행 중인 프로세스들에 스레드 (Thread)로 인젝션 (Injection) 9. 파일 실행 후 시스템 추가 분석 (2) 1. 악성코드 분석 사례
  11. 11. 11 10. 파일 디버깅 및 디스어셈블링 (1) 실행 파일을 OllyDbg 를 이용하여 디버깅 실행 파일이 실행되면 시스템 사용자 계정의 임시 폴더 경로 확보 임시 폴더에 YNCQJMKQ.tmp, YNCQJMKQ.d1l 과 YNCQJMKQ.log 파일 생성 1. 악성코드 분석 사례
  12. 12. 12 11. 파일 디버깅 및 디스어셈블링 (2) 윈도우 시스템 폴더 경로 확보 후 생성한 파일들 중 YNCQJMKQ.tmp 는 YNCQJMKQ.dll 로 파일명을 변경하여 윈도우 시스템 폴더로 복사 YNCQJMKQ.d1l 은 명칭 변경 없이 윈도우 시스템 폴더로 복사 복사 이후 YNCQJMKQ.sys를 윈도우 시스템 폴더 아래의 drivers 폴더에 생성 인터넷 익스플로러를 실행한 후 YNCQJMKQ.d1l 를 인터넷 익스플로러의 핸들(Handle)로 등록 후 실행 1. 악성코드 분석 사례
  13. 13. 13 12. 파일 디버깅 및 디스어셈블링 (3) YNCQJMKQ.d1l 는 실행된 인터넷 익스플로러를 통해 다음 함수들을 이용하여 파일내 하드코딩 된 주소의 특정 시스템으로 접속 후 파일 다운로드 InternetSetOptionA, InternetOpenA, InternetOpenUrlA, InternetReadFile 1. 악성코드 분석 사례
  14. 14. 14 13. 파일 디버깅 및 디스어셈블링 (4) YNCQJMKQ.d1l 는 다음 함수들을 호출 YNCQJMKQ.sys를 윈도우 서비스로 실행 OpenSCManagerA, OpenServiceA CreateServiceA, StartServiceA YNCQJMKQ.sys는 KeServiceDescriptorTable 을 이용 하여 SSDT (System Service Descriptor Table) 후킹 (Hooking)을 하여 은폐 기능을 수행 ZwCreateFile, ZwQueryKey, ZwEnumerateValueKey, ZwEnumerateKey ZwQuerySystemInformation, ZwQueryDirectoryFile 1. 악성코드 분석 사례
  15. 15. 15 14. 파일 디버깅 및 디스어셈블링 (5) YNCQJMKQ.dll를 CreateRemoteThread 함수를 이용 실행 중인 프로세스들에 스레드(Thread) 로 인젝션(Injection) 후 실행 인젝션된 YNCQJMKQ.dll는 다음 함수들을 이용하여 사용자가 입력하는 키보드 입력을 후킹 SetWindowsHookExA, CallNextHookEx, GetKeyboardState, 1. 악성코드 분석 사례
  16. 16. Q&A 감사합니다

×