메모리구조
- 식별
KPCR(Kernel Processor Control Region), KDBG(Kernel Debugger Datablock),
KDBG(_KDDEBUGGER_DATA64의 약자)
KPCR - 사용하고 있는 CPU의 정보를 담고 있는 구조체
- 구조 분석
EPROCESS, PEB(Process Environment Block), VAD(Virtual Address Descriptor), DLLs, Kernel modules, drivers
- 내용 확인
후킹탐지, 시그니처 확인
프로세스분석
- Image Name, Full Path, Parent Process, Command Line, Start Time, Security IDs(실행계정)
<Image Name>
예) svchost(O), scvhost(X)
<Full Path>
예) Explorer.exe는 Windows 디렉토리에서 실행되어야함
svchost.exe는 system32 디렉토리에서 실행되어야함
<Parent Process>
예) svchost.exe의 부모는 services.exe 이여야 함
cmd.exe가 부모인 시스템 파일은 의심해볼만 함
부모프로세스가 죽은 경우 의심해볼만 함
<Command Line>
<Start Time>
예) svchost.exe 들 간의 시작시간은 비슷해야 함
부팅시 실행되는 smss.exe winlogon.exe는 시작시간이 비슷해야 함
<SID>
Administrator : 500번, Guest : 501번, 일반사용자 : 1000번이상
예) 시스템 프로세스가 일반사용자 권한으로 실행되는경우
<Handle>
악성코드가 주로 사용하는 Mutant 핸들 조사 가능
예) xEnMMWEH : sobig 악성코드
<LFO - Least Frequency of Occurrence>
- 참조가 적은 Handle은 의심해볼만 하다
예) Mutant 참조 횟수가 1인 Handle을 많이 가진 Process
(Redline에서는 Option을 통해 사용자 시그니처 생성 가능)
네트워크 분석
- 외부로 열려 있는 포트
예) 시스템 프로세스가 외부랑 통신하는 경우
=> 통신시작 시간도 중요함 (연계 프로세스나 파일을 찾을수 있음)
- 내부에서 Listen하고 있는 포트
- 관련 네트워크와 연계된 프로세스의 정상여부 검토
- String 상의 http:// https:// ftp:// 관련 문자열
코드 인젝션 분석 (추가 공부 필요)
DLL Injection 의심 함수
- VirtualAloocEx(), CreateRemoteThread(), Set WindowsHookEx()
DLL Injection 의심 핸들
Page_execute_ReadWrite 의 메모리 영역
Stuxnet - Process Hollowing (추가 공부 필요)
윈도우 부팅과정 (추가공부필요)
ntoskrnl.exe
- SSDT 후킹에 주로 이용됨
smss.exe => winlogon.exe => lsass.exe => services.exe => csrss.exe => svchost.exe, spoolsv.exe
lsass.exe(Local Security Authority Subsystem Service)
- 1개 프로세스만 존재해야 함
- 부모 프로세스는 winlogon.exe 임
svchost.exe
- 부모 프로세스는 services.exe
루트킷 탐지
SSDT (System Service Descriptor Table)
1) Target
- System Kernel(ntoskrnl.exe)
- GUI Driver (Win32k.sys)
2) 주요 함수
NtEnumerateKey : 레지스트리 키 은닉
NtEnumerateValueKey : 레지스트리 값 은닉
NtQueryDirectoryFile : 파일 은닉
IDT(Interrupt Descriptor Table)
- System Kernel(ntoskrnl.exe)
- hal.dll
IAT(Import Address Table)
- user-mode
- Volatility apihooks
Inline API
- Volatility apihooks
IRP (I/O Request Packets)
- Driver Hooking
=> Hooking이 가장 적게 걸려있는 드라이버를 의심
=> VirusTotal, 행위분석, 동적분석, 정적 분석 등을 통해 악성파일 검증
악성코드 분석(추가공부필요)
드라이버 파일을 추출했을때분석 방법 (Ollydbg?)
'Security > Forensic' 카테고리의 다른 글
안드로이드 이미징 (0) | 2016.06.01 |
---|---|
log2timeline 사용 예제 (0) | 2015.11.19 |
포렌식 메모리 분석(w/Volatility) (0) | 2014.12.21 |
E01 파일 mount (0) | 2014.12.03 |