2018. 5. 23. 19:08ㆍ악성코드 분석
Memory Forensic
컴퓨터 하드웨어 중 주기억장치(메모리)에 존재하는 휘발성 데이터를 덤프분석
프로세스 정보, 네트워크 연결정보, 악성코드 파일정보 등등
* memory dump - 물리 메모리에 존재하는 모든 흔적을 확인할 수 있음
OS ?
하드웨어의 조작을 위한 매개체
OS는 시스템 하드웨어를 관리하고 응용소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통시스템 서비스를 제공하는 시스템 소프트웨어이다
Kernel ?
운영체제의 핵심부분
운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가지 서비스를 제공
하드웨어의 추상화
기능적인 요소
① 프로세스 관리
모든 스레드와 프로세스에 대한 정보는 메모리상의 데이터 구조체에 의해서 유지 및 관리
② 파일 접근
디바이스 드라이버에 의해서 각종 파일시스템이 구현 및 처리
파일시스템에 대한 일관적인 인터페이스 제공
③ 보안
프로세스 메모리 영역을 분리하고 권한 설정
④ 메모리 관리
메모리 주소는 동시에 여러 개의 물리 메모리 주소로 매핑
메모리 상의 일부 영역을 디스크로 paging시켜 메모리 공간처럼 사용
Windows Executive Object ( 윈도우 실행부 객체 )
객체의 구조 ( _POOL_HEADER + 선택적헤더 + 객체헤더 + 객체바디 )
Pool
메모리 할당할 때 너무 작은 메모리들을 할당하게 되면 페이징 낭비가 심해서 대신 '파일 핸들'이나 '객체'를 저장하는 공간
Pool Tag
할당을 실행하기 위해 취한 경로를 유일하게 식별하는 ACII문자로 구성된 4바이트
MS에서 디버깅과 감사 목적으로 제작
'할당크기'와 '메모리 유형'은 오탐을 제거하는 데 주요역할을 한다
Callback Function ( 콜백함수 )
OS가 호출할 애플리케이션의 함수를 지정해 특정한 사건이나 메시지 발생 시 호출되도록 지정할 수 있다
_EPROCESS - Process Object
커널에 위치하며, 개별 프로세스를 나타내는 거대한 구조체로써, 프로세스의 식별정보나 프로세스에서 사용하는 메모리 정보 등 거의 모든 정보를 가진다
HandleTable, Threads, SID & Privileges, Loaded Moudle(exe,dll...), VAD(Virtual Address Descriptor)
* VAD - 가상 주소에 대한 정보를 가지며 어떤 가상 주소가 예약되어 있는지의 여부를 알 수 있게 관리하는 데이터 구조체 집합
KDBG 구조체 ( _KDEBUGGER_DATA64 )
KDBG안에는 PsActiveProcessHead가 존재한다
PsActiveProcessHead -> _EPROCESS - Flink & Blink -> _EPROCESS 2 -> _EPROCESS 3 ...
System Process
유저모드에서 동작하는 중요한 프로세스
사용자가 시스템을 사용하는데 필요한 핵심부분을 담당
주요 프로세스
Smss.exe ( Session Management SubSytem )
세션 관리
Csrss.exe
클라이언트와 서버간의 관계 관리
Winlogon.exe
윈도우 계정 관리
Lsass.exe
보안 관련
Services.exe
윈도우에서 프로그램 실행 관련
File System
보조 기억 장치에 데이터의 저장과 검색방법을 제어하는데 사용
체계적인 저장방식과 검색방식으로 데이터를 저장하고 검색을 최적화
NTFS ( New Technology File System )
모든 파일과 디렉터리, 메타파일은 metadata로 MFT에 저장한다
* metadata - 데이터 관리상 필요한 작성자 & 목적 & 저장장소 등의 속성에 관한 data
MFT ( Master File Table )
파일에 대한 metadata를 저장하는 공간
Header & Attribute ( 최근 접근시간, 파일이름, 내용 등등 ) 으로 구성
[ Window 구조 ]
< User Mode >
User Application
사용자가 사용하는 프로그램
SubSystem & NTDLL.dll
사용자와 커널과의 통신
< Kernel Mode >
DeviceDriver & Kernel - HAL
응용애플리케이션과 하드웨어와의 통신
'악성코드 분석' 카테고리의 다른 글
파일 시스템 개념 정리 (0) | 2018.07.05 |
---|---|
악성코드 유출사례 ( DBD 실습 ) (2) | 2018.06.12 |
하이브리드 후킹 ( Kernel을 이용한 User IAT 후킹 ) (0) | 2018.05.21 |
DeviceDriver MajorFunction 후킹 [ netstat ] (0) | 2018.05.15 |
RootKit [ SSDT Hooking 실습] (0) | 2018.05.13 |